From 691c3f3220510805aaeab9846a691a8abff2ed72 Mon Sep 17 00:00:00 2001 From: Lihx Date: Sun, 8 Jun 2025 15:57:00 +0800 Subject: [PATCH] 0608 --- .../service/impl/DataViewServiceImpl.java | 41 ++++++++++++++++++- .../module/base/vo/DlDriveSchoolStaffVO.java | 4 ++ .../base/DlDriveSchoolStudentMapper.xml | 4 +- .../resources/mapper/course/ProcessMapper.xml | 2 + 4 files changed, 49 insertions(+), 2 deletions(-) diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DataViewServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DataViewServiceImpl.java index dbae2943..4406eaf6 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DataViewServiceImpl.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DataViewServiceImpl.java @@ -457,6 +457,45 @@ public class DataViewServiceImpl implements DataViewService { List list = studentMapper.selectStudentListCount(); Map rtnMap = new HashMap<>(); rtnMap.put("all", list.size()); + + // 按 courseType 分组 + Map> courseTypeMap = list.stream() + .filter(item -> item.getCourseType() != null) + .collect(Collectors.groupingBy(DlDriveSchoolStaffVO::getCourseType)); + + // 统计各 courseType 的总人数 + for (String courseType : courseTypeMap.keySet()) { + rtnMap.put(courseType, courseTypeMap.get(courseType).size()); + } + + // 按毕业状态分组(gradTime 是否为空) + Map> graduatedMap = list.stream() + .filter(item -> item.getCourseType() != null) + .collect(Collectors.groupingBy( + item -> item.getGradTime() != null ? "graduated" : "notGraduated" + )); + + // 统计总毕业/未毕业人数 + rtnMap.put("graduated", graduatedMap.getOrDefault("graduated", Collections.emptyList()).size()); + rtnMap.put("notGraduated", graduatedMap.getOrDefault("notGraduated", Collections.emptyList()).size()); + + // 按 courseType + 毕业状态分组(例如:C1_graduated, C2_notGraduated) + Map courseTypeGraduatedCount = list.stream() + .filter(item -> item.getCourseType() != null) + .collect(Collectors.groupingBy( + item -> item.getCourseType() + "_" + (item.getGradTime() != null ? "graduated" : "notGraduated"), + Collectors.counting() + )); + + // 将 courseType + 毕业状态的统计结果放入 rtnMap + courseTypeGraduatedCount.forEach((key, count) -> rtnMap.put(key, count)); + + return rtnMap; + } + /*public Map getStudentCount() { + List list = studentMapper.selectStudentListCount(); + Map rtnMap = new HashMap<>(); + rtnMap.put("all", list.size()); //按courseType分组 Map> map = list.stream() .filter(item -> item.getCourseType() != null) // 过滤掉 courseType 为 null 的元素 @@ -487,5 +526,5 @@ public class DataViewServiceImpl implements DataViewService { rtnMap.put("graduated", graduatedCount); rtnMap.put("notGraduated", notGraduatedCount); return rtnMap; - } + }*/ } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolStaffVO.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolStaffVO.java index e5af0125..a63a7114 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolStaffVO.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolStaffVO.java @@ -64,4 +64,8 @@ public class DlDriveSchoolStaffVO { private List age; /**拿证天数*/ private Integer passDays; + /**毕业时间*/ + private Date gradTime; + /**拿证时间*/ + private Date passTime; } diff --git a/dl-module-jx/src/main/resources/mapper/base/DlDriveSchoolStudentMapper.xml b/dl-module-jx/src/main/resources/mapper/base/DlDriveSchoolStudentMapper.xml index ecf74f55..48a6266c 100644 --- a/dl-module-jx/src/main/resources/mapper/base/DlDriveSchoolStudentMapper.xml +++ b/dl-module-jx/src/main/resources/mapper/base/DlDriveSchoolStudentMapper.xml @@ -476,7 +476,9 @@