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 b45304ad..08a59572 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 @@ -172,7 +172,7 @@ public class Cet_4ServiceImpl extends ServiceImpl implements for (Map.Entry stringObjectEntry : list) { jsonObject.put(stringObjectEntry.getKey(), stringObjectEntry.getValue()); } - JSONObject gradeByBatch = getGradeByBatch(batch, college); + JSONObject gradeByBatch = getGradeByBatch(batch,college); resultData.put("data", jsonObject); resultData.put("gradeData", gradeByBatch); System.out.println(resultData); @@ -558,59 +558,10 @@ public class Cet_4ServiceImpl extends ServiceImpl implements @Override public Result getRateByMajorAndLastestBatch(getRateByMajorAndLastestBatchDto getRateByMajorAndLastestBatchParam) { - - LambdaQueryWrapper cet4Wrapper = new LambdaQueryWrapper<>(); - - Date lastestBatch = cet4Mapper.lastestDate(); - cet4Wrapper.eq(Cet_4::getCollege, getRateByMajorAndLastestBatchParam.getCollege()); - cet4Wrapper.eq(Cet_4::getBatch, lastestBatch); - //根据前端数据是否传major 判断是否添加 sql 条件 - if (getRateByMajorAndLastestBatchParam.getMajor() != null && !getRateByMajorAndLastestBatchParam.getMajor().isEmpty()) { - cet4Wrapper.eq(Cet_4::getMajorname, getRateByMajorAndLastestBatchParam.getMajor()); - } - long allStudentCount = cet4Mapper.selectCount(cet4Wrapper); - //创建所以年级的list - List> maps = cet4Mapper.selectMaps(cet4Wrapper); - cet4Wrapper.select(Cet_4::getEntrydate).groupBy(Cet_4::getEntrydate); - List> entryDateList = cet4Mapper.selectMaps(cet4Wrapper); - - JSONArray ansArray = new JSONArray(); - for (Map Date : entryDateList) { - // 统计当前 entryDate 下的通过人数 - //所有参加过四级考试的学生 - Map attendMap4 = new HashMap<>(); - String currentEntryDate = (String) Date.get("entrydate"); - for (Map map : maps) { - String studentEntryDate = (String) map.get("entrydate"); - String str = (String) map.get("id"); - // 仅处理当前 entryDate 下的学生数据 - if (currentEntryDate.equals(studentEntryDate)) { - if ((int) map.get("result") >= 425) { - attendMap4.put(str, 1); - } else { - if (!attendMap4.containsKey(str)) {//排除已经通过的人 - attendMap4.put(str, 0); - } - } - } - } - //累计通过的人数 - int passNumber = (int) attendMap4.values().stream().filter(value -> value == 1).count(); - //每个年级的累计通过率保留三位小数 - double passRate = passNumber / (double) allStudentCount; -// passRate = passRate * 100; - //保留三位小数 - DecimalFormat df = new DecimalFormat("#.###"); - JSONObject json = new JSONObject(); - json.put("entryDate", currentEntryDate); - json.put("passRate", df.format(passRate)); - ansArray.add(json); - - } - JSONObject result = new JSONObject(); - result.put("data", ansArray); - - return Result.ok(result); + Date batch = cet4Mapper.lastestDate(); + JSONObject json = new JSONObject(); + json.put("data",getGradeByBatch(batch,getRateByMajorAndLastestBatchParam.getCollege(),getRateByMajorAndLastestBatchParam.getMajor())); + return Result.ok(json); } @Override @@ -718,13 +669,13 @@ public class Cet_4ServiceImpl extends ServiceImpl implements return Result.ok(result); } - @Override - public JSONObject getGradeByBatch(Date batch, String college) { + public JSONObject getGradeByBatch(Date batch, String college, String majorName) { //根据批次获取正确的年级 List trueEntryDate = centerService.getEntryDateByBatch(batch); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(!college.equals("全校"), Cet_4::getCollege, college) - .eq(Cet_4::getBatch, batch); + .eq(Cet_4::getBatch, batch) + .eq(majorName != null, Cet_4::getMajorname, majorName); List allStudent = list(wrapper); wrapper.ge(Cet_4::getResult, 425); List allPassStudent = list(wrapper); @@ -752,6 +703,12 @@ public class Cet_4ServiceImpl extends ServiceImpl implements return res; } + + @Override + public JSONObject getGradeByBatch(Date batch, String college) { + return getGradeByBatch(batch, college, null); + } + //获取全校人数 private List getNumAll(Date batch) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();