feat: 企标计划状态定时任务
This commit is contained in:
+3
-1
@@ -10,7 +10,9 @@ public enum ESPProjectStatus {
|
|||||||
IN_PROGRESS("进行中", "2"),
|
IN_PROGRESS("进行中", "2"),
|
||||||
OVERDUE_COMPLETED("逾期完成", "3"),
|
OVERDUE_COMPLETED("逾期完成", "3"),
|
||||||
OVERDUE("逾期", "4"),
|
OVERDUE("逾期", "4"),
|
||||||
COMPLETED("完成", "5");
|
COMPLETED("完成", "5"),
|
||||||
|
REVIEW("评审", "6");
|
||||||
|
|
||||||
|
|
||||||
private final String name;
|
private final String name;
|
||||||
|
|
||||||
|
|||||||
+58
-14
@@ -1,22 +1,25 @@
|
|||||||
package com.jero.modules.laws.enterprise.job;
|
package com.jero.modules.laws.enterprise.job;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
||||||
import com.jero.common.constant.enums.YesOrNoEnum;
|
|
||||||
import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPProjectStatus;
|
import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPProjectStatus;
|
||||||
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 org.quartz.Job;
|
import org.quartz.Job;
|
||||||
import org.quartz.JobExecutionContext;
|
import org.quartz.JobExecutionContext;
|
||||||
import org.quartz.JobExecutionException;
|
import org.quartz.JobExecutionException;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author: Mzaxd
|
* @author: Mzaxd
|
||||||
* @Date: 2024/1/16 11:42
|
* @Date: 2024/1/16 11:42
|
||||||
*/
|
*/
|
||||||
|
@Component
|
||||||
|
@Slf4j
|
||||||
public class ESPlanProjectStatusJob implements Job {
|
public class ESPlanProjectStatusJob implements Job {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
@@ -25,22 +28,63 @@ public class ESPlanProjectStatusJob implements Job {
|
|||||||
@Override
|
@Override
|
||||||
public void execute(JobExecutionContext context) throws JobExecutionException {
|
public void execute(JobExecutionContext context) throws JobExecutionException {
|
||||||
// 每天执行定时任务 判断所有进行中的计划是否逾期 逾期则修改项目状态为逾期
|
// 每天执行定时任务 判断所有进行中的计划是否逾期 逾期则修改项目状态为逾期
|
||||||
LambdaQueryWrapper<EnterpriseStandardPlan> espWrapper = new LambdaQueryWrapper<>();
|
List<EnterpriseStandardPlan> list = espService.list();
|
||||||
espWrapper.eq(EnterpriseStandardPlan::getProjectStatus, ESPProjectStatus.IN_PROGRESS.getValue())
|
List<EnterpriseStandardPlan> inProgressList = list.stream()
|
||||||
.or().eq(EnterpriseStandardPlan::getProjectStatus, ESPProjectStatus.OVERDUE.getValue());
|
.filter(esp -> ESPProjectStatus.IN_PROGRESS.getValue().equals(esp.getProjectStatus()))
|
||||||
espWrapper.eq(EnterpriseStandardPlan::getDelFlag, YesOrNoEnum.NO.getValue());
|
.collect(Collectors.toList());
|
||||||
List<EnterpriseStandardPlan> list = espService.list(espWrapper);
|
List<EnterpriseStandardPlan> overdueList = list.stream()
|
||||||
|
.filter(esp -> ESPProjectStatus.OVERDUE.getValue().equals(esp.getProjectStatus()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
List<EnterpriseStandardPlan> completeList = list.stream()
|
||||||
|
.filter(esp -> ESPProjectStatus.OVERDUE_COMPLETED.getValue().equals(esp.getProjectStatus()) ||
|
||||||
|
ESPProjectStatus.COMPLETED.getValue().equals(esp.getProjectStatus()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
Date curDate = new Date();
|
Date curDate = new Date();
|
||||||
list.forEach(p -> {
|
// 判断所有进行中的流程是否逾期
|
||||||
if (curDate.after(p.getDraftPlannedCompleteDate()) ||
|
inProgressList.forEach(p -> {
|
||||||
curDate.after(p.getSolicitationDraftPlanCompleteDate()) ||
|
if (null == p.getPlanApprovalDate()) {
|
||||||
curDate.after(p.getPlanApprovalDate())) {
|
return;
|
||||||
|
}
|
||||||
|
if (curDate.after(p.getPlanApprovalDate()) && null == p.getApprovalDate()) {
|
||||||
|
log.info("计划【" + p.getNewEnStandardName() + "】已逾期,计划完成日期:" + p.getPlanApprovalDate());
|
||||||
p.setProjectStatus(ESPProjectStatus.OVERDUE.getValue());
|
p.setProjectStatus(ESPProjectStatus.OVERDUE.getValue());
|
||||||
} else {
|
}
|
||||||
p.setProjectStatus(ESPProjectStatus.IN_PROGRESS.getValue());
|
if (null != p.getReviewDate() && p.getPlanApprovalDate().after(curDate)) {
|
||||||
|
log.info("计划【" + p.getNewEnStandardName() + "】评审,计划完成日期:" + p.getPlanApprovalDate());
|
||||||
|
p.setProjectStatus(ESPProjectStatus.REVIEW.getValue());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
espService.updateBatchById(list);
|
espService.updateBatchById(inProgressList);
|
||||||
|
// 判断所有逾期的流程是否还是逾期
|
||||||
|
overdueList.forEach(p -> {
|
||||||
|
if (null == p.getApprovalDate()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (null != p.getPlanApprovalDate() && p.getPlanApprovalDate().after(p.getApprovalDate())) {
|
||||||
|
log.info("计划【" + p.getNewEnStandardName() + "】进行中,计划完成日期:" + p.getPlanApprovalDate());
|
||||||
|
p.setProjectStatus(ESPProjectStatus.IN_PROGRESS.getValue());
|
||||||
|
}
|
||||||
|
if (null != p.getReviewDate() && null != p.getPlanApprovalDate() && p.getPlanApprovalDate().after(curDate)) {
|
||||||
|
log.info("计划【" + p.getNewEnStandardName() + "】评审,计划完成日期:" + p.getPlanApprovalDate());
|
||||||
|
p.setProjectStatus(ESPProjectStatus.REVIEW.getValue());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
espService.updateBatchById(overdueList);
|
||||||
|
// 判断所有已完成的计划是否逾期完成
|
||||||
|
completeList.forEach(p -> {
|
||||||
|
// 判断两个日期都不能为null
|
||||||
|
if (null == p.getApprovalDate() || null == p.getPlanApprovalDate()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (p.getApprovalDate().after(p.getPlanApprovalDate())) {
|
||||||
|
log.info("计划【" + p.getNewEnStandardName() + "】逾期完成,计划完成日期:" + p.getPlanApprovalDate());
|
||||||
|
p.setProjectStatus(ESPProjectStatus.OVERDUE_COMPLETED.getValue());
|
||||||
|
} else {
|
||||||
|
log.info("计划【" + p.getNewEnStandardName() + "】完成,计划完成日期:" + p.getPlanApprovalDate());
|
||||||
|
p.setProjectStatus(ESPProjectStatus.COMPLETED.getValue());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
espService.updateBatchById(completeList);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user