diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasksinfo/AssignTasksInfoServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasksinfo/AssignTasksInfoServiceImpl.java index 094a00b..ece20b2 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasksinfo/AssignTasksInfoServiceImpl.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasksinfo/AssignTasksInfoServiceImpl.java @@ -86,7 +86,7 @@ public class AssignTasksInfoServiceImpl implements AssignTasksInfoService { public static final String FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND = "yyyy-MM-dd HH:mm:ss"; // 提前提醒(3小时) - private static final long REMIND_ADVANCE_HOURS = 4L; + private static final long REMIND_ADVANCE_HOURS = 3L; // 1. 定义线程安全的格式化器(全局复用,无需重复创建) private static final DateTimeFormatter DEADLINE_FORMATTER = DateTimeFormatter @@ -187,17 +187,17 @@ public class AssignTasksInfoServiceImpl implements AssignTasksInfoService { public void createRemindJob(LocalDateTime deadline, Long id){ // 2. 计算:当前时间 + 3小时 是否超过截止时间(即截止时间不足3小时) -// LocalDateTime now = LocalDateTime.now(DEFAULT_ZONE); // 当前东八区时间 -// LocalDateTime remindThreshold = now.plusHours(REMIND_ADVANCE_HOURS); - - // 核心判断:截止时间 <= (当前时间+3小时),不创建定时任务 -// if (deadline.isBefore(remindThreshold)) { -// String formattedDeadline = deadline.format(DATE_FORMATTER); -// String formattedThreshold = remindThreshold.format(DATE_FORMATTER); -// log.info("任务ID={} 无需创建定时任务:截止时间={},不足{}小时(阈值时间={})", -// id, formattedDeadline, REMIND_ADVANCE_HOURS, formattedThreshold); -// return; // 直接返回,不创建定时任务 -// } + LocalDateTime now = LocalDateTime.now(DEFAULT_ZONE); // 当前东八区时间 + LocalDateTime remindThreshold = now.plusHours(REMIND_ADVANCE_HOURS); + + //核心判断:截止时间 <= (当前时间+3小时),不创建定时任务 + if (deadline.isBefore(remindThreshold)) { + String formattedDeadline = deadline.format(DATE_FORMATTER); + String formattedThreshold = remindThreshold.format(DATE_FORMATTER); + log.info("任务ID={} 无需创建定时任务:截止时间={},不足{}小时(阈值时间={})", + id, formattedDeadline, REMIND_ADVANCE_HOURS, formattedThreshold); + return; // 直接返回,不创建定时任务 + } // 3. 安全转换LocalDateTime到Date(指定东八区,避免时区问题) Date triggerDate = Date.from(