diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/job/TaskEfficiencyCalculateJob.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/job/TaskEfficiencyCalculateJob.java index e8364eb..df6d5dc 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/job/TaskEfficiencyCalculateJob.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/job/TaskEfficiencyCalculateJob.java @@ -1,5 +1,6 @@ package com.zteits.urbanops.module.garden.job; +import com.zteits.urbanops.framework.quartz.core.handler.JobHandler; import com.zteits.urbanops.module.garden.dal.dataobject.UserTaskEfficiencyDO; import com.zteits.urbanops.module.garden.dal.mysql.UserTaskEfficiencyMapper; import jakarta.annotation.Resource; @@ -21,12 +22,13 @@ import java.util.*; */ @Slf4j @Component -public class TaskEfficiencyCalculateJob { +public class TaskEfficiencyCalculateJob implements JobHandler { @Resource private UserTaskEfficiencyMapper userTaskEfficiencyMapper; - public void execute() { + @Override + public String execute(String param) { String statPeriod = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM")); log.info("TaskEfficiencyCalculateJob start, statPeriod={}", statPeriod); try { @@ -44,7 +46,7 @@ public class TaskEfficiencyCalculateJob { if (all.isEmpty()) { log.info("TaskEfficiencyCalculateJob done, no data"); - return; + return "success, no data"; } // 4. 计算班组均值 @@ -69,8 +71,10 @@ public class TaskEfficiencyCalculateJob { } log.info("TaskEfficiencyCalculateJob done, total={}", all.size()); + return "success, total=" + all.size(); } catch (Exception e) { log.error("TaskEfficiencyCalculateJob error", e); + return "error: " + e.getMessage(); } } 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 8f94b1e..d7ebc7d 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 @@ -634,6 +634,18 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ public TaskDistanceSortResultVO queryTaskDetailsWithSmartSort(AppTaskSmartSortReqVO req) { Long userId = SecurityFrameworkUtils.getLoginUserId(); Long deptId = SecurityFrameworkUtils.getDeptId(); + + // 已办:查询已完成任务,不走智能排序 + if (req.getQueryType() != null && req.getQueryType() == 2) { + List sortedTasks = queryCompletedTasksWithoutGps(userId); + TeamProgressVO teamProgress = buildTeamProgress(userId, deptId); + TaskDistanceSortResultVO result = new TaskDistanceSortResultVO(); + result.setSortedTasks(sortedTasks); + result.setTeamProgress(teamProgress); + result.setTotalPendingTasks(sortedTasks.size()); + return result; + } + List roleIds = roleApi.getRoleIdsByUserId(userId); // 1. 从字典读取配置 diff --git a/urbanops-module-garden/src/main/resources/mapper/UserTaskEfficiencyMapper.xml b/urbanops-module-garden/src/main/resources/mapper/UserTaskEfficiencyMapper.xml index c14493a..9e14855 100644 --- a/urbanops-module-garden/src/main/resources/mapper/UserTaskEfficiencyMapper.xml +++ b/urbanops-module-garden/src/main/resources/mapper/UserTaskEfficiencyMapper.xml @@ -29,8 +29,7 @@ SUM(TIMESTAMPDIFF(MINUTE, d.begin_time, c.finish_time)) AS total_min, AVG(TIMESTAMPDIFF(MINUTE, d.begin_time, c.finish_time)) AS avg_min FROM garden_inspection_plan_commit c - INNER JOIN garden_inspection_plan_detail d ON c.batch_no = d.batch_no AND c.user_id = d.user_id - INNER JOIN garden_inspection_plan p ON c.batch_no = p.batch_no + INNER JOIN garden_inspection_plan_detail d ON c.batch_no = d.batch_no INNER JOIN garden_inspection_plan p ON c.batch_no = p.batch_no INNER JOIN system_users u ON c.user_id = u.id WHERE c.finish_time >= #{beginTime} AND c.finish_time IS NOT NULL @@ -46,8 +45,7 @@ SUM(TIMESTAMPDIFF(MINUTE, d.begin_time, c.finish_time)) AS total_min, AVG(TIMESTAMPDIFF(MINUTE, d.begin_time, c.finish_time)) AS avg_min FROM garden_maintain_plan_commit c - INNER JOIN garden_maintain_plan_detail d ON c.batch_no = d.batch_no AND c.user_id = d.user_id - INNER JOIN garden_maintain_plan p ON c.batch_no = p.batch_no + INNER JOIN garden_maintain_plan_detail d ON c.batch_no = d.batch_no INNER JOIN garden_maintain_plan p ON c.batch_no = p.batch_no INNER JOIN system_users u ON c.user_id = u.id WHERE c.finish_time >= #{beginTime} AND c.finish_time IS NOT NULL