fix: 89150 法规符合性排查流程--主排查人--分发节点、审核节点、汇总节点,转办后存在问题
This commit is contained in:
+39
-18
@@ -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)) {
|
||||
|
||||
Reference in New Issue
Block a user