diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAbolish/listener/ProcessESAbolishEndListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAbolish/listener/ProcessESAbolishEndListener.java index fa777530..fb689079 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAbolish/listener/ProcessESAbolishEndListener.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAbolish/listener/ProcessESAbolishEndListener.java @@ -1,6 +1,12 @@ package com.jero.modules.activiti.process.esAbolish.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.esAbolish.entity.ProcessEsAbolish; +import com.jero.modules.activiti.process.esAbolish.service.ProcessEsAbolishService; +import com.jero.modules.activiti.process.esEnable.entity.ProcessEsEnable; +import com.jero.modules.activiti.process.esEnable.service.ProcessEsEnableService; 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; @@ -9,6 +15,8 @@ import com.jero.modules.activiti.process.esInitChange.service.ProcessEsInitChang 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; @@ -26,85 +34,28 @@ import java.util.List; public class ProcessESAbolishEndListener implements ExecutionListener { @Resource - private EnterpriseStandardPlanService espService; + private ILawsEnterpriseStandardService esService; @Resource - private ProcessEsInitChangeService esInitChangeService; + private ProcessEsAbolishService esAbolishService; /** - * 企标立项变更流程结束之后需要把数据存入企标计划数据库 然后自动发起企标制修订流程 + * 企标废止流程结束之后需要把标准状态设为废止 * @param delegateExecution */ @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 abolishLambdaQueryWrapper = new LambdaQueryWrapper<>(); + abolishLambdaQueryWrapper.eq(ProcessEsAbolish::getProcessInstanceId, processInstanceId); + ProcessEsAbolish abolish = esAbolishService.getOne(abolishLambdaQueryWrapper); + String standNo = abolish.getStandardNumber(); + log.info("企标废止流程监听执行器开始执行,企标编号为:{}", standNo); + esService.update(new LambdaUpdateWrapper() + .set(LawsEnterpriseStandard::getStandardState, StandardStateEnum.ABOLISH.getStateValue()) + .eq(LawsEnterpriseStandard::getStandardNumber, standNo)); + log.info("企标废止流程结束监听执行器执行结束"); } }