feat: scc不分发跑通
This commit is contained in:
+1
-7
@@ -142,9 +142,6 @@ public class ActFlowCommonService {
|
|||||||
approvalRecord.setFinishFlag(FinishFlagEnum.COMPLETE.getValue());
|
approvalRecord.setFinishFlag(FinishFlagEnum.COMPLETE.getValue());
|
||||||
approvalRecord.setEndTime(new Date());
|
approvalRecord.setEndTime(new Date());
|
||||||
// 使用流程引擎根据TaskId找到NodeId
|
// 使用流程引擎根据TaskId找到NodeId
|
||||||
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
|
|
||||||
String nodeId = task.getTaskDefinitionKey();
|
|
||||||
approvalRecord.setNodeId(nodeId);
|
|
||||||
processApprovalRecordService.updateById(approvalRecord);
|
processApprovalRecordService.updateById(approvalRecord);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -295,10 +292,7 @@ public class ActFlowCommonService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeDraft(CommonVO commonVO) {
|
public void removeDraft(String userId, String taskId, String processInstanceId) {
|
||||||
String userId = UserUtils.getUserId();
|
|
||||||
String taskId = commonVO.getTaskId();
|
|
||||||
String processInstanceId = commonVO.getProcessInstanceId();
|
|
||||||
LambdaQueryWrapper<ProcessDraft> draftWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<ProcessDraft> draftWrapper = new LambdaQueryWrapper<>();
|
||||||
draftWrapper.eq(ProcessDraft::getUserId, userId);
|
draftWrapper.eq(ProcessDraft::getUserId, userId);
|
||||||
draftWrapper.eq(StrUtil.isNotBlank(taskId), ProcessDraft::getTaskId, taskId);
|
draftWrapper.eq(StrUtil.isNotBlank(taskId), ProcessDraft::getTaskId, taskId);
|
||||||
|
|||||||
+10
-8
@@ -1,18 +1,20 @@
|
|||||||
package com.jero.modules.activiti.process.standardComplianceCheck.listener;
|
package com.jero.modules.activiti.process.standardComplianceCheck.listener;
|
||||||
|
|
||||||
import com.jero.modules.activiti.process.demo.service.ProcessDemoService;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import com.jero.modules.activiti.util.SpringContextUtil;
|
import org.activiti.engine.delegate.DelegateExecution;
|
||||||
import org.activiti.engine.delegate.DelegateTask;
|
import org.activiti.engine.delegate.ExecutionListener;
|
||||||
import org.activiti.engine.delegate.TaskListener;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author liJiaRao
|
* @author liJiaRao
|
||||||
* @date 2023-06-18 15:43
|
* @date 2023-06-18 15:43
|
||||||
*/
|
*/
|
||||||
public class ProcessSCCEndListener implements TaskListener {
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
public class ProcessSCCEndListener implements ExecutionListener {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void notify(DelegateTask delegateTask) {
|
public void notify(DelegateExecution delegateExecution) {
|
||||||
ProcessDemoService demoService = SpringContextUtil.getBean(ProcessDemoService.class);
|
log.info("流程结束");
|
||||||
demoService.createAutoTaskListener(delegateTask);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+30
-3
@@ -1,5 +1,6 @@
|
|||||||
package com.jero.modules.activiti.process.standardComplianceCheck.service.impl;
|
package com.jero.modules.activiti.process.standardComplianceCheck.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
@@ -232,6 +233,10 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
|||||||
processHandleService.saveToSnapshot(processInfoVO, curUserId);
|
processHandleService.saveToSnapshot(processInfoVO, curUserId);
|
||||||
// 审批节点
|
// 审批节点
|
||||||
actFlowCommonService.completeTask(taskId, curUserId);
|
actFlowCommonService.completeTask(taskId, curUserId);
|
||||||
|
// 更新审批表为完成,填充数据
|
||||||
|
actFlowCommonService.updateApprovalInfo(processTask, taskId);
|
||||||
|
// 删除草稿
|
||||||
|
actFlowCommonService.removeDraft(curUserId, taskId, processInstanceId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -242,7 +247,6 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
|||||||
if (StrUtil.isBlank(taskId) || !actFlowCommonService.taskExists(taskId)) {
|
if (StrUtil.isBlank(taskId) || !actFlowCommonService.taskExists(taskId)) {
|
||||||
throw new JeroBootException("taskId为空或任务不存在");
|
throw new JeroBootException("taskId为空或任务不存在");
|
||||||
}
|
}
|
||||||
String userId = actFlowCommonService.getOriginTaskAssignee(taskId);
|
|
||||||
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
|
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
|
||||||
// 获取执行id
|
// 获取执行id
|
||||||
String executionId = task.getExecutionId();
|
String executionId = task.getExecutionId();
|
||||||
@@ -256,11 +260,19 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
|||||||
ProcessSccVO businessInfoDTO = processInfoVO.getBusinessInfoDTO();
|
ProcessSccVO businessInfoDTO = processInfoVO.getBusinessInfoDTO();
|
||||||
ProcessStandardComplianceCheck standardInfo = businessInfoDTO.getStandardInfo();
|
ProcessStandardComplianceCheck standardInfo = businessInfoDTO.getStandardInfo();
|
||||||
List<ProcessStandardComplianceCheckDetail> detailInfoList = businessInfoDTO.getDetailInfoList();
|
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) {
|
switch (xmlNodeId) {
|
||||||
case DEPT_USER_DISTRIBUTE:
|
case DEPT_USER_DISTRIBUTE:
|
||||||
// 设置主排查人
|
// 设置主排查人
|
||||||
String mainCheckUser = businessInfoDTO.getStandardInfo().getMainCheckUser();
|
String mainCheckUser = businessInfoDTO.getStandardInfo().getMainCheckUser();
|
||||||
runtimeService.setVariable(processInstanceId, MAIN_CHECK_USER, mainCheckUser);
|
runtimeService.setVariable(processInstanceId, MAIN_CHECK_USER, mainCheckUser);
|
||||||
|
// 保存选人信息
|
||||||
|
userMap.put(MAIN_CHECK_USER, mainCheckUser);
|
||||||
|
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userMap);
|
||||||
break;
|
break;
|
||||||
case MAIN_CHECK_USER_DISTRIBUTE:
|
case MAIN_CHECK_USER_DISTRIBUTE:
|
||||||
// 驳回
|
// 驳回
|
||||||
@@ -299,13 +311,20 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
|||||||
// 先删后增
|
// 先删后增
|
||||||
sccDetailService.removeByIds(ids);
|
sccDetailService.removeByIds(ids);
|
||||||
sccDetailService.saveBatch(needAddDetailInfoList);
|
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 {
|
} else {
|
||||||
// 不分发直接设置后续审批节点的人员变量
|
// 不分发直接设置后续审批节点的人员变量
|
||||||
List<String> counterSignUserList = Arrays.asList(standardInfo.getCountersignUser().split(","));
|
List<String> counterSignUserList = Arrays.asList(standardInfo.getCountersignUser().split(","));
|
||||||
runtimeService.setVariable(processInstanceId, COUNTERSIGN_USER_LIST, counterSignUserList);
|
runtimeService.setVariable(processInstanceId, COUNTERSIGN_USER_LIST, counterSignUserList);
|
||||||
runtimeService.setVariable(processInstanceId, MANAGER, standardInfo.getManager());
|
runtimeService.setVariable(processInstanceId, MANAGER, standardInfo.getManager());
|
||||||
runtimeService.setVariable(processInstanceId, SENIOR_MANAGER, standardInfo.getSeniorManager());
|
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);
|
sccDetailService.updateBatchById(detailInfoList);
|
||||||
@@ -318,8 +337,13 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
|||||||
case MAIN_CHECK_USER_COLLECT:
|
case MAIN_CHECK_USER_COLLECT:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
runtimeService.setVariable(processInstanceId, PASS, true);
|
||||||
// 审批节点
|
// 审批节点
|
||||||
actFlowCommonService.completeTask(taskId, curUserId);
|
actFlowCommonService.completeTask(taskId, curUserId);
|
||||||
|
// 更新审批表为完成,填充数据
|
||||||
|
actFlowCommonService.updateApprovalInfo(processTask, taskId);
|
||||||
|
// 删除草稿
|
||||||
|
actFlowCommonService.removeDraft(curUserId, taskId, processInstanceId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -343,7 +367,6 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
|||||||
ProcessInfoVO<ProcessSccVO> result = new ProcessInfoVO<>();
|
ProcessInfoVO<ProcessSccVO> result = new ProcessInfoVO<>();
|
||||||
ProcessSccVO processSccVO = new ProcessSccVO();
|
ProcessSccVO processSccVO = new ProcessSccVO();
|
||||||
result.setBasicProcessInfoDTO(actFlowCommonService.getProcessInfo(taskId));
|
result.setBasicProcessInfoDTO(actFlowCommonService.getProcessInfo(taskId));
|
||||||
String userId = actFlowCommonService.getOriginTaskAssignee(taskId);
|
|
||||||
String executionId = taskService.createTaskQuery().taskId(taskId).singleResult().getExecutionId();
|
String executionId = taskService.createTaskQuery().taskId(taskId).singleResult().getExecutionId();
|
||||||
// 使用流程引擎根据taskId找到流程实例Id
|
// 使用流程引擎根据taskId找到流程实例Id
|
||||||
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
|
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
|
||||||
@@ -366,6 +389,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
|||||||
case MAIN_CHECK_USER_COLLECT:
|
case MAIN_CHECK_USER_COLLECT:
|
||||||
case COUNTERSIGN:
|
case COUNTERSIGN:
|
||||||
case MANAGER_APPROVAL:
|
case MANAGER_APPROVAL:
|
||||||
|
case SENIOR_MANAGER_APPROVAL:
|
||||||
processSccVO.setDetailInfoList(detailList);
|
processSccVO.setDetailInfoList(detailList);
|
||||||
break;
|
break;
|
||||||
case MAIN_CHECK_USER_DISTRIBUTE:
|
case MAIN_CHECK_USER_DISTRIBUTE:
|
||||||
@@ -407,6 +431,9 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
|||||||
case AUTO_TASK_1:
|
case AUTO_TASK_1:
|
||||||
case AUTO_TASK_3:
|
case AUTO_TASK_3:
|
||||||
List<String> designerList = (List<String>) delegateTask.getVariable(DESIGNER_LIST);
|
List<String> designerList = (List<String>) delegateTask.getVariable(DESIGNER_LIST);
|
||||||
|
if (CollUtil.isEmpty(designerList)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
String checkId = (String) delegateTask.getVariable(CHECK_ID);
|
String checkId = (String) delegateTask.getVariable(CHECK_ID);
|
||||||
for (String designer : designerList) {
|
for (String designer : designerList) {
|
||||||
userInfoMap.put(DESIGNER, designer);
|
userInfoMap.put(DESIGNER, designer);
|
||||||
|
|||||||
Reference in New Issue
Block a user