From 161257c78b1fee82b18bbe3b3e7a7d4bb76f89a8 Mon Sep 17 00:00:00 2001 From: YuNan <3194726156@qq.com> Date: Thu, 17 Oct 2024 19:17:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=A0=B9=E6=8D=AE=E6=89=B9?= =?UTF-8?q?=E6=AC=A1=E6=9F=A5=E8=AF=A2=E5=B9=B4=E7=BA=A7=20=E4=B8=93?= =?UTF-8?q?=E4=B8=9A=E7=BB=B4=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/Cet_4ServiceImpl.java | 73 ++++--------------- 1 file changed, 15 insertions(+), 58 deletions(-) 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 2a165ffb..ad05f97c 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 @@ -170,7 +170,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); @@ -556,59 +556,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 @@ -690,13 +641,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); + wrapper.eq(!college.equals("全校"), Cet_4::getCollege, college) + .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); @@ -724,6 +675,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<>();