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 2  
3 3 import com.zteits.urbanops.framework.common.pojo.CommonResult;
4 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 6 import com.zteits.urbanops.module.garden.service.homepage.HomepageSummaryService;
10 7 import io.swagger.v3.oas.annotations.Operation;
11 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 import com.zteits.urbanops.module.garden.controller.admin.homepage.vo.CommitWorkOrderRespVo;
7 7 import com.zteits.urbanops.module.garden.controller.admin.homepage.vo.CommitWorkOrderSourceRespVo;
8 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 10 import com.zteits.urbanops.module.garden.controller.app.homepage.vo.CommonTaskStatusVo;
10 11 import com.zteits.urbanops.module.garden.controller.app.homepage.vo.TaskCompletionStatusRspVo;
11 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 26  
27 27 /*积分来源 01:任务反馈*/
28 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 1 package com.zteits.urbanops.module.garden.service.homepage;
2 2  
3 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 6 import java.util.List;
13 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 10 import com.zteits.urbanops.framework.mybatis.core.query.QueryWrapperX;
11 11 import com.zteits.urbanops.framework.mybatis.core.util.MyBatisUtils;
12 12 import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils;
  13 +import com.zteits.urbanops.framework.common.biz.system.dict.dto.DictDataRespDTO;
13 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 17 import com.zteits.urbanops.module.garden.dal.dataobject.taskstatistics.TaskStatisticsDO;
  18 +import com.zteits.urbanops.module.garden.dal.mysql.UserTaskEfficiencyMapper;
15 19 import com.zteits.urbanops.module.garden.dal.mysql.homepage.HomepageSummaryMapper;
16 20 import com.zteits.urbanops.module.garden.dal.mysql.taskstatistics.TaskStatisticsMapper;
  21 +import com.zteits.urbanops.module.garden.util.GpsDistanceUtil;
17 22 import com.zteits.urbanops.module.system.api.dept.DeptApi;
  23 +import com.zteits.urbanops.module.system.api.dict.DictDataApi;
18 24 import com.zteits.urbanops.module.system.api.permission.RoleApi;
19 25 import com.zteits.urbanops.module.system.api.user.AdminUserApi;
20 26 import com.zteits.urbanops.module.system.api.user.dto.AdminUserRespDTO;
  27 +import com.zteits.urbanops.module.system.enums.DictTypeConstants;
21 28 import jakarta.annotation.Resource;
22 29 import org.apache.commons.collections4.CollectionUtils;
23 30 import org.apache.commons.lang3.StringUtils;
24 31 import org.springframework.stereotype.Service;
25 32 import org.springframework.transaction.annotation.Transactional;
26 33  
  34 +import java.math.BigDecimal;
27 35 import java.text.DateFormat;
28 36 import java.text.ParseException;
29 37 import java.text.SimpleDateFormat;
... ... @@ -33,6 +41,8 @@ import java.time.format.DateTimeFormatter;
33 41 import java.util.*;
34 42 import java.util.stream.Collectors;
35 43  
  44 +import static com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
  45 +
36 46 /**
37 47 * @Classname HomepageSummaryServiceImpl
38 48 * @Description 首页统计实现
... ... @@ -66,7 +76,7 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{
66 76  
67 77 @Override
68 78 public List<TaskCompletionStatusRspVo> taskCompletionSummary(AppHomePageSummaryReqVO req) {
69   - Long userId = SecurityFrameworkUtils.getLoginUserId();
  79 + Long userId = getLoginUserId();
70 80 //巡查任务和养护任务已完成,未完成数量统计
71 81 //返回数据初始化
72 82 List<String> days = getDays(req.getBeginTime(), req.getEndTime());
... ... @@ -112,7 +122,7 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{
112 122  
113 123 @Override
114 124 public PageResult<TaskDetailsRspVo> queryTaskDetails(AppHomePageSummaryPageReqVO req) {
115   - Long userId = SecurityFrameworkUtils.getLoginUserId();
  125 + Long userId = getLoginUserId();
116 126 IPage<TaskDetailsRspVo> mpPage = MyBatisUtils.buildPage(req);
117 127 if (req.getQueryType() == 2) {
118 128 //已完成
... ... @@ -120,7 +130,7 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{
120 130 } else {
121 131 //待办
122 132 Long deptId = SecurityFrameworkUtils.getDeptId();
123   - List<Long> roleIds = roleApi.getRoleIdsByUserId(SecurityFrameworkUtils.getLoginUserId());
  133 + List<Long> roleIds = roleApi.getRoleIdsByUserId(getLoginUserId());
124 134 mpPage = homepageSummaryMapper.queryPendingTaskDetails(mpPage, roleIds, userId, deptId, LocalDateTime.now());
125 135 }
126 136 return new PageResult<>(mpPage.getRecords(), mpPage.getTotal());
... ...