diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CenterServiceImpl.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CenterServiceImpl.java index dc6b5ada..5fe80ba5 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CenterServiceImpl.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CenterServiceImpl.java @@ -262,7 +262,18 @@ public class CenterServiceImpl extends ServiceImpl implement Cet4_majorQW.clear(); Cet4_majorQW.select(Cet4_major::getCode).eq(Cet4_major::getEntrydate, entryDate).eq(Cet4_major::getState, "在校"); allStudent = cet4_majorMapper.selectCount(Cet4_majorQW); - } else if (college.equals("专升本")) { + }else if(college.equals("全校(不含艺体美外语)")) { + totalName = "全校"; + Cet_4QW.eq(Cet_4::getEntrydate, entryDate) + .eq(Cet_4::getBatch, batchList.get(i)) + .eq(Cet_4::getState, "在校"); + Cet_4QW.notIn(Cet_4::getCollege, Arrays.asList("体育科学学院", "美术学院", "音乐学院")); + Cet_4QW.notIn(Cet_4::getMajorname, Arrays.asList("英语","翻译", "商务英语", "表演","广播电视编导", "录音艺术", "播音与主持艺术","动画", "摄影", "数字媒体艺术")); + Cet4_majorQW.clear(); + Cet4_majorQW.select(Cet4_major::getCode).eq(Cet4_major::getEntrydate, entryDate).eq(Cet4_major::getState, "在校"); + allStudent = cet4_majorMapper.selectCount(Cet4_majorQW); + + }else if (college.equals("专升本")) { totalName = "全校"; Cet_4QW.eq(Cet_4::getLevel, college).eq(Cet_4::getEntrydate, entryDate).eq(Cet_4::getBatch, batchList.get(i)); //查询该年级的专升本在籍学生 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 8847edb4..7ccea6d2 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 @@ -96,6 +96,10 @@ public class Cet_4ServiceImpl extends ServiceImpl implements @Override public Result getRateByBatch(String college, String batchStr) { + + if (redisTemplate.opsForValue().get("getRateByBatch" + college + batchStr) != null) { + return Result.ok((JSONObject) redisTemplate.opsForValue().get("getRateByBatch" + college + batchStr)); + } SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); DecimalFormat decimalFormat = new DecimalFormat("#.#"); Date batch; @@ -119,17 +123,18 @@ public class Cet_4ServiceImpl extends ServiceImpl implements //根据批次查人数 queryWrapper.ge(Cet_4::getResult, 425); - List result = cet4Mapper.selectList(queryWrapper); - collect = result.stream().collect(Collectors.groupingBy(Cet_4::getCollege)); + List passedList = cet4Mapper.selectList(queryWrapper); + passedList = passedList.stream().filter(e -> trueEntryDate.contains(e.getEntrydate())).collect(Collectors.toList()); + if(college.equals("全校")){ + collect = passedList.stream().collect(Collectors.groupingBy(Cet_4::getCollege)); + }else{ + //TODO:majorname为空时存在异常 + collect = passedList.stream().collect(Collectors.groupingBy(Cet_4::getMajorname)); + } // 过滤除去错误的数据 allStudentList = allStudentList.stream().filter(e -> trueEntryDate.contains(e.getEntrydate())).collect(Collectors.toList()); long allStudent = allStudentList.size(); - //获取通过人数 - LambdaQueryWrapper passWrapper = new LambdaQueryWrapper<>(); - passWrapper.eq(Cet_4::getBatch, batch).ge(Cet_4::getResult, 425).eq(!college.equals("全校"), Cet_4::getCollege, college); - List passedList = list(passWrapper); - passedList = passedList.stream().filter(e -> trueEntryDate.contains(e.getEntrydate())).collect(Collectors.toList()); long passStudent = passedList.size(); double passRateSum = (passStudent / (double) allStudent) * 100; @@ -176,6 +181,7 @@ public class Cet_4ServiceImpl extends ServiceImpl implements resultData.put("data", jsonObject); resultData.put("gradeData", gradeByBatch); System.out.println(resultData); + redisTemplate.opsForValue().set("getRateByBatch" + college + batchStr, resultData); return Result.OK(resultData); } @@ -560,7 +566,7 @@ public class Cet_4ServiceImpl extends ServiceImpl implements public Result getRateByMajorAndLastestBatch(getRateByMajorAndLastestBatchDto getRateByMajorAndLastestBatchParam) { Date batch = cet4Mapper.lastestDate(); JSONObject json = new JSONObject(); - json.put("data",getGradeByBatch(batch,getRateByMajorAndLastestBatchParam.getCollege(),getRateByMajorAndLastestBatchParam.getMajor())); + json.put("data", getGradeByBatch(batch, getRateByMajorAndLastestBatchParam.getCollege(), getRateByMajorAndLastestBatchParam.getMajor())); return Result.ok(json); } @@ -586,7 +592,9 @@ public class Cet_4ServiceImpl extends ServiceImpl implements if (getRateByEntryDateDtoParams.getMajor() != null && !getRateByEntryDateDtoParams.getMajor().isEmpty()) { cet4StudentCount.eq(Cet_4::getMajorname, getRateByEntryDateDtoParams.getMajor()); } - long allStudentCount = cet4Mapper.selectCount(cet4StudentCount); + cet4StudentCount.groupBy(Cet_4::getCode); + List allStudentList = cet4Mapper.selectObjs(cet4StudentCount); + long allStudentCount = allStudentList.size(); // 统计当前 entryDate 下的通过人数 //所有参加过四级考试的学生 Map attendMap4 = new HashMap<>();