fix: 复审计划每日任务潜在问题修正

This commit is contained in:
2024-01-24 15:21:16 +08:00
parent 41962f7582
commit 0354705cc6
@@ -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("企标复审计划定时任务执行完成");
}