From 1b1565f3674328ae9d004ad9082ce9f95ec0889e Mon Sep 17 00:00:00 2001 From: wangqian <1406304305@qq.com> Date: Fri, 13 Mar 2026 16:06:19 +0800 Subject: [PATCH] 到期任务增加日志 --- urbanops-framework/urbanops-common/src/main/java/com/zteits/urbanops/framework/common/util/date/DateUtils.java | 1 + urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasks/AssignTasksServiceImpl.java | 31 ++++++++++++++++++------------- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/urbanops-framework/urbanops-common/src/main/java/com/zteits/urbanops/framework/common/util/date/DateUtils.java b/urbanops-framework/urbanops-common/src/main/java/com/zteits/urbanops/framework/common/util/date/DateUtils.java index 21055a3..808c8e2 100644 --- a/urbanops-framework/urbanops-common/src/main/java/com/zteits/urbanops/framework/common/util/date/DateUtils.java +++ b/urbanops-framework/urbanops-common/src/main/java/com/zteits/urbanops/framework/common/util/date/DateUtils.java @@ -32,6 +32,7 @@ public class DateUtils { public static final String FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND = "yyyy-MM-dd HH:mm:ss"; public static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"); + public static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); /** diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasks/AssignTasksServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasks/AssignTasksServiceImpl.java index 71c6233..cf15402 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/assigntasks/AssignTasksServiceImpl.java +++ b/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 import com.zteits.urbanops.module.garden.service.unitintegraltotal.UnitIntegralService; import com.zteits.urbanops.module.system.api.permission.RoleApi; import com.zteits.urbanops.module.system.api.user.AdminUserApi; -import com.zteits.urbanops.module.system.api.user.dto.AdminUserRespDTO; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.quartz.SchedulerException; @@ -30,9 +29,7 @@ import org.springframework.util.CollectionUtils; import org.springframework.validation.annotation.Validated; import java.time.LocalDateTime; -import java.time.ZoneId; import java.util.*; -import java.util.function.Function; import java.util.stream.Collectors; import static com.zteits.urbanops.framework.common.exception.enums.GlobalErrorCodeConstants.BAD_REQUEST; @@ -238,20 +235,21 @@ public class AssignTasksServiceImpl implements AssignTasksService { // 1. 初始化统计变量:记录更新成功的超时记录数 int updatedCount = 0; LocalDateTime now = LocalDateTime.now(); // 提前获取当前时间(同一批处理时间一致) - log.info("开始处理超时派单,当前时间:{}", now); - + String batchId = String.valueOf(System.currentTimeMillis()); // 批次ID,便于日志追踪 + log.info("[派单超时处理-{}] 开始处理超时派单,当前时间:{}", batchId, now); try { // 2. 查询所有“未完成的派单”(parentFinish=0) List assignTasks = assignTasksMapper.selectList(AssignTasksDO::getParentFinish,0); - if (CollectionUtils.isEmpty(assignTasks)) { - log.info("无未完成的派单,无需处理"); + log.info("[派单超时处理-{}] 无未完成的派单,无需处理", batchId); return 0; } + log.info("[派单超时处理-{}] 查询到{}条未完成的派单", batchId, assignTasks.size()); List timeoutTaskInfos = new ArrayList<>(); for (AssignTasksDO assignTasksDO : assignTasks) { + Long taskId = assignTasksDO.getId(); //查询所有符合条件的派单详情(taskId in 列表 + finish=0) LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); queryWrapper.eq(AssignTasksInfoDO::getFinish, 0); @@ -259,24 +257,31 @@ public class AssignTasksServiceImpl implements AssignTasksService { queryWrapper.eq(AssignTasksInfoDO::getIsOverdue, 0); List taskInfoList = assiAssignTasksInfoMapper.selectList(queryWrapper); if (CollectionUtils.isEmpty(taskInfoList)) { - log.info("未找到未完成的派单详情,无需处理"); + log.info("[派单超时处理-{}] 派单ID:{} 无未完成/未超时的详情,跳过", batchId, taskId); continue; } // 4. 筛选“已超时”的派单详情(截止时间 < 当前时间) for (AssignTasksInfoDO taskInfo : taskInfoList) { - // 4.1 转换:将数据库的Date - LocalDateTime deadline = assignTasks.get(0).getDeadline(); - // 4.2 比较:截止时间早于当前时间 → 超时 - if (deadline.isBefore(now)) { + // 4.1 + Long detailId = taskInfo.getId(); + LocalDateTime deadline = taskInfo.getDeadline(); + String deadlineStr = deadline.format(DateUtils.DATE_TIME_FORMATTER); + String nowStr = now.format(DateUtils.DATE_TIME_FORMATTER); + boolean isOverdue = deadline.isBefore(now); + log.info("[派单超时处理-{}] 派单详情ID:{} 时间对比 - 截止时间(deadline):{},当前时间(now):{},是否超时:{}", + batchId, detailId, deadlineStr, nowStr, isOverdue); + if (isOverdue) { taskInfo.setIsOverdue(1); // 标记为超时 timeoutTaskInfos.add(taskInfo); + log.debug("[派单超时处理-{}] 派单详情ID:{} 已超时(截止时间:{})", + batchId, taskInfo.getId(), deadline); } } } if (CollectionUtils.isEmpty(timeoutTaskInfos)) { - log.info("无超时的派单详情,无需更新"); + log.info("[派单超时处理-{}] 无超时的派单详情,无需更新", batchId); return 0; } -- libgit2 0.21.4