From 285d3e4efaa0b45b80d475f20ebbe4bf76c9939e Mon Sep 17 00:00:00 2001 From: 王彪总 Date: Mon, 13 Jul 2026 15:54:33 +0800 Subject: [PATCH] fix(homepage): 修复任务查询逻辑并增加调试日志 --- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/maintainplan/MaintainPlanDetailMapper.java | 7 ++++--- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/homepage/HomepageSummaryServiceImpl.java | 42 ++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/resources/mapper/homepage/HomepageSummaryMapper.xml | 4 ++-- 3 files changed, 48 insertions(+), 5 deletions(-) diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/maintainplan/MaintainPlanDetailMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/maintainplan/MaintainPlanDetailMapper.java index 99a8751..7d7a099 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/maintainplan/MaintainPlanDetailMapper.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/maintainplan/MaintainPlanDetailMapper.java @@ -3,6 +3,7 @@ package com.zteits.urbanops.module.garden.dal.mysql.maintainplan; import com.baomidou.mybatisplus.core.metadata.IPage; import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.util.collection.ArrayUtils; import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; import com.zteits.urbanops.module.garden.controller.admin.maintainplan.vo.MaintainPlanDetailPageReqVO; @@ -33,8 +34,8 @@ public interface MaintainPlanDetailMapper extends BaseMapperX getMaintainNotFinishPlanCommitDetail(@Param("req") AppMaintainNotFinishPlanDetailReqVO reqVO); -} \ No newline at end of file +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/homepage/HomepageSummaryServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/homepage/HomepageSummaryServiceImpl.java index 74af2b4..71d5ef8 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/homepage/HomepageSummaryServiceImpl.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/homepage/HomepageSummaryServiceImpl.java @@ -429,6 +429,8 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ @Override public TaskDistanceSortResultVO queryTaskDetailsWithDistance(AppTaskDistanceSortReqVO req) { + Log.info("queryTaskDetailsWithDistance: " + JSON.toJSONString(req)); + // 1. 获取当前登录用户信息 Long userId = SecurityFrameworkUtils.getLoginUserId(); Long deptId = SecurityFrameworkUtils.getDeptId(); @@ -506,6 +508,7 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ result.add(sortVo); } } + logTaskList("已办SQL原始记录", result); Log.info("返回App参数: " + JSON.toJSONString(result)); return result; } @@ -540,6 +543,7 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ LocalDateTime now = LocalDateTime.now(); List allTasks = homepageSummaryMapper .queryPendingTaskDetailsWithGps(roleIds, userId, deptId, now); + logTaskList("待办SQL原始记录(距离排序)", allTasks); // 分离有 GPS 和无 GPS 任务 List tasksWithGps = new ArrayList<>(); @@ -660,6 +664,7 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ @Override public TaskDistanceSortResultVO queryTaskDetailsWithSmartSort(AppTaskSmartSortReqVO req) { + Log.info("queryTaskDetailsWithSmartSort: " + JSON.toJSONString(req)); Long userId = SecurityFrameworkUtils.getLoginUserId(); Long deptId = SecurityFrameworkUtils.getDeptId(); @@ -706,13 +711,23 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ } catch (Exception e) { Log.warn("读取智能排序配置失败", e); } + Log.info("智能排序配置: distWeight=" + distWeight + ", effWeight=" + effWeight + + ", threshold=" + threshold + ", clamp=[" + clampMin + "," + clampMax + "]"); // 2. 查询今日待办任务 List allTasks = homepageSummaryMapper .queryPendingTaskDetailsWithGps(roleIds, userId, deptId, LocalDateTime.now()); + Log.info("待办任务总数: " + (allTasks != null ? allTasks.size() : 0) + ", userId=" + userId + ", deptId=" + deptId); + logTaskList("待办SQL原始记录(智能排序)", allTasks); // 3. 查询效率矩阵 Map effMap = loadEfficiencyMap(userId); + Log.info("效率矩阵条目数: " + effMap.size()); + if (!effMap.isEmpty()) { + effMap.forEach((k, v) -> Log.info(" eff: key=" + k + ", ratio=" + v.getEfficiencyRatio() + + ", userAvg=" + v.getAvgMinutes() + ", teamAvg=" + v.getTeamAvgMinutes() + + ", cnt=" + v.getCompletedCount())); + } // 4. 为每个任务打分 List tasksWithGps = new ArrayList<>(); @@ -737,10 +752,20 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ double distScore = Math.max(0, 1 - dist / threshold); task.setDistanceScore(Math.round(distScore * 100.0) / 100.0); task.setCompositeScore(Math.round((distWeight * distScore + effWeight * effScore) * 100.0) / 100.0); + Log.info(" score: " + task.getTaskName() + " | dist=" + (int)dist + "m" + + " | distScore=" + task.getDistanceScore() + + " | effScore=" + task.getEfficiencyScore() + + " | eff%=" + task.getEfficiencyPercent() + + " | composite=" + task.getCompositeScore() + + " | type=" + task.getTaskType() + "/" + task.getTaskSubType()); tasksWithGps.add(task); } else { task.setDistanceScore(0.0); task.setCompositeScore(Math.round((effWeight * effScore) * 100.0) / 100.0); + Log.info(" score(无GPS): " + task.getTaskName() + + " | effScore=" + task.getEfficiencyScore() + + " | eff%=" + task.getEfficiencyPercent() + + " | type=" + task.getTaskType() + "/" + task.getTaskSubType()); tasksWithoutGps.add(task); } } @@ -833,4 +858,21 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ if (val < min) return min; return val; } + + private void logTaskList(String tag, List list) { + if (list == null) { + Log.info(tag + ": null"); + return; + } + Log.info(tag + ": 共" + list.size() + "条"); + for (int i = 0; i < list.size(); i++) { + TaskDistanceSortRespVO t = list.get(i); + Log.info(tag + "[" + i + "] taskName=" + t.getTaskName() + + ", taskType=" + t.getTaskType() + + ", planNo=" + t.getPlanNo() + + ", batchNo=" + t.getBatchNo() + + ", distance=" + t.getDistance() + + ", lat=" + t.getTaskLat() + ", lon=" + t.getTaskLon()); + } + } } diff --git a/urbanops-module-garden/src/main/resources/mapper/homepage/HomepageSummaryMapper.xml b/urbanops-module-garden/src/main/resources/mapper/homepage/HomepageSummaryMapper.xml index c426137..3f2740b 100644 --- a/urbanops-module-garden/src/main/resources/mapper/homepage/HomepageSummaryMapper.xml +++ b/urbanops-module-garden/src/main/resources/mapper/homepage/HomepageSummaryMapper.xml @@ -647,7 +647,7 @@ #{roleId} - AND NOT EXISTS (SELECT 1 FROM garden_inspection_plan_commit ic WHERE ic.batch_no = a.batch_no AND ic.user_id = #{userId}) + AND r.starting_latitude IS NOT NULL AND r.starting_latitude != '' UNION ALL @@ -677,7 +677,7 @@ #{roleId} - AND NOT EXISTS (SELECT 1 FROM garden_maintain_plan_commit mc WHERE mc.batch_no = a.batch_no AND mc.user_id = #{userId}) + AND r.starting_latitude IS NOT NULL AND r.starting_latitude != '' ) t -- libgit2 0.21.4