Commit a449774f7eb824933358e4ba990caf5021f7300e
1 parent
9364cced
到期提醒创建任务修改
Showing
3 changed files
with
13 additions
and
16 deletions
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/AssignTasksConstants.java
| @@ -29,6 +29,11 @@ public class AssignTasksConstants { | @@ -29,6 +29,11 @@ public class AssignTasksConstants { | ||
| 29 | 29 | ||
| 30 | /* 催办短信场景配置*/ | 30 | /* 催办短信场景配置*/ |
| 31 | public static final int ASSIGN_TASK_SCENE = 6; | 31 | public static final int ASSIGN_TASK_SCENE = 6; |
| 32 | + /* 到期短信场景配置*/ | ||
| 33 | + public static final int ASSIGN_TASK_REMIND_ADVANCE_SCENE = 7; | ||
| 34 | + //截至日期3小时 | ||
| 35 | + public static final String REMIND_ADVANCE_HOURS = "3"; | ||
| 36 | + | ||
| 32 | /*办理人角色*/ | 37 | /*办理人角色*/ |
| 33 | public static final String ASSIGN_ROLE_KEY = "zgs_leader"; | 38 | public static final String ASSIGN_ROLE_KEY = "zgs_leader"; |
| 34 | /** | 39 | /** |
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 | @@ -39,9 +39,7 @@ import static com.zteits.urbanops.module.garden.service.assigntasksinfo.AssignTa | ||
| 39 | @Service | 39 | @Service |
| 40 | public class ExpireRemindJob implements Job { | 40 | public class ExpireRemindJob implements Job { |
| 41 | private static final Logger log = LoggerFactory.getLogger(ExpireRemindJob.class); | 41 | private static final Logger log = LoggerFactory.getLogger(ExpireRemindJob.class); |
| 42 | - private static final DateTimeFormatter DEADLINE_FORMATTER = DateTimeFormatter | ||
| 43 | - .ofPattern(FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 44 | - .withZone(ZoneId.of("GMT+8")); // 时区与之前配置一致,避免偏移 | 42 | + |
| 45 | @Resource | 43 | @Resource |
| 46 | private AssignTasksInfoService assignTasksInfoService; | 44 | private AssignTasksInfoService assignTasksInfoService; |
| 47 | @Resource | 45 | @Resource |
| @@ -93,7 +91,7 @@ public class ExpireRemindJob implements Job { | @@ -93,7 +91,7 @@ public class ExpireRemindJob implements Job { | ||
| 93 | executeRemindLogic(task); | 91 | executeRemindLogic(task); |
| 94 | 92 | ||
| 95 | // 4. 提醒成功后,更新任务状态+移除触发器(核心优化:成功也移除) | 93 | // 4. 提醒成功后,更新任务状态+移除触发器(核心优化:成功也移除) |
| 96 | - updateTaskRemindStatus(taskId); | 94 | + //updateTaskRemindStatus(taskId); |
| 97 | removeRemindJobSafely(taskId); | 95 | removeRemindJobSafely(taskId); |
| 98 | log.info("【到期提醒Job】执行成功,任务ID:{}", taskId); | 96 | log.info("【到期提醒Job】执行成功,任务ID:{}", taskId); |
| 99 | 97 | ||
| @@ -113,32 +111,26 @@ public class ExpireRemindJob implements Job { | @@ -113,32 +111,26 @@ public class ExpireRemindJob implements Job { | ||
| 113 | private void executeRemindLogic(AssignTasksInfoDO task) { | 111 | private void executeRemindLogic(AssignTasksInfoDO task) { |
| 114 | String taskName = task.getTaskName(); | 112 | String taskName = task.getTaskName(); |
| 115 | LocalDateTime deadline = task.getDeadline(); | 113 | LocalDateTime deadline = task.getDeadline(); |
| 116 | - String formattedDeadline = Objects.nonNull(deadline) | ||
| 117 | - ? DEADLINE_FORMATTER.format(deadline) | ||
| 118 | - : ""; // 或 null | ||
| 119 | - String remindContent = String.format("任务【%s】即将到期,到期时间:%s,请及时处理", taskName, deadline); | 114 | + String remindContent = String.format("您有【%s】上报任务,距离截止时间【%s】小时,请及时处理。", taskName, AssignTasksConstants.REMIND_ADVANCE_HOURS); |
| 120 | 115 | ||
| 121 | List<AdminUserRespDTO> matchUserList = assignTasksInfoService.getUsersByCompanyId(task.getCompanyId()); | 116 | List<AdminUserRespDTO> matchUserList = assignTasksInfoService.getUsersByCompanyId(task.getCompanyId()); |
| 122 | Map<String, Object> templateParams = new HashMap<String, Object>(); | 117 | Map<String, Object> templateParams = new HashMap<String, Object>(); |
| 123 | - templateParams.put("companyName", task.getCompanyName()); | ||
| 124 | templateParams.put("taskName", task.getTaskName()); | 118 | templateParams.put("taskName", task.getTaskName()); |
| 125 | - templateParams.put("deadline", formattedDeadline); | 119 | + templateParams.put("hours", AssignTasksConstants.REMIND_ADVANCE_HOURS); |
| 126 | // 5. 发送短信通知 | 120 | // 5. 发送短信通知 |
| 127 | log.info("【到期提醒逻辑】发送短信 signMap: {}", JSONObject.toJSONString(templateParams)); | 121 | log.info("【到期提醒逻辑】发送短信 signMap: {}", JSONObject.toJSONString(templateParams)); |
| 128 | - Boolean sendFlag = false; | ||
| 129 | for (AdminUserRespDTO adminUserRespDTO : matchUserList) { | 122 | for (AdminUserRespDTO adminUserRespDTO : matchUserList) { |
| 130 | String phonenumber = adminUserRespDTO.getMobile(); | 123 | String phonenumber = adminUserRespDTO.getMobile(); |
| 131 | if (StringUtils.isEmpty(phonenumber)) { | 124 | if (StringUtils.isEmpty(phonenumber)) { |
| 132 | continue; | 125 | continue; |
| 133 | } | 126 | } |
| 134 | SmsCodeSendReqDTO reqDTO = new SmsCodeSendReqDTO(); | 127 | SmsCodeSendReqDTO reqDTO = new SmsCodeSendReqDTO(); |
| 135 | - reqDTO.setScene(AssignTasksConstants.ASSIGN_TASK_SCENE); | 128 | + reqDTO.setScene(AssignTasksConstants.ASSIGN_TASK_REMIND_ADVANCE_SCENE); |
| 136 | reqDTO.setMobile(phonenumber);//手机号 | 129 | reqDTO.setMobile(phonenumber);//手机号 |
| 137 | reqDTO.setTemplateParams(templateParams);//短信参数 | 130 | reqDTO.setTemplateParams(templateParams);//短信参数 |
| 138 | reqDTO.setCreateIp(LocalIpUtils.getLocalIp()); | 131 | reqDTO.setCreateIp(LocalIpUtils.getLocalIp()); |
| 139 | smsCodeApi.openSendSmsCode(reqDTO); | 132 | smsCodeApi.openSendSmsCode(reqDTO); |
| 140 | log.info("提交单位任务成功,已通知填报人:手机号:{},任务ID={}", phonenumber, task.getId()); | 133 | log.info("提交单位任务成功,已通知填报人:手机号:{},任务ID={}", phonenumber, task.getId()); |
| 141 | - sendFlag = true; | ||
| 142 | } | 134 | } |
| 143 | log.info("【到期提醒逻辑】执行提醒,任务名称:{},到期时间:{},提醒内容:{}", taskName, deadline, remindContent); | 135 | log.info("【到期提醒逻辑】执行提醒,任务名称:{},到期时间:{},提醒内容:{}", taskName, deadline, remindContent); |
| 144 | } | 136 | } |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasksinfo/AssignTasksInfoServiceImpl.java
| @@ -86,7 +86,7 @@ public class AssignTasksInfoServiceImpl implements AssignTasksInfoService { | @@ -86,7 +86,7 @@ public class AssignTasksInfoServiceImpl implements AssignTasksInfoService { | ||
| 86 | public static final String FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND = "yyyy-MM-dd HH:mm:ss"; | 86 | public static final String FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND = "yyyy-MM-dd HH:mm:ss"; |
| 87 | 87 | ||
| 88 | // 提前提醒(3小时) | 88 | // 提前提醒(3小时) |
| 89 | - private static final long REMIND_ADVANCE_HOURS = 3L; | 89 | + private static final long REMIND_ADVANCE_HOURS = 4L; |
| 90 | 90 | ||
| 91 | // 1. 定义线程安全的格式化器(全局复用,无需重复创建) | 91 | // 1. 定义线程安全的格式化器(全局复用,无需重复创建) |
| 92 | private static final DateTimeFormatter DEADLINE_FORMATTER = DateTimeFormatter | 92 | private static final DateTimeFormatter DEADLINE_FORMATTER = DateTimeFormatter |
| @@ -191,8 +191,8 @@ public class AssignTasksInfoServiceImpl implements AssignTasksInfoService { | @@ -191,8 +191,8 @@ public class AssignTasksInfoServiceImpl implements AssignTasksInfoService { | ||
| 191 | LocalDateTime now = LocalDateTime.now(DEFAULT_ZONE); // 当前东八区时间 | 191 | LocalDateTime now = LocalDateTime.now(DEFAULT_ZONE); // 当前东八区时间 |
| 192 | LocalDateTime remindThreshold = now.plusHours(REMIND_ADVANCE_HOURS); | 192 | LocalDateTime remindThreshold = now.plusHours(REMIND_ADVANCE_HOURS); |
| 193 | 193 | ||
| 194 | - // 核心判断:截止时间 <= (当前时间+3小时) → 不足3小时,不创建定时任务 | ||
| 195 | - if (deadline.isBefore(remindThreshold) || deadline.isEqual(remindThreshold)) { | 194 | + // 核心判断:截止时间 <= (当前时间+3小时),不创建定时任务 |
| 195 | + if (deadline.isBefore(remindThreshold)) { | ||
| 196 | String formattedDeadline = deadline.format(DATE_FORMATTER); | 196 | String formattedDeadline = deadline.format(DATE_FORMATTER); |
| 197 | String formattedThreshold = remindThreshold.format(DATE_FORMATTER); | 197 | String formattedThreshold = remindThreshold.format(DATE_FORMATTER); |
| 198 | log.info("任务ID={} 无需创建定时任务:截止时间={},不足{}小时(阈值时间={})", | 198 | log.info("任务ID={} 无需创建定时任务:截止时间={},不足{}小时(阈值时间={})", |