Commit f4d685a4b657c6bc8a2e3dbc38cfc2245f32597c
1 parent
2de14c23
app首页统计修改
Showing
4 changed files
with
87 additions
and
55 deletions
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/taskstatistics/TaskStatisticsDO.java
| @@ -32,14 +32,24 @@ public class TaskStatisticsDO extends BaseDO { | @@ -32,14 +32,24 @@ public class TaskStatisticsDO extends BaseDO { | ||
| 32 | */ | 32 | */ |
| 33 | private String busiDate; | 33 | private String busiDate; |
| 34 | /** | 34 | /** |
| 35 | + * 业务线 | ||
| 36 | + */ | ||
| 37 | + private String busiLine; | ||
| 38 | + /** | ||
| 35 | * 归属(一级部门id) | 39 | * 归属(一级部门id) |
| 36 | */ | 40 | */ |
| 37 | - private Integer companyId; | 41 | + private Long companyId; |
| 42 | + | ||
| 43 | + private String companyName; | ||
| 38 | /** | 44 | /** |
| 39 | * 部门ID(道路负责部门id) | 45 | * 部门ID(道路负责部门id) |
| 40 | */ | 46 | */ |
| 41 | private Long deptId; | 47 | private Long deptId; |
| 42 | /** | 48 | /** |
| 49 | + * 角色 | ||
| 50 | + */ | ||
| 51 | + private String roleIds; | ||
| 52 | + /** | ||
| 43 | * 用户id | 53 | * 用户id |
| 44 | */ | 54 | */ |
| 45 | private Long userId; | 55 | private Long userId; |
| @@ -83,6 +93,7 @@ public class TaskStatisticsDO extends BaseDO { | @@ -83,6 +93,7 @@ public class TaskStatisticsDO extends BaseDO { | ||
| 83 | * 工单未完成数 | 93 | * 工单未完成数 |
| 84 | */ | 94 | */ |
| 85 | private Integer woUnfinished; | 95 | private Integer woUnfinished; |
| 96 | + | ||
| 86 | /** | 97 | /** |
| 87 | * 备注 | 98 | * 备注 |
| 88 | */ | 99 | */ |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/homepage/HomepageSummaryMapper.java
| @@ -10,6 +10,7 @@ import com.zteits.urbanops.module.garden.controller.app.homepage.vo.CommonTaskSt | @@ -10,6 +10,7 @@ import com.zteits.urbanops.module.garden.controller.app.homepage.vo.CommonTaskSt | ||
| 10 | import com.zteits.urbanops.module.garden.controller.app.homepage.vo.TaskCompletionStatusRspVo; | 10 | import com.zteits.urbanops.module.garden.controller.app.homepage.vo.TaskCompletionStatusRspVo; |
| 11 | import com.zteits.urbanops.module.garden.controller.app.homepage.vo.TaskDetailsRspVo; | 11 | import com.zteits.urbanops.module.garden.controller.app.homepage.vo.TaskDetailsRspVo; |
| 12 | import com.zteits.urbanops.module.garden.dal.dataobject.departmentcost.DepartmentCostDO; | 12 | import com.zteits.urbanops.module.garden.dal.dataobject.departmentcost.DepartmentCostDO; |
| 13 | +import com.zteits.urbanops.module.garden.dal.dataobject.taskstatistics.TaskStatisticsDO; | ||
| 13 | import org.apache.ibatis.annotations.Mapper; | 14 | import org.apache.ibatis.annotations.Mapper; |
| 14 | import org.apache.ibatis.annotations.Param; | 15 | import org.apache.ibatis.annotations.Param; |
| 15 | 16 | ||
| @@ -199,5 +200,10 @@ public interface HomepageSummaryMapper extends BaseMapperX<DepartmentCostDO> { | @@ -199,5 +200,10 @@ public interface HomepageSummaryMapper extends BaseMapperX<DepartmentCostDO> { | ||
| 199 | * @Return java.util.List<java.util.Map<java.lang.Long,java.lang.Integer>> | 200 | * @Return java.util.List<java.util.Map<java.lang.Long,java.lang.Integer>> |
| 200 | */ | 201 | */ |
| 201 | List<CommonTaskStatusVo> countWorkOrderCompleted(@Param("beginTime") String beginTime, @Param("endTime") String endTime); | 202 | List<CommonTaskStatusVo> countWorkOrderCompleted(@Param("beginTime") String beginTime, @Param("endTime") String endTime); |
| 202 | - | 203 | + /** |
| 204 | + * @Author wangqian | ||
| 205 | + * @Description 获取用户初始化数据 | ||
| 206 | + * @Date 2026/1/12 0:45 | ||
| 207 | + */ | ||
| 208 | + List<TaskStatisticsDO> getUserAll(@Param("busiDate") String busiDate); | ||
| 203 | } | 209 | } |
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/homepage/HomepageSummaryServiceImpl.java
| 1 | package com.zteits.urbanops.module.garden.service.homepage; | 1 | package com.zteits.urbanops.module.garden.service.homepage; |
| 2 | 2 | ||
| 3 | +import cn.hutool.core.bean.BeanUtil; | ||
| 3 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 4 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| 4 | import com.baomidou.mybatisplus.core.metadata.IPage; | 5 | import com.baomidou.mybatisplus.core.metadata.IPage; |
| 5 | import com.esotericsoftware.minlog.Log; | 6 | import com.esotericsoftware.minlog.Log; |
| @@ -137,13 +138,14 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ | @@ -137,13 +138,14 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ | ||
| 137 | if (StringUtils.isEmpty(busiDate)) { | 138 | if (StringUtils.isEmpty(busiDate)) { |
| 138 | busiDate = yesterday.format(formatter); | 139 | busiDate = yesterday.format(formatter); |
| 139 | } | 140 | } |
| 141 | + List<TaskStatisticsDO> taskStatisticsList = initUserData(busiDate); | ||
| 142 | + | ||
| 140 | String beginTime = busiDate + " 00:00:00"; | 143 | String beginTime = busiDate + " 00:00:00"; |
| 141 | String endTime = busiDate + " 23:59:59"; | 144 | String endTime = busiDate + " 23:59:59"; |
| 142 | Log.info("昨天开始时间:" + beginTime); | 145 | Log.info("昨天开始时间:" + beginTime); |
| 143 | Log.info("昨天结束时间:" + endTime); | 146 | Log.info("昨天结束时间:" + endTime); |
| 144 | //获取正常用户 | 147 | //获取正常用户 |
| 145 | - List<AdminUserRespDTO> userList = userApi.getUserList(); | ||
| 146 | - if (CollectionUtils.isEmpty(userList)){ | 148 | + if (CollectionUtils.isEmpty(taskStatisticsList)){ |
| 147 | return; | 149 | return; |
| 148 | } | 150 | } |
| 149 | //巡查已完成 | 151 | //巡查已完成 |
| @@ -189,56 +191,26 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ | @@ -189,56 +191,26 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ | ||
| 189 | (oldVo, newVo) -> newVo, | 191 | (oldVo, newVo) -> newVo, |
| 190 | HashMap::new | 192 | HashMap::new |
| 191 | )); | 193 | )); |
| 192 | -// //巡查计划数 | ||
| 193 | -// List<CommonTaskStatusVo> inspTotal = homepageSummaryMapper.countInspPendingTask(beginTime, endTime); | ||
| 194 | -// Map<Long, CommonTaskStatusVo> inspTotalMap = inspTotal.stream() | ||
| 195 | -// .filter(vo -> Objects.nonNull(vo)) | ||
| 196 | -// .collect(Collectors.toMap( | ||
| 197 | -// // Map的key:从VO中提取Long类型的roleId(核心修正点) | ||
| 198 | -// CommonTaskStatusVo::getRoleId, | ||
| 199 | -// vo -> vo, | ||
| 200 | -// (oldVo, newVo) -> newVo, | ||
| 201 | -// HashMap::new | ||
| 202 | -// )); | ||
| 203 | -// //养护计划数量 | ||
| 204 | -// List<CommonTaskStatusVo> mtTotal = homepageSummaryMapper.countMtPendingTask(beginTime, endTime); | ||
| 205 | -// Map<Long, CommonTaskStatusVo> mtTotalMap = mtTotal.stream() | ||
| 206 | -// .filter(vo -> Objects.nonNull(vo)) | ||
| 207 | -// .collect(Collectors.toMap( | ||
| 208 | -// // Map的key:从VO中提取Long类型的roleId(核心修正点) | ||
| 209 | -// CommonTaskStatusVo::getRoleId, | ||
| 210 | -// vo -> vo, | ||
| 211 | -// (oldVo, newVo) -> newVo, | ||
| 212 | -// HashMap::new | ||
| 213 | -// )); | 194 | + |
| 214 | List<TaskStatisticsDO> taskStatisticsDOList = new ArrayList<>(); | 195 | List<TaskStatisticsDO> taskStatisticsDOList = new ArrayList<>(); |
| 215 | //根据用户查询任务数量 | 196 | //根据用户查询任务数量 |
| 216 | - for (AdminUserRespDTO adminUserRespDTO : userList) { | ||
| 217 | - Long userId = adminUserRespDTO.getId(); | ||
| 218 | - Long deptId = adminUserRespDTO.getDeptId(); | ||
| 219 | - List<Long> roles = roleApi.getRoleIdsByUserId(userId); | ||
| 220 | - if (CollectionUtils.isEmpty(roles)) { | ||
| 221 | - continue; | ||
| 222 | - } | ||
| 223 | - if (roles.contains(1L)) {//超级管理员 | ||
| 224 | - continue; | ||
| 225 | - } | ||
| 226 | - if (roles.contains(2L)) {//普通角色 | ||
| 227 | - continue; | ||
| 228 | - } | ||
| 229 | - if (roles.contains(159L)) {//管理员 | ||
| 230 | - continue; | ||
| 231 | - } | ||
| 232 | - if (roles.contains(168L)) {//子公司管理员 | ||
| 233 | - continue; | ||
| 234 | - } | ||
| 235 | - //deptApi.get | 197 | + for (TaskStatisticsDO statisticsVo : taskStatisticsList) { |
| 198 | + Long userId = statisticsVo.getUserId(); | ||
| 199 | + Long deptId = statisticsVo.getDeptId(); | ||
| 200 | + String[] roles = statisticsVo.getRoleIds().split(","); | ||
| 236 | TaskStatisticsDO statisticsDO = new TaskStatisticsDO(); | 201 | TaskStatisticsDO statisticsDO = new TaskStatisticsDO(); |
| 237 | - statisticsDO.setBusiDate(busiDate); | ||
| 238 | - statisticsDO.setUserId(userId); | ||
| 239 | - statisticsDO.setUserName(adminUserRespDTO.getNickname()); | ||
| 240 | - //statisticsDO.setCompanyId(); | ||
| 241 | - statisticsDO.setDeptId(adminUserRespDTO.getDeptId()); | 202 | + BeanUtil.copyProperties(statisticsVo, statisticsDO); |
| 203 | + //初始化参数 | ||
| 204 | + statisticsDO.setInspTotal(0); | ||
| 205 | + statisticsDO.setInspUnfinished(0); | ||
| 206 | + statisticsDO.setInspCompleted(0); | ||
| 207 | + statisticsDO.setMtTotal(0); | ||
| 208 | + statisticsDO.setMtCompleted(0); | ||
| 209 | + statisticsDO.setMtUnfinished(0); | ||
| 210 | + statisticsDO.setWoTotal(0); | ||
| 211 | + statisticsDO.setWoCompleted(0); | ||
| 212 | + statisticsDO.setWoUnfinished(0); | ||
| 213 | + | ||
| 242 | //2、查询巡查任务数量及已完成数量 | 214 | //2、查询巡查任务数量及已完成数量 |
| 243 | Integer inspTotalCount = 0; | 215 | Integer inspTotalCount = 0; |
| 244 | List<CommonTaskStatusVo> inspTotal = homepageSummaryMapper.countInspPendingTask(beginTime, endTime, deptId); | 216 | List<CommonTaskStatusVo> inspTotal = homepageSummaryMapper.countInspPendingTask(beginTime, endTime, deptId); |
| @@ -251,7 +223,7 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ | @@ -251,7 +223,7 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ | ||
| 251 | (oldVo, newVo) -> newVo, | 223 | (oldVo, newVo) -> newVo, |
| 252 | HashMap::new | 224 | HashMap::new |
| 253 | )); | 225 | )); |
| 254 | - for (Long role : roles) { | 226 | + for (String role : roles) { |
| 255 | CommonTaskStatusVo countVo = inspTotalMap.get(role); | 227 | CommonTaskStatusVo countVo = inspTotalMap.get(role); |
| 256 | if (null != countVo) { | 228 | if (null != countVo) { |
| 257 | inspTotalCount = countVo.getTotalCount(); | 229 | inspTotalCount = countVo.getTotalCount(); |
| @@ -277,7 +249,7 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ | @@ -277,7 +249,7 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ | ||
| 277 | HashMap::new | 249 | HashMap::new |
| 278 | )); | 250 | )); |
| 279 | //3、查询养护计划任务数量 | 251 | //3、查询养护计划任务数量 |
| 280 | - for (Long role : roles) { | 252 | + for (String role : roles) { |
| 281 | CommonTaskStatusVo countVo = mtTotalMap.get(role); | 253 | CommonTaskStatusVo countVo = mtTotalMap.get(role); |
| 282 | if (null != countVo) { | 254 | if (null != countVo) { |
| 283 | mtTotalCount = countVo.getTotalCount(); | 255 | mtTotalCount = countVo.getTotalCount(); |
| @@ -293,12 +265,12 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ | @@ -293,12 +265,12 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ | ||
| 293 | 265 | ||
| 294 | //4、工单任务数量 | 266 | //4、工单任务数量 |
| 295 | Integer woCompCount = Optional.ofNullable(woCompletedMap) | 267 | Integer woCompCount = Optional.ofNullable(woCompletedMap) |
| 296 | - .map(map -> map.get(userId)) | 268 | + .flatMap(map -> Optional.ofNullable(map.get(userId))) |
| 297 | .map(CommonTaskStatusVo::getTotalCount) | 269 | .map(CommonTaskStatusVo::getTotalCount) |
| 298 | .orElse(0); | 270 | .orElse(0); |
| 299 | statisticsDO.setWoCompleted(woCompCount); | 271 | statisticsDO.setWoCompleted(woCompCount); |
| 300 | Integer woUnfiCount = Optional.ofNullable(woPendingMap) | 272 | Integer woUnfiCount = Optional.ofNullable(woPendingMap) |
| 301 | - .map(map -> map.get(userId)) | 273 | + .flatMap(map -> Optional.ofNullable(map.get(userId))) |
| 302 | .map(CommonTaskStatusVo::getTotalCount) | 274 | .map(CommonTaskStatusVo::getTotalCount) |
| 303 | .orElse(0); | 275 | .orElse(0); |
| 304 | statisticsDO.setWoUnfinished(woUnfiCount); | 276 | statisticsDO.setWoUnfinished(woUnfiCount); |
| @@ -315,6 +287,20 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ | @@ -315,6 +287,20 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ | ||
| 315 | //批量保存 | 287 | //批量保存 |
| 316 | taskStatisticsMapper.insertBatch(taskStatisticsDOList); | 288 | taskStatisticsMapper.insertBatch(taskStatisticsDOList); |
| 317 | } | 289 | } |
| 290 | + /** | ||
| 291 | + * @Author wangqian | ||
| 292 | + * @Description 初始化对象集合 | ||
| 293 | + * @Date 2026/1/11 23:55 | ||
| 294 | + */ | ||
| 295 | + private List<TaskStatisticsDO> initUserData(String busiDate) { | ||
| 296 | + List<TaskStatisticsDO> taskStatisticsList = new ArrayList<>(); | ||
| 297 | + //获取正常用户 | ||
| 298 | + List<TaskStatisticsDO> userList = homepageSummaryMapper.getUserAll(busiDate); | ||
| 299 | + if (CollectionUtils.isEmpty(userList)){ | ||
| 300 | + return taskStatisticsList; | ||
| 301 | + } | ||
| 302 | + return userList; | ||
| 303 | + } | ||
| 318 | 304 | ||
| 319 | private List<TaskCompletionStatusRspVo> addTaskDefaultData(List<String> days){ | 305 | private List<TaskCompletionStatusRspVo> addTaskDefaultData(List<String> days){ |
| 320 | List<TaskCompletionStatusRspVo> newList = new ArrayList<>(); | 306 | List<TaskCompletionStatusRspVo> newList = new ArrayList<>(); |
urbanops-module-garden/src/main/resources/mapper/homepage/HomepageSummaryMapper.xml
| @@ -559,4 +559,33 @@ | @@ -559,4 +559,33 @@ | ||
| 559 | ) t | 559 | ) t |
| 560 | group by t.userId | 560 | group by t.userId |
| 561 | </select> | 561 | </select> |
| 562 | + | ||
| 563 | + <!--获取用户信息--> | ||
| 564 | + <select id="getUserAll" resultType="com.zteits.urbanops.module.garden.dal.dataobject.taskstatistics.TaskStatisticsDO" > | ||
| 565 | + WITH RECURSIVE dept_recursive AS ( | ||
| 566 | + -- 基准层:二级公司(parent_id='100') | ||
| 567 | + SELECT id, name, parent_id, id as companyId, name as companyName | ||
| 568 | + FROM system_dept | ||
| 569 | + WHERE parent_id = '100' | ||
| 570 | + UNION ALL | ||
| 571 | + -- 递归层:子部门关联上级,继承二级公司信息 | ||
| 572 | + SELECT d.id, d.name, d.parent_id, dr.companyId, dr.companyName | ||
| 573 | + FROM system_dept d | ||
| 574 | + INNER JOIN dept_recursive dr ON d.parent_id = dr.id | ||
| 575 | + ) | ||
| 576 | + -- 关联用户表查询 | ||
| 577 | + SELECT | ||
| 578 | + #{busiDate} as busiDate, | ||
| 579 | + u.busi_line as busiLine, | ||
| 580 | + u.dept_id as deptId, | ||
| 581 | + dr.companyId, -- 二级归属公司ID | ||
| 582 | + dr.companyName, -- 二级归属公司名称 | ||
| 583 | + GROUP_CONCAT(r.role_id SEPARATOR ',') AS roleIds, | ||
| 584 | + u.id as userId, | ||
| 585 | + u.nickname as username | ||
| 586 | + FROM system_users u | ||
| 587 | + INNER JOIN system_user_role r ON u.id = r.user_id | ||
| 588 | + INNER JOIN dept_recursive dr ON u.dept_id = dr.id | ||
| 589 | + GROUP BY u.id, u.nickname, u.dept_id, u.busi_line, dr.companyId, dr.companyName; | ||
| 590 | + </select> | ||
| 562 | </mapper> | 591 | </mapper> |