From 8123a6f72c918f7694d900d09c571930ea10eae5 Mon Sep 17 00:00:00 2001 From: yjz <3131811435@qq.com> Date: Wed, 7 Feb 2024 10:22:59 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E4=BC=81=E6=A0=87=E7=A8=BD=E6=9F=A5?= =?UTF-8?q?=E8=AE=A1=E5=88=92=E6=B5=81=E7=A8=8B):=2081837?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../process/aspect/ProcessAspect.java | 36 +++++++++++++++++++ .../esinspect/service/impl/EsInspectFlow.java | 12 +------ 2 files changed, 37 insertions(+), 11 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/aspect/ProcessAspect.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/aspect/ProcessAspect.java index 733a950f..85bd61cf 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/aspect/ProcessAspect.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/aspect/ProcessAspect.java @@ -10,17 +10,23 @@ import com.jero.common.util.MessageUtils; import com.jero.common.util.SnowflakeUtils; 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.enums.CommitFlagEnum; import com.jero.modules.activiti.enums.FinishFlagEnum; +import com.jero.modules.activiti.enums.VariableTypeEnum; import com.jero.modules.activiti.process.common.entity.ProcessDraft; import com.jero.modules.activiti.process.common.service.ProcessDraftService; import com.jero.modules.activiti.process.esinspectplan.common.EsInspectPlanCommon; +import com.jero.modules.activiti.service.ProcessAllService; import com.jero.modules.activiti.service.ProcessApprovalRecordService; +import com.jero.modules.activiti.service.ProcessNodeService; +import com.jero.modules.activiti.util.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.activiti.bpmn.model.Process; import org.activiti.bpmn.model.UserTask; import org.activiti.engine.HistoryService; import org.activiti.engine.RepositoryService; +import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; import org.activiti.engine.history.HistoricProcessInstance; import org.activiti.engine.task.Task; @@ -61,6 +67,12 @@ public class ProcessAspect { private ProcessApprovalRecordService processApprovalRecordService; @Resource private ProcessDraftService processDraftService; + @Resource + private RuntimeService runtimeService; + @Resource + private ProcessAllService processAllService; + @Resource + private ProcessNodeService processNodeService; private static final String PROCESS_ALL = "processAll"; private static final List SPECIAL_NODE = Arrays.asList(EsInspectPlanCommon.PROCESS_NODE_3); private static final String SAVE_BY_DRAFT = "2"; @@ -258,6 +270,30 @@ public class ProcessAspect { log.info("==========流程发起、审批、驳回。删除草稿后置方法结束=========="); } + + @AfterReturning("processServiceFlowTransfer()") + public void doAfterFlowTransfer(JoinPoint jp) { + log.info("==========流程转办后置方法开始=========="); + if (!Objects.isNull(jp.getArgs())) { + String taskId = JSON.parseObject(JSON.toJSONString(jp.getArgs()[0]), String.class); + String userId = JSON.parseObject(JSON.toJSONString(jp.getArgs()[1]), String.class); + ProcessApprovalRecord processApprovalRecord = processApprovalRecordService.getToDoByTaskId(taskId); + String processInstanceId = processApprovalRecord.getProcessInstanceId(); + ProcessAll processAll = processAllService.getByProcessInstanceId(processInstanceId); + TaskService taskService = SpringContextUtil.getBean(TaskService.class); + Task task = taskService.createTaskQuery().taskId(processApprovalRecord.getTaskId()).singleResult(); + // 查询节点信息 + ProcessNode processNode = processNodeService.getOne( + new LambdaQueryWrapper() + .eq(ProcessNode::getProcessDefinitionId, processAll.getProcessDefinitionId()) + .eq(ProcessNode::getXmlNodeId, processApprovalRecord.getNodeId())); + if (!Objects.isNull(processNode) && VariableTypeEnum.STRING.getName().equals(processNode.getVariableType())){ + runtimeService.setVariable(task.getExecutionId(), processNode.getVariableName(), userId); + } + } + log.info("==========流程转办后置方法结束=========="); + } + private static void setProperty(LoginUser loginUser, String infoJsonStr, ProcessApprovalRecord processApprovalRecord, ProcessAll processAll, ProcessDraft processDraft) { // 属性拷贝 BeanUtils.copyProperties(processAll, processDraft); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/impl/EsInspectFlow.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/impl/EsInspectFlow.java index 9794eb8b..3b6ecd42 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/impl/EsInspectFlow.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/impl/EsInspectFlow.java @@ -3,15 +3,11 @@ package com.jero.modules.activiti.process.esinspect.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.jero.modules.activiti.entity.ProcessAll; import com.jero.modules.activiti.entity.ProcessApprovalRecord; -import com.jero.modules.activiti.process.esinspect.common.EsInspectCommon; import com.jero.modules.activiti.process.esinspect.entity.ProcessEsInspect; import com.jero.modules.activiti.process.esinspect.service.IProcessEsInspectService; import com.jero.modules.activiti.service.WorkCenterService; import com.jero.modules.activiti.util.SpringContextUtil; import lombok.extern.slf4j.Slf4j; -import org.activiti.engine.RuntimeService; -import org.activiti.engine.TaskService; -import org.activiti.engine.task.Task; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -41,12 +37,6 @@ public class EsInspectFlow implements WorkCenterService { @Override public void handleTransfer(ProcessAll processAll, ProcessApprovalRecord processApprovalRecord, String toUserId) { - if (EsInspectCommon.PROCESS_NODE_2.equals(processApprovalRecord.getNodeId()) - || EsInspectCommon.PROCESS_NODE_4.equals(processApprovalRecord.getNodeId())){ - RuntimeService runtimeService = SpringContextUtil.getBean(RuntimeService.class); - TaskService taskService = SpringContextUtil.getBean(TaskService.class); - Task task = taskService.createTaskQuery().taskId(processApprovalRecord.getTaskId()).singleResult(); - runtimeService.setVariable(task.getExecutionId(), "leader", toUserId); - } + } }