forked from Big-Data-Lab/CET-cmd-2.0
Merge pull request '添加根据批次查询年级 专业维度' (#6) from YuNan/CET-cmd-2.0:dev into dev
Reviewed-on: Big-Data-Lab/CET-cmd-2.0#6
This commit is contained in:
commit
faa6144677
|
@ -170,7 +170,7 @@ public class Cet_4ServiceImpl extends ServiceImpl<Cet_4Mapper, Cet_4> implements
|
|||
for (Map.Entry<String, Object> 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<Cet_4Mapper, Cet_4> implements
|
|||
|
||||
@Override
|
||||
public Result<JSONObject> getRateByMajorAndLastestBatch(getRateByMajorAndLastestBatchDto getRateByMajorAndLastestBatchParam) {
|
||||
|
||||
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();
|
||||
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<Cet_4Mapper, Cet_4> implements
|
|||
return Result.ok(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject getGradeByBatch(Date batch,String college) {
|
||||
public JSONObject getGradeByBatch(Date batch, String college, String majorName) {
|
||||
//根据批次获取正确的年级
|
||||
List<String> trueEntryDate = centerService.getEntryDateByBatch(batch);
|
||||
LambdaQueryWrapper<Cet_4> 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<Cet_4> allStudent = list(wrapper);
|
||||
wrapper.ge(Cet_4::getResult, 425);
|
||||
List<Cet_4> allPassStudent = list(wrapper);
|
||||
|
@ -724,6 +675,12 @@ public class Cet_4ServiceImpl extends ServiceImpl<Cet_4Mapper, Cet_4> implements
|
|||
return res;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public JSONObject getGradeByBatch(Date batch, String college) {
|
||||
return getGradeByBatch(batch, college, null);
|
||||
}
|
||||
|
||||
//获取全校人数
|
||||
private List<Cet_4> getNumAll(Date batch) {
|
||||
LambdaQueryWrapper<Cet_4> queryWrapper = new LambdaQueryWrapper<>();
|
||||
|
|
Loading…
Reference in New Issue