From 0d032935299c54940566b5ead7f54a9df742698b Mon Sep 17 00:00:00 2001 From: caihaohan Date: Wed, 7 Feb 2024 16:07:32 +0800 Subject: [PATCH] =?UTF-8?q?fix:=2081834=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)=EF=BC=88=E9=83=A8=E6=89=80?= =?UTF-8?q?=E8=81=94=E7=BB=9C=E4=BA=BA=E6=B1=87=E6=80=BB=EF=BC=89=E4=B8=8D?= =?UTF-8?q?=E5=90=8C=E5=AE=A1=E6=89=B9=E4=BA=BA=E9=A9=B3=E5=9B=9E=E5=90=8E?= =?UTF-8?q?=EF=BC=8C=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 --- .../ContactUserDistributeCreateListener.java | 40 +++++++++++ ...inDraftLeaderDistributeCreateListener.java | 40 +++++++++++ .../impl/ProcessEsAnnualInitServiceImpl.java | 69 +++++++------------ 3 files changed, 104 insertions(+), 45 deletions(-) create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/listener/ContactUserDistributeCreateListener.java create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/listener/MainDraftLeaderDistributeCreateListener.java diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/listener/ContactUserDistributeCreateListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/listener/ContactUserDistributeCreateListener.java new file mode 100644 index 00000000..8fa23b0b --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/listener/ContactUserDistributeCreateListener.java @@ -0,0 +1,40 @@ +package com.jero.modules.activiti.process.esAnnualInit.listener; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jero.modules.activiti.process.esAnnualInit.entity.ProcessEsAnnualInit; +import com.jero.modules.activiti.process.esAnnualInit.service.impl.ProcessEsAnnualInitServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @author: Mzaxd + * @Date: 2023/10/10 14:14 + */ +@Slf4j +@Component("contactUserDistributeCreateListener") +public class ContactUserDistributeCreateListener implements TaskListener { + + @Resource + private ProcessEsAnnualInitServiceImpl annualInitService; + + /** + * 流程结束之后需要把数据存入企标计划数据库 + * + * @param delegateTask task + */ + @Override + public void notify(DelegateTask delegateTask) { + String executionId = delegateTask.getExecutionId(); + String contactUser = (String) delegateTask.getVariable("contactUser"); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProcessEsAnnualInit::getContactUser, contactUser); + List list = annualInitService.list(wrapper); + list.forEach(l -> l.setExecutionId(executionId)); + annualInitService.updateBatchById(list); + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/listener/MainDraftLeaderDistributeCreateListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/listener/MainDraftLeaderDistributeCreateListener.java new file mode 100644 index 00000000..876836fe --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/listener/MainDraftLeaderDistributeCreateListener.java @@ -0,0 +1,40 @@ +package com.jero.modules.activiti.process.esAnnualInit.listener; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jero.modules.activiti.process.esAnnualInit.entity.ProcessEsAnnualInit; +import com.jero.modules.activiti.process.esAnnualInit.service.impl.ProcessEsAnnualInitServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @author: Mzaxd + * @Date: 2023/10/10 14:14 + */ +@Slf4j +@Component("mainDraftLeaderDistributeCreateListener") +public class MainDraftLeaderDistributeCreateListener implements TaskListener { + + @Resource + private ProcessEsAnnualInitServiceImpl annualInitService; + + /** + * 流程结束之后需要把数据存入企标计划数据库 + * + * @param delegateTask task + */ + @Override + public void notify(DelegateTask delegateTask) { + String executionId = delegateTask.getExecutionId(); + String approvalUser = (String) delegateTask.getVariable("approvalUser"); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProcessEsAnnualInit::getApprovalUser, approvalUser); + List list = annualInitService.list(wrapper); + list.forEach(l -> l.setExecutionId(executionId)); + annualInitService.updateBatchById(list); + } +} 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 99a9da85..652a9288 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 @@ -25,7 +25,6 @@ import com.jero.modules.activiti.process.fb.service.IProcessHandleService; import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; import com.jero.modules.activiti.service.ProcessAllService; import com.jero.modules.activiti.service.ProcessNodeLinkService; -import com.jero.modules.activiti.service.ProcessNodeService; import com.jero.modules.activiti.util.ExcelUtils; import com.jero.modules.laws.common.util.ImportUtil; import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; @@ -74,9 +73,6 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); String taskName = task.getName(); - String contactUser = (String) runtimeService.getVariable(executionId, "contactUser"); - String approvalUser = (String) runtimeService.getVariable(executionId, "approvalUser"); switch (taskName) { case CONTACT_USER_SELECT: - wrapper.eq(ProcessEsAnnualInit::getContactUser, userId); - break; case MAIN_DRAFT_LEADER_APPROVAL_DISTRIBUTE: - wrapper.eq(ProcessEsAnnualInit::getContactUser, contactUser); - wrapper.eq(ProcessEsAnnualInit::getApprovalUser, userId); + case CONTACT_USER_COLLECT: + case MAIN_DRAFT_LEADER_APPROVAL: + wrapper.eq(ProcessEsAnnualInit::getExecutionId, executionId); break; case CONTACT_USER_EDIT: - wrapper.eq(ProcessEsAnnualInit::getContactUser, contactUser); wrapper.eq(ProcessEsAnnualInit::getRejectFlag, YesOrNoEnum.YES.getValue()); + wrapper.eq(ProcessEsAnnualInit::getExecutionId, executionId); break; case MAIN_DRAFT_WRITE: - wrapper.eq(ProcessEsAnnualInit::getContactUser, contactUser); wrapper.eq(ProcessEsAnnualInit::getPrcMainDraftUser, userId); break; - case CONTACT_USER_COLLECT: - wrapper.eq(ProcessEsAnnualInit::getContactUser, userId); - wrapper.eq(ProcessEsAnnualInit::getExecutionId, executionId); - break; - case MAIN_DRAFT_LEADER_APPROVAL: - wrapper.eq(ProcessEsAnnualInit::getContactUser, contactUser); - wrapper.eq(ProcessEsAnnualInit::getApprovalUser, userId); - wrapper.eq(ProcessEsAnnualInit::getExecutionId, executionId); - break; case STANDARD_ENGINEER_COLLECT: // do nothing now break; @@ -287,7 +270,6 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl flowUser = annualInitData.getFlowUser(); String taskId = commonVO.getTaskId(); // 获取task if (StrUtil.isBlank(taskId) || !actFlowCommonService.taskExists(taskId)) { @@ -306,12 +288,13 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl userMap = new HashMap<>(); + AnnualInitDataVO handleData = this.getHandleData(taskId); + List dbDataList = handleData.getDataList(); + String curUserId = UserUtils.getUserId(); switch (taskName) { case STANDARD_ENGINEER_INIT: @@ -331,9 +314,7 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl list = list(wrapper); - annualInitData.setDataList(list); + annualInitData.setDataList(dbDataList); this.restartProcess(annualInitData, taskId); } break; @@ -353,11 +334,11 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl d.setRejectFlag(YesOrNoEnum.YES.getValue())); + updateBatchById(dbDataList); } + // 转办 + runtimeService.setVariableLocal(executionId, "approvalUser", curUserId); break; case CONTACT_USER_EDIT: dataList = annualInitData.getDataList(); @@ -372,11 +353,11 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl list = list(wrapper); - annualInitData.setDataList(list); + annualInitData.setDataList(dbDataList); this.restartProcess(annualInitData, taskId); } + // 转办 + runtimeService.setVariableLocal(executionId, "contactUser", curUserId); break; case MAIN_DRAFT_WRITE: dataList = annualInitData.getDataList(); @@ -393,24 +374,22 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl d.setExecutionId(executionId)); saveOrUpdateBatch(dataList); + // 转办 + runtimeService.setVariableLocal(executionId, "contactUser", curUserId); break; case MAIN_DRAFT_LEADER_APPROVAL: - dataList = annualInitData.getDataList(); // 如果不驳回 if (pass) { - updateWrapper.eq(ProcessEsAnnualInit::getContactUser, contactUser); - updateWrapper.eq(ProcessEsAnnualInit::getApprovalUser, approvalUser); - updateWrapper.set(ProcessEsAnnualInit::getRejectFlag, YesOrNoEnum.NO.getValue()); - updateWrapper.set(ProcessEsAnnualInit::getExecutionId, executionId); - update(updateWrapper); + dbDataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.NO.getValue())); } else { - updateWrapper.eq(ProcessEsAnnualInit::getContactUser, contactUser); - updateWrapper.eq(ProcessEsAnnualInit::getApprovalUser, approvalUser); - updateWrapper.set(ProcessEsAnnualInit::getRejectFlag, YesOrNoEnum.YES.getValue()); - updateWrapper.set(ProcessEsAnnualInit::getExecutionId, executionId); - update(updateWrapper); + dbDataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.YES.getValue())); } + dbDataList.forEach(d -> d.setExecutionId(executionId)); + updateBatchById(dbDataList); + // 转办 + runtimeService.setVariableLocal(executionId, "approvalUser", curUserId); break; case STANDARD_ENGINEER_COLLECT: // 根据流程ID删除所有数据后新增