fix: 企标计划状态修复

This commit is contained in:
2024-09-11 07:10:35 +08:00
parent a011232d2b
commit 3c7ec8ac84
2 changed files with 49 additions and 15 deletions
@@ -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.common.service.ProcessDraftService;
import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPProjectStatus; 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.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.ESRevisionDataVO;
import com.jero.modules.activiti.process.esRevision.entity.vo.InspectContentVO; import com.jero.modules.activiti.process.esRevision.entity.vo.InspectContentVO;
import com.jero.modules.activiti.process.esRevision.entity.vo.OtherDraftUserVO; import com.jero.modules.activiti.process.esRevision.entity.vo.OtherDraftUserVO;
@@ -945,7 +948,8 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
@Override @Override
public void updatePlanDateByProcessInstanceId(List<String> processInstanceIdList) { public void updatePlanDateByProcessInstanceId(List<String> processInstanceIdList) {
for (String processInstanceId : processInstanceIdList) { List<EnterpriseStandardPlan> espList = new ArrayList<>();
processInstanceIdList.forEach(processInstanceId -> {
String espId = ""; String espId = "";
ProcessEsRevision revision = getOne(new LambdaQueryWrapper<ProcessEsRevision>() ProcessEsRevision revision = getOne(new LambdaQueryWrapper<ProcessEsRevision>()
.eq(ProcessEsRevision::getProcessInstanceId, processInstanceId)); .eq(ProcessEsRevision::getProcessInstanceId, processInstanceId));
@@ -956,7 +960,7 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
.eq(ProcessDraft::getSaveSource, 3)); .eq(ProcessDraft::getSaveSource, 3));
if (CollUtil.isEmpty(draftList)) { if (CollUtil.isEmpty(draftList)) {
log.error("根据流程实例ID未找到企标制修订流程草稿数据 processInstanceId:{}", processInstanceId); log.error("根据流程实例ID未找到企标制修订流程草稿数据 processInstanceId:{}", processInstanceId);
continue; return;
} }
ProcessDraft draft = draftList.get(0); ProcessDraft draft = draftList.get(0);
String infoJsonStr = draft.getInfoJsonStr(); String infoJsonStr = draft.getInfoJsonStr();
@@ -971,7 +975,7 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
EnterpriseStandardPlan esp = espService.getById(espId); EnterpriseStandardPlan esp = espService.getById(espId);
if (esp == null) { if (esp == null) {
log.error("根据企标制计划ID未找到企标制计划数据,espId:{}", espId); log.error("根据企标制计划ID未找到企标制计划数据,espId:{}", espId);
continue; return;
} }
// 获取所有通过和已完成的审批记录 // 获取所有通过和已完成的审批记录
List<ProcessApprovalRecord> approvalRecords = parService.list(new LambdaQueryWrapper<ProcessApprovalRecord>() List<ProcessApprovalRecord> approvalRecords = parService.list(new LambdaQueryWrapper<ProcessApprovalRecord>()
@@ -1023,18 +1027,17 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
} else { } else {
esp.setReleaseDate(new Date()); esp.setReleaseDate(new Date());
} }
espService.updateById(esp); espList.add(esp);
} });
espService.updateBatchById(espList);
log.info("企标制计划审批完成日期更新成功,共更新企标制计划{}条数据", espList.size());
} }
@Override @Override
public void updateAllPlanDate() { public void updateAllPlanDate() {
List<String> prcStatus = new ArrayList<>(); // 从流程主表找到所有企标制修订流程
// 从流程主表找到所有已经完成的企标制修订流程
List<ProcessAll> processAlls = processAllService.list(new LambdaQueryWrapper<ProcessAll>() List<ProcessAll> processAlls = processAllService.list(new LambdaQueryWrapper<ProcessAll>()
.eq(ProcessAll::getPrcType, ProcessTypeEnum.ES_REVISION.getValue()) .eq(ProcessAll::getPrcType, ProcessTypeEnum.ES_REVISION.getValue()));
.in(ProcessAll::getPrcStatus, FinishFlagEnum.COMPLETE.getValue())
);
List<String> prcIds = processAlls.stream().map(ProcessAll::getProcessInstanceId).collect(Collectors.toList()); List<String> prcIds = processAlls.stream().map(ProcessAll::getProcessInstanceId).collect(Collectors.toList());
this.updatePlanDateByProcessInstanceId(prcIds); this.updatePlanDateByProcessInstanceId(prcIds);
} }
@@ -1,6 +1,8 @@
package com.jero.modules.laws.enterprise.job; 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.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.entity.EnterpriseStandardPlan;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService; import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -10,6 +12,7 @@ import org.quartz.JobExecutionException;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.ZoneId;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -25,12 +28,40 @@ public class ESPlanProjectStatusJob implements Job {
@Resource @Resource
private EnterpriseStandardPlanService espService; private EnterpriseStandardPlanService espService;
@Resource
private EsRevisionServiceImpl esRevisionService;
@Override @Override
public void execute(JobExecutionContext context) throws JobExecutionException { public void execute(JobExecutionContext context) throws JobExecutionException {
// 更新所有流程状态
esRevisionService.updateAllPlanDate();
// 每天执行定时任务 判断所有进行中的计划是否逾期 逾期则修改项目状态为逾期 // 每天执行定时任务 判断所有进行中的计划是否逾期 逾期则修改项目状态为逾期
List<EnterpriseStandardPlan> list = espService.list(); List<EnterpriseStandardPlan> 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<EnterpriseStandardPlan> 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<EnterpriseStandardPlan> inProgressList = list.stream() List<EnterpriseStandardPlan> 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()); .collect(Collectors.toList());
List<EnterpriseStandardPlan> overdueList = list.stream() List<EnterpriseStandardPlan> overdueList = list.stream()
.filter(esp -> ESPProjectStatus.OVERDUE.getValue().equals(esp.getProjectStatus())) .filter(esp -> ESPProjectStatus.OVERDUE.getValue().equals(esp.getProjectStatus()))
@@ -41,7 +72,7 @@ public class ESPlanProjectStatusJob implements Job {
.collect(Collectors.toList()); .collect(Collectors.toList());
Date curDate = new Date(); Date curDate = new Date();
// 判断所有进行中的流程是否逾期 // 判断所有进行中的流程是否逾期
inProgressList.forEach(p -> { inProgressList.parallelStream().forEach(p -> {
if (null == p.getPlanApprovalDate()) { if (null == p.getPlanApprovalDate()) {
return; return;
} }
@@ -56,7 +87,7 @@ public class ESPlanProjectStatusJob implements Job {
}); });
espService.updateBatchById(inProgressList); espService.updateBatchById(inProgressList);
// 判断所有逾期的流程是否还是逾期 // 判断所有逾期的流程是否还是逾期
overdueList.forEach(p -> { overdueList.parallelStream().forEach(p -> {
if (null == p.getPlanApprovalDate()) { if (null == p.getPlanApprovalDate()) {
return; return;
} }
@@ -72,7 +103,7 @@ public class ESPlanProjectStatusJob implements Job {
}); });
espService.updateBatchById(overdueList); espService.updateBatchById(overdueList);
// 判断所有已完成的计划是否逾期完成 // 判断所有已完成的计划是否逾期完成
completeList.forEach(p -> { completeList.parallelStream().forEach(p -> {
// 判断两个日期都不能为null // 判断两个日期都不能为null
if (null == p.getApprovalDate() || null == p.getPlanApprovalDate()) { if (null == p.getApprovalDate() || null == p.getPlanApprovalDate()) {
return; return;