fix: 企标计划状态修复
This commit is contained in:
+14
-11
@@ -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<EsRevisionMapper, Process
|
||||
|
||||
@Override
|
||||
public void updatePlanDateByProcessInstanceId(List<String> processInstanceIdList) {
|
||||
for (String processInstanceId : processInstanceIdList) {
|
||||
List<EnterpriseStandardPlan> espList = new ArrayList<>();
|
||||
processInstanceIdList.forEach(processInstanceId -> {
|
||||
String espId = "";
|
||||
ProcessEsRevision revision = getOne(new LambdaQueryWrapper<ProcessEsRevision>()
|
||||
.eq(ProcessEsRevision::getProcessInstanceId, processInstanceId));
|
||||
@@ -956,7 +960,7 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
|
||||
.eq(ProcessDraft::getSaveSource, 3));
|
||||
if (CollUtil.isEmpty(draftList)) {
|
||||
log.error("根据流程实例ID未找到企标制修订流程草稿数据 processInstanceId:{}", processInstanceId);
|
||||
continue;
|
||||
return;
|
||||
}
|
||||
ProcessDraft draft = draftList.get(0);
|
||||
String infoJsonStr = draft.getInfoJsonStr();
|
||||
@@ -971,7 +975,7 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
|
||||
EnterpriseStandardPlan esp = espService.getById(espId);
|
||||
if (esp == null) {
|
||||
log.error("根据企标制计划ID未找到企标制计划数据,espId:{}", espId);
|
||||
continue;
|
||||
return;
|
||||
}
|
||||
// 获取所有通过和已完成的审批记录
|
||||
List<ProcessApprovalRecord> approvalRecords = parService.list(new LambdaQueryWrapper<ProcessApprovalRecord>()
|
||||
@@ -1023,18 +1027,17 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
|
||||
} else {
|
||||
esp.setReleaseDate(new Date());
|
||||
}
|
||||
espService.updateById(esp);
|
||||
}
|
||||
espList.add(esp);
|
||||
});
|
||||
espService.updateBatchById(espList);
|
||||
log.info("企标制计划审批完成日期更新成功,共更新企标制计划{}条数据", espList.size());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateAllPlanDate() {
|
||||
List<String> prcStatus = new ArrayList<>();
|
||||
// 从流程主表找到所有已经完成的企标制修订流程
|
||||
// 从流程主表找到所有企标制修订流程
|
||||
List<ProcessAll> processAlls = processAllService.list(new LambdaQueryWrapper<ProcessAll>()
|
||||
.eq(ProcessAll::getPrcType, ProcessTypeEnum.ES_REVISION.getValue())
|
||||
.in(ProcessAll::getPrcStatus, FinishFlagEnum.COMPLETE.getValue())
|
||||
);
|
||||
.eq(ProcessAll::getPrcType, ProcessTypeEnum.ES_REVISION.getValue()));
|
||||
List<String> prcIds = processAlls.stream().map(ProcessAll::getProcessInstanceId).collect(Collectors.toList());
|
||||
this.updatePlanDateByProcessInstanceId(prcIds);
|
||||
}
|
||||
|
||||
+35
-4
@@ -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<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()
|
||||
.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<EnterpriseStandardPlan> 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;
|
||||
|
||||
Reference in New Issue
Block a user