From a5f4b5965fef1e0a3c7a89e6b6834c23ce323cfd Mon Sep 17 00:00:00 2001 From: Qi <3194726156@qq.com> Date: Thu, 10 Apr 2025 20:29:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9getAnalyze=E5=87=BD=E6=95=B0?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=A0=BC=E5=BC=8F-=E9=85=8D=E5=A4=87?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E5=9B=9B=E7=BA=A7=E5=88=86=E6=9E=90=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E7=9A=84=E6=9F=B1=E7=8A=B6=E5=9B=BE=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/Cet_4ServiceImpl.java | 38 +++++++++++++++---- 1 file changed, 30 insertions(+), 8 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 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();