添加根据批次查询年级 专业维度 #6
|
@ -556,59 +556,10 @@ public class Cet_4ServiceImpl extends ServiceImpl<Cet_4Mapper, Cet_4> implements
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Result<JSONObject> getRateByMajorAndLastestBatch(getRateByMajorAndLastestBatchDto getRateByMajorAndLastestBatchParam) {
|
public Result<JSONObject> getRateByMajorAndLastestBatch(getRateByMajorAndLastestBatchDto getRateByMajorAndLastestBatchParam) {
|
||||||
|
Date batch = cet4Mapper.lastestDate();
|
||||||
LambdaQueryWrapper<Cet_4> 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<Map<String, Object>> maps = cet4Mapper.selectMaps(cet4Wrapper);
|
|
||||||
cet4Wrapper.select(Cet_4::getEntrydate).groupBy(Cet_4::getEntrydate);
|
|
||||||
List<Map<String, Object>> entryDateList = cet4Mapper.selectMaps(cet4Wrapper);
|
|
||||||
|
|
||||||
JSONArray ansArray = new JSONArray();
|
|
||||||
for (Map<String, Object> Date : entryDateList) {
|
|
||||||
// 统计当前 entryDate 下的通过人数
|
|
||||||
//所有参加过四级考试的学生
|
|
||||||
Map<String, Integer> attendMap4 = new HashMap<>();
|
|
||||||
String currentEntryDate = (String) Date.get("entrydate");
|
|
||||||
for (Map<String, Object> 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();
|
JSONObject json = new JSONObject();
|
||||||
json.put("entryDate", currentEntryDate);
|
json.put("data",getGradeByBatch(batch,getRateByMajorAndLastestBatchParam.getCollege(),getRateByMajorAndLastestBatchParam.getMajor()));
|
||||||
json.put("passRate", df.format(passRate));
|
return Result.ok(json);
|
||||||
ansArray.add(json);
|
|
||||||
|
|
||||||
}
|
|
||||||
JSONObject result = new JSONObject();
|
|
||||||
result.put("data", ansArray);
|
|
||||||
|
|
||||||
return Result.ok(result);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -690,13 +641,13 @@ public class Cet_4ServiceImpl extends ServiceImpl<Cet_4Mapper, Cet_4> implements
|
||||||
return Result.ok(result);
|
return Result.ok(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public JSONObject getGradeByBatch(Date batch, String college, String majorName) {
|
||||||
public JSONObject getGradeByBatch(Date batch,String college) {
|
|
||||||
//根据批次获取正确的年级
|
//根据批次获取正确的年级
|
||||||
List<String> trueEntryDate = centerService.getEntryDateByBatch(batch);
|
List<String> trueEntryDate = centerService.getEntryDateByBatch(batch);
|
||||||
LambdaQueryWrapper<Cet_4> wrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Cet_4> wrapper = new LambdaQueryWrapper<>();
|
||||||
wrapper.eq(!college.equals("全校"), Cet_4::getCollege, college)
|
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<Cet_4> allStudent = list(wrapper);
|
List<Cet_4> allStudent = list(wrapper);
|
||||||
wrapper.ge(Cet_4::getResult, 425);
|
wrapper.ge(Cet_4::getResult, 425);
|
||||||
List<Cet_4> allPassStudent = list(wrapper);
|
List<Cet_4> allPassStudent = list(wrapper);
|
||||||
|
@ -724,6 +675,12 @@ public class Cet_4ServiceImpl extends ServiceImpl<Cet_4Mapper, Cet_4> implements
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JSONObject getGradeByBatch(Date batch, String college) {
|
||||||
|
return getGradeByBatch(batch, college, null);
|
||||||
|
}
|
||||||
|
|
||||||
//获取全校人数
|
//获取全校人数
|
||||||
private List<Cet_4> getNumAll(Date batch) {
|
private List<Cet_4> getNumAll(Date batch) {
|
||||||
LambdaQueryWrapper<Cet_4> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Cet_4> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
|
Loading…
Reference in New Issue