update 标准征求意见流程

This commit is contained in:
liao
2023-11-24 09:42:50 +08:00
parent 47fc961e45
commit 5fed9211fd
7 changed files with 122 additions and 65 deletions
@@ -45,4 +45,6 @@ public class ConsultationTaskKey {
public static final String SUB_PROCESS_3 = "sub_process_3"; // 子流程
public static final String SUB_PROCESS_FINISH = "sub_process_finish"; // 一级子流程结束
}
@@ -79,4 +79,8 @@ public class ProcessFbConsultationList implements Serializable {
@Excel(name = "依据材料", width = 15)
@ApiModelProperty(value = "依据材料")
private java.lang.String basisFile;
/**设计工程师名称*/
@Excel(name = "设计工程师名称", width = 15)
@ApiModelProperty(value = "设计工程师名称")
private java.lang.String designEngineerName;
}
@@ -222,13 +222,7 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
taskService.complete(taskId);
// 如果流程已经结束
if (processHandleService.isProcessFinish(processInstanceId)) {
log.info("流程 {} 已经结束", processInstanceId);
} else {
List<Task> taskList = taskService.createTaskQuery().processInstanceId(processInstanceId).list();
log.info("还剩 {} 个任务待完成", taskList.size());
taskList.forEach(lastTask -> log.info("任务id: {}", lastTask.getId()));
}
endProcess(processInstanceId);
}
/**
@@ -313,7 +307,8 @@ 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());
String processInstanceId = task.getProcessInstanceId();
log.info("任务ProcessInstanceId: {}", processInstanceId);
log.info("任务ExecutionId: {}", task.getExecutionId());
log.info("任务父ExecutionId: {}", execution.getParentId());
log.info("=======================================================================");
@@ -332,11 +327,19 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
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;
case ConsultationTaskKey.DEPART_LEADER_COLLECT_2: // 各部所主管级领导汇总(不分发给模块负责人)
log.info("{} 汇总", realName);
collect(processInfoVO);
Task subTask = taskService.createTaskQuery()
.taskAssignee(CurrentUserUtil.getId())
.taskDefinitionKey(ConsultationTaskKey.SUB_PROCESS_FINISH).singleResult();
taskService.complete(subTask.getId());
log.info("一级子流程最后一个任务id: {}, name: {}", subTask.getId(), subTask.getName());
break;
case ConsultationTaskKey.MODULE_OWNER_START: // 模块负责人分发
log.info("模块负责人 {} 分发", realName);
moduleOwnerStart(processInfoVO);
@@ -344,6 +347,27 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
default:
throw new JeroBootException("目前还未开发,请联系管理员");
}
// 如果流程已经结束
endProcess(processInstanceId);
}
/**
* @Author: liao
* @Date: 2023/11/23 13:43
* @Description: 流程结束
**/
private void endProcess(String processInstanceId) {
if (processHandleService.isProcessFinish(processInstanceId)) {
log.info("流程 {} 已经结束", processInstanceId);
} else {
List<Task> taskList = taskService.createTaskQuery().processInstanceId(processInstanceId).list();
List<Execution> executionList = runtimeService.createExecutionQuery().processInstanceId(processInstanceId).list();
log.info("还剩 {} 个任务待完成", taskList.size());
log.info("还剩 {} 个执行实例待完成", executionList.size());
taskList.forEach(lastTask -> log.info("任务id: {}", lastTask.getId()));
executionList.forEach(lastExecution -> log.info("执行实例id: {}", lastExecution.getId()));
}
}
/**
@@ -401,11 +425,13 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
List<ProcessFbConsultationList> processFbConsultationLists = businessInfoDTO.getProcessFbConsultationLists();
String taskId = processInfoVO.getBasicTaskInfoDTO().getTaskId();
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
if (CollectionUtils.isNotEmpty(processFbConsultationLists)) {
processFbConsultationListService.updateBatchById(processFbConsultationLists); // 更新业务信息
}
runtimeService.setVariableLocal(task.getProcessInstanceId(), "passSecond", true);
// 完成任务
taskService.complete(taskId);
}
@@ -431,11 +457,13 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
removeWrapper.eq(ProcessFbConsultationList::getUserLinkId, userLinkId);
processFbConsultationListService.remove(removeWrapper);
String designEngineerName = CurrentUserUtil.getRealName() + "(" + CurrentUserUtil.getUsername() + ")";
// 保存业务信息
if (CollectionUtils.isNotEmpty(processFbConsultationLists)) {
processFbConsultationLists.forEach(consultation -> {
consultation.setUserLinkId(userLinkId);
consultation.setBusinessId(businessId);
consultation.setDesignEngineerName(designEngineerName);
});
processFbConsultationListService.saveBatch(processFbConsultationLists, processFbConsultationLists.size());
}