From 1ef058fb1604b493d92d098b2f3d3255ff497b99 Mon Sep 17 00:00:00 2001 From: xyc <3422692813@qq.com> Date: Tue, 5 Aug 2025 14:40:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B00805?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PartnerOwnController.java | 11 ++ .../admin/StatisticsController.java | 50 ++++++ .../entity/DlInspectionProject.java | 6 + .../mapper/InspectionWorkNodeMapper.java | 20 +++ .../service/AppInspectionPartnerService.java | 8 + .../service/IInspectionWorkNodeService.java | 26 +++ .../inspection/service/StatisticsService.java | 26 +++ .../impl/AppInspectionPartnerServiceImpl.java | 99 ++++++++++++ .../impl/InspectionWorkNodeServiceImpl.java | 79 +++++++++ .../service/impl/StatisticsServiceImpl.java | 152 ++++++++++++++++++ .../mapper/InspectionWorkNodeMapper.xml | 82 ++++++++++ 11 files changed, 559 insertions(+) create mode 100644 dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/admin/StatisticsController.java create mode 100644 dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/StatisticsService.java create mode 100644 dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/StatisticsServiceImpl.java diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/PartnerOwnController.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/PartnerOwnController.java index efe89a57..fbf36dd4 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/PartnerOwnController.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/PartnerOwnController.java @@ -930,6 +930,17 @@ public class PartnerOwnController extends BaseController { return success(partnerList.getStaffCount(dlInspectionProject)); } + /** + * 获取员工统计 + * + * @param dlInspectionProject 项目 + * @return 结果 + */ + @PostMapping("/getStaffCountByUserId") + public CommonResult getStaffCountByUserId(@RequestBody DlInspectionProject dlInspectionProject) { + return success(partnerList.getStaffCountByUserId(dlInspectionProject)); + } + /** * 文件统计 * diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/admin/StatisticsController.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/admin/StatisticsController.java new file mode 100644 index 00000000..1410d7c5 --- /dev/null +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/admin/StatisticsController.java @@ -0,0 +1,50 @@ +package cn.iocoder.yudao.module.inspection.controller.admin; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.inspection.entity.DlInspectionProject; +import cn.iocoder.yudao.module.inspection.service.StatisticsService; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @BelongsProject: lanan-system + * @BelongsPackage: cn.iocoder.yudao.module.inspection.controller.admin + * @Author: 许 + * @CreateTime: 2025-08-05 11:16 + * @Description: 数据统计接口 + * @Version: 1.0 + */ +@RestController +@RequestMapping("/inspection/statistics") +@RequiredArgsConstructor +public class StatisticsController { + + private final StatisticsService statisticsService; + + /** + * @description: 获取员工项目统计信息 + * @author: 许 + * @date: 2025/8/5 11:21 + * @param: [dlInspectionProject] + * @return: cn.iocoder.yudao.framework.common.pojo.CommonResult + **/ + @PostMapping("/queryStaffStatisticsInfo") + public CommonResult queryStaffStatisticsInfo(@RequestBody DlInspectionProject dlInspectionProject) { + return CommonResult.success(statisticsService.queryStaffStatisticsInfo(dlInspectionProject)); + } + + /** + * @description: 获取员工检测项目统计 (根据车型) + * @author: 许 + * @date: 2025/8/5 14:28 + * @param: [dlInspectionProject] + * @return: cn.iocoder.yudao.framework.common.pojo.CommonResult + **/ + @PostMapping("/queryStaffStatisticsGroupByGoods") + public CommonResult queryStaffStatisticsGroupByGoods(@RequestBody DlInspectionProject dlInspectionProject) { + return CommonResult.success(statisticsService.queryStaffCountGroupByGoods(dlInspectionProject)); + } +} diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/DlInspectionProject.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/DlInspectionProject.java index b8ea98ea..50738fee 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/DlInspectionProject.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/DlInspectionProject.java @@ -51,4 +51,10 @@ public class DlInspectionProject extends TenantBaseDO { @TableField(exist = false) private List datetimeRange; + + @TableField(exist = false) + private Long userId; + + @TableField(exist = false) + private String goodsTitle ; } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/mapper/InspectionWorkNodeMapper.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/mapper/InspectionWorkNodeMapper.java index 11147d46..fa42e004 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/mapper/InspectionWorkNodeMapper.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/mapper/InspectionWorkNodeMapper.java @@ -44,6 +44,8 @@ public interface InspectionWorkNodeMapper extends BaseMapper List getStaffCount(DlInspectionProject dlInspectionProject); + List getStaffCountByUserId(DlInspectionProject dlInspectionProject); + /** * 根据检测id获取异常节点 * @param idList @@ -52,4 +54,22 @@ public interface InspectionWorkNodeMapper extends BaseMapper List> selectExceptionNodesByInspectionIds(@Param("ids") List idList); IPage> selectStaffProjectByUserId(@Param("page")Page> page, @Param("query") InspectionListQuery query); + + /** + * @description: 查询员工项目统计根据车型 + * @author: 许 + * @date: 2025/8/5 13:13 + * @param: [dlInspectionProject] + * @return: java.util.List> + **/ + List> queryStaffCountGroupByGoods(DlInspectionProject dlInspectionProject); + + /** + * @description: 查询员工项目统计 + * @author: 许 + * @date: 2025/8/5 14:07 + * @param: [dlInspectionProject] + * @return: java.util.Map + **/ + Map queryStaffInspectionCount(DlInspectionProject dlInspectionProject); } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/AppInspectionPartnerService.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/AppInspectionPartnerService.java index cf663790..37d7eb04 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/AppInspectionPartnerService.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/AppInspectionPartnerService.java @@ -249,6 +249,14 @@ public interface AppInspectionPartnerService extends IService */ List> getStaffCount(DlInspectionProject dlInspectionProject); + /** + * 查询员工统计 + * + * @param dlInspectionProject 项目信息 + * @return 结果 + */ + Map getStaffCountByUserId(DlInspectionProject dlInspectionProject); + /** * 文件统计 * diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/IInspectionWorkNodeService.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/IInspectionWorkNodeService.java index 3759a91c..89b9759a 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/IInspectionWorkNodeService.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/IInspectionWorkNodeService.java @@ -76,6 +76,14 @@ public interface IInspectionWorkNodeService extends IService */ List> getStaffCount(DlInspectionProject dlInspectionProject); + /** + * 获取员工统计排序 + * + * @param dlInspectionProject + * @return + */ + Map getStaffCountByUserId(DlInspectionProject dlInspectionProject); + /** * 根据检测id获取异常节点 * @@ -89,4 +97,22 @@ public interface IInspectionWorkNodeService extends IService * @param idList */ void updateException(Long inspectionInfoId,List idList); + + /** + * @description: 员工统计根据车型 + * @author: 许 + * @date: 2025/8/5 11:41 + * @param: [dlInspectionProject] + * @return: java.util.List> + **/ + List> queryStaffCountGroupByGoods(DlInspectionProject dlInspectionProject); + + /** + * @description: 员工统计初检数量和复检数量 + * @author: 许 + * @date: 2025/8/5 14:04 + * @param: [dlInspectionProject] + * @return: java.util.Map + **/ + Map queryStaffInspectionCount(DlInspectionProject dlInspectionProject); } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/StatisticsService.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/StatisticsService.java new file mode 100644 index 00000000..79e46c7a --- /dev/null +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/StatisticsService.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.inspection.service; + +import cn.iocoder.yudao.module.inspection.entity.DlInspectionProject; + +import java.util.Map; + +public interface StatisticsService { + + /** + * @description: 获取员工统计信息 + * @author: 许 + * @date: 2025/8/5 11:25 + * @param: [dlInspectionProject] + * @return: java.util.Map + **/ + Map queryStaffStatisticsInfo(DlInspectionProject dlInspectionProject); + + /** + * @description: 获取员工统计信息 + * @author: 许 + * @date: 2025/8/5 14:30 + * @param: [dlInspectionProject] + * @return: java.util.Map + **/ + Map queryStaffCountGroupByGoods(DlInspectionProject dlInspectionProject); +} diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/AppInspectionPartnerServiceImpl.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/AppInspectionPartnerServiceImpl.java index 269bb851..13c8a101 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/AppInspectionPartnerServiceImpl.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/AppInspectionPartnerServiceImpl.java @@ -2616,6 +2616,105 @@ public class AppInspectionPartnerServiceImpl extends ServiceImpl getStaffCountByUserId(DlInspectionProject dlInspectionProject) { + Map staffCount = inspectionWorkNodeService.getStaffCountByUserId(dlInspectionProject); + if (staffCount == null || staffCount.isEmpty()) { + return Collections.emptyMap(); + } + + Long userId = (Long) staffCount.get("userId"); + + Set inspectionInfoIds = new HashSet<>(); + + List> children = (List>) staffCount.get("children"); + if (children == null) { + children = new ArrayList<>(); + staffCount.put("children", children); + } + + // 收集已有项目中的 inspectionInfoId + inspectionInfoIds.addAll( + children.stream() + .map(map -> (String) map.get("inspectionInfoId")) + .flatMap(idsStr -> Arrays.stream(idsStr.split(","))) + .map(String::trim) + .filter(idStr -> !idStr.isEmpty()) + .map(Long::valueOf) + .collect(Collectors.toSet()) + ); + + // 查询接车信息 + List meetCarList = inspectionInfoService.selectMeetCarList(dlInspectionProject.getDatetimeRange()); + List userMeetCarList = meetCarList.stream() + .filter(i -> userId.equals(i.getMeetManId())) + .collect(Collectors.toList()); + + long meetCount = userMeetCarList.stream().filter(i -> Integer.valueOf(0).equals(i.getMeetType())).count(); + long meetGoCount = userMeetCarList.stream().filter(i -> Integer.valueOf(1).equals(i.getMeetType())).count(); + inspectionInfoIds.addAll(userMeetCarList.stream().map(InspectionInfo::getId).collect(Collectors.toList())); + + Map meetPhotoMap = new HashMap<>(); + meetPhotoMap.put("projectName", "接车拍照"); + meetPhotoMap.put("count", meetCount); + children.add(meetPhotoMap); + + Map meetGoMap = new HashMap<>(); + meetGoMap.put("projectName", "上门接车"); + meetGoMap.put("count", meetGoCount); + children.add(meetGoMap); + + + // 查询还车信息 + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.eq(InspectionInfo::getIsReturnCar, 1); + + List datetimeRange = dlInspectionProject.getDatetimeRange(); + if (CollUtil.isNotEmpty(datetimeRange) && datetimeRange.size() == 2) { + wrapper.between(InspectionInfo::getEndTime, datetimeRange.get(0), datetimeRange.get(1)); + } + + List returnCarList = inspectionInfoService.list(wrapper); + + + List userReturnCarList = returnCarList.stream() + .filter(i -> userId.equals(i.getReturnCarUserId())) + .collect(Collectors.toList()); + + long returnCount = userReturnCarList.stream().filter(i -> Integer.valueOf(0).equals(i.getReturnType())).count(); + long returnGoCount = userReturnCarList.stream().filter(i -> Integer.valueOf(1).equals(i.getReturnType())).count(); + inspectionInfoIds.addAll(userReturnCarList.stream().map(InspectionInfo::getId).collect(Collectors.toList())); + + Map returnPhotoMap = new HashMap<>(); + returnPhotoMap.put("projectName", "还车拍照"); + returnPhotoMap.put("count", returnCount); + children.add(returnPhotoMap); + + Map returnGoMap = new HashMap<>(); + returnGoMap.put("projectName", "上门还车"); + returnGoMap.put("count", returnGoCount); + children.add(returnGoMap); + + + // 重新设置总数 + staffCount.put("totalCount", (long) inspectionInfoIds.size()); + + // 移除 count == 0 的 children + children.removeIf(c -> ((Long) c.getOrDefault("count", 0L)) == 0L); + // 按 count 降序排序 + children.sort(Comparator.comparingLong(c -> (Long) c.getOrDefault("count", 0L))); + Collections.reverse(children); + + return staffCount; + } + + /** * 文件统计 * diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionWorkNodeServiceImpl.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionWorkNodeServiceImpl.java index 2b1454e6..fd6eea59 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionWorkNodeServiceImpl.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionWorkNodeServiceImpl.java @@ -495,6 +495,61 @@ public class InspectionWorkNodeServiceImpl extends ServiceImpl getStaffCountByUserId(DlInspectionProject dlInspectionProject) { + Map> tempMap = new LinkedHashMap<>(); + List staffCount = baseMapper.getStaffCountByUserId(dlInspectionProject); + + for (StaffProjectCountVO vo : staffCount) { + Map userEntry = tempMap.computeIfAbsent(vo.getUserId(), k -> { + Map m = new HashMap<>(); + m.put("userId", vo.getUserId()); + m.put("nickname", vo.getNickname()); + m.put("totalCount", 0L); // 初始总数 + m.put("children", new ArrayList>()); + return m; + }); + + // 添加项目 + List> children = (List>) userEntry.get("children"); + vo.setCount(vo.getCount() == null ? 0 : vo.getCount()); + if (vo.getCount() == 0) { + continue; + } + Map project = new HashMap<>(); + project.put("projectName", vo.getProjectName()); + project.put("count", vo.getCount()); + project.put("id", vo.getId()); + project.put("inspectionInfoId", vo.getInspectionInfoIds()); + children.add(project); + + // 累加总数 + Long currentTotal = (Long) userEntry.get("totalCount"); + userEntry.put("totalCount", currentTotal + vo.getCount()); + } + + // 如果查出来的用户为空,返回空对象 + if (tempMap.isEmpty()) { + return Collections.emptyMap(); + } + + // 只取一个用户数据(因为你保证只有一个用户) + Map result = tempMap.values().iterator().next(); + + // 排序该用户下的项目 children + List> children = (List>) result.get("children"); + children.sort((a, b) -> Long.compare((Long) b.get("count"), (Long) a.get("count"))); + + return result; + } + + /** * 根据检测id获取异常节点 * @@ -535,6 +590,30 @@ public class InspectionWorkNodeServiceImpl extends ServiceImpl> + */ + @Override + public List> queryStaffCountGroupByGoods(DlInspectionProject dlInspectionProject) { + return baseMapper.queryStaffCountGroupByGoods(dlInspectionProject); + } + + /** + * @description: 员工统计初检数量和复检数量 + * @author: 许 + * @date: 2025/8/5 14:04 + * @param: [dlInspectionProject] + * @return: java.util.Map + */ + @Override + public Map queryStaffInspectionCount(DlInspectionProject dlInspectionProject) { + return baseMapper.queryStaffInspectionCount(dlInspectionProject); + } + /** * 判断传入的 InspectionWorkNode 对象是否在集合中有后续项目 * diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/StatisticsServiceImpl.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/StatisticsServiceImpl.java new file mode 100644 index 00000000..6817381e --- /dev/null +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/StatisticsServiceImpl.java @@ -0,0 +1,152 @@ +package cn.iocoder.yudao.module.inspection.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.iocoder.yudao.module.inspection.entity.DlInspectionProject; +import cn.iocoder.yudao.module.inspection.entity.InspectionInfo; +import cn.iocoder.yudao.module.inspection.service.IInspectionInfoService; +import cn.iocoder.yudao.module.inspection.service.IInspectionWorkNodeService; +import cn.iocoder.yudao.module.inspection.service.StatisticsService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @BelongsProject: lanan-system + * @BelongsPackage: cn.iocoder.yudao.module.inspection.service.impl + * @Author: 许 + * @CreateTime: 2025-08-05 11:24 + * @Description: 数据统计实现类 + * @Version: 1.0 + */ +@Service +@RequiredArgsConstructor +public class StatisticsServiceImpl implements StatisticsService { + + private final IInspectionWorkNodeService inspectionWorkNodeService; + + private final IInspectionInfoService inspectionInfoService; + /** + * @description: 获取员工统计信息 + * @author: 许 + * @date: 2025/8/5 11:25 + * @param: [dlInspectionProject] + * @return: java.util.Map + */ + @Override + public Map queryStaffStatisticsInfo(DlInspectionProject dlInspectionProject) { + Map result = new HashMap<>(); + /*车型数量统计*/ + //1.根据userId查询完成的车型数量 + List> goodsStatistics = inspectionWorkNodeService.queryStaffCountGroupByGoods(dlInspectionProject); + result.put("goodsStatistics", goodsStatistics); + + /*初检数量统计 复检数量统计*/ + //1.根据userId查询 + Map inspectionStatistics =inspectionWorkNodeService.queryStaffInspectionCount(dlInspectionProject); + result.put("inspectionStatistics", inspectionStatistics); + return result; + } + + /** + * @description: 获取员工统计信息 + * @author: 许 + * @date: 2025/8/5 14:30 + * @param: [dlInspectionProject] + * @return: java.util.Map + */ + @Override + public Map queryStaffCountGroupByGoods(DlInspectionProject dlInspectionProject) { + Map staffCount = inspectionWorkNodeService.getStaffCountByUserId(dlInspectionProject); + if (staffCount == null || staffCount.isEmpty()) { + return Collections.emptyMap(); + } + + Long userId = (Long) staffCount.get("userId"); + + Set inspectionInfoIds = new HashSet<>(); + + List> children = (List>) staffCount.get("children"); + if (children == null) { + children = new ArrayList<>(); + staffCount.put("children", children); + } + + // 收集已有项目中的 inspectionInfoId + inspectionInfoIds.addAll( + children.stream() + .map(map -> (String) map.get("inspectionInfoId")) + .flatMap(idsStr -> Arrays.stream(idsStr.split(","))) + .map(String::trim) + .filter(idStr -> !idStr.isEmpty()) + .map(Long::valueOf) + .collect(Collectors.toSet()) + ); + + // 查询接车信息 + List meetCarList = inspectionInfoService.selectMeetCarList(dlInspectionProject.getDatetimeRange()); + List userMeetCarList = meetCarList.stream() + .filter(i -> userId.equals(i.getMeetManId())) + .collect(Collectors.toList()); + + long meetCount = userMeetCarList.stream().filter(i -> Integer.valueOf(0).equals(i.getMeetType())).count(); + long meetGoCount = userMeetCarList.stream().filter(i -> Integer.valueOf(1).equals(i.getMeetType())).count(); + inspectionInfoIds.addAll(userMeetCarList.stream().map(InspectionInfo::getId).collect(Collectors.toList())); + + Map meetPhotoMap = new HashMap<>(); + meetPhotoMap.put("projectName", "接车拍照"); + meetPhotoMap.put("count", meetCount); + children.add(meetPhotoMap); + + Map meetGoMap = new HashMap<>(); + meetGoMap.put("projectName", "上门接车"); + meetGoMap.put("count", meetGoCount); + children.add(meetGoMap); + + + // 查询还车信息 + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.eq(InspectionInfo::getIsReturnCar, 1); + + List datetimeRange = dlInspectionProject.getDatetimeRange(); + if (CollUtil.isNotEmpty(datetimeRange) && datetimeRange.size() == 2) { + wrapper.between(InspectionInfo::getEndTime, datetimeRange.get(0), datetimeRange.get(1)); + } + + List returnCarList = inspectionInfoService.list(wrapper); + + + List userReturnCarList = returnCarList.stream() + .filter(i -> userId.equals(i.getReturnCarUserId())) + .collect(Collectors.toList()); + + long returnCount = userReturnCarList.stream().filter(i -> Integer.valueOf(0).equals(i.getReturnType())).count(); + long returnGoCount = userReturnCarList.stream().filter(i -> Integer.valueOf(1).equals(i.getReturnType())).count(); + inspectionInfoIds.addAll(userReturnCarList.stream().map(InspectionInfo::getId).collect(Collectors.toList())); + + Map returnPhotoMap = new HashMap<>(); + returnPhotoMap.put("projectName", "还车拍照"); + returnPhotoMap.put("count", returnCount); + children.add(returnPhotoMap); + + Map returnGoMap = new HashMap<>(); + returnGoMap.put("projectName", "上门还车"); + returnGoMap.put("count", returnGoCount); + children.add(returnGoMap); + + + // 重新设置总数 + staffCount.put("totalCount", (long) inspectionInfoIds.size()); + + // 移除 count == 0 的 children + children.removeIf(c -> ((Long) c.getOrDefault("count", 0L)) == 0L); + // 按 count 降序排序 + children.sort(Comparator.comparingLong(c -> (Long) c.getOrDefault("count", 0L))); + Collections.reverse(children); + + return staffCount; + } +} diff --git a/dl-module-inspection/src/main/resources/mapper/InspectionWorkNodeMapper.xml b/dl-module-inspection/src/main/resources/mapper/InspectionWorkNodeMapper.xml index 44202f4c..bead7ec7 100644 --- a/dl-module-inspection/src/main/resources/mapper/InspectionWorkNodeMapper.xml +++ b/dl-module-inspection/src/main/resources/mapper/InspectionWorkNodeMapper.xml @@ -267,6 +267,9 @@ staff.deleted = 0 AND su.deleted = 0 AND (valid_roles.user_id IS NOT NULL) -- 只保留有合格角色的用户 + + AND staff.user_id = #{userId} + GROUP BY staff.user_id ,ip.id @@ -376,4 +379,83 @@ GROUP BY ii.id ORDER BY ii.start_time DESC; + + +