From a449774f7eb824933358e4ba990caf5021f7300e Mon Sep 17 00:00:00 2001 From: wangqian <1406304305@qq.com> Date: Thu, 12 Mar 2026 19:16:14 +0800 Subject: [PATCH] 到期提醒创建任务修改 --- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/AssignTasksConstants.java | 5 +++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/job/task/ExpireRemindJob.java | 18 +++++------------- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasksinfo/AssignTasksInfoServiceImpl.java | 6 +++--- 3 files changed, 13 insertions(+), 16 deletions(-) diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/AssignTasksConstants.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/AssignTasksConstants.java index cc798f5..e836847 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/AssignTasksConstants.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/AssignTasksConstants.java @@ -29,6 +29,11 @@ public class AssignTasksConstants { /* 催办短信场景配置*/ public static final int ASSIGN_TASK_SCENE = 6; + /* 到期短信场景配置*/ + public static final int ASSIGN_TASK_REMIND_ADVANCE_SCENE = 7; + //截至日期3小时 + public static final String REMIND_ADVANCE_HOURS = "3"; + /*办理人角色*/ public static final String ASSIGN_ROLE_KEY = "zgs_leader"; /** diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/job/task/ExpireRemindJob.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/job/task/ExpireRemindJob.java index 3b46c17..6f75468 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/job/task/ExpireRemindJob.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/job/task/ExpireRemindJob.java @@ -39,9 +39,7 @@ import static com.zteits.urbanops.module.garden.service.assigntasksinfo.AssignTa @Service public class ExpireRemindJob implements Job { private static final Logger log = LoggerFactory.getLogger(ExpireRemindJob.class); - private static final DateTimeFormatter DEADLINE_FORMATTER = DateTimeFormatter - .ofPattern(FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - .withZone(ZoneId.of("GMT+8")); // 时区与之前配置一致,避免偏移 + @Resource private AssignTasksInfoService assignTasksInfoService; @Resource @@ -93,7 +91,7 @@ public class ExpireRemindJob implements Job { executeRemindLogic(task); // 4. 提醒成功后,更新任务状态+移除触发器(核心优化:成功也移除) - updateTaskRemindStatus(taskId); + //updateTaskRemindStatus(taskId); removeRemindJobSafely(taskId); log.info("【到期提醒Job】执行成功,任务ID:{}", taskId); @@ -113,32 +111,26 @@ public class ExpireRemindJob implements Job { private void executeRemindLogic(AssignTasksInfoDO task) { String taskName = task.getTaskName(); LocalDateTime deadline = task.getDeadline(); - String formattedDeadline = Objects.nonNull(deadline) - ? DEADLINE_FORMATTER.format(deadline) - : ""; // 或 null - String remindContent = String.format("任务【%s】即将到期,到期时间:%s,请及时处理", taskName, deadline); + String remindContent = String.format("您有【%s】上报任务,距离截止时间【%s】小时,请及时处理。", taskName, AssignTasksConstants.REMIND_ADVANCE_HOURS); List matchUserList = assignTasksInfoService.getUsersByCompanyId(task.getCompanyId()); Map templateParams = new HashMap(); - templateParams.put("companyName", task.getCompanyName()); templateParams.put("taskName", task.getTaskName()); - templateParams.put("deadline", formattedDeadline); + templateParams.put("hours", AssignTasksConstants.REMIND_ADVANCE_HOURS); // 5. 发送短信通知 log.info("【到期提醒逻辑】发送短信 signMap: {}", JSONObject.toJSONString(templateParams)); - Boolean sendFlag = false; for (AdminUserRespDTO adminUserRespDTO : matchUserList) { String phonenumber = adminUserRespDTO.getMobile(); if (StringUtils.isEmpty(phonenumber)) { continue; } SmsCodeSendReqDTO reqDTO = new SmsCodeSendReqDTO(); - reqDTO.setScene(AssignTasksConstants.ASSIGN_TASK_SCENE); + reqDTO.setScene(AssignTasksConstants.ASSIGN_TASK_REMIND_ADVANCE_SCENE); reqDTO.setMobile(phonenumber);//手机号 reqDTO.setTemplateParams(templateParams);//短信参数 reqDTO.setCreateIp(LocalIpUtils.getLocalIp()); smsCodeApi.openSendSmsCode(reqDTO); log.info("提交单位任务成功,已通知填报人:手机号:{},任务ID={}", phonenumber, task.getId()); - sendFlag = true; } log.info("【到期提醒逻辑】执行提醒,任务名称:{},到期时间:{},提醒内容:{}", taskName, deadline, remindContent); } 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 b366ebc..6b999d3 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 = 3L; + private static final long REMIND_ADVANCE_HOURS = 4L; // 1. 定义线程安全的格式化器(全局复用,无需重复创建) private static final DateTimeFormatter DEADLINE_FORMATTER = DateTimeFormatter @@ -191,8 +191,8 @@ public class AssignTasksInfoServiceImpl implements AssignTasksInfoService { LocalDateTime now = LocalDateTime.now(DEFAULT_ZONE); // 当前东八区时间 LocalDateTime remindThreshold = now.plusHours(REMIND_ADVANCE_HOURS); - // 核心判断:截止时间 <= (当前时间+3小时) → 不足3小时,不创建定时任务 - if (deadline.isBefore(remindThreshold) || deadline.isEqual(remindThreshold)) { + // 核心判断:截止时间 <= (当前时间+3小时),不创建定时任务 + if (deadline.isBefore(remindThreshold)) { String formattedDeadline = deadline.format(DATE_FORMATTER); String formattedThreshold = remindThreshold.format(DATE_FORMATTER); log.info("任务ID={} 无需创建定时任务:截止时间={},不足{}小时(阈值时间={})", -- libgit2 0.21.4