feat: scc不分发跑通
This commit is contained in:
+1
-7
@@ -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<ProcessDraft> draftWrapper = new LambdaQueryWrapper<>();
|
||||
draftWrapper.eq(ProcessDraft::getUserId, userId);
|
||||
draftWrapper.eq(StrUtil.isNotBlank(taskId), ProcessDraft::getTaskId, taskId);
|
||||
|
||||
+10
-8
@@ -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("流程结束");
|
||||
}
|
||||
}
|
||||
|
||||
+30
-3
@@ -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<Proce
|
||||
processHandleService.saveToSnapshot(processInfoVO, curUserId);
|
||||
// 审批节点
|
||||
actFlowCommonService.completeTask(taskId, curUserId);
|
||||
// 更新审批表为完成,填充数据
|
||||
actFlowCommonService.updateApprovalInfo(processTask, taskId);
|
||||
// 删除草稿
|
||||
actFlowCommonService.removeDraft(curUserId, taskId, processInstanceId);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -242,7 +247,6 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
||||
if (StrUtil.isBlank(taskId) || !actFlowCommonService.taskExists(taskId)) {
|
||||
throw new JeroBootException("taskId为空或任务不存在");
|
||||
}
|
||||
String userId = actFlowCommonService.getOriginTaskAssignee(taskId);
|
||||
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
|
||||
// 获取执行id
|
||||
String executionId = task.getExecutionId();
|
||||
@@ -256,11 +260,19 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
||||
ProcessSccVO businessInfoDTO = processInfoVO.getBusinessInfoDTO();
|
||||
ProcessStandardComplianceCheck standardInfo = businessInfoDTO.getStandardInfo();
|
||||
List<ProcessStandardComplianceCheckDetail> detailInfoList = businessInfoDTO.getDetailInfoList();
|
||||
// 根据流程实例Id获取流程定义ID
|
||||
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
|
||||
// 获取流程实例ID
|
||||
String processDefinitionId = processInstance.getProcessDefinitionId();
|
||||
Map<String, Object> 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<Proce
|
||||
// 先删后增
|
||||
sccDetailService.removeByIds(ids);
|
||||
sccDetailService.saveBatch(needAddDetailInfoList);
|
||||
runtimeService.setVariable(processInstanceId, DESIGNER_LIST, designEngineerList);
|
||||
runtimeService.setVariable(processInstanceId, DESIGNER_LIST, String.join(",", designEngineerList));
|
||||
userMap.put(DESIGNER_LIST, standardInfo.getSeniorManager());
|
||||
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userMap);
|
||||
} else {
|
||||
// 不分发直接设置后续审批节点的人员变量
|
||||
List<String> 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<Proce
|
||||
case MAIN_CHECK_USER_COLLECT:
|
||||
break;
|
||||
}
|
||||
runtimeService.setVariable(processInstanceId, PASS, true);
|
||||
// 审批节点
|
||||
actFlowCommonService.completeTask(taskId, curUserId);
|
||||
// 更新审批表为完成,填充数据
|
||||
actFlowCommonService.updateApprovalInfo(processTask, taskId);
|
||||
// 删除草稿
|
||||
actFlowCommonService.removeDraft(curUserId, taskId, processInstanceId);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -343,7 +367,6 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
||||
ProcessInfoVO<ProcessSccVO> 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<Proce
|
||||
case MAIN_CHECK_USER_COLLECT:
|
||||
case COUNTERSIGN:
|
||||
case MANAGER_APPROVAL:
|
||||
case SENIOR_MANAGER_APPROVAL:
|
||||
processSccVO.setDetailInfoList(detailList);
|
||||
break;
|
||||
case MAIN_CHECK_USER_DISTRIBUTE:
|
||||
@@ -407,6 +431,9 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
||||
case AUTO_TASK_1:
|
||||
case AUTO_TASK_3:
|
||||
List<String> designerList = (List<String>) delegateTask.getVariable(DESIGNER_LIST);
|
||||
if (CollUtil.isEmpty(designerList)) {
|
||||
return;
|
||||
}
|
||||
String checkId = (String) delegateTask.getVariable(CHECK_ID);
|
||||
for (String designer : designerList) {
|
||||
userInfoMap.put(DESIGNER, designer);
|
||||
|
||||
Reference in New Issue
Block a user