From cd9329f28290f60c73b9f1dfe4b306ca6538fa1d Mon Sep 17 00:00:00 2001 From: caihaohan Date: Mon, 20 Nov 2023 15:05:50 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=81=E6=A0=87=E6=9B=B4=E6=94=B9?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E7=9B=91=E5=90=AC=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../listener/ProcessESChangeEndListener.java | 107 ++++++------------ 1 file changed, 32 insertions(+), 75 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esChange/listener/ProcessESChangeEndListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esChange/listener/ProcessESChangeEndListener.java index acfa8f7f..83f4ded7 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esChange/listener/ProcessESChangeEndListener.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esChange/listener/ProcessESChangeEndListener.java @@ -1,14 +1,21 @@ package com.jero.modules.activiti.process.esChange.listener; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.jero.modules.activiti.process.common.enums.StandardStateEnum; +import com.jero.modules.activiti.process.esChange.entity.ProcessEsChange; +import com.jero.modules.activiti.process.esChange.service.ProcessEsChangeService; import com.jero.modules.activiti.process.esInitChange.entity.ProcessEsInitChange; import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPApplicationCategoryEnum; import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPChangeType; import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPProjectType; import com.jero.modules.activiti.process.esInitChange.service.ProcessEsInitChangeService; +import com.jero.modules.activiti.process.esRecheck.entity.ProcessEsRecheck; import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan; import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService; import com.jero.modules.laws.enterprise.util.BeanCopyUtils; +import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; +import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService; import lombok.extern.slf4j.Slf4j; import org.activiti.engine.delegate.DelegateExecution; import org.activiti.engine.delegate.ExecutionListener; @@ -17,6 +24,9 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.List; +import static com.jero.modules.activiti.process.esRecheck.entity.ProcessRecheckConstants.*; +import static com.jero.modules.activiti.process.esRecheck.entity.ProcessRecheckConstants.RECHECK_ARCHIVE; + /** * @author: Mzaxd * @Date: 2023/10/10 14:14 @@ -25,86 +35,33 @@ import java.util.List; @Component public class ProcessESChangeEndListener implements ExecutionListener { - @Resource - private EnterpriseStandardPlanService espService; - - @Resource - private ProcessEsInitChangeService esInitChangeService; - /** - * 企标立项变更流程结束之后需要把数据存入企标计划数据库 然后自动发起企标制修订流程 + * 企标更改流程结束之后需要把数据存入企标数据库 * @param delegateExecution */ + + @Resource + private ILawsEnterpriseStandardService esService; + + @Resource + private ProcessEsChangeService esChangeService; + @Override public void notify(DelegateExecution delegateExecution) { - log.info("企标立项变更流程结束 监听执行器开始执行"); - // 获取流程实例ID + log.info("企标更改流程结束 监听执行器开始执行"); + // 找到流程实例Id String processInstanceId = delegateExecution.getProcessInstanceId(); - // 根据流程实例Id找到所有流程业务数据 - LambdaQueryWrapper esInitChangeWrapper = new LambdaQueryWrapper<>(); - esInitChangeWrapper.eq(ProcessEsInitChange::getProcessInstanceId, processInstanceId); - List processEsInitChanges = esInitChangeService.list(esInitChangeWrapper); - String applicationCategory = processEsInitChanges.get(0).getApplicationCategory(); - String projectType = processEsInitChanges.get(0).getProjectType(); - List enterpriseStandardPlans; - if (ESPApplicationCategoryEnum.INITIATION.getValue().equals(applicationCategory)) { - // 立项新增-Id置空 - for (ProcessEsInitChange processEsInitChange : processEsInitChanges) { - processEsInitChange.setId(null); - } - // 转换为企标计划数据并入库 - enterpriseStandardPlans = BeanCopyUtils.copyBeanList(processEsInitChanges, EnterpriseStandardPlan.class); - espService.saveBatch(enterpriseStandardPlans); - } else { - // 将Id设为企标计划的Id - for (ProcessEsInitChange processEsInitChange : processEsInitChanges) { - processEsInitChange.setId(processEsInitChange.getEspId()); - } - - // 完成时间变更 - if (ESPProjectType.COMPLETE_TIME_CHANGE.getValue().equals(projectType)) { - enterpriseStandardPlans = BeanCopyUtils.copyBeanList(processEsInitChanges, EnterpriseStandardPlan.class); - espService.saveOrUpdateBatch(enterpriseStandardPlans); - } - - // 工作中止 - if (ESPProjectType.WORK_TERMINATE.getValue().equals(projectType)) { - // 将企标计划变更状态设为取消 - for (ProcessEsInitChange processEsInitChange : processEsInitChanges) { - processEsInitChange.setProjectStatus(ESPChangeType.CANCEL.getValue()); - } - enterpriseStandardPlans = BeanCopyUtils.copyBeanList(processEsInitChanges, EnterpriseStandardPlan.class); - espService.saveOrUpdateBatch(enterpriseStandardPlans); - } - - // 责任部门变更 - if (ESPProjectType.RESPONSIBLE_DEPT_CHANGE.getValue().equals(projectType)) { - // 将企标计划变更状态设为变更 - for (ProcessEsInitChange processEsInitChange : processEsInitChanges) { - processEsInitChange.setProjectStatus(ESPChangeType.CHANGE.getValue()); - } - enterpriseStandardPlans = BeanCopyUtils.copyBeanList(processEsInitChanges, EnterpriseStandardPlan.class); - espService.saveOrUpdateBatch(enterpriseStandardPlans); - } - - // 合并 - if (ESPProjectType.MERGE.getValue().equals(projectType)) { - for (ProcessEsInitChange processEsInitChange : processEsInitChanges) { - processEsInitChange.setId(null); - } - // 删除两个老企标计划 - espService.deleteById(processEsInitChanges.get(0).getStandardIdOne()); - espService.deleteById(processEsInitChanges.get(0).getStandardIdTwo()); - // 生成新企标计划 - enterpriseStandardPlans = BeanCopyUtils.copyBeanList(processEsInitChanges, EnterpriseStandardPlan.class); - espService.saveOrUpdateBatch(enterpriseStandardPlans); - } - } - log.info("数据存入企标计划数据库"); - // 软删除流程数据 - esInitChangeService.removeByProcessInstanceId(processInstanceId); - log.info("软删除流程数据"); - //TODO 发起制修订流程 - log.info("自动发起企标制修订流程"); + LambdaQueryWrapper changeLambdaQueryWrapper = new LambdaQueryWrapper<>(); + changeLambdaQueryWrapper.eq(ProcessEsChange::getProcessInstanceId, processInstanceId); + ProcessEsChange change = esChangeService.getOne(changeLambdaQueryWrapper); + String standNo = change.getStandardNumber(); + log.info("企标更改流程结束 监听执行器开始执行,企标编号为:{}", standNo); + // 根据标准编号找到标准Id + LawsEnterpriseStandard es = esService.getOne(new LambdaQueryWrapper() + .eq(LawsEnterpriseStandard::getStandardNumber, standNo)); + LawsEnterpriseStandard newEs = BeanCopyUtils.copyBean(change, LawsEnterpriseStandard.class); + newEs.setId(es.getId()); + esService.updateById(newEs); + log.info("企标更改流程监听执行器执行结束"); } }