diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/impl/StandardInterpretFlow.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/impl/StandardInterpretFlow.java index b49b70f8..2f6ff9ac 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/impl/StandardInterpretFlow.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/impl/StandardInterpretFlow.java @@ -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() + .eq(ProcessStandardInterpret::getProjectId, processAll.getProjectId()) + .set(ProcessStandardInterpret::getMasterInterpretId, toUserId)); + TaskService taskService = SpringContextUtil.getBean(TaskService.class); + RuntimeService runtimeService = SpringContextUtil.getBean(RuntimeService.class); + // 更新主流程标准解读人流程变量 + HashMap map = new HashMap<>(); + map.put(StandardInterpretCommon.MASTER_INTERPRET, toUserId); + runtimeService.setVariables(processAll.getProcessInstanceId(), map); + // 更新人员信息绑定表 + ProcessNodeService processNodeService = + SpringContextUtil.getBean(ProcessNodeService.class); + LambdaQueryWrapper queryProcessNode = new LambdaQueryWrapper<>(); + queryProcessNode.eq(ProcessNode::getProcessDefinitionId, processAll.getProcessDefinitionId()); + queryProcessNode.in(ProcessNode::getXmlNodeId, + Arrays.asList(StandardInterpretCommon.MASTER_INTERPRET_APPROVE, + StandardInterpretCommon.MASTER_INTERPRET_SUMMARY)); + List processNodeList = processNodeService.list(queryProcessNode); + ProcessNodeLinkService processNodeLinkService = SpringContextUtil.getBean(ProcessNodeLinkService.class); + for (ProcessNode processNode : processNodeList) { + LambdaUpdateWrapper 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 processApprovalRecordList = processApprovalRecordService.list( + new LambdaQueryWrapper() + .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); + } + } } /**