Commit fa50f5a7e043161b8e7b0ebf5e5320c38456e99f

Authored by 王彪总
1 parent 5618a89b

feat(garden): 新增任务距离排序和智能排序功能

- 实现任务按距离排序和班组进度统计功能
- 添加任务智能排序(距离+个人效率加权)功能
- 新增GPS距离计算工具类和相关数据传输对象
- 添加出行速度配置和智能排序权重配置字典类型
- 实现用户任务效率预计算定时任务
- 优化API签名切面注解使用方式
- 添加微信公众号开放平台回调接口免登录配置
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/homepage/AppHomepageSummaryController.java
@@ -2,10 +2,7 @@ package com.zteits.urbanops.module.garden.controller.app.homepage; @@ -2,10 +2,7 @@ package com.zteits.urbanops.module.garden.controller.app.homepage;
2 2
3 import com.zteits.urbanops.framework.common.pojo.CommonResult; 3 import com.zteits.urbanops.framework.common.pojo.CommonResult;
4 import com.zteits.urbanops.framework.common.pojo.PageResult; 4 import com.zteits.urbanops.framework.common.pojo.PageResult;
5 -import com.zteits.urbanops.module.garden.controller.app.homepage.vo.AppHomePageSummaryPageReqVO;  
6 -import com.zteits.urbanops.module.garden.controller.app.homepage.vo.AppHomePageSummaryReqVO;  
7 -import com.zteits.urbanops.module.garden.controller.app.homepage.vo.TaskCompletionStatusRspVo;  
8 -import com.zteits.urbanops.module.garden.controller.app.homepage.vo.TaskDetailsRspVo; 5 +import com.zteits.urbanops.module.garden.controller.app.homepage.vo.*;
9 import com.zteits.urbanops.module.garden.service.homepage.HomepageSummaryService; 6 import com.zteits.urbanops.module.garden.service.homepage.HomepageSummaryService;
10 import io.swagger.v3.oas.annotations.Operation; 7 import io.swagger.v3.oas.annotations.Operation;
11 import io.swagger.v3.oas.annotations.tags.Tag; 8 import io.swagger.v3.oas.annotations.tags.Tag;
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/homepage/HomepageSummaryMapper.java
@@ -6,6 +6,7 @@ import com.zteits.urbanops.module.garden.controller.admin.homepage.vo.CommitTask @@ -6,6 +6,7 @@ import com.zteits.urbanops.module.garden.controller.admin.homepage.vo.CommitTask
6 import com.zteits.urbanops.module.garden.controller.admin.homepage.vo.CommitWorkOrderRespVo; 6 import com.zteits.urbanops.module.garden.controller.admin.homepage.vo.CommitWorkOrderRespVo;
7 import com.zteits.urbanops.module.garden.controller.admin.homepage.vo.CommitWorkOrderSourceRespVo; 7 import com.zteits.urbanops.module.garden.controller.admin.homepage.vo.CommitWorkOrderSourceRespVo;
8 import com.zteits.urbanops.module.garden.controller.admin.homepage.vo.WorkOrderTrendRespVo; 8 import com.zteits.urbanops.module.garden.controller.admin.homepage.vo.WorkOrderTrendRespVo;
  9 +import com.zteits.urbanops.module.garden.controller.app.homepage.vo.AppWorkOrderSummaryVo;
9 import com.zteits.urbanops.module.garden.controller.app.homepage.vo.CommonTaskStatusVo; 10 import com.zteits.urbanops.module.garden.controller.app.homepage.vo.CommonTaskStatusVo;
10 import com.zteits.urbanops.module.garden.controller.app.homepage.vo.TaskCompletionStatusRspVo; 11 import com.zteits.urbanops.module.garden.controller.app.homepage.vo.TaskCompletionStatusRspVo;
11 import com.zteits.urbanops.module.garden.controller.app.homepage.vo.TaskDetailsRspVo; 12 import com.zteits.urbanops.module.garden.controller.app.homepage.vo.TaskDetailsRspVo;
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/CommonConstants.java
@@ -26,4 +26,7 @@ public interface CommonConstants { @@ -26,4 +26,7 @@ public interface CommonConstants {
26 26
27 /*积分来源 01:任务反馈*/ 27 /*积分来源 01:任务反馈*/
28 public static final String UNIT_INTEGRAL_SOURCE_TYPE_01 = "01"; 28 public static final String UNIT_INTEGRAL_SOURCE_TYPE_01 = "01";
  29 +
  30 + /*全域督察员角色标识*/
  31 + public static final String INSPECTOR_ROLE_KEY = "inspector";
29 } 32 }
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/homepage/HomepageSummaryService.java
1 package com.zteits.urbanops.module.garden.service.homepage; 1 package com.zteits.urbanops.module.garden.service.homepage;
2 2
3 import com.zteits.urbanops.framework.common.pojo.PageResult; 3 import com.zteits.urbanops.framework.common.pojo.PageResult;
4 -import com.zteits.urbanops.module.garden.controller.app.homepage.vo.AppHomePageSummaryPageReqVO;  
5 -import com.zteits.urbanops.module.garden.controller.app.homepage.vo.AppHomePageSummaryReqVO;  
6 -import com.zteits.urbanops.module.garden.controller.app.homepage.vo.AppTaskDistanceSortReqVO;  
7 -import com.zteits.urbanops.module.garden.controller.app.homepage.vo.AppTaskSmartSortReqVO;  
8 -import com.zteits.urbanops.module.garden.controller.app.homepage.vo.TaskCompletionStatusRspVo;  
9 -import com.zteits.urbanops.module.garden.controller.app.homepage.vo.TaskDetailsRspVo;  
10 -import com.zteits.urbanops.module.garden.controller.app.homepage.vo.TaskDistanceSortResultVO; 4 +import com.zteits.urbanops.module.garden.controller.app.homepage.vo.*;
11 5
12 import java.util.List; 6 import java.util.List;
13 import java.util.Map; 7 import java.util.Map;
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/homepage/HomepageSummaryServiceImpl.java
@@ -10,20 +10,28 @@ import com.zteits.urbanops.framework.common.util.date.LocalDateTimeUtils; @@ -10,20 +10,28 @@ import com.zteits.urbanops.framework.common.util.date.LocalDateTimeUtils;
10 import com.zteits.urbanops.framework.mybatis.core.query.QueryWrapperX; 10 import com.zteits.urbanops.framework.mybatis.core.query.QueryWrapperX;
11 import com.zteits.urbanops.framework.mybatis.core.util.MyBatisUtils; 11 import com.zteits.urbanops.framework.mybatis.core.util.MyBatisUtils;
12 import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils; 12 import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils;
  13 +import com.zteits.urbanops.framework.common.biz.system.dict.dto.DictDataRespDTO;
13 import com.zteits.urbanops.module.garden.controller.app.homepage.vo.*; 14 import com.zteits.urbanops.module.garden.controller.app.homepage.vo.*;
  15 +import com.zteits.urbanops.module.garden.dal.dataobject.UserTaskEfficiencyDO;
  16 +import com.zteits.urbanops.module.garden.enums.CommonConstants;
14 import com.zteits.urbanops.module.garden.dal.dataobject.taskstatistics.TaskStatisticsDO; 17 import com.zteits.urbanops.module.garden.dal.dataobject.taskstatistics.TaskStatisticsDO;
  18 +import com.zteits.urbanops.module.garden.dal.mysql.UserTaskEfficiencyMapper;
15 import com.zteits.urbanops.module.garden.dal.mysql.homepage.HomepageSummaryMapper; 19 import com.zteits.urbanops.module.garden.dal.mysql.homepage.HomepageSummaryMapper;
16 import com.zteits.urbanops.module.garden.dal.mysql.taskstatistics.TaskStatisticsMapper; 20 import com.zteits.urbanops.module.garden.dal.mysql.taskstatistics.TaskStatisticsMapper;
  21 +import com.zteits.urbanops.module.garden.util.GpsDistanceUtil;
17 import com.zteits.urbanops.module.system.api.dept.DeptApi; 22 import com.zteits.urbanops.module.system.api.dept.DeptApi;
  23 +import com.zteits.urbanops.module.system.api.dict.DictDataApi;
18 import com.zteits.urbanops.module.system.api.permission.RoleApi; 24 import com.zteits.urbanops.module.system.api.permission.RoleApi;
19 import com.zteits.urbanops.module.system.api.user.AdminUserApi; 25 import com.zteits.urbanops.module.system.api.user.AdminUserApi;
20 import com.zteits.urbanops.module.system.api.user.dto.AdminUserRespDTO; 26 import com.zteits.urbanops.module.system.api.user.dto.AdminUserRespDTO;
  27 +import com.zteits.urbanops.module.system.enums.DictTypeConstants;
21 import jakarta.annotation.Resource; 28 import jakarta.annotation.Resource;
22 import org.apache.commons.collections4.CollectionUtils; 29 import org.apache.commons.collections4.CollectionUtils;
23 import org.apache.commons.lang3.StringUtils; 30 import org.apache.commons.lang3.StringUtils;
24 import org.springframework.stereotype.Service; 31 import org.springframework.stereotype.Service;
25 import org.springframework.transaction.annotation.Transactional; 32 import org.springframework.transaction.annotation.Transactional;
26 33
  34 +import java.math.BigDecimal;
27 import java.text.DateFormat; 35 import java.text.DateFormat;
28 import java.text.ParseException; 36 import java.text.ParseException;
29 import java.text.SimpleDateFormat; 37 import java.text.SimpleDateFormat;
@@ -33,6 +41,8 @@ import java.time.format.DateTimeFormatter; @@ -33,6 +41,8 @@ import java.time.format.DateTimeFormatter;
33 import java.util.*; 41 import java.util.*;
34 import java.util.stream.Collectors; 42 import java.util.stream.Collectors;
35 43
  44 +import static com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
  45 +
36 /** 46 /**
37 * @Classname HomepageSummaryServiceImpl 47 * @Classname HomepageSummaryServiceImpl
38 * @Description 首页统计实现 48 * @Description 首页统计实现
@@ -66,7 +76,7 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ @@ -66,7 +76,7 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{
66 76
67 @Override 77 @Override
68 public List<TaskCompletionStatusRspVo> taskCompletionSummary(AppHomePageSummaryReqVO req) { 78 public List<TaskCompletionStatusRspVo> taskCompletionSummary(AppHomePageSummaryReqVO req) {
69 - Long userId = SecurityFrameworkUtils.getLoginUserId(); 79 + Long userId = getLoginUserId();
70 //巡查任务和养护任务已完成,未完成数量统计 80 //巡查任务和养护任务已完成,未完成数量统计
71 //返回数据初始化 81 //返回数据初始化
72 List<String> days = getDays(req.getBeginTime(), req.getEndTime()); 82 List<String> days = getDays(req.getBeginTime(), req.getEndTime());
@@ -112,7 +122,7 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ @@ -112,7 +122,7 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{
112 122
113 @Override 123 @Override
114 public PageResult<TaskDetailsRspVo> queryTaskDetails(AppHomePageSummaryPageReqVO req) { 124 public PageResult<TaskDetailsRspVo> queryTaskDetails(AppHomePageSummaryPageReqVO req) {
115 - Long userId = SecurityFrameworkUtils.getLoginUserId(); 125 + Long userId = getLoginUserId();
116 IPage<TaskDetailsRspVo> mpPage = MyBatisUtils.buildPage(req); 126 IPage<TaskDetailsRspVo> mpPage = MyBatisUtils.buildPage(req);
117 if (req.getQueryType() == 2) { 127 if (req.getQueryType() == 2) {
118 //已完成 128 //已完成
@@ -120,7 +130,7 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ @@ -120,7 +130,7 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{
120 } else { 130 } else {
121 //待办 131 //待办
122 Long deptId = SecurityFrameworkUtils.getDeptId(); 132 Long deptId = SecurityFrameworkUtils.getDeptId();
123 - List<Long> roleIds = roleApi.getRoleIdsByUserId(SecurityFrameworkUtils.getLoginUserId()); 133 + List<Long> roleIds = roleApi.getRoleIdsByUserId(getLoginUserId());
124 mpPage = homepageSummaryMapper.queryPendingTaskDetails(mpPage, roleIds, userId, deptId, LocalDateTime.now()); 134 mpPage = homepageSummaryMapper.queryPendingTaskDetails(mpPage, roleIds, userId, deptId, LocalDateTime.now());
125 } 135 }
126 return new PageResult<>(mpPage.getRecords(), mpPage.getTotal()); 136 return new PageResult<>(mpPage.getRecords(), mpPage.getTotal());