|
@@ -66,31 +66,77 @@ public class ScheduleTask {
|
|
|
IScheduleConfigService scheduleConfigService;
|
|
IScheduleConfigService scheduleConfigService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 生成 schedule_execution 未来七天任务
|
|
|
|
|
+ */
|
|
|
/**
|
|
/**
|
|
|
* 生成 schedule_execution 未来七天任务
|
|
* 生成 schedule_execution 未来七天任务
|
|
|
*/
|
|
*/
|
|
|
@Scheduled(cron = "0 01 00 * * ?")
|
|
@Scheduled(cron = "0 01 00 * * ?")
|
|
|
public void generateNextSevenDayTask() {
|
|
public void generateNextSevenDayTask() {
|
|
|
- List<ScheduleConfigVo> scheduleConfigVoList = baseMapper.selectAllScheduleUseConfigs();
|
|
|
|
|
- for (ScheduleConfigVo scheduleConfigVo : scheduleConfigVoList) {
|
|
|
|
|
- List<String> repeatTypes=new ArrayList<>();
|
|
|
|
|
- List<ScheduleRepeatVo> scheduleRepeatVos = scheduleRepeatMapper.selectScheduleRepeatByConfigId(scheduleConfigVo.getId());
|
|
|
|
|
- for (ScheduleRepeatVo scheduleRepeatVo : scheduleRepeatVos) {
|
|
|
|
|
- repeatTypes.add(scheduleRepeatVo.getRepeatType());
|
|
|
|
|
- }
|
|
|
|
|
- List<LocalTime> execTimes=new ArrayList<>();
|
|
|
|
|
- List<ScheduleTimeVo> scheduleTimeVos = scheduleTimeMapper.selectScheduleTimeInfoById(scheduleConfigVo.getId());
|
|
|
|
|
- for (ScheduleTimeVo scheduleTimeVo : scheduleTimeVos) {
|
|
|
|
|
- execTimes.add(scheduleTimeVo.getExecTime());
|
|
|
|
|
|
|
+ log.info("开始执行每日任务计划生成,生成未来七天的任务");
|
|
|
|
|
+
|
|
|
|
|
+ try {
|
|
|
|
|
+ List<ScheduleConfigVo> scheduleConfigVoList = baseMapper.selectAllScheduleUseConfigs();
|
|
|
|
|
+ log.info("查询到需要处理的计划配置数量: {}", scheduleConfigVoList.size());
|
|
|
|
|
+
|
|
|
|
|
+ for (ScheduleConfigVo scheduleConfigVo : scheduleConfigVoList) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ log.info("开始处理计划配置ID: {}", scheduleConfigVo.getId());
|
|
|
|
|
+
|
|
|
|
|
+ // 获取重复类型列表
|
|
|
|
|
+ List<String> repeatTypes = new ArrayList<>();
|
|
|
|
|
+ List<ScheduleRepeatVo> scheduleRepeatVos = scheduleRepeatMapper.selectScheduleRepeatByConfigId(scheduleConfigVo.getId());
|
|
|
|
|
+ log.debug("配置ID {} 查询到重复规则数量: {}", scheduleConfigVo.getId(), scheduleRepeatVos.size());
|
|
|
|
|
+
|
|
|
|
|
+ for (ScheduleRepeatVo scheduleRepeatVo : scheduleRepeatVos) {
|
|
|
|
|
+ repeatTypes.add(scheduleRepeatVo.getRepeatType());
|
|
|
|
|
+ log.debug("配置ID {} 添加重复类型: {}", scheduleConfigVo.getId(), scheduleRepeatVo.getRepeatType());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 获取执行时间列表
|
|
|
|
|
+ List<LocalTime> execTimes = new ArrayList<>();
|
|
|
|
|
+ List<ScheduleTimeVo> scheduleTimeVos = scheduleTimeMapper.selectScheduleTimeInfoById(scheduleConfigVo.getId());
|
|
|
|
|
+ log.debug("配置ID {} 查询到执行时间数量: {}", scheduleConfigVo.getId(), scheduleTimeVos.size());
|
|
|
|
|
+
|
|
|
|
|
+ for (ScheduleTimeVo scheduleTimeVo : scheduleTimeVos) {
|
|
|
|
|
+ execTimes.add(scheduleTimeVo.getExecTime());
|
|
|
|
|
+ log.debug("配置ID {} 添加执行时间: {}", scheduleConfigVo.getId(), scheduleTimeVo.getExecTime());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ LocalDate startDate = LocalDate.now();
|
|
|
|
|
+ LocalDate endDate = LocalDate.now().plusDays(7);
|
|
|
|
|
+ log.info("调用生成执行计划任务,配置ID: {}, 计划类型: WEEKLY, 开始日期: {}, 结束日期: {}, 重复类型数量: {}, 执行时间数量: {}",
|
|
|
|
|
+ scheduleConfigVo.getId(), startDate, endDate, repeatTypes.size(), execTimes.size());
|
|
|
|
|
+
|
|
|
|
|
+ scheduleConfigService.generateExecutionPlanTask(
|
|
|
|
|
+ scheduleConfigVo.getId(),
|
|
|
|
|
+ "WEEKLY",
|
|
|
|
|
+ startDate,
|
|
|
|
|
+ endDate,
|
|
|
|
|
+ repeatTypes,
|
|
|
|
|
+ execTimes
|
|
|
|
|
+ );
|
|
|
|
|
+
|
|
|
|
|
+ log.info("计划配置ID {} 处理完成", scheduleConfigVo.getId());
|
|
|
|
|
+
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("处理计划配置ID {} 时发生异常", scheduleConfigVo.getId(), e);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- scheduleConfigService.generateExecutionPlanTask(scheduleConfigVo.getId(),"WEEKLY",LocalDate.now(),LocalDate.now().plusDays(7),repeatTypes,execTimes);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+
|
|
|
|
|
+ log.info("每日任务计划生成执行完成,共处理 {} 个计划配置", scheduleConfigVoList.size());
|
|
|
|
|
+
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("执行每日任务计划生成时发生异常", e);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 每天 00:10 执行
|
|
* 每天 00:10 执行
|
|
|
*/
|
|
*/
|