fix(88496): 标准解读流程--分发节点--分发--标准主解读人的转办应该是同步到后续相同角色节点的
This commit is contained in:
+57
-3
@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.modules.activiti.entity.ProcessAll;
|
||||
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
||||
import com.jero.modules.activiti.entity.ProcessNode;
|
||||
import com.jero.modules.activiti.entity.ProcessNodeLink;
|
||||
import com.jero.modules.activiti.enums.FinishFlagEnum;
|
||||
import com.jero.modules.activiti.process.standardinterpret.common.StandardInterpretCommon;
|
||||
import com.jero.modules.activiti.process.standardinterpret.dto.StandardInterpretDTO;
|
||||
@@ -15,17 +17,20 @@ import com.jero.modules.activiti.process.standardinterpret.service.ProcessStanda
|
||||
import com.jero.modules.activiti.process.standardinterpret.service.ProcessStandardInterpretClauseSublistService;
|
||||
import com.jero.modules.activiti.process.standardinterpret.service.ProcessStandardInterpretService;
|
||||
import com.jero.modules.activiti.process.standardinterpret.service.StandardInterpretFlowService;
|
||||
import com.jero.modules.activiti.service.ProcessAllService;
|
||||
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
||||
import com.jero.modules.activiti.service.WorkCenterService;
|
||||
import com.jero.modules.activiti.service.*;
|
||||
import com.jero.modules.activiti.util.SpringContextUtil;
|
||||
import com.jero.modules.activiti.vo.DelegateTaskParam;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.activiti.engine.RuntimeService;
|
||||
import org.activiti.engine.TaskService;
|
||||
import org.activiti.engine.task.Task;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -97,6 +102,7 @@ public class StandardInterpretFlow implements WorkCenterService {
|
||||
public void handleTransfer(ProcessAll processAll, ProcessApprovalRecord processApprovalRecord,
|
||||
String toUserId, String userId) {
|
||||
ProcessAllService processAllService = SpringContextUtil.getBean(ProcessAllService.class);
|
||||
// 更新流程人员变量
|
||||
processAllService.specialTransfer(processAll, processApprovalRecord, toUserId, userId);
|
||||
// 解读人填写信息(分发)
|
||||
String node = processApprovalRecord.getNodeId();
|
||||
@@ -117,6 +123,54 @@ public class StandardInterpretFlow implements WorkCenterService {
|
||||
.set(ProcessStandardInterpretClauseSublist::getInterpretPersonId, toUserId));
|
||||
}
|
||||
}
|
||||
// 标准主解读人审核(分发)
|
||||
if (StandardInterpretCommon.MASTER_INTERPRET_APPROVE.equals(node)){
|
||||
// 更新标准主解读人
|
||||
ProcessStandardInterpretService processStandardInterpretService =
|
||||
SpringContextUtil.getBean(ProcessStandardInterpretService.class);
|
||||
processStandardInterpretService.update(new LambdaUpdateWrapper<ProcessStandardInterpret>()
|
||||
.eq(ProcessStandardInterpret::getProjectId, processAll.getProjectId())
|
||||
.set(ProcessStandardInterpret::getMasterInterpretId, toUserId));
|
||||
TaskService taskService = SpringContextUtil.getBean(TaskService.class);
|
||||
RuntimeService runtimeService = SpringContextUtil.getBean(RuntimeService.class);
|
||||
// 更新主流程标准解读人流程变量
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
map.put(StandardInterpretCommon.MASTER_INTERPRET, toUserId);
|
||||
runtimeService.setVariables(processAll.getProcessInstanceId(), map);
|
||||
// 更新人员信息绑定表
|
||||
ProcessNodeService processNodeService =
|
||||
SpringContextUtil.getBean(ProcessNodeService.class);
|
||||
LambdaQueryWrapper<ProcessNode> queryProcessNode = new LambdaQueryWrapper<>();
|
||||
queryProcessNode.eq(ProcessNode::getProcessDefinitionId, processAll.getProcessDefinitionId());
|
||||
queryProcessNode.in(ProcessNode::getXmlNodeId,
|
||||
Arrays.asList(StandardInterpretCommon.MASTER_INTERPRET_APPROVE,
|
||||
StandardInterpretCommon.MASTER_INTERPRET_SUMMARY));
|
||||
List<ProcessNode> processNodeList = processNodeService.list(queryProcessNode);
|
||||
ProcessNodeLinkService processNodeLinkService = SpringContextUtil.getBean(ProcessNodeLinkService.class);
|
||||
for (ProcessNode processNode : processNodeList) {
|
||||
LambdaUpdateWrapper<ProcessNodeLink> updateProcessNodeLink = new LambdaUpdateWrapper<>();
|
||||
updateProcessNodeLink.eq(ProcessNodeLink::getProcessInstanceId, processAll.getProcessInstanceId());
|
||||
updateProcessNodeLink.eq(ProcessNodeLink::getProcessNodeId, processNode.getId());
|
||||
updateProcessNodeLink.eq(ProcessNodeLink::getProcessDefinitionId, processAll.getProcessDefinitionId());
|
||||
updateProcessNodeLink.set(ProcessNodeLink::getUserId, toUserId);
|
||||
processNodeLinkService.update(updateProcessNodeLink);
|
||||
}
|
||||
|
||||
// 查询其他子流程
|
||||
ProcessApprovalRecordService processApprovalRecordService =
|
||||
SpringContextUtil.getBean(ProcessApprovalRecordService.class);
|
||||
List<ProcessApprovalRecord> processApprovalRecordList = processApprovalRecordService.list(
|
||||
new LambdaQueryWrapper<ProcessApprovalRecord>()
|
||||
.eq(ProcessApprovalRecord::getProcessInstanceId, processApprovalRecord.getProcessInstanceId())
|
||||
.eq(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.INCOMPLETE.getValue())
|
||||
.isNotNull(ProcessApprovalRecord::getParentTaskId)
|
||||
.ne(ProcessApprovalRecord::getNodeId, StandardInterpretCommon.MASTER_INTERPRET_APPROVE));
|
||||
// 更新子流程标准解读人流程变量
|
||||
for (ProcessApprovalRecord approvalRecord : processApprovalRecordList) {
|
||||
Task task2 = taskService.createTaskQuery().taskId(approvalRecord.getTaskId()).singleResult();
|
||||
runtimeService.setVariable(task2.getExecutionId(), StandardInterpretCommon.MASTER_INTERPRET, toUserId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user