add 标准征求意见流程-审批
This commit is contained in:
+3
-3
@@ -11,7 +11,7 @@ public class ConsultationTaskKey {
|
||||
|
||||
public static final String ENGINEER_START = "engineer_start"; // 法规工程师发起
|
||||
|
||||
public static final String ENGINEER_START_END = "engineer_start_end"; // 法规工程师汇总
|
||||
public static final String ENGINEER_START_END = "engineer_start_end"; // 法规工程师审批
|
||||
|
||||
public static final String REJECT = "reject"; // 法规工程师驳回
|
||||
|
||||
@@ -19,13 +19,13 @@ public class ConsultationTaskKey {
|
||||
|
||||
public static final String DEPART_LEADER_START_2 = "depart_leader_start_2"; // 各部所主管级领导分发
|
||||
|
||||
public static final String DEPART_LEADER_END_1 = "depart_leader_end_1"; // 各部所主管级领导汇总
|
||||
public static final String DEPART_LEADER_END_1 = "depart_leader_end_1"; // 各部所主管级领导审批
|
||||
|
||||
public static final String DEPART_LEADER_COLLECT_2 = "depart_leader_collect_2"; // 各部所主管级领导汇总
|
||||
|
||||
public static final String DEPART_LEADER_COLLECT_3 = "depart_leader_collect_3"; // 各部所主管级领导汇总
|
||||
|
||||
public static final String DEPART_LEADER_END_4 = "depart_leader_end_4"; // 各部所主管级领导汇总
|
||||
public static final String DEPART_LEADER_END_4 = "depart_leader_end_4"; // 各部所主管级领导审批
|
||||
|
||||
public static final String MODULE_OWNER_START = "module_owner_start"; // 模块负责人分发
|
||||
|
||||
|
||||
+88
-6
@@ -113,16 +113,18 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
|
||||
**/
|
||||
@Override
|
||||
public void approveTask(ProcessInfoVO<ProcessFbStandardConsultationVO> processInfoVO, boolean pass) {
|
||||
BasicTaskInfoDTO taskInfo = processInfoVO.getBasicTaskInfoDTO(); // 任务信息
|
||||
|
||||
ProcessFbStandardConsultationVO businessInfoDTO = processInfoVO.getBusinessInfoDTO(); // 全部业务信息
|
||||
ProcessFbStandardConsultation businessBasicInfo = businessInfoDTO.getProcessFbStandardConsultation(); // 业务基本信息
|
||||
processInfoVO.setBusinessId(businessBasicInfo.getId());
|
||||
String businessId = businessBasicInfo.getId();
|
||||
processInfoVO.setBusinessId(businessId);
|
||||
|
||||
BasicTaskInfoDTO taskInfo = processInfoVO.getBasicTaskInfoDTO(); // 任务信息
|
||||
String taskId = taskInfo.getTaskId();
|
||||
|
||||
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
|
||||
processHandleService.isMyTask(taskId); // 判断是否拥有任务处理权
|
||||
String taskDefinitionKey = task.getTaskDefinitionKey(); // 任务定义id
|
||||
String processInstanceId = task.getProcessInstanceId();
|
||||
|
||||
Execution execution = runtimeService.createExecutionQuery().executionId(task.getExecutionId()).singleResult();
|
||||
|
||||
@@ -131,20 +133,98 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
|
||||
log.info("TaskDefinitionKey: {}", task.getTaskDefinitionKey());
|
||||
log.info("任务Name: {}", task.getName());
|
||||
log.info("任务FormKey: {}", task.getFormKey());
|
||||
log.info("任务ProcessInstanceId: {}", task.getProcessInstanceId());
|
||||
log.info("任务ProcessInstanceId: {}", processInstanceId);
|
||||
log.info("任务ExecutionId: {}", task.getExecutionId());
|
||||
log.info("任务父ExecutionId: {}", execution.getParentId());
|
||||
log.info("=======================================================================");
|
||||
|
||||
String userId = CurrentUserUtil.getId();
|
||||
if (pass) { // 同意
|
||||
taskInfo.setCommitFlag(CommitFlagEnum.PASS.getValue());
|
||||
switch (taskDefinitionKey) {
|
||||
case ConsultationTaskKey.DEPART_LEADER_END_1: // 主管级领导审批
|
||||
case ConsultationTaskKey.DEPART_LEADER_END_4: // 驳回流程中的主管级领导审批
|
||||
runtimeService.setVariableLocal(processInstanceId, "passSecond", true);
|
||||
break;
|
||||
case ConsultationTaskKey.ENGINEER_START_END: // 法规工程师审批
|
||||
runtimeService.setVariableLocal(processInstanceId, "passThird", true);
|
||||
break;
|
||||
default:
|
||||
throw new JeroBootException("目前还未开发,请联系管理员");
|
||||
}
|
||||
} else { // 驳回
|
||||
taskInfo.setCommitFlag(CommitFlagEnum.REJECT.getValue());
|
||||
throw new JeroBootException("目前还未开发,请联系管理员");
|
||||
LambdaQueryWrapper<ProcessFbConsultationUserLink> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(ProcessFbConsultationUserLink::getBusinessId, businessId);
|
||||
|
||||
List<ProcessFbConsultationUserLink> userLinkList;
|
||||
switch (taskDefinitionKey) {
|
||||
case ConsultationTaskKey.DEPART_LEADER_END_1: // 主管级领导审批
|
||||
runtimeService.setVariableLocal(processInstanceId, "passSecond", false);
|
||||
// 分发给退回的模块负责人
|
||||
queryWrapper.eq(ProcessFbConsultationUserLink::getDepartLeaderId, userId);
|
||||
userLinkList = processFbConsultationUserLinkService.list(queryWrapper);
|
||||
List<String> moduleOwnerIdList = userLinkList.stream()
|
||||
.map(ProcessFbConsultationUserLink::getModuleOwnerId)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
runtimeService.setVariableLocal(processInstanceId, "moduleOwnerList", moduleOwnerIdList);
|
||||
break;
|
||||
case ConsultationTaskKey.ENGINEER_START_END: // 法规工程师审批
|
||||
runtimeService.setVariableLocal(processInstanceId, "passThird", false);
|
||||
// 退回到子流程
|
||||
userLinkList = processFbConsultationUserLinkService.list(queryWrapper);
|
||||
List<String> departLeaderIdList = userLinkList.stream()
|
||||
.map(ProcessFbConsultationUserLink::getDepartLeaderId)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
runtimeService.setVariableLocal(processInstanceId, "departLeaderList", departLeaderIdList);
|
||||
processHandleService.updateApprovalRecord(processInfoVO);
|
||||
// 完成当前任务任务
|
||||
taskService.complete(taskId);
|
||||
|
||||
// 法规工程师驳回 任务列表
|
||||
List<Task> chooseTaskList = taskService.createTaskQuery()
|
||||
.processInstanceId(processInstanceId)
|
||||
.processDefinitionKey(ConsultationTaskKey.REJECT)
|
||||
.list();
|
||||
|
||||
// 自动完成任务选择
|
||||
for (Task chooseTask : chooseTaskList) {
|
||||
String chooseTaskAssignee = chooseTask.getAssignee();
|
||||
String chooseTaskId = chooseTask.getId();
|
||||
List<ProcessFbConsultationUserLink> userLinks = userLinkList.stream()
|
||||
.filter(userLink -> chooseTaskAssignee.equals(userLink.getDepartLeaderId()))
|
||||
.collect(Collectors.toList());
|
||||
if ("1".equals(userLinks.get(0).getUserType())) { // 驳回给模块负责人
|
||||
runtimeService.setVariableLocal(processInstanceId, "passFourth", true);
|
||||
List<String> moduleOwnerList = userLinks.stream()
|
||||
.map(ProcessFbConsultationUserLink::getModuleOwnerId)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
runtimeService.setVariableLocal(processInstanceId, "moduleOwnerList", moduleOwnerList);
|
||||
} else { // 驳回给各部所主管级领导
|
||||
runtimeService.setVariableLocal(processInstanceId, "passFourth", false);
|
||||
}
|
||||
// 完成驳回任务
|
||||
taskService.complete(chooseTaskId);
|
||||
}
|
||||
return;
|
||||
case ConsultationTaskKey.DEPART_LEADER_END_4:
|
||||
runtimeService.setVariableLocal(processInstanceId, "passSecond", false);
|
||||
break;
|
||||
default:
|
||||
throw new JeroBootException("目前还未开发,请联系管理员");
|
||||
}
|
||||
}
|
||||
processHandleService.updateApprovalRecord(processInfoVO);
|
||||
// 完成任务
|
||||
taskService.complete(taskId);
|
||||
|
||||
// 如果流程已经结束
|
||||
if (processHandleService.isProcessFinish(processInstanceId)) {
|
||||
log.info("流程 {} 已经结束", processInstanceId);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -190,7 +270,6 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
|
||||
ProcessFbStandardConsultation processFbStandardConsultation = getById(processInfoVO.getBusinessId());
|
||||
processFbStandardConsultationVO.setProcessFbStandardConsultation(processFbStandardConsultation); // 业务基本信息
|
||||
|
||||
|
||||
processInfoVO.setBusinessInfoDTO(processFbStandardConsultationVO);
|
||||
return processInfoVO;
|
||||
}
|
||||
@@ -240,7 +319,10 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
|
||||
designEngineer(processInfoVO);
|
||||
break;
|
||||
case ConsultationTaskKey.MODULE_OWNER_END_1: // 模块负责人汇总填写意见(可跳过)
|
||||
case ConsultationTaskKey.MODULE_OWNER_END_2: // 模块负责人汇总填写意见(主管级领导驳回后)
|
||||
case ConsultationTaskKey.MODULE_OWNER_END_3: // 法规工程师审批驳回后的子流程中的模块负责人汇总
|
||||
case ConsultationTaskKey.DEPART_LEADER_COLLECT_2: // 各部所主管级领导汇总(不分发给模块负责人)
|
||||
case ConsultationTaskKey.DEPART_LEADER_COLLECT_3: // 法规工程师审批驳回后的子流程中的各部所主管级领导汇总
|
||||
log.info("{} 汇总", realName);
|
||||
collect(processInfoVO);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user