|
@@ -1,6 +1,5 @@
|
|
package com.qmth.distributed.print.business.service.impl;
|
|
package com.qmth.distributed.print.business.service.impl;
|
|
|
|
|
|
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
import com.google.gson.Gson;
|
|
import com.google.gson.Gson;
|
|
import com.google.gson.reflect.TypeToken;
|
|
import com.google.gson.reflect.TypeToken;
|
|
import com.qmth.boot.api.exception.ApiException;
|
|
import com.qmth.boot.api.exception.ApiException;
|
|
@@ -25,7 +24,6 @@ import com.qmth.teachcloud.common.util.ServletUtil;
|
|
import org.activiti.bpmn.BpmnAutoLayout;
|
|
import org.activiti.bpmn.BpmnAutoLayout;
|
|
import org.activiti.bpmn.model.Process;
|
|
import org.activiti.bpmn.model.Process;
|
|
import org.activiti.bpmn.model.*;
|
|
import org.activiti.bpmn.model.*;
|
|
-import org.activiti.engine.HistoryService;
|
|
|
|
import org.activiti.engine.RepositoryService;
|
|
import org.activiti.engine.RepositoryService;
|
|
import org.activiti.engine.RuntimeService;
|
|
import org.activiti.engine.RuntimeService;
|
|
import org.activiti.engine.TaskService;
|
|
import org.activiti.engine.TaskService;
|
|
@@ -33,7 +31,6 @@ import org.activiti.engine.impl.bpmn.behavior.MultiInstanceActivityBehavior;
|
|
import org.activiti.engine.impl.bpmn.behavior.ParallelMultiInstanceBehavior;
|
|
import org.activiti.engine.impl.bpmn.behavior.ParallelMultiInstanceBehavior;
|
|
import org.activiti.engine.impl.bpmn.behavior.SequentialMultiInstanceBehavior;
|
|
import org.activiti.engine.impl.bpmn.behavior.SequentialMultiInstanceBehavior;
|
|
import org.activiti.engine.repository.Deployment;
|
|
import org.activiti.engine.repository.Deployment;
|
|
-import org.activiti.engine.repository.DeploymentBuilder;
|
|
|
|
import org.activiti.engine.runtime.ProcessInstance;
|
|
import org.activiti.engine.runtime.ProcessInstance;
|
|
import org.activiti.engine.task.Task;
|
|
import org.activiti.engine.task.Task;
|
|
import org.apache.commons.io.FileUtils;
|
|
import org.apache.commons.io.FileUtils;
|
|
@@ -42,11 +39,9 @@ import org.slf4j.LoggerFactory;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.util.LinkedMultiValueMap;
|
|
import org.springframework.util.LinkedMultiValueMap;
|
|
-import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
import java.io.File;
|
|
import java.io.File;
|
|
-import java.io.FileInputStream;
|
|
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.io.InputStream;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
@@ -79,30 +74,15 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
@Resource
|
|
@Resource
|
|
TFFlowLogService tfFlowLogService;
|
|
TFFlowLogService tfFlowLogService;
|
|
|
|
|
|
- @Resource
|
|
|
|
- HistoryService historyService;
|
|
|
|
-
|
|
|
|
@Resource
|
|
@Resource
|
|
ExamTaskService examTaskService;
|
|
ExamTaskService examTaskService;
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
@Resource
|
|
@Resource
|
|
RedisUtil redisUtil;
|
|
RedisUtil redisUtil;
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
@Resource
|
|
@Resource
|
|
SysUserService sysUserService;
|
|
SysUserService sysUserService;
|
|
|
|
|
|
- @Resource
|
|
|
|
- ExamDetailCourseService examDetailCourseService;
|
|
|
|
-
|
|
|
|
- @Resource
|
|
|
|
- ExamDetailService examDetailService;
|
|
|
|
-
|
|
|
|
@Resource
|
|
@Resource
|
|
TFFlowJoinService tfFlowJoinService;
|
|
TFFlowJoinService tfFlowJoinService;
|
|
|
|
|
|
@@ -115,65 +95,6 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
@Resource
|
|
@Resource
|
|
TFCustomFlowEntityService tfCustomFlowEntityService;
|
|
TFCustomFlowEntityService tfCustomFlowEntityService;
|
|
|
|
|
|
-
|
|
|
|
- * 注册流程
|
|
|
|
- *
|
|
|
|
- * @param processFileName
|
|
|
|
- */
|
|
|
|
- @Override
|
|
|
|
- public void createDeployment(String processFileName) {
|
|
|
|
- DeploymentBuilder builder = repositoryService.createDeployment();
|
|
|
|
- builder.addClasspathResource(SystemConstant.PROCESSES + File.separator + processFileName);
|
|
|
|
- builder.deploy();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- * 上传流程文件
|
|
|
|
- *
|
|
|
|
- * @param file
|
|
|
|
- */
|
|
|
|
- @Override
|
|
|
|
- public void uploadDeployment(MultipartFile file) throws IOException {
|
|
|
|
- DeploymentBuilder builder = repositoryService.createDeployment();
|
|
|
|
- builder.addInputStream(file.getOriginalFilename(), file.getInputStream());
|
|
|
|
- builder.deploy();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- * 上传流程文件
|
|
|
|
- *
|
|
|
|
- * @param file
|
|
|
|
- */
|
|
|
|
- @Override
|
|
|
|
- public void uploadDeployment(File file) throws IOException {
|
|
|
|
- DeploymentBuilder builder = repositoryService.createDeployment();
|
|
|
|
- builder.addInputStream(file.getName(), new FileInputStream(file));
|
|
|
|
- builder.deploy();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- * 根据流程key开启一个流程
|
|
|
|
- *
|
|
|
|
- * @param processKey
|
|
|
|
- * @param map
|
|
|
|
- */
|
|
|
|
- @Override
|
|
|
|
- @Transactional
|
|
|
|
- public ProcessInstance startActivity(String processKey, Map<String, Object> map) {
|
|
|
|
- ProcessInstance processInstance = null;
|
|
|
|
- if (Objects.nonNull(map) && map.size() > 0) {
|
|
|
|
- processInstance = runtimeService.startProcessInstanceByKey(processKey, map);
|
|
|
|
- } else {
|
|
|
|
- processInstance = runtimeService.startProcessInstanceByKey(processKey);
|
|
|
|
- }
|
|
|
|
- log.info("流程id:{},processInstanceId:{},processDefinitionId:{},processDefinitionKey:{}", processInstance.getId(), processInstance.getProcessInstanceId(), processInstance.getProcessDefinitionId(), processInstance.getProcessDefinitionKey());
|
|
|
|
- ProcessInstance finalProcessInstance = processInstance;
|
|
|
|
- map.computeIfAbsent(SystemConstant.FLOW_ID, v -> finalProcessInstance.getId());
|
|
|
|
- map.computeIfAbsent(SystemConstant.FLOW_STATUS, v -> FlowStatusEnum.START);
|
|
|
|
- this.flowApproveStart(map);
|
|
|
|
- return processInstance;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
|
|
* 启动流程
|
|
* 启动流程
|
|
*
|
|
*
|
|
@@ -318,20 +239,6 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
tfFlowApproveService.save(new TFFlowApprove(sysUser.getSchoolId(), sysUser.getOrgId(), SystemConstant.convertIdToLong(flowId), sysUser.getId(), flowStatusEnum, sysUser.getId()));
|
|
tfFlowApproveService.save(new TFFlowApprove(sysUser.getSchoolId(), sysUser.getOrgId(), SystemConstant.convertIdToLong(flowId), sysUser.getId(), flowStatusEnum, sysUser.getId()));
|
|
|
|
|
|
Long objectId = (Long) map.get(SystemConstant.OBJECT_ID);
|
|
Long objectId = (Long) map.get(SystemConstant.OBJECT_ID);
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
tfFlowLogService.save(new TFFlowLog(sysUser.getSchoolId(), sysUser.getOrgId(), SystemConstant.convertIdToLong(flowId), objectId, sysUser.getId(), sysUser.getId(), "提交流程", approveId, FlowApproveOperationEnum.SUBMIT, flowType.getTable()));
|
|
tfFlowLogService.save(new TFFlowLog(sysUser.getSchoolId(), sysUser.getOrgId(), SystemConstant.convertIdToLong(flowId), objectId, sysUser.getId(), sysUser.getId(), "提交流程", approveId, FlowApproveOperationEnum.SUBMIT, flowType.getTable()));
|
|
}
|
|
}
|
|
|
|
|
|
@@ -481,7 +388,6 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
examTask,
|
|
examTask,
|
|
objectMap);
|
|
objectMap);
|
|
|
|
|
|
-
|
|
|
|
taskService.complete(String.valueOf(flowTaskId), map);
|
|
taskService.complete(String.valueOf(flowTaskId), map);
|
|
return objectMap;
|
|
return objectMap;
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
@@ -798,252 +704,6 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
return flowTaskResultList;
|
|
return flowTaskResultList;
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
- * 流程删除
|
|
|
|
- *
|
|
|
|
- * @param id
|
|
|
|
- * @return
|
|
|
|
- */
|
|
|
|
- @Override
|
|
|
|
- public Boolean flowDelete(Long id) {
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- return true;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- * 获取所有流程节点待审批人
|
|
|
|
- *
|
|
|
|
- * @param courseCode
|
|
|
|
- * @param taskId
|
|
|
|
- * @return
|
|
|
|
- */
|
|
|
|
- @Override
|
|
|
|
- public FlowTaskApprovePeopleAllResult taskApproverPeopleAll(String courseCode, String taskId) {
|
|
|
|
- FlowTaskApprovePeopleAllResult flowTaskApprovePeopleAllResult = null;
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- return flowTaskApprovePeopleAllResult;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
|
|
* 流程节点转他人审批
|
|
* 流程节点转他人审批
|
|
*
|
|
*
|
|
@@ -1144,7 +804,6 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
tfFlowLog.setApproveUserApproveType(customFlowVarDto.getMultipleUserApproveType());
|
|
tfFlowLog.setApproveUserApproveType(customFlowVarDto.getMultipleUserApproveType());
|
|
tfFlowLogService.save(tfFlowLog);
|
|
tfFlowLogService.save(tfFlowLog);
|
|
|
|
|
|
-
|
|
|
|
taskService.setAssignee(taskId, userId);
|
|
taskService.setAssignee(taskId, userId);
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
@@ -1162,638 +821,6 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
approveIds.add(exchangeUserId);
|
|
approveIds.add(exchangeUserId);
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
- * 获取转他人审批人
|
|
|
|
- *
|
|
|
|
- * @param taskId
|
|
|
|
- * @param realName
|
|
|
|
- * @return
|
|
|
|
- */
|
|
|
|
- @Override
|
|
|
|
- public FlowTaskApprovePeopleAllResult taskApproverExchangePeople(String taskId, String realName) {
|
|
|
|
- SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
|
|
- Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
|
|
|
|
- Optional.ofNullable(task).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("流程任务为空或该流程已被他人审核,请刷新再试!"));
|
|
|
|
- FlowTaskApprovePeopleAllResult flowTaskApprovePeopleAllResult = new FlowTaskApprovePeopleAllResult(SystemConstant.convertIdToLong(task.getProcessInstanceId()));
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- return flowTaskApprovePeopleAllResult;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- * 获取下级节点审批人
|
|
|
|
- *
|
|
|
|
- * @param courseCode
|
|
|
|
- * @param taskId
|
|
|
|
- * @return
|
|
|
|
- */
|
|
|
|
- @Override
|
|
|
|
- public FlowTaskApprovePeopleAllResult taskApproverNextPeople(String courseCode, String taskId) {
|
|
|
|
- FlowTaskApprovePeopleAllResult flowTaskApprovePeopleAllResult = null;
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- return flowTaskApprovePeopleAllResult;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- * 获取印刷员审批人
|
|
|
|
- *
|
|
|
|
- * @param flowId
|
|
|
|
- * @return
|
|
|
|
- */
|
|
|
|
- @Override
|
|
|
|
- public List<ApproveUserResult> findByPrintApprove(Long flowId) {
|
|
|
|
- ExamTask examTask = examTaskService.findByFlowId(flowId);
|
|
|
|
- QueryWrapper<ExamDetailCourse> examDetailCourseQueryWrapper = new QueryWrapper<>();
|
|
|
|
- examDetailCourseQueryWrapper.lambda().eq(ExamDetailCourse::getSchoolId, examTask.getSchoolId())
|
|
|
|
- .eq(ExamDetailCourse::getCourseCode, examTask.getCourseCode())
|
|
|
|
- .eq(ExamDetailCourse::getPaperNumber, examTask.getPaperNumber());
|
|
|
|
- List<ExamDetailCourse> examDetailCourseList = examDetailCourseService.list(examDetailCourseQueryWrapper);
|
|
|
|
-
|
|
|
|
- List<ApproveUserResult> approveUserResultList = null;
|
|
|
|
- if (Objects.nonNull(examDetailCourseList) && examDetailCourseList.size() > 0) {
|
|
|
|
- Set<Long> examDetailIdSet = examDetailCourseList.stream().map(s -> s.getExamDetailId()).collect(Collectors.toSet());
|
|
|
|
- QueryWrapper<ExamDetail> examDetailQueryWrapper = new QueryWrapper<>();
|
|
|
|
- examDetailQueryWrapper.lambda().in(ExamDetail::getId, examDetailIdSet);
|
|
|
|
- List<ExamDetail> examDetailList = examDetailService.list(examDetailQueryWrapper);
|
|
|
|
- if (Objects.nonNull(examDetailList) && examDetailList.size() > 0) {
|
|
|
|
- Set<Long> printHouseIdSet = examDetailList.stream().map(s -> s.getPrintHouseId()).collect(Collectors.toSet());
|
|
|
|
- approveUserResultList = sysUserService.findByOrgIds(printHouseIdSet);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- return approveUserResultList;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- * 获取流程提交记录
|
|
|
|
- *
|
|
|
|
- * @param examTaskId
|
|
|
|
- * @return
|
|
|
|
- */
|
|
|
|
- @Override
|
|
|
|
- public List<FlowTaskSubmitPeopleAllResult> taskApproverSubmitList(String examTaskId) {
|
|
|
|
- List<FlowTaskSubmitPeopleAllResult> flowTaskSubmitPeopleAllResultList = null;
|
|
|
|
- List<TFFlowLogResult> tfFlowLogResultList = tfFlowLogService.findByObjectId(SystemConstant.convertIdToLong(examTaskId));
|
|
|
|
- if (Objects.nonNull(tfFlowLogResultList) && tfFlowLogResultList.size() > 0) {
|
|
|
|
- flowTaskSubmitPeopleAllResultList = new LinkedList<>();
|
|
|
|
- for (TFFlowLogResult t : tfFlowLogResultList) {
|
|
|
|
- ApproveUserResult submitUser = new ApproveUserResult(t.getOrgName(), t.getOrgType(), t.getLoginName(), t.getRealName(), t.getSchoolId(), t.getCode(), t.getMobileNumber(), t.getCreateTime(), t.getPaperAttachmentId());
|
|
|
|
- FlowTaskSubmitPeopleAllResult flowTaskSubmitPeopleAllResult = new FlowTaskSubmitPeopleAllResult(t.getFlowId(), submitUser);
|
|
|
|
-
|
|
|
|
- if (Objects.nonNull(t.getPendApproveId())) {
|
|
|
|
- List<ApproveUserResult> approveUserList = new LinkedList<>();
|
|
|
|
- String[] pendApproveIds = t.getPendApproveId().split(",");
|
|
|
|
- for (int i = 0; i < pendApproveIds.length; i++) {
|
|
|
|
- approveUserList.addAll(sysUserService.findById(SystemConstant.convertIdToLong(pendApproveIds[i].trim())));
|
|
|
|
- }
|
|
|
|
- flowTaskSubmitPeopleAllResult.setApproveUserList(approveUserList);
|
|
|
|
- }
|
|
|
|
- flowTaskSubmitPeopleAllResultList.add(flowTaskSubmitPeopleAllResult);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- return flowTaskSubmitPeopleAllResultList;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- * 流程提交校验
|
|
|
|
- *
|
|
|
|
- * @param task
|
|
|
|
- * @param userId
|
|
|
|
- */
|
|
|
|
- private void flowSubmitVaild(Task task, Long userId) {
|
|
|
|
- if (Objects.isNull(task.getAssignee())) {
|
|
|
|
- Task taskUser = taskService.createTaskQuery().taskId(task.getId()).taskAssignee(String.valueOf(userId)).singleResult();
|
|
|
|
- Optional.ofNullable(taskUser).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("不能提交他人的任务或者该任务已被审核,请刷新再试!"));
|
|
|
|
- } else {
|
|
|
|
- if (!Objects.equals(task.getAssignee(), String.valueOf(userId))) {
|
|
|
|
- throw ExceptionResultEnum.ERROR.exception("不能提交他人的任务或者该任务已被审核,请刷新再试!");
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- * 流程审批校验
|
|
|
|
- *
|
|
|
|
- * @param task
|
|
|
|
- * @param userId
|
|
|
|
- * @param map
|
|
|
|
- */
|
|
|
|
- private void flowApproveVaild(Task task, Long userId, Map<String, Object> map) {
|
|
|
|
- if (Objects.isNull(task.getAssignee())) {
|
|
|
|
- Task taskUser = taskService.createTaskQuery().taskId(task.getId()).taskCandidateUser(String.valueOf(userId)).singleResult();
|
|
|
|
- Optional.ofNullable(taskUser).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("不能提交他人的任务或者该任务已被审核,请刷新再试!"));
|
|
|
|
- } else {
|
|
|
|
- if (!Objects.equals(task.getAssignee(), String.valueOf(userId))) {
|
|
|
|
- throw ExceptionResultEnum.ERROR.exception("不能提交他人的任务或者该任务已被审核,请刷新再试!");
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- Optional.ofNullable(map.get(SystemConstant.APPROVE_OPERATION)).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("流程审核操作不能为空"));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- * 获取所有审批人
|
|
|
|
- *
|
|
|
|
- * @param courseCode
|
|
|
|
- * @param flowTaskApprovePeopleResultList
|
|
|
|
- * @param processDefinitionEntity
|
|
|
|
- * @param processInstanceId
|
|
|
|
- * @param taskTaskAll
|
|
|
|
- */
|
|
|
|
- private List<FlowTaskApprovePeopleResult> getApproveUserAll(String courseCode
|
|
|
|
- , List<FlowTaskApprovePeopleResult> flowTaskApprovePeopleResultList
|
|
|
|
- , String processDefinitionEntity
|
|
|
|
- , String processInstanceId
|
|
|
|
- , List<FlowTaskResult> taskTaskAll) {
|
|
|
|
- flowTaskApprovePeopleResultList = Objects.isNull(flowTaskApprovePeopleResultList) ? new LinkedList() : flowTaskApprovePeopleResultList;
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- return flowTaskApprovePeopleResultList;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
|
|
* 动态创建流程图
|
|
* 动态创建流程图
|
|
*
|
|
*
|