diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/listener/ProcessESInitChangeEndListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/listener/ProcessESInitChangeEndListener.java index 7a19b11a..ff99a434 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/listener/ProcessESInitChangeEndListener.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/listener/ProcessESInitChangeEndListener.java @@ -1,9 +1,19 @@ package com.jero.modules.activiti.process.esInitChange.listener; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jero.common.aspect.annotation.RedisLock; +import com.jero.modules.activiti.process.esInitChange.entity.ProcessEsInitChange; +import com.jero.modules.activiti.process.esInitChange.service.ProcessEsInitChangeService; +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 lombok.extern.slf4j.Slf4j; import org.activiti.engine.delegate.DelegateExecution; import org.activiti.engine.delegate.ExecutionListener; +import javax.annotation.Resource; +import java.util.List; + /** * @author: Mzaxd * @Date: 2023/10/10 14:14 @@ -11,16 +21,30 @@ import org.activiti.engine.delegate.ExecutionListener; @Slf4j public class ProcessESInitChangeEndListener implements ExecutionListener { + @Resource + private EnterpriseStandardPlanService espService; + + @Resource + private ProcessEsInitChangeService esInitChangeService; + + /** + * 企标立项变更流程结束之后需要把数据存入企标计划数据库 然后自动发起企标制修订流程 + * @param delegateExecution + */ @Override public void notify(DelegateExecution delegateExecution) { - //TODO 企标立项变更流程结束之后需要把数据存入企标计划数据库 然后自动发起企标制修订流程 - + // 获取流程实例ID + String processInstanceId = delegateExecution.getProcessInstanceId(); // 根据流程实例Id找到所有流程业务数据 + LambdaQueryWrapper esInitChangeWrapper = new LambdaQueryWrapper<>(); + esInitChangeWrapper.eq(ProcessEsInitChange::getProcessInstanceId, processInstanceId); + List processEsInitChanges = esInitChangeService.list(esInitChangeWrapper); + // 立项新增变更编辑 + List enterpriseStandardPlans = BeanCopyUtils.copyBeanList(processEsInitChanges, EnterpriseStandardPlan.class); + espService.saveOrUpdateBatch(enterpriseStandardPlans); + // 软删除流程数据 + esInitChangeService.removeByProcessInstanceId(processInstanceId); - // 立项新增 - - // 变更编辑 - - // 发起制修订流程 + //TODO 发起制修订流程 } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/ProcessEsInitChangeService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/ProcessEsInitChangeService.java index b63c5ede..b3484bcf 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/ProcessEsInitChangeService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/ProcessEsInitChangeService.java @@ -45,4 +45,10 @@ public interface ProcessEsInitChangeService extends IService esInitChange); + + /** + * 软删除实例数据 + * @param processInstanceId + */ + void removeByProcessInstanceId(String processInstanceId); } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java index 2e07269d..7fc662b4 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java @@ -3,6 +3,7 @@ package com.jero.modules.activiti.process.esInitChange.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.common.exception.JeroBootException; import com.jero.modules.activiti.process.common.entity.ProcessDraft; import com.jero.modules.activiti.process.common.enums.ProcessType; @@ -85,7 +86,7 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl esInitChangeList) { // 校验企标编号是否冲突 if (!esUtil.verifyEnStandardNumber(esInitChangeList.get(0).getOriginEnStandardNo())) { - throw new JeroBootException("企标编号冲突"); + throw new JeroBootException("企标编号冲突,请重新生成"); } String processDefinitionKey = ProcessType.ES_INIT_CHANGE.getProcessKey(); @@ -174,6 +175,14 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(ProcessEsInitChange::getProcessInstanceId, processInstanceId) + .set(ProcessEsInitChange::getDelFlag, YesOrNoEnum.YES.getValue()); + update(updateWrapper); + } + @Override public List getSequenceNumbers(String esCodeDictValue, String esNameCodeDictValue, String categoryCodeDictValue) { // 已经存在的标准