Commit a449774f7eb824933358e4ba990caf5021f7300e

Authored by wangqian
1 parent 9364cced

到期提醒创建任务修改

urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/AssignTasksConstants.java
... ... @@ -29,6 +29,11 @@ public class AssignTasksConstants {
29 29  
30 30 /* 催办短信场景配置*/
31 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 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 39 @Service
40 40 public class ExpireRemindJob implements Job {
41 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 43 @Resource
46 44 private AssignTasksInfoService assignTasksInfoService;
47 45 @Resource
... ... @@ -93,7 +91,7 @@ public class ExpireRemindJob implements Job {
93 91 executeRemindLogic(task);
94 92  
95 93 // 4. 提醒成功后,更新任务状态+移除触发器(核心优化:成功也移除)
96   - updateTaskRemindStatus(taskId);
  94 + //updateTaskRemindStatus(taskId);
97 95 removeRemindJobSafely(taskId);
98 96 log.info("【到期提醒Job】执行成功,任务ID:{}", taskId);
99 97  
... ... @@ -113,32 +111,26 @@ public class ExpireRemindJob implements Job {
113 111 private void executeRemindLogic(AssignTasksInfoDO task) {
114 112 String taskName = task.getTaskName();
115 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 116 List<AdminUserRespDTO> matchUserList = assignTasksInfoService.getUsersByCompanyId(task.getCompanyId());
122 117 Map<String, Object> templateParams = new HashMap<String, Object>();
123   - templateParams.put("companyName", task.getCompanyName());
124 118 templateParams.put("taskName", task.getTaskName());
125   - templateParams.put("deadline", formattedDeadline);
  119 + templateParams.put("hours", AssignTasksConstants.REMIND_ADVANCE_HOURS);
126 120 // 5. 发送短信通知
127 121 log.info("【到期提醒逻辑】发送短信 signMap: {}", JSONObject.toJSONString(templateParams));
128   - Boolean sendFlag = false;
129 122 for (AdminUserRespDTO adminUserRespDTO : matchUserList) {
130 123 String phonenumber = adminUserRespDTO.getMobile();
131 124 if (StringUtils.isEmpty(phonenumber)) {
132 125 continue;
133 126 }
134 127 SmsCodeSendReqDTO reqDTO = new SmsCodeSendReqDTO();
135   - reqDTO.setScene(AssignTasksConstants.ASSIGN_TASK_SCENE);
  128 + reqDTO.setScene(AssignTasksConstants.ASSIGN_TASK_REMIND_ADVANCE_SCENE);
136 129 reqDTO.setMobile(phonenumber);//手机号
137 130 reqDTO.setTemplateParams(templateParams);//短信参数
138 131 reqDTO.setCreateIp(LocalIpUtils.getLocalIp());
139 132 smsCodeApi.openSendSmsCode(reqDTO);
140 133 log.info("提交单位任务成功,已通知填报人:手机号:{},任务ID={}", phonenumber, task.getId());
141   - sendFlag = true;
142 134 }
143 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 86 public static final String FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND = "yyyy-MM-dd HH:mm:ss";
87 87  
88 88 // 提前提醒(3小时)
89   - private static final long REMIND_ADVANCE_HOURS = 3L;
  89 + private static final long REMIND_ADVANCE_HOURS = 4L;
90 90  
91 91 // 1. 定义线程安全的格式化器(全局复用,无需重复创建)
92 92 private static final DateTimeFormatter DEADLINE_FORMATTER = DateTimeFormatter
... ... @@ -191,8 +191,8 @@ public class AssignTasksInfoServiceImpl implements AssignTasksInfoService {
191 191 LocalDateTime now = LocalDateTime.now(DEFAULT_ZONE); // 当前东八区时间
192 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 196 String formattedDeadline = deadline.format(DATE_FORMATTER);
197 197 String formattedThreshold = remindThreshold.format(DATE_FORMATTER);
198 198 log.info("任务ID={} 无需创建定时任务:截止时间={},不足{}小时(阈值时间={})",
... ...