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 a75a1df8..649f95cc 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 @@ -686,7 +686,15 @@ public class Cet_4ServiceImpl extends ServiceImpl implements .eq(!major.isEmpty(), Cet_4::getMajorname, major) .eq(Cet_4::getBatch, batch); List list = list(queryWrapper); - JSONObject rateByLastBatch = getRateByLastBatch(list); + //设置要查询的范围端 + List ranges = Arrays.asList( + new int[]{0, 400}, + new int[]{400, 425}, + new int[]{425, 450}, + new int[]{450, 475}, + new int[]{475, 750} + ); + JSONObject rateByLastBatch = getRateByBatchRanges(list, ranges); JSONObject scoreRateByLastBatch = getScoreRateByLastBatch(list); JSONObject result = new JSONObject(); result.put("rateByBatch", rateByLastBatch); @@ -694,18 +702,32 @@ public class Cet_4ServiceImpl extends ServiceImpl implements return Result.ok(result); } - //400-425占比 - public JSONObject getRateByLastBatch(List list) { + + public JSONObject getRateByBatchRanges(List list, List ranges) { int total = list.size(); - int count = (int) list.stream().filter(e -> e.getResult() >= 400 && e.getResult() < 425).count(); JSONObject jsonObject = new JSONObject(); - double rate = count / (double) total; - rate=rate*100; - DecimalFormat df = new DecimalFormat("#.##"); - jsonObject.put("rate", df.format(rate)); + + // 遍历每个区间 + for (int[] range : ranges) { + int min = range[0]; + int max = range[1]; + + // 计算符合条件的个数 + int count = (int) list.stream().filter(e -> e.getResult() >= min && e.getResult() < max).count(); + + // 计算比率 + double rate = count / (double) total; + rate = rate * 100; + + // 格式化结果并添加到结果中 + DecimalFormat df = new DecimalFormat("#.##"); + jsonObject.put(min + "-" + max, df.format(rate)); + } + return jsonObject; } + //听力阅读等各个模块占比 public JSONObject getScoreRateByLastBatch(List list) { int total = list.size();