Commit 1b1565f3674328ae9d004ad9082ce9f95ec0889e
1 parent
ce252f1e
到期任务增加日志
Showing
2 changed files
with
19 additions
and
13 deletions
urbanops-framework/urbanops-common/src/main/java/com/zteits/urbanops/framework/common/util/date/DateUtils.java
| ... | ... | @@ -32,6 +32,7 @@ public class DateUtils { |
| 32 | 32 | public static final String FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND = "yyyy-MM-dd HH:mm:ss"; |
| 33 | 33 | |
| 34 | 34 | public static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"); |
| 35 | + public static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); | |
| 35 | 36 | |
| 36 | 37 | |
| 37 | 38 | /** | ... | ... |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasks/AssignTasksServiceImpl.java
| ... | ... | @@ -20,7 +20,6 @@ import com.zteits.urbanops.module.garden.service.assigntasksinfo.QuartzRemindSer |
| 20 | 20 | import com.zteits.urbanops.module.garden.service.unitintegraltotal.UnitIntegralService; |
| 21 | 21 | import com.zteits.urbanops.module.system.api.permission.RoleApi; |
| 22 | 22 | import com.zteits.urbanops.module.system.api.user.AdminUserApi; |
| 23 | -import com.zteits.urbanops.module.system.api.user.dto.AdminUserRespDTO; | |
| 24 | 23 | import jakarta.annotation.Resource; |
| 25 | 24 | import lombok.extern.slf4j.Slf4j; |
| 26 | 25 | import org.quartz.SchedulerException; |
| ... | ... | @@ -30,9 +29,7 @@ import org.springframework.util.CollectionUtils; |
| 30 | 29 | import org.springframework.validation.annotation.Validated; |
| 31 | 30 | |
| 32 | 31 | import java.time.LocalDateTime; |
| 33 | -import java.time.ZoneId; | |
| 34 | 32 | import java.util.*; |
| 35 | -import java.util.function.Function; | |
| 36 | 33 | import java.util.stream.Collectors; |
| 37 | 34 | |
| 38 | 35 | import static com.zteits.urbanops.framework.common.exception.enums.GlobalErrorCodeConstants.BAD_REQUEST; |
| ... | ... | @@ -238,20 +235,21 @@ public class AssignTasksServiceImpl implements AssignTasksService { |
| 238 | 235 | // 1. 初始化统计变量:记录更新成功的超时记录数 |
| 239 | 236 | int updatedCount = 0; |
| 240 | 237 | LocalDateTime now = LocalDateTime.now(); // 提前获取当前时间(同一批处理时间一致) |
| 241 | - log.info("开始处理超时派单,当前时间:{}", now); | |
| 242 | - | |
| 238 | + String batchId = String.valueOf(System.currentTimeMillis()); // 批次ID,便于日志追踪 | |
| 239 | + log.info("[派单超时处理-{}] 开始处理超时派单,当前时间:{}", batchId, now); | |
| 243 | 240 | try { |
| 244 | 241 | // 2. 查询所有“未完成的派单”(parentFinish=0) |
| 245 | 242 | List<AssignTasksDO> assignTasks = assignTasksMapper.selectList(AssignTasksDO::getParentFinish,0); |
| 246 | - | |
| 247 | 243 | if (CollectionUtils.isEmpty(assignTasks)) { |
| 248 | - log.info("无未完成的派单,无需处理"); | |
| 244 | + log.info("[派单超时处理-{}] 无未完成的派单,无需处理", batchId); | |
| 249 | 245 | return 0; |
| 250 | 246 | } |
| 247 | + log.info("[派单超时处理-{}] 查询到{}条未完成的派单", batchId, assignTasks.size()); | |
| 251 | 248 | |
| 252 | 249 | List<AssignTasksInfoDO> timeoutTaskInfos = new ArrayList<>(); |
| 253 | 250 | |
| 254 | 251 | for (AssignTasksDO assignTasksDO : assignTasks) { |
| 252 | + Long taskId = assignTasksDO.getId(); | |
| 255 | 253 | //查询所有符合条件的派单详情(taskId in 列表 + finish=0) |
| 256 | 254 | LambdaQueryWrapper<AssignTasksInfoDO> queryWrapper = Wrappers.lambdaQuery(); |
| 257 | 255 | queryWrapper.eq(AssignTasksInfoDO::getFinish, 0); |
| ... | ... | @@ -259,24 +257,31 @@ public class AssignTasksServiceImpl implements AssignTasksService { |
| 259 | 257 | queryWrapper.eq(AssignTasksInfoDO::getIsOverdue, 0); |
| 260 | 258 | List<AssignTasksInfoDO> taskInfoList = assiAssignTasksInfoMapper.selectList(queryWrapper); |
| 261 | 259 | if (CollectionUtils.isEmpty(taskInfoList)) { |
| 262 | - log.info("未找到未完成的派单详情,无需处理"); | |
| 260 | + log.info("[派单超时处理-{}] 派单ID:{} 无未完成/未超时的详情,跳过", batchId, taskId); | |
| 263 | 261 | continue; |
| 264 | 262 | } |
| 265 | 263 | |
| 266 | 264 | // 4. 筛选“已超时”的派单详情(截止时间 < 当前时间) |
| 267 | 265 | for (AssignTasksInfoDO taskInfo : taskInfoList) { |
| 268 | - // 4.1 转换:将数据库的Date | |
| 269 | - LocalDateTime deadline = assignTasks.get(0).getDeadline(); | |
| 270 | - // 4.2 比较:截止时间早于当前时间 → 超时 | |
| 271 | - if (deadline.isBefore(now)) { | |
| 266 | + // 4.1 | |
| 267 | + Long detailId = taskInfo.getId(); | |
| 268 | + LocalDateTime deadline = taskInfo.getDeadline(); | |
| 269 | + String deadlineStr = deadline.format(DateUtils.DATE_TIME_FORMATTER); | |
| 270 | + String nowStr = now.format(DateUtils.DATE_TIME_FORMATTER); | |
| 271 | + boolean isOverdue = deadline.isBefore(now); | |
| 272 | + log.info("[派单超时处理-{}] 派单详情ID:{} 时间对比 - 截止时间(deadline):{},当前时间(now):{},是否超时:{}", | |
| 273 | + batchId, detailId, deadlineStr, nowStr, isOverdue); | |
| 274 | + if (isOverdue) { | |
| 272 | 275 | taskInfo.setIsOverdue(1); // 标记为超时 |
| 273 | 276 | timeoutTaskInfos.add(taskInfo); |
| 277 | + log.debug("[派单超时处理-{}] 派单详情ID:{} 已超时(截止时间:{})", | |
| 278 | + batchId, taskInfo.getId(), deadline); | |
| 274 | 279 | } |
| 275 | 280 | } |
| 276 | 281 | } |
| 277 | 282 | |
| 278 | 283 | if (CollectionUtils.isEmpty(timeoutTaskInfos)) { |
| 279 | - log.info("无超时的派单详情,无需更新"); | |
| 284 | + log.info("[派单超时处理-{}] 无超时的派单详情,无需更新", batchId); | |
| 280 | 285 | return 0; |
| 281 | 286 | } |
| 282 | 287 | ... | ... |