diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/impl/EsRevisionServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/impl/EsRevisionServiceImpl.java index a4c460dc..95a00917 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/impl/EsRevisionServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/impl/EsRevisionServiceImpl.java @@ -27,7 +27,10 @@ import com.jero.modules.activiti.process.common.service.ActFlowCommonService; import com.jero.modules.activiti.process.common.service.ProcessDraftService; import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPProjectStatus; import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPRevisionType; -import com.jero.modules.activiti.process.esRevision.entity.*; +import com.jero.modules.activiti.process.esRevision.entity.EsRevisionAdvice; +import com.jero.modules.activiti.process.esRevision.entity.HandleAdviceEnum; +import com.jero.modules.activiti.process.esRevision.entity.ProcessEsRevision; +import com.jero.modules.activiti.process.esRevision.entity.SignInfo; import com.jero.modules.activiti.process.esRevision.entity.vo.ESRevisionDataVO; import com.jero.modules.activiti.process.esRevision.entity.vo.InspectContentVO; import com.jero.modules.activiti.process.esRevision.entity.vo.OtherDraftUserVO; @@ -945,7 +948,8 @@ public class EsRevisionServiceImpl extends ServiceImpl processInstanceIdList) { - for (String processInstanceId : processInstanceIdList) { + List espList = new ArrayList<>(); + processInstanceIdList.forEach(processInstanceId -> { String espId = ""; ProcessEsRevision revision = getOne(new LambdaQueryWrapper() .eq(ProcessEsRevision::getProcessInstanceId, processInstanceId)); @@ -956,7 +960,7 @@ public class EsRevisionServiceImpl extends ServiceImpl approvalRecords = parService.list(new LambdaQueryWrapper() @@ -1023,18 +1027,17 @@ public class EsRevisionServiceImpl extends ServiceImpl prcStatus = new ArrayList<>(); - // 从流程主表找到所有已经完成的企标制修订流程 + // 从流程主表找到所有企标制修订流程 List processAlls = processAllService.list(new LambdaQueryWrapper() - .eq(ProcessAll::getPrcType, ProcessTypeEnum.ES_REVISION.getValue()) - .in(ProcessAll::getPrcStatus, FinishFlagEnum.COMPLETE.getValue()) - ); + .eq(ProcessAll::getPrcType, ProcessTypeEnum.ES_REVISION.getValue())); List prcIds = processAlls.stream().map(ProcessAll::getProcessInstanceId).collect(Collectors.toList()); this.updatePlanDateByProcessInstanceId(prcIds); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/job/ESPlanProjectStatusJob.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/job/ESPlanProjectStatusJob.java index 8ec7b581..e9410582 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/job/ESPlanProjectStatusJob.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/job/ESPlanProjectStatusJob.java @@ -1,6 +1,8 @@ package com.jero.modules.laws.enterprise.job; +import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPChangeType; import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPProjectStatus; +import com.jero.modules.activiti.process.esRevision.service.impl.EsRevisionServiceImpl; import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan; import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService; import lombok.extern.slf4j.Slf4j; @@ -10,6 +12,7 @@ import org.quartz.JobExecutionException; import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.time.ZoneId; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -25,12 +28,40 @@ public class ESPlanProjectStatusJob implements Job { @Resource private EnterpriseStandardPlanService espService; + @Resource + private EsRevisionServiceImpl esRevisionService; + @Override public void execute(JobExecutionContext context) throws JobExecutionException { + // 更新所有流程状态 + esRevisionService.updateAllPlanDate(); // 每天执行定时任务 判断所有进行中的计划是否逾期 逾期则修改项目状态为逾期 List list = espService.list(); + // 将list中的时间的时分秒都去掉 + list.forEach(esp -> { + if (null != esp.getApprovalDate()) { + esp.setApprovalDate(Date.from(esp.getApprovalDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate().atStartOfDay(ZoneId.systemDefault()).toInstant())); + } + if (null != esp.getReviewDate()) { + esp.setReviewDate(Date.from(esp.getReviewDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate().atStartOfDay(ZoneId.systemDefault()).toInstant())); + } + }); + + List cancelList = list.stream() + .filter(esp -> ESPChangeType.CANCEL.getValue().equals(esp.getChangeStatus()) || + ESPChangeType.WORK_TERMINATE.getValue().equals(esp.getChangeStatus())) + .collect(Collectors.toList()); + // 将工作中止和取消的设置为未开始 + cancelList.forEach(esp -> { + esp.setProjectStatus(ESPProjectStatus.NOT_STARTED.getValue()); + }); + espService.updateBatchById(cancelList); + List inProgressList = list.stream() - .filter(esp -> ESPProjectStatus.IN_PROGRESS.getValue().equals(esp.getProjectStatus())) + .filter(esp -> ESPProjectStatus.IN_PROGRESS.getValue().equals(esp.getProjectStatus()) || + ESPProjectStatus.NOT_STARTED.getValue().equals(esp.getProjectStatus())) + .filter(esp -> !ESPChangeType.WORK_TERMINATE.getValue().equals(esp.getChangeStatus()) && + !ESPChangeType.CANCEL.getValue().equals(esp.getChangeStatus())) .collect(Collectors.toList()); List overdueList = list.stream() .filter(esp -> ESPProjectStatus.OVERDUE.getValue().equals(esp.getProjectStatus())) @@ -41,7 +72,7 @@ public class ESPlanProjectStatusJob implements Job { .collect(Collectors.toList()); Date curDate = new Date(); // 判断所有进行中的流程是否逾期 - inProgressList.forEach(p -> { + inProgressList.parallelStream().forEach(p -> { if (null == p.getPlanApprovalDate()) { return; } @@ -56,7 +87,7 @@ public class ESPlanProjectStatusJob implements Job { }); espService.updateBatchById(inProgressList); // 判断所有逾期的流程是否还是逾期 - overdueList.forEach(p -> { + overdueList.parallelStream().forEach(p -> { if (null == p.getPlanApprovalDate()) { return; } @@ -72,7 +103,7 @@ public class ESPlanProjectStatusJob implements Job { }); espService.updateBatchById(overdueList); // 判断所有已完成的计划是否逾期完成 - completeList.forEach(p -> { + completeList.parallelStream().forEach(p -> { // 判断两个日期都不能为null if (null == p.getApprovalDate() || null == p.getPlanApprovalDate()) { return;