diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java index 3cf12520..8787d5aa 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java @@ -142,9 +142,6 @@ public class ActFlowCommonService { approvalRecord.setFinishFlag(FinishFlagEnum.COMPLETE.getValue()); approvalRecord.setEndTime(new Date()); // 使用流程引擎根据TaskId找到NodeId - Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); - String nodeId = task.getTaskDefinitionKey(); - approvalRecord.setNodeId(nodeId); processApprovalRecordService.updateById(approvalRecord); } @@ -295,10 +292,7 @@ public class ActFlowCommonService { } } - public void removeDraft(CommonVO commonVO) { - String userId = UserUtils.getUserId(); - String taskId = commonVO.getTaskId(); - String processInstanceId = commonVO.getProcessInstanceId(); + public void removeDraft(String userId, String taskId, String processInstanceId) { LambdaQueryWrapper draftWrapper = new LambdaQueryWrapper<>(); draftWrapper.eq(ProcessDraft::getUserId, userId); draftWrapper.eq(StrUtil.isNotBlank(taskId), ProcessDraft::getTaskId, taskId); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/listener/ProcessSCCEndListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/listener/ProcessSCCEndListener.java index 41f301c9..9e54de20 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/listener/ProcessSCCEndListener.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/listener/ProcessSCCEndListener.java @@ -1,18 +1,20 @@ package com.jero.modules.activiti.process.standardComplianceCheck.listener; -import com.jero.modules.activiti.process.demo.service.ProcessDemoService; -import com.jero.modules.activiti.util.SpringContextUtil; -import org.activiti.engine.delegate.DelegateTask; -import org.activiti.engine.delegate.TaskListener; +import lombok.extern.slf4j.Slf4j; +import org.activiti.engine.delegate.DelegateExecution; +import org.activiti.engine.delegate.ExecutionListener; +import org.springframework.stereotype.Component; /** * @author liJiaRao * @date 2023-06-18 15:43 */ -public class ProcessSCCEndListener implements TaskListener { +@Slf4j +@Component +public class ProcessSCCEndListener implements ExecutionListener { + @Override - public void notify(DelegateTask delegateTask) { - ProcessDemoService demoService = SpringContextUtil.getBean(ProcessDemoService.class); - demoService.createAutoTaskListener(delegateTask); + public void notify(DelegateExecution delegateExecution) { + log.info("流程结束"); } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java index 90754283..49805c1d 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java @@ -1,5 +1,6 @@ package com.jero.modules.activiti.process.standardComplianceCheck.service.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -232,6 +233,10 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl detailInfoList = businessInfoDTO.getDetailInfoList(); + // 根据流程实例Id获取流程定义ID + ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); + // 获取流程实例ID + String processDefinitionId = processInstance.getProcessDefinitionId(); + Map userMap = new HashMap<>(); switch (xmlNodeId) { case DEPT_USER_DISTRIBUTE: // 设置主排查人 String mainCheckUser = businessInfoDTO.getStandardInfo().getMainCheckUser(); runtimeService.setVariable(processInstanceId, MAIN_CHECK_USER, mainCheckUser); + // 保存选人信息 + userMap.put(MAIN_CHECK_USER, mainCheckUser); + processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userMap); break; case MAIN_CHECK_USER_DISTRIBUTE: // 驳回 @@ -299,13 +311,20 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl counterSignUserList = Arrays.asList(standardInfo.getCountersignUser().split(",")); runtimeService.setVariable(processInstanceId, COUNTERSIGN_USER_LIST, counterSignUserList); runtimeService.setVariable(processInstanceId, MANAGER, standardInfo.getManager()); runtimeService.setVariable(processInstanceId, SENIOR_MANAGER, standardInfo.getSeniorManager()); + // 保存选人信息 + userMap.put(COUNTERSIGN_USER_LIST, standardInfo.getCountersignUser()); + userMap.put(MANAGER, standardInfo.getManager()); + userMap.put(SENIOR_MANAGER, standardInfo.getSeniorManager()); + processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userMap); } // 保存数据 sccDetailService.updateBatchById(detailInfoList); @@ -318,8 +337,13 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl result = new ProcessInfoVO<>(); ProcessSccVO processSccVO = new ProcessSccVO(); result.setBasicProcessInfoDTO(actFlowCommonService.getProcessInfo(taskId)); - String userId = actFlowCommonService.getOriginTaskAssignee(taskId); String executionId = taskService.createTaskQuery().taskId(taskId).singleResult().getExecutionId(); // 使用流程引擎根据taskId找到流程实例Id String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId); @@ -366,6 +389,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl designerList = (List) delegateTask.getVariable(DESIGNER_LIST); + if (CollUtil.isEmpty(designerList)) { + return; + } String checkId = (String) delegateTask.getVariable(CHECK_ID); for (String designer : designerList) { userInfoMap.put(DESIGNER, designer);