fix: 89150 法规符合性排查流程--主排查人--分发节点、审核节点、汇总节点,转办后存在问题

This commit is contained in:
2024-08-21 17:38:42 +08:00
parent a285753db5
commit 7468247994
@@ -8,6 +8,7 @@ import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.jero.common.api.vo.ResultCommon;
import com.jero.common.exception.JeroBootException;
import com.jero.modules.activiti.common.ActivitiCommon;
import com.jero.modules.activiti.entity.ProcessAll;
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
import com.jero.modules.activiti.entity.ProcessNode;
@@ -16,8 +17,10 @@ import com.jero.modules.activiti.enums.ProcessTypeEnum;
import com.jero.modules.activiti.process.common.common.DraftCommon;
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
import com.jero.modules.activiti.process.common.entity.ProcessSnapshot;
import com.jero.modules.activiti.process.common.enums.ProcessType;
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
import com.jero.modules.activiti.process.common.service.ProcessSnapshotService;
import com.jero.modules.activiti.process.fb.common.ProcessDefinitionKey;
import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO;
import com.jero.modules.activiti.process.fb.dto.BasicTaskInfoDTO;
import com.jero.modules.activiti.process.fb.dto.ProcessDTO;
@@ -95,7 +98,7 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
// 根据流程定义id启动流程
Map<String, Object> variables = setProcessVariables(userInfoMap);
Map<String, Object> processVariables = processInfoVO.getProcessVariables();
if (processVariables != null){
if (processVariables != null) {
variables.putAll(processVariables);
}
ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefinitionId, variables);
@@ -135,6 +138,7 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
return processInstanceId;
}
/**
* @Author: liao
* @Date: 2023/11/2 17:04
@@ -154,7 +158,7 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
// 根据流程定义id启动流程
Map<String, Object> variables = setProcessVariables(userInfoMap);
Map<String, Object> processVariables = processInfoVO.getProcessVariables();
if (processVariables != null){
if (processVariables != null) {
variables.putAll(processVariables);
}
ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefinitionId, variables);
@@ -225,12 +229,12 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
WorkCenterService classByValue = null;
try {
Object o = Class.forName(ProcessTypeEnum.getClassByValue(prcType)).newInstance();
if (o instanceof WorkCenterService){
if (o instanceof WorkCenterService) {
classByValue = (WorkCenterService) o;
classByValue.handleTransfer(processAll,processApprovalRecord, toUserId, userId);
classByValue.handleTransfer(processAll, processApprovalRecord, toUserId, userId);
}
}catch (Exception e) {
log.error(e.getMessage(),e);
} catch (Exception e) {
log.error(e.getMessage(), e);
throw new JeroBootException(e.getMessage());
}
@@ -238,25 +242,41 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
String processDefinitionId = task.getProcessDefinitionId();
LambdaQueryWrapper<ProcessApprovalRecord> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessApprovalRecord::getTaskId,taskId);
wrapper.eq(ProcessApprovalRecord::getTaskId, taskId);
ProcessApprovalRecord record = processApprovalRecordService.getOne(wrapper, false);
if(Objects.isNull(record)){
if (Objects.isNull(record)) {
throw new JeroBootException("数据不存在");
}
String xmlNodeId = record.getNodeId();
LambdaQueryWrapper<ProcessNode> queryProcessNode = new LambdaQueryWrapper<>();
queryProcessNode.eq(ProcessNode::getProcessDefinitionId,processDefinitionId);
queryProcessNode.eq(ProcessNode::getXmlNodeId,xmlNodeId);
ProcessNode processNode = processNodeService.getOne(queryProcessNode,false);
if(Objects.isNull(processNode)){
queryProcessNode.eq(ProcessNode::getProcessDefinitionId, processDefinitionId);
queryProcessNode.eq(ProcessNode::getXmlNodeId, xmlNodeId);
ProcessNode processNode = processNodeService.getOne(queryProcessNode, false);
if (Objects.isNull(processNode)) {
throw new JeroBootException("数据不存在");
}
LambdaUpdateWrapper<ProcessNodeLink> updateProcessNodeLink = new LambdaUpdateWrapper<>();
updateProcessNodeLink.eq(ProcessNodeLink::getProcessInstanceId,processInstanceId);
updateProcessNodeLink.eq(ProcessNodeLink::getProcessNodeId,processNode.getId());
updateProcessNodeLink.eq(ProcessNodeLink::getProcessDefinitionId,processDefinitionId);
updateProcessNodeLink.eq(ProcessNodeLink::getUserId,userId);
updateProcessNodeLink.set(ProcessNodeLink::getUserId,toUserId);
// 制修订流程特殊处理
if (processDefinitionId.contains(ProcessDefinitionKey.STANDARD_COMPLIANCE_CHECK_MAIN) ||
processDefinitionId.contains(ProcessDefinitionKey.STANDARD_COMPLIANCE_CHECK_DISTRIBUTE) ||
processDefinitionId.contains(ProcessDefinitionKey.STANDARD_COMPLIANCE_CHECK_REDISTRIBUTE)
) {
LambdaQueryWrapper<ProcessNode> queryProcessNodeScc = new LambdaQueryWrapper<>();
queryProcessNodeScc.eq(ProcessNode::getXmlNodeId, xmlNodeId);
String mainInstanceId = (String) taskService.getVariable(taskId, ActivitiCommon.MAIN_INSTANCE_ID);
queryProcessNodeScc.like(ProcessNode::getProcessDefinitionId, ProcessType.STANDARD_COMPLIANCE_CHECK.getProcessKey());
List<ProcessNode> list = processNodeService.list(queryProcessNodeScc);
// 获取创建时间最新的
processNode = list.stream().max(Comparator.comparing(ProcessNode::getCreateTime)).get();
updateProcessNodeLink.eq(ProcessNodeLink::getProcessNodeId, processNode.getId());
updateProcessNodeLink.eq(ProcessNodeLink::getProcessInstanceId, mainInstanceId);
} else {
updateProcessNodeLink.eq(ProcessNodeLink::getProcessInstanceId, processInstanceId);
updateProcessNodeLink.eq(ProcessNodeLink::getProcessNodeId, processNode.getId());
updateProcessNodeLink.eq(ProcessNodeLink::getProcessDefinitionId, processDefinitionId);
}
updateProcessNodeLink.eq(ProcessNodeLink::getUserId, userId);
updateProcessNodeLink.set(ProcessNodeLink::getUserId, toUserId);
processNodeLinkService.update(updateProcessNodeLink);
}
@@ -439,7 +459,8 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
String jsonString = objectMapper.writeValueAsString(detailInfoMapList);
// 将 JSON 字符串反序列化为 List<ProcessStandardComplianceCheckDetail>
List<ProcessStandardComplianceCheckDetail> detailInfoList = objectMapper.readValue(jsonString, new TypeReference<List<ProcessStandardComplianceCheckDetail>>() {});
List<ProcessStandardComplianceCheckDetail> detailInfoList = objectMapper.readValue(jsonString, new TypeReference<List<ProcessStandardComplianceCheckDetail>>() {
});
List<String> ids = detailInfoList.stream().map(ProcessStandardComplianceCheckDetail::getId).collect(Collectors.toList());
// 先删后增
if (CollUtil.isNotEmpty(ids)) {