dev #7

Merged
YuNan merged 3 commits from YuNan/CET-cmd-2.0:dev into dev 2025-03-19 15:58:14 +08:00
2 changed files with 27 additions and 16 deletions

View File

@ -209,10 +209,10 @@ public class CenterServiceImpl extends ServiceImpl<Cet_4Mapper, Cet_4> implement
public Result<JSONObject> getData(String college, String major, String entryDate) {
//判断是否存在缓存
String key = "getData:" + college + major + entryDate;
if (Boolean.TRUE.equals(redisTemplate.hasKey(key))) {
System.out.println((JSONObject) redisTemplate.opsForValue().get(key));
return Result.ok((JSONObject) redisTemplate.opsForValue().get(key));
}
// if (Boolean.TRUE.equals(redisTemplate.hasKey(key))) {
// System.out.println((JSONObject) redisTemplate.opsForValue().get(key));
// return Result.ok((JSONObject) redisTemplate.opsForValue().get(key));
// }
//获取所有batch
JSONObject batch = getBatch();
JSONArray batchsArray = batch.getJSONArray("batches");
@ -339,8 +339,8 @@ public class CenterServiceImpl extends ServiceImpl<Cet_4Mapper, Cet_4> implement
json.put("batch", batchList.get(i));
json.put("attendNumber", attendNumber4[i]);//每个年级的参加人数,
json.put("passNumber", passNew4[i]);//每个年级的新通过人数
json.put("batchpassrate", df.format((passNew4[i] / (double) attendNumber4[i])));//每个批次新通过人数/参加人数
json.put("gradepassrate", df.format((passNumber[i] / (double) allStudent)));//累计通过 / 总人数
json.put("batchpassrate", df.format(((attendNumber4[i] == 0) ? 0 : passNew4[i] / (double) attendNumber4[i])));//每个批次新通过人数/参加人数
json.put("gradepassrate", df.format(((allStudent == 0) ? 0 : passNumber[i] / (double) allStudent)));//累计通过 / 总人数
gradeArray.add(json);
resultJson.put(grade[i / 2], gradeArray);
} else {
@ -350,8 +350,8 @@ public class CenterServiceImpl extends ServiceImpl<Cet_4Mapper, Cet_4> implement
json.put("batch", batchList.get(j));
json.put("attendNumber", attendNumber4[j]);//每个年级的参加人数,
json.put("passNumber", passNew4[j]);//每个年级的新通过人数
json.put("batchpassrate", df.format((passNew4[j] / (double) attendNumber4[j])));//每个批次新通过人数/参加人数
json.put("gradepassrate", df.format((passNumber[i + 1] / (double) allStudent)));//累计通过 / 总人数
json.put("batchpassrate", df.format(((attendNumber4[j] == 0) ? 0 : passNew4[j] / (double) attendNumber4[j])));//每个批次新通过人数/参加人数
json.put("gradepassrate", df.format(((allStudent == 0) ? 0 : passNumber[i + 1] / (double) allStudent)));//累计通过 / 总人数
gradeArray.add(json);
}
resultJson.put(grade[i / 2], gradeArray);
@ -363,7 +363,8 @@ public class CenterServiceImpl extends ServiceImpl<Cet_4Mapper, Cet_4> implement
result.put("total", allStudent);//总人数
result.put("totalName", totalName);//总人数
result.put("passNumber", passNumber[n - 1]);//累计通过人数
result.put("passRate", df.format((passNumber[n - 1] / (double) allStudent)));//累计通过率
result.put("passRate", df.format(((allStudent == 0) ? 0 : passNumber[n - 1] / (double) allStudent)));//累计通过率
// 将数据存入缓存
redisTemplate.opsForValue().set(key, result, Duration.ofDays(7));
return Result.ok(result);

View File

@ -97,9 +97,9 @@ public class Cet_4ServiceImpl extends ServiceImpl<Cet_4Mapper, Cet_4> implements
@Override
public Result<JSONObject> getRateByBatch(String college, String batchStr) {
if (redisTemplate.opsForValue().get("getRateByBatch" + college + batchStr) != null) {
return Result.ok((JSONObject) redisTemplate.opsForValue().get("getRateByBatch" + college + 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;
@ -127,9 +127,10 @@ public class Cet_4ServiceImpl extends ServiceImpl<Cet_4Mapper, Cet_4> implements
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{
//TODOmajorname为空时存在异常
collect = passedList.stream().collect(Collectors.groupingBy(Cet_4::getMajorname));
} else {
collect = passedList.stream()
.filter(cet4 -> cet4.getMajorname() != null)
.collect(Collectors.groupingBy(Cet_4::getMajorname));
}
// 过滤除去错误的数据
@ -139,7 +140,16 @@ public class Cet_4ServiceImpl extends ServiceImpl<Cet_4Mapper, Cet_4> implements
long passStudent = passedList.size();
double passRateSum = (passStudent / (double) allStudent) * 100;
String rate = decimalFormat.format(passRateSum);
double res = Double.parseDouble(rate);
double res;
try {
res= Double.parseDouble(rate);
}catch (NumberFormatException e){
e.printStackTrace();
res=0;
}
// double res = Double.parseDouble(rate);
resultData.put("sumRate", res);