diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/Cet_4ServiceImpl.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/Cet_4ServiceImpl.java index 76dae8b7..aa1ccc6a 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/Cet_4ServiceImpl.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/Cet_4ServiceImpl.java @@ -299,32 +299,25 @@ public class Cet_4ServiceImpl extends ServiceImpl implements } } } - //学院/专业的全部在籍学生 - long allStudent; //查某个入学年级的所有学院 LambdaQueryWrapper cet4MajorQW = new LambdaQueryWrapper<>(); cet4MajorQW.select(Cet4_major::getCollege).eq(Cet4_major::getEntrydate, entryDate).groupBy(Cet4_major::getCollege); //若无该学院则剔除 List collegeSet = cet4_MajorMapper.selectObjs(cet4MajorQW); - // 在循环开始之前,获取所有学院的在籍学生数量 + // 在循环开始之前,获取该学院该年级的学生数量 LambdaQueryWrapper allStudentQW = new LambdaQueryWrapper<>(); - allStudentQW.select(Cet4_major::getCollege, Cet4_major::getId).eq(Cet4_major::getState, "在校").eq(Cet4_major::getEntrydate, entryDate); - List> allStudentList = cet4_majorMapper.selectMaps(allStudentQW); - Map allStudentMap = allStudentList.stream().collect(Collectors.groupingBy(map -> (String) map.get("college"), Collectors.counting())); - - // 在循环开始之前,获取所有批次的数据 + allStudentQW.select(Cet4_major::getId).eq(Cet4_major::getState, "在校").eq(Cet4_major::getEntrydate, entryDate).eq(Cet4_major::getCollege, collegeName); + //获取该学院在籍学生数量 + long allStudent = cet4_majorMapper.selectCount(allStudentQW); + // 在循环开始之前,获取该年级,学院所有批次的数据 LambdaQueryWrapper allBatchQW = new LambdaQueryWrapper<>(); - allBatchQW.select(Cet_4::getCollege, Cet_4::getId, Cet_4::getResult).eq(Cet_4::getEntrydate, entryDate).in(Cet_4::getBatch, batchList); - List> allBatchList = cet4Mapper.selectMaps(allBatchQW); - Map>> allBatchMap = allBatchList.stream().collect(Collectors.groupingBy(map -> (String) map.get("college"))); + allBatchQW.select(Cet_4::getCollege, Cet_4::getId, Cet_4::getResult).eq(Cet_4::getEntrydate, entryDate).eq(Cet_4::getCollege, collegeName).in(Cet_4::getBatch, batchList); + //获取该学院该年级所有批次的数据 + List> Cet_4eEntrydate = cet4Mapper.selectMaps(allBatchQW); if (collegeSet.contains(collegeName)) { //所有参加过四级考试的学生 Map attendMap4 = new HashMap<>(); - //获取该学院在籍学生数量 - allStudent = allStudentMap.getOrDefault(collegeName, 0L); JSONObject json = new JSONObject(); - //一次性获取所有批次的数据 - List> Cet_4eEntrydate = allBatchMap.get(collegeName); for (Map map : Cet_4eEntrydate) { String str = (String) map.get("id"); if ((int) map.get("result") >= 425) {