fix: 复审计划每日任务潜在问题修正
This commit is contained in:
+31
-30
@@ -56,6 +56,37 @@ public class ESRecheckPlanJob implements Job {
|
||||
|
||||
@Override
|
||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||
// 任务1 遍历所有复审计划数据 如果当前时间超过复审日期7天,则显示下一次复审日期
|
||||
IPage<EnterpriseStandardRecheckPlanVo> page = new Page<>(1, Integer.MAX_VALUE);
|
||||
List<EnterpriseStandardRecheckPlanVo> records = esRecheckPlanMapper.page(page, new ESQueryCommonDTO()).getRecords();
|
||||
records.forEach(recheckPlan -> {
|
||||
// 获取复审日期前7天的时间戳
|
||||
long sevenDaysAfterRecheck = recheckPlan.getRecheckDate().getTime() + (8L * 24 * 60 * 60 * 1000);
|
||||
// 检查当前时间是否在复审日期前7天内
|
||||
if (System.currentTimeMillis() > sevenDaysAfterRecheck) {
|
||||
// 获取发布日期
|
||||
Date releaseDate = recheckPlan.getReleaseDate();
|
||||
// 使用Calendar进行日期的加减
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
if (releaseDate != null) {
|
||||
calendar.setTime(releaseDate); // 设置发布日期
|
||||
calendar.add(Calendar.YEAR, 6); // 在发布日期的基础上加三年
|
||||
// 如果新的日期小于等于复审日期,则在复审日期的基础上加三年
|
||||
if (calendar.getTime().getTime() <= recheckPlan.getRecheckDate().getTime()) {
|
||||
calendar.setTime(recheckPlan.getRecheckDate());
|
||||
calendar.add(Calendar.YEAR, 3);
|
||||
}
|
||||
// 将新的复审日期设置回对象中
|
||||
recheckPlan.setRecheckDate(calendar.getTime());
|
||||
recheckPlan.setRecheckResult(null);
|
||||
}
|
||||
}
|
||||
});
|
||||
List<EnterpriseStandardRecheckPlan> enterpriseStandardRecheckPlans = BeanCopyUtils
|
||||
.copyBeanList(records, EnterpriseStandardRecheckPlan.class);
|
||||
esRecheckPlanService.updateBatchById(enterpriseStandardRecheckPlans);
|
||||
|
||||
// 任务2 遍历所有企标,如果企标发布日期已经达到35个月,则自动发起复审流程
|
||||
List<LawsEnterpriseStandard> allEs = esService.list(new LambdaQueryWrapper<LawsEnterpriseStandard>()
|
||||
.eq(LawsEnterpriseStandard::getDelFlag, YesOrNoEnum.NO.getValue())
|
||||
.ne(LawsEnterpriseStandard::getStandardState, StandardStateEnum.ABOLISH.getStateValue())
|
||||
@@ -111,36 +142,6 @@ public class ESRecheckPlanJob implements Job {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 遍历所有复审计划数据 如果当前时间超过复审日期7天,则显示下一次复审日期
|
||||
IPage<EnterpriseStandardRecheckPlanVo> page = new Page<>(1, Integer.MAX_VALUE);
|
||||
List<EnterpriseStandardRecheckPlanVo> records = esRecheckPlanMapper.page(page, new ESQueryCommonDTO()).getRecords();
|
||||
records.forEach(recheckPlan -> {
|
||||
// 获取复审日期前7天的时间戳
|
||||
long sevenDaysAfterRecheck = recheckPlan.getRecheckDate().getTime() + (8L * 24 * 60 * 60 * 1000);
|
||||
// 检查当前时间是否在复审日期前7天内
|
||||
if (System.currentTimeMillis() > sevenDaysAfterRecheck) {
|
||||
// 获取发布日期
|
||||
Date releaseDate = recheckPlan.getReleaseDate();
|
||||
// 使用Calendar进行日期的加减
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
if (releaseDate != null) {
|
||||
calendar.setTime(releaseDate); // 设置发布日期
|
||||
calendar.add(Calendar.YEAR, 6); // 在发布日期的基础上加三年
|
||||
// 如果新的日期小于等于复审日期,则在复审日期的基础上加三年
|
||||
if (calendar.getTime().getTime() <= recheckPlan.getRecheckDate().getTime()) {
|
||||
calendar.setTime(recheckPlan.getRecheckDate());
|
||||
calendar.add(Calendar.YEAR, 3);
|
||||
}
|
||||
// 将新的复审日期设置回对象中
|
||||
recheckPlan.setRecheckDate(calendar.getTime());
|
||||
recheckPlan.setRecheckResult(null);
|
||||
}
|
||||
}
|
||||
});
|
||||
List<EnterpriseStandardRecheckPlan> enterpriseStandardRecheckPlans = BeanCopyUtils
|
||||
.copyBeanList(records, EnterpriseStandardRecheckPlan.class);
|
||||
esRecheckPlanService.updateBatchById(enterpriseStandardRecheckPlans);
|
||||
log.info("企标复审计划定时任务执行完成");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user