diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRecheck/listener/ProcessESRecheckEndListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRecheck/listener/ProcessESRecheckEndListener.java index f08d747b..b73d9a9f 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRecheck/listener/ProcessESRecheckEndListener.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRecheck/listener/ProcessESRecheckEndListener.java @@ -63,6 +63,9 @@ public class ProcessESRecheckEndListener implements ExecutionListener { recheckPlan.setInProcessFlag(YesOrNoEnum.NO.getValue()); esRecheckPlanService.updateById(recheckPlan); String standNo = recheck.getStandardNumber(); + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(EnterpriseStandardRecheckPlan::getStandardNo, standNo); + wrapper.set(EnterpriseStandardRecheckPlan::getInProcessFlag, YesOrNoEnum.NO.getValue()); log.info("企标复审流程结束 监听执行器开始执行,企标编号为:{}", standNo); if (RECHECK_CONTINUE_VALID.equals(recheckAdvice)) { // 获取复审计划记录 @@ -81,19 +84,13 @@ public class ProcessESRecheckEndListener implements ExecutionListener { } if (RECHECK_INIT_CHANGE.equals(recheckAdvice)) { // 废止 - LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); - wrapper.eq(EnterpriseStandardRecheckPlan::getStandardNo, standNo); wrapper.set(EnterpriseStandardRecheckPlan::getRecheckResult, RECHECK_INIT_CHANGE); - esRecheckPlanService.update(wrapper); // 修订 自动发起企标立项/变更流程(修订模式) esInitChangeService.autoStartProcessByRecheck(standNo); } if (RECHECK_ABOLISH.equals(recheckAdvice)) { // 废止 - LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); - wrapper.eq(EnterpriseStandardRecheckPlan::getStandardNo, standNo); wrapper.set(EnterpriseStandardRecheckPlan::getRecheckResult, RECHECK_ABOLISH); - esRecheckPlanService.update(wrapper); LambdaUpdateWrapper esWrapper = new LambdaUpdateWrapper<>(); esWrapper.eq(LawsEnterpriseStandard::getStandardNumber, standNo); esWrapper.set(LawsEnterpriseStandard::getStandardState, StandardStateEnum.ABOLISH.getStateValue()); @@ -101,15 +98,13 @@ public class ProcessESRecheckEndListener implements ExecutionListener { } if (RECHECK_ARCHIVE.equals(recheckAdvice)) { // 封存 - LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); - wrapper.eq(EnterpriseStandardRecheckPlan::getStandardNo, standNo); wrapper.set(EnterpriseStandardRecheckPlan::getRecheckResult, RECHECK_ARCHIVE); - esRecheckPlanService.update(wrapper); LambdaUpdateWrapper esWrapper = new LambdaUpdateWrapper<>(); esWrapper.eq(LawsEnterpriseStandard::getStandardNumber, standNo); esWrapper.set(LawsEnterpriseStandard::getStandardState, StandardStateEnum.ARCHIVE.getStateValue()); esService.update(esWrapper); } + esRecheckPlanService.update(wrapper); log.info("企标复审流程监听执行器执行结束"); } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRecheck/service/impl/ProcessEsRecheckServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRecheck/service/impl/ProcessEsRecheckServiceImpl.java index 217c5ad9..19d4887b 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRecheck/service/impl/ProcessEsRecheckServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRecheck/service/impl/ProcessEsRecheckServiceImpl.java @@ -20,6 +20,8 @@ import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO; import com.jero.modules.activiti.process.fb.service.IProcessHandleService; import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; import com.jero.modules.activiti.service.ProcessNodeLinkService; +import com.jero.modules.laws.enterprise.entity.EnterpriseStandardRecheckPlan; +import com.jero.modules.laws.enterprise.service.EnterpriseStandardRecheckPlanService; import com.jero.modules.sys.utils.UserUtils; import lombok.extern.slf4j.Slf4j; import org.activiti.engine.RuntimeService; @@ -64,10 +66,21 @@ public class ProcessEsRecheckServiceImpl extends ServiceImpl private EnterpriseStandardPlanService espService; @Resource private PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI; + @Resource + private EnterpriseStandardRecheckPlanService esRecheckService; + @Resource + private ProcessEsRecheckService processEsRecheckService; private static final List INSPECT_PROCESS = Arrays.asList( ProcessTypeEnum.FB_ENTRY_CHANGE.getValue(), @@ -255,6 +263,10 @@ public class ProcessAllService extends ServiceImpl if (Objects.equals(prcType, ProcessTypeEnum.ES_REVISION.getValue())) { this.revisionForcedWithdrawalProcess(processInstanceId); } + // 企标复审流程强制撤回后需要更改企标复审计划的内置状态为未开始 + if (Objects.equals(prcType, ProcessTypeEnum.ES_RECHECK.getValue())) { + this.recheckForcedWithdrawalProcess(processInstanceId); + } //todo 同步删除操作到统一待办 //查询所有待办任务 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); @@ -286,6 +298,18 @@ public class ProcessAllService extends ServiceImpl .set(EnterpriseStandardPlan::getProjectStatus, ESPProjectStatus.NOT_STARTED.getValue())); } + private void recheckForcedWithdrawalProcess(String processInstanceId) { + ProcessEsRecheck recheckProcess = processEsRecheckService.getOne(new LambdaQueryWrapper() + .eq(ProcessEsRecheck::getProcessInstanceId, processInstanceId)); + String recheckPlanId = recheckProcess.getRecheckPlanId(); + if (StrUtil.isBlank(recheckPlanId)) { + throw new JeroBootException("强制撤回企标更改流程失败,找不到对应的企标复审计划"); + } + esRecheckService.update(new LambdaUpdateWrapper() + .eq(EnterpriseStandardRecheckPlan::getId, recheckPlanId) + .set(EnterpriseStandardRecheckPlan::getInProcessFlag, YesOrNoEnum.NO.getValue())); + } + public void delegateTask(DelegateTaskParam param) { String taskId = param.getTaskId(); String userId = param.getUserId(); diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/job/ESRecheckPlanJob.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/job/ESRecheckPlanJob.java index a5945f77..e39187b5 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/job/ESRecheckPlanJob.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/job/ESRecheckPlanJob.java @@ -135,7 +135,7 @@ public class ESRecheckPlanJob implements Job { log.info("企标编号为{}的企标已经达到复审日期前一个月,但是已经发起过复审流程,无需重复发起", es.getStandardNumber()); continue; } - if (minusMonths.isBefore(recheckLocalDate)) { + if (now.isAfter(minusMonths) && now.isBefore(recheckLocalDate)) { autoStartProcess(es, recheckPlan); log.info("企标编号为{}的企标已经达到复审日期前一个月,已经自动发起复审流程", es.getStandardNumber()); }