diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/taskstatistics/TaskStatisticsDO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/taskstatistics/TaskStatisticsDO.java index 10a891f..84f9609 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/taskstatistics/TaskStatisticsDO.java +++ b/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 { */ private String busiDate; /** + * 业务线 + */ + private String busiLine; + /** * 归属(一级部门id) */ - private Integer companyId; + private Long companyId; + + private String companyName; /** * 部门ID(道路负责部门id) */ private Long deptId; /** + * 角色 + */ + private String roleIds; + /** * 用户id */ private Long userId; @@ -83,6 +93,7 @@ public class TaskStatisticsDO extends BaseDO { * 工单未完成数 */ private Integer woUnfinished; + /** * 备注 */ diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/homepage/HomepageSummaryMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/homepage/HomepageSummaryMapper.java index 4417edc..c811deb 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/homepage/HomepageSummaryMapper.java +++ b/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 import com.zteits.urbanops.module.garden.controller.app.homepage.vo.TaskCompletionStatusRspVo; import com.zteits.urbanops.module.garden.controller.app.homepage.vo.TaskDetailsRspVo; import com.zteits.urbanops.module.garden.dal.dataobject.departmentcost.DepartmentCostDO; +import com.zteits.urbanops.module.garden.dal.dataobject.taskstatistics.TaskStatisticsDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -199,5 +200,10 @@ public interface HomepageSummaryMapper extends BaseMapperX { * @Return java.util.List> */ List countWorkOrderCompleted(@Param("beginTime") String beginTime, @Param("endTime") String endTime); - + /** + * @Author wangqian + * @Description 获取用户初始化数据 + * @Date 2026/1/12 0:45 + */ + List getUserAll(@Param("busiDate") String busiDate); } 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 52dbb48..ccc02bc 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 @@ -1,5 +1,6 @@ package com.zteits.urbanops.module.garden.service.homepage; +import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.esotericsoftware.minlog.Log; @@ -137,13 +138,14 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ if (StringUtils.isEmpty(busiDate)) { busiDate = yesterday.format(formatter); } + List taskStatisticsList = initUserData(busiDate); + String beginTime = busiDate + " 00:00:00"; String endTime = busiDate + " 23:59:59"; Log.info("昨天开始时间:" + beginTime); Log.info("昨天结束时间:" + endTime); //获取正常用户 - List userList = userApi.getUserList(); - if (CollectionUtils.isEmpty(userList)){ + if (CollectionUtils.isEmpty(taskStatisticsList)){ return; } //巡查已完成 @@ -189,56 +191,26 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ (oldVo, newVo) -> newVo, HashMap::new )); -// //巡查计划数 -// List inspTotal = homepageSummaryMapper.countInspPendingTask(beginTime, endTime); -// Map inspTotalMap = inspTotal.stream() -// .filter(vo -> Objects.nonNull(vo)) -// .collect(Collectors.toMap( -// // Map的key:从VO中提取Long类型的roleId(核心修正点) -// CommonTaskStatusVo::getRoleId, -// vo -> vo, -// (oldVo, newVo) -> newVo, -// HashMap::new -// )); -// //养护计划数量 -// List mtTotal = homepageSummaryMapper.countMtPendingTask(beginTime, endTime); -// Map mtTotalMap = mtTotal.stream() -// .filter(vo -> Objects.nonNull(vo)) -// .collect(Collectors.toMap( -// // Map的key:从VO中提取Long类型的roleId(核心修正点) -// CommonTaskStatusVo::getRoleId, -// vo -> vo, -// (oldVo, newVo) -> newVo, -// HashMap::new -// )); + List taskStatisticsDOList = new ArrayList<>(); //根据用户查询任务数量 - for (AdminUserRespDTO adminUserRespDTO : userList) { - Long userId = adminUserRespDTO.getId(); - Long deptId = adminUserRespDTO.getDeptId(); - List roles = roleApi.getRoleIdsByUserId(userId); - if (CollectionUtils.isEmpty(roles)) { - continue; - } - if (roles.contains(1L)) {//超级管理员 - continue; - } - if (roles.contains(2L)) {//普通角色 - continue; - } - if (roles.contains(159L)) {//管理员 - continue; - } - if (roles.contains(168L)) {//子公司管理员 - continue; - } - //deptApi.get + for (TaskStatisticsDO statisticsVo : taskStatisticsList) { + Long userId = statisticsVo.getUserId(); + Long deptId = statisticsVo.getDeptId(); + String[] roles = statisticsVo.getRoleIds().split(","); TaskStatisticsDO statisticsDO = new TaskStatisticsDO(); - statisticsDO.setBusiDate(busiDate); - statisticsDO.setUserId(userId); - statisticsDO.setUserName(adminUserRespDTO.getNickname()); - //statisticsDO.setCompanyId(); - statisticsDO.setDeptId(adminUserRespDTO.getDeptId()); + BeanUtil.copyProperties(statisticsVo, statisticsDO); + //初始化参数 + statisticsDO.setInspTotal(0); + statisticsDO.setInspUnfinished(0); + statisticsDO.setInspCompleted(0); + statisticsDO.setMtTotal(0); + statisticsDO.setMtCompleted(0); + statisticsDO.setMtUnfinished(0); + statisticsDO.setWoTotal(0); + statisticsDO.setWoCompleted(0); + statisticsDO.setWoUnfinished(0); + //2、查询巡查任务数量及已完成数量 Integer inspTotalCount = 0; List inspTotal = homepageSummaryMapper.countInspPendingTask(beginTime, endTime, deptId); @@ -251,7 +223,7 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ (oldVo, newVo) -> newVo, HashMap::new )); - for (Long role : roles) { + for (String role : roles) { CommonTaskStatusVo countVo = inspTotalMap.get(role); if (null != countVo) { inspTotalCount = countVo.getTotalCount(); @@ -277,7 +249,7 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ HashMap::new )); //3、查询养护计划任务数量 - for (Long role : roles) { + for (String role : roles) { CommonTaskStatusVo countVo = mtTotalMap.get(role); if (null != countVo) { mtTotalCount = countVo.getTotalCount(); @@ -293,12 +265,12 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ //4、工单任务数量 Integer woCompCount = Optional.ofNullable(woCompletedMap) - .map(map -> map.get(userId)) + .flatMap(map -> Optional.ofNullable(map.get(userId))) .map(CommonTaskStatusVo::getTotalCount) .orElse(0); statisticsDO.setWoCompleted(woCompCount); Integer woUnfiCount = Optional.ofNullable(woPendingMap) - .map(map -> map.get(userId)) + .flatMap(map -> Optional.ofNullable(map.get(userId))) .map(CommonTaskStatusVo::getTotalCount) .orElse(0); statisticsDO.setWoUnfinished(woUnfiCount); @@ -315,6 +287,20 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ //批量保存 taskStatisticsMapper.insertBatch(taskStatisticsDOList); } + /** + * @Author wangqian + * @Description 初始化对象集合 + * @Date 2026/1/11 23:55 + */ + private List initUserData(String busiDate) { + List taskStatisticsList = new ArrayList<>(); + //获取正常用户 + List userList = homepageSummaryMapper.getUserAll(busiDate); + if (CollectionUtils.isEmpty(userList)){ + return taskStatisticsList; + } + return userList; + } private List addTaskDefaultData(List days){ List newList = new ArrayList<>(); 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 5759fc9..dc7fe09 100644 --- a/urbanops-module-garden/src/main/resources/mapper/homepage/HomepageSummaryMapper.xml +++ b/urbanops-module-garden/src/main/resources/mapper/homepage/HomepageSummaryMapper.xml @@ -559,4 +559,33 @@ ) t group by t.userId + + +