From 6ca2e3c7cc7d28f427f731d8dbfd2d79f9db08dc Mon Sep 17 00:00:00 2001 From: caihaohan Date: Wed, 7 Feb 2024 17:59:18 +0800 Subject: [PATCH] =?UTF-8?q?fix:=2081873=20=E5=B9=B4=E5=BA=A6=E5=88=B6?= =?UTF-8?q?=E4=BF=AE=E8=AE=A2=E8=AE=A1=E5=88=92(=E6=A0=87=E5=87=86?= =?UTF-8?q?=E5=8C=96=E5=8F=91=E8=B5=B7)--=E4=B8=8D=E5=90=8C=E7=9A=84?= =?UTF-8?q?=E4=B8=BB=E8=B5=B7=E8=8D=89=E5=8D=95=E4=BD=8D=E4=B8=BB=E7=AE=A1?= =?UTF-8?q?=E7=BA=A7=E9=A2=86=E5=AF=BC=E5=AE=A1=E6=89=B9=E4=B8=8B=E5=8F=91?= =?UTF-8?q?=EF=BC=8C=E7=9B=B8=E5=90=8C=E7=9A=84=E4=B8=BB=E8=B5=B7=E8=8D=89?= =?UTF-8?q?=E4=BA=BA=E5=A1=AB=E5=86=99=E4=BF=A1=E6=81=AF=EF=BC=8C=E7=AC=AC?= =?UTF-8?q?2=E4=B8=AA=E5=A4=84=E7=90=86=E7=9A=84=E5=BE=85=E5=8A=9E?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=90=88=E5=B9=B6=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MainDraftWriteCreateListener.java | 31 +++++++++++++++++++ .../impl/ProcessEsAnnualInitServiceImpl.java | 13 +++++--- 2 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/listener/MainDraftWriteCreateListener.java diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/listener/MainDraftWriteCreateListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/listener/MainDraftWriteCreateListener.java new file mode 100644 index 00000000..2cc4bb19 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/listener/MainDraftWriteCreateListener.java @@ -0,0 +1,31 @@ +package com.jero.modules.activiti.process.esAnnualInit.listener; + +import com.jero.modules.activiti.util.ThreadLocalUtil; +import lombok.extern.slf4j.Slf4j; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.springframework.stereotype.Component; + + + +/** + * @author: Mzaxd + * @Date: 2023/10/10 14:14 + */ +@Slf4j +@Component("mainDraftWriteCreateListener") +public class MainDraftWriteCreateListener implements TaskListener { + + + /** + * 流程结束之后需要把数据存入企标计划数据库 + * + * @param delegateTask task + */ + @Override + public void notify(DelegateTask delegateTask) { + String parentExecutionId = (String) ThreadLocalUtil.get("parentExecutionId"); + delegateTask.setVariableLocal("parentExecutionId", parentExecutionId); + ThreadLocalUtil.remove(); + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/impl/ProcessEsAnnualInitServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/impl/ProcessEsAnnualInitServiceImpl.java index 6c3feb06..0b594236 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/impl/ProcessEsAnnualInitServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/impl/ProcessEsAnnualInitServiceImpl.java @@ -27,6 +27,7 @@ import com.jero.modules.activiti.service.ProcessAllService; import com.jero.modules.activiti.service.ProcessApprovalRecordService; import com.jero.modules.activiti.service.ProcessNodeLinkService; import com.jero.modules.activiti.util.ExcelUtils; +import com.jero.modules.activiti.util.ThreadLocalUtil; import com.jero.modules.laws.common.util.ImportUtil; import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService; @@ -196,10 +197,6 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl setVariables(AnnualInitDataVO annualInitData) { Map actVariables = new HashMap<>(); Map flowUser = annualInitData.getFlowUser(); @@ -254,6 +251,7 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); String taskName = task.getName(); + String parentExecutionId = (String) taskService.getVariableLocal(taskId, "parentExecutionId"); switch (taskName) { case CONTACT_USER_SELECT: case MAIN_DRAFT_LEADER_APPROVAL_DISTRIBUTE: @@ -267,6 +265,7 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl dbDataList = handleData.getDataList(); String curUserId = UserUtils.getUserId(); + String contactUser = (String) runtimeService.getVariableLocal(executionId, "contactUser"); switch (taskName) { case STANDARD_ENGINEER_INIT: @@ -340,12 +340,17 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl data.setExecutionId(executionId)); saveOrUpdateBatch(dataList); taskService.setVariable(taskId, "mainDraftUserList", mainDraftUserSet); + ThreadLocalUtil.put("parentExecutionId", executionId); // 保存人员 userMap.put("mainDraftUserList", String.join(",", mainDraftUserSet)); processNodeLinkService.incrementSaveNodeUserLink(processDefinitionId, processInstanceId, userMap); } else { // 找到对应数据,然后设置驳回标志位 dbDataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.YES.getValue())); + runtimeService.setVariable(executionId, "contactEditUser", contactUser); + // 保存人员 + userMap.put("contactEditUser", contactUser); + processNodeLinkService.incrementSaveNodeUserLink(processDefinitionId, processInstanceId, userMap); updateBatchById(dbDataList); } // 转办