根据批次获得年级数据
This commit is contained in:
parent
73b1c89ecd
commit
d09c8e13d8
|
@ -79,7 +79,7 @@ public class CenterController {
|
||||||
@PostMapping("/getAllRate")
|
@PostMapping("/getAllRate")
|
||||||
@Cacheable(value = "getAllRate", key = "'getAllRate' + #webData")
|
@Cacheable(value = "getAllRate", key = "'getAllRate' + #webData")
|
||||||
public Result<JSONObject> getAllRate(@RequestBody JSONObject webData) {
|
public Result<JSONObject> getAllRate(@RequestBody JSONObject webData) {
|
||||||
String level= webData.getString("level");
|
String level = webData.getString("level");
|
||||||
//四六级分开查询
|
//四六级分开查询
|
||||||
if (level.equals("cet4")) {
|
if (level.equals("cet4")) {
|
||||||
|
|
||||||
|
@ -92,18 +92,19 @@ public class CenterController {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/getRateByCollege")
|
@PostMapping("/getRateByCollege")
|
||||||
public Result<JSONObject> getRateByCollege(@RequestBody JSONObject webData){
|
public Result<JSONObject> getRateByCollege(@RequestBody JSONObject webData) {
|
||||||
return cet4Service.getRateByCollege(webData);
|
return cet4Service.getRateByCollege(webData);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/getRateByAllBatch")
|
@GetMapping("/getRateByAllBatch")
|
||||||
// @Cacheable(value = "getRateByAllBatch", key = "'getRateByAllBatch' + #college+#major+#level")
|
// @Cacheable(value = "getRateByAllBatch", key = "'getRateByAllBatch' + #college+#major+#level")
|
||||||
public Result<JSONObject> getRateByAllBatch(@RequestParam("college") String college,@RequestParam("major") String major, @RequestParam("level") String level) {
|
public Result<JSONObject> getRateByAllBatch(@RequestParam("college") String college, @RequestParam("major") String major, @RequestParam("level") String level) {
|
||||||
// System.out.println(college + " " + level);
|
// System.out.println(college + " " + level);
|
||||||
if (level.equals("cet4")) {
|
if (level.equals("cet4")) {
|
||||||
|
|
||||||
return cet4Service.getRateByAllBatch(college,major);
|
return cet4Service.getRateByAllBatch(college, major);
|
||||||
} else if (level.equals("cet6")) {
|
} else if (level.equals("cet6")) {
|
||||||
Cet_6 cet = new Cet_6();
|
Cet_6 cet = new Cet_6();
|
||||||
cet.setCollege(college);
|
cet.setCollege(college);
|
||||||
|
@ -114,18 +115,19 @@ public class CenterController {
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/getRateByBatch")
|
@GetMapping("/getRateByBatch")
|
||||||
public Result<JSONObject> getRateByBatch(@RequestParam("batch")String batch, @RequestParam("college") String college, @RequestParam("level")String level){
|
public Result<JSONObject> getRateByBatch(@RequestParam("batch") String batch, @RequestParam("college") String college, @RequestParam("level") String level) {
|
||||||
if (level.equals("cet4")){
|
if (level.equals("cet4")) {
|
||||||
return cet4Service.getRateByBatch(college,batch);
|
return cet4Service.getRateByBatch(college, batch);
|
||||||
}else return null;
|
} else return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/getRateByMajor")
|
@PostMapping("/getRateByMajor")
|
||||||
public Result<JSONObject> getRateByMajor(@RequestBody JSONObject webData){
|
public Result<JSONObject> getRateByMajor(@RequestBody JSONObject webData) {
|
||||||
return cet4Service.getRateByMajor(webData);
|
return cet4Service.getRateByMajor(webData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param getRateByMajorAndLastestBatchParam
|
* @param getRateByMajorAndLastestBatchParam
|
||||||
* @return {@link Result }<{@link JSONObject }>
|
* @return {@link Result }<{@link JSONObject }>
|
||||||
|
|
|
@ -5,6 +5,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import org.jeecg.common.api.vo.Result;
|
import org.jeecg.common.api.vo.Result;
|
||||||
import org.jeecg.modules.entity.Cet_4;
|
import org.jeecg.modules.entity.Cet_4;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: cet_6
|
* @Description: cet_6
|
||||||
* @Author: jeecg-boot
|
* @Author: jeecg-boot
|
||||||
|
@ -21,5 +24,8 @@ public interface CenterService extends IService<Cet_4> {
|
||||||
Result<JSONObject> getData(String college,String major, String entryDate);
|
Result<JSONObject> getData(String college,String major, String entryDate);
|
||||||
|
|
||||||
Result<JSONObject> getTest();
|
Result<JSONObject> getTest();
|
||||||
|
|
||||||
Result<JSONObject> getCollegeMajor();
|
Result<JSONObject> getCollegeMajor();
|
||||||
|
|
||||||
|
List<String> getEntryDateByBatch(Date batch);
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,8 @@ import org.jeecg.modules.dto.getRateByMajorAndLastestBatchDto;
|
||||||
import org.jeecg.modules.entity.Cet_4;
|
import org.jeecg.modules.entity.Cet_4;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: cet_4
|
* @Description: cet_4
|
||||||
* @Author: jeecg-boot
|
* @Author: jeecg-boot
|
||||||
|
@ -26,6 +28,8 @@ public interface ICet_4Service extends IService<Cet_4> {
|
||||||
Result<JSONObject> getRateByMajor(JSONObject webData);
|
Result<JSONObject> getRateByMajor(JSONObject webData);
|
||||||
|
|
||||||
Result<JSONObject> getDataByStudent(JSONObject jsonObject);
|
Result<JSONObject> getDataByStudent(JSONObject jsonObject);
|
||||||
|
|
||||||
|
JSONObject getGradeByBatch(Date batch,String college);
|
||||||
boolean cleanData();
|
boolean cleanData();
|
||||||
|
|
||||||
Result<JSONObject> getRateByMajorAndLastestBatch(getRateByMajorAndLastestBatchDto getRateByMajorAndLastestBatchParam);
|
Result<JSONObject> getRateByMajorAndLastestBatch(getRateByMajorAndLastestBatchDto getRateByMajorAndLastestBatchParam);
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package org.jeecg.modules.service.impl;
|
package org.jeecg.modules.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
@ -8,13 +9,11 @@ import org.jeecg.common.api.vo.Result;
|
||||||
import org.jeecg.modules.entity.Cet4_major;
|
import org.jeecg.modules.entity.Cet4_major;
|
||||||
import org.jeecg.modules.entity.Cet_4;
|
import org.jeecg.modules.entity.Cet_4;
|
||||||
import org.jeecg.modules.entity.Cet_4old;
|
import org.jeecg.modules.entity.Cet_4old;
|
||||||
import org.jeecg.modules.entity.Cet_6;
|
|
||||||
import org.jeecg.modules.mapper.Cet4_majorMapper;
|
import org.jeecg.modules.mapper.Cet4_majorMapper;
|
||||||
import org.jeecg.modules.mapper.Cet_4Mapper;
|
import org.jeecg.modules.mapper.Cet_4Mapper;
|
||||||
import org.jeecg.modules.mapper.Cet_4oldMapper;
|
import org.jeecg.modules.mapper.Cet_4oldMapper;
|
||||||
import org.jeecg.modules.mapper.Cet_6Mapper;
|
import org.jeecg.modules.mapper.Cet_6Mapper;
|
||||||
import org.jeecg.modules.service.CenterService;
|
import org.jeecg.modules.service.CenterService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.data.redis.core.RedisTemplate;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
@ -114,6 +113,23 @@ public class CenterServiceImpl extends ServiceImpl<Cet_4Mapper, Cet_4> implement
|
||||||
return Result.ok(result);
|
return Result.ok(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> getEntryDateByBatch(Date batch) {
|
||||||
|
List<String> res=new ArrayList<>();
|
||||||
|
String batchStr = DateUtil.format(batch, "yyyy-MM-dd");
|
||||||
|
String[] dateArr = batchStr.split("-");
|
||||||
|
//根据月份来判断是否是当年新生
|
||||||
|
int month = Integer.parseInt(dateArr[1]);
|
||||||
|
int year=Integer.parseInt(dateArr[0]);
|
||||||
|
if (month < 10) {
|
||||||
|
year--;
|
||||||
|
}
|
||||||
|
for(int i=0;i<4;i++){
|
||||||
|
res.add(String.valueOf(year--));
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 统计四级表和六级表中存在的批次
|
* 统计四级表和六级表中存在的批次
|
||||||
*/
|
*/
|
||||||
|
@ -186,7 +202,7 @@ public class CenterServiceImpl extends ServiceImpl<Cet_4Mapper, Cet_4> implement
|
||||||
@Override
|
@Override
|
||||||
public Result<JSONObject> getData(String college, String major, String entryDate) {
|
public Result<JSONObject> getData(String college, String major, String entryDate) {
|
||||||
//判断是否存在缓存
|
//判断是否存在缓存
|
||||||
String key = "getData:"+college + major + entryDate;
|
String key = "getData:" + college + major + entryDate;
|
||||||
if (Boolean.TRUE.equals(redisTemplate.hasKey(key))) {
|
if (Boolean.TRUE.equals(redisTemplate.hasKey(key))) {
|
||||||
System.out.println((JSONObject) redisTemplate.opsForValue().get(key));
|
System.out.println((JSONObject) redisTemplate.opsForValue().get(key));
|
||||||
return Result.ok((JSONObject) redisTemplate.opsForValue().get(key));
|
return Result.ok((JSONObject) redisTemplate.opsForValue().get(key));
|
||||||
|
@ -238,28 +254,28 @@ public class CenterServiceImpl extends ServiceImpl<Cet_4Mapper, Cet_4> implement
|
||||||
Cet_4QW.eq(Cet_4::getEntrydate, entryDate).eq(Cet_4::getBatch, batchList.get(i));
|
Cet_4QW.eq(Cet_4::getEntrydate, entryDate).eq(Cet_4::getBatch, batchList.get(i));
|
||||||
//查询该年级的全校在籍学生
|
//查询该年级的全校在籍学生
|
||||||
Cet4_majorQW.clear();
|
Cet4_majorQW.clear();
|
||||||
Cet4_majorQW.select(Cet4_major::getId).eq(Cet4_major::getEntrydate, entryDate).eq(Cet4_major::getState,"在校");
|
Cet4_majorQW.select(Cet4_major::getId).eq(Cet4_major::getEntrydate, entryDate).eq(Cet4_major::getState, "在校");
|
||||||
allStudent = cet4_majorMapper.selectCount(Cet4_majorQW);
|
allStudent = cet4_majorMapper.selectCount(Cet4_majorQW);
|
||||||
} else if (college.equals("专升本")) {
|
} else if (college.equals("专升本")) {
|
||||||
totalName = "全校";
|
totalName = "全校";
|
||||||
Cet_4QW.eq(Cet_4::getLevel, college).eq(Cet_4::getEntrydate, entryDate).eq(Cet_4::getBatch, batchList.get(i));
|
Cet_4QW.eq(Cet_4::getLevel, college).eq(Cet_4::getEntrydate, entryDate).eq(Cet_4::getBatch, batchList.get(i));
|
||||||
//查询该年级的专升本在籍学生
|
//查询该年级的专升本在籍学生
|
||||||
Cet4_majorQW.clear();
|
Cet4_majorQW.clear();
|
||||||
Cet4_majorQW.select(Cet4_major::getId).eq(Cet4_major::getLevel, college).eq(Cet4_major::getState,"在校").eq(Cet4_major::getEntrydate, entryDate);
|
Cet4_majorQW.select(Cet4_major::getId).eq(Cet4_major::getLevel, college).eq(Cet4_major::getState, "在校").eq(Cet4_major::getEntrydate, entryDate);
|
||||||
allStudent = cet4_majorMapper.selectCount(Cet4_majorQW);
|
allStudent = cet4_majorMapper.selectCount(Cet4_majorQW);
|
||||||
} else if (major.equals("")) {
|
} else if (major.equals("")) {
|
||||||
totalName = "学院";
|
totalName = "学院";
|
||||||
Cet_4QW.eq(Cet_4::getCollege, college).eq(Cet_4::getEntrydate, entryDate).eq(Cet_4::getBatch, batchList.get(i));
|
Cet_4QW.eq(Cet_4::getCollege, college).eq(Cet_4::getEntrydate, entryDate).eq(Cet_4::getBatch, batchList.get(i));
|
||||||
//查询该年级的学院在籍学生
|
//查询该年级的学院在籍学生
|
||||||
Cet4_majorQW.clear();
|
Cet4_majorQW.clear();
|
||||||
Cet4_majorQW.select(Cet4_major::getId).eq(Cet4_major::getCollege, college).eq(Cet4_major::getState,"在校").eq(Cet4_major::getEntrydate, entryDate);
|
Cet4_majorQW.select(Cet4_major::getId).eq(Cet4_major::getCollege, college).eq(Cet4_major::getState, "在校").eq(Cet4_major::getEntrydate, entryDate);
|
||||||
allStudent = cet4_majorMapper.selectCount(Cet4_majorQW);
|
allStudent = cet4_majorMapper.selectCount(Cet4_majorQW);
|
||||||
} else {
|
} else {
|
||||||
totalName = "专业";
|
totalName = "专业";
|
||||||
//查询该年级的学院专业在籍学生
|
//查询该年级的学院专业在籍学生
|
||||||
Cet_4QW.eq(Cet_4::getCollege, college).eq(Cet_4::getMajorname, major).eq(Cet_4::getEntrydate, entryDate).eq(Cet_4::getBatch, batchList.get(i));
|
Cet_4QW.eq(Cet_4::getCollege, college).eq(Cet_4::getMajorname, major).eq(Cet_4::getEntrydate, entryDate).eq(Cet_4::getBatch, batchList.get(i));
|
||||||
Cet4_majorQW.clear();
|
Cet4_majorQW.clear();
|
||||||
Cet4_majorQW.select(Cet4_major::getId).eq(Cet4_major::getCollege, college).eq(Cet4_major::getState,"在校").eq(Cet4_major::getMajorname, major).eq(Cet4_major::getEntrydate, entryDate);
|
Cet4_majorQW.select(Cet4_major::getId).eq(Cet4_major::getCollege, college).eq(Cet4_major::getState, "在校").eq(Cet4_major::getMajorname, major).eq(Cet4_major::getEntrydate, entryDate);
|
||||||
allStudent = cet4_majorMapper.selectCount(Cet4_majorQW);
|
allStudent = cet4_majorMapper.selectCount(Cet4_majorQW);
|
||||||
}
|
}
|
||||||
List<Map<String, Object>> Cet_4eEntrydate = cet4Mapper.selectMaps(Cet_4QW);
|
List<Map<String, Object>> Cet_4eEntrydate = cet4Mapper.selectMaps(Cet_4QW);
|
||||||
|
@ -329,7 +345,7 @@ public class CenterServiceImpl extends ServiceImpl<Cet_4Mapper, Cet_4> implement
|
||||||
result.put("cet4", resultJson);
|
result.put("cet4", resultJson);
|
||||||
result.put("total", allStudent);//总人数
|
result.put("total", allStudent);//总人数
|
||||||
result.put("totalName", totalName);//总人数
|
result.put("totalName", totalName);//总人数
|
||||||
result.put("passNumber",passNumber[n - 1]);//累计通过人数
|
result.put("passNumber", passNumber[n - 1]);//累计通过人数
|
||||||
result.put("passRate", df.format((passNumber[n - 1] / (double) allStudent)));//累计通过率
|
result.put("passRate", df.format((passNumber[n - 1] / (double) allStudent)));//累计通过率
|
||||||
// 将数据存入缓存
|
// 将数据存入缓存
|
||||||
redisTemplate.opsForValue().set(key, result, Duration.ofDays(7));
|
redisTemplate.opsForValue().set(key, result, Duration.ofDays(7));
|
||||||
|
@ -390,30 +406,4 @@ public class CenterServiceImpl extends ServiceImpl<Cet_4Mapper, Cet_4> implement
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// @Override
|
|
||||||
// public Result<JSONObject> getTest() {
|
|
||||||
// //去除不在学籍表中的学生
|
|
||||||
// LambdaQueryWrapper<Cet4_major> Cet4_majorQW = new LambdaQueryWrapper<>();
|
|
||||||
// Cet4_majorQW.select(Cet4_major::getId);
|
|
||||||
// List<Object> list = cet4_majorMapper.selectObjs(Cet4_majorQW);
|
|
||||||
// System.out.println("所有符合的学号:"+list.size());//所有符合的学号
|
|
||||||
// LambdaQueryWrapper<Cet_4> Cet_4QW = new LambdaQueryWrapper<>();
|
|
||||||
// Cet_4QW.select(Cet_4::getId);
|
|
||||||
// List<Object> list1 = cet4Mapper.selectObjs(Cet_4QW);
|
|
||||||
// System.out.println("所有参加过四级考试的学生:"+list1.size());//所有参加过四级考试的学生
|
|
||||||
// //删除所有参加过四级考试的学生中不符合的学号
|
|
||||||
// List<Object> notin = new ArrayList<>();
|
|
||||||
// for (Object obj : list1) {
|
|
||||||
// if (!list.contains(obj)) {
|
|
||||||
// notin.add(obj);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// System.out.println("不符合的学号:"+notin.size());//不符合的学号
|
|
||||||
// //批量删除list1中notin的学号
|
|
||||||
// Cet_4QW.clear();
|
|
||||||
// Cet_4QW.in(Cet_4::getId, notin);
|
|
||||||
// cet4Mapper.delete(Cet_4QW);
|
|
||||||
// System.out.println("删除完成");
|
|
||||||
// return null;
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -95,50 +95,47 @@ public class Cet_4ServiceImpl extends ServiceImpl<Cet_4Mapper, Cet_4> implements
|
||||||
@Override
|
@Override
|
||||||
public Result<JSONObject> getRateByBatch(String college, String batchStr) {
|
public Result<JSONObject> getRateByBatch(String college, String batchStr) {
|
||||||
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
DecimalFormat decimalFormat = new DecimalFormat("#.#");
|
||||||
Date batch;
|
Date batch;
|
||||||
try {
|
try {
|
||||||
batch = dateFormat.parse(batchStr);
|
batch = dateFormat.parse(batchStr);
|
||||||
} catch (ParseException e) {
|
} catch (ParseException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
// 根据批次获得正确的年级
|
||||||
|
List<String> trueEntryDate = centerService.getEntryDateByBatch(batch);
|
||||||
|
|
||||||
JSONObject jsonObject = new JSONObject(new LinkedHashMap<>());
|
JSONObject jsonObject = new JSONObject(new LinkedHashMap<>());
|
||||||
JSONObject resultData = new JSONObject();
|
JSONObject resultData = new JSONObject();
|
||||||
|
|
||||||
LambdaQueryWrapper<Cet_4> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Cet_4> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
//构造查询条件
|
//构造查询条件
|
||||||
Map<String, List<Cet_4>> collect;
|
Map<String, List<Cet_4>> collect;
|
||||||
|
|
||||||
|
queryWrapper.eq(Cet_4::getBatch, batch).eq(!college.equals("全校"), Cet_4::getCollege, college);
|
||||||
|
List<Cet_4> allStudentList = list(queryWrapper);
|
||||||
//根据批次查人数
|
//根据批次查人数
|
||||||
if (college.equals("全校")) {
|
|
||||||
queryWrapper.eq(Cet_4::getBatch, batch).ge(Cet_4::getResult, 425);
|
queryWrapper.ge(Cet_4::getResult, 425);
|
||||||
List<Cet_4> result = cet4Mapper.selectList(queryWrapper);
|
List<Cet_4> result = cet4Mapper.selectList(queryWrapper);
|
||||||
collect = result.stream().collect(Collectors.groupingBy(Cet_4::getCollege));
|
collect = result.stream().collect(Collectors.groupingBy(Cet_4::getCollege));
|
||||||
//获取全校人数
|
|
||||||
long allStudent = getNumAll(batch);
|
// 过滤除去错误的数据
|
||||||
//获取全校通过人数
|
allStudentList = allStudentList.stream().filter(e -> trueEntryDate.contains(e.getEntrydate())).collect(Collectors.toList());
|
||||||
LambdaQueryWrapper<Cet_4> passQW = new LambdaQueryWrapper<>();
|
long allStudent = allStudentList.size();
|
||||||
passQW.eq(Cet_4::getBatch, batch).ge(Cet_4::getResult, 425);
|
//获取通过人数
|
||||||
long passStudent = cet4Mapper.selectCount(queryWrapper);
|
LambdaQueryWrapper<Cet_4> passWrapper = new LambdaQueryWrapper<>();
|
||||||
double passRateSum = passStudent / (double) allStudent * 100;
|
passWrapper.eq(Cet_4::getBatch, batch).ge(Cet_4::getResult, 425).eq(!college.equals("全校"), Cet_4::getCollege, college);
|
||||||
DecimalFormat decimalFormat = new DecimalFormat("#.#");
|
List<Cet_4> passedList = list(passWrapper);
|
||||||
String rate = decimalFormat.format(passRateSum);
|
passedList = passedList.stream().filter(e -> trueEntryDate.contains(e.getEntrydate())).collect(Collectors.toList());
|
||||||
double res = Double.parseDouble(rate);
|
|
||||||
resultData.put("sumRate", res);
|
long passStudent = passedList.size();
|
||||||
} else {
|
double passRateSum = (passStudent / (double) allStudent) * 100;
|
||||||
queryWrapper.eq(Cet_4::getCollege, college).eq(Cet_4::getBatch, batch).ge(Cet_4::getResult, 425);
|
String rate = decimalFormat.format(passRateSum);
|
||||||
List<Cet_4> result = cet4Mapper.selectList(queryWrapper);
|
double res = Double.parseDouble(rate);
|
||||||
collect = result.stream().collect(Collectors.groupingBy(Cet_4::getMajorname));
|
resultData.put("sumRate", res);
|
||||||
//获取学院人数
|
|
||||||
long allStudent = getNumCollege(college, batch);
|
|
||||||
//获取学院通过人数
|
|
||||||
LambdaQueryWrapper<Cet_4> passQW = new LambdaQueryWrapper<>();
|
|
||||||
passQW.eq(Cet_4::getCollege, college).eq(Cet_4::getBatch, batch).ge(Cet_4::getResult, 425);
|
|
||||||
long passStudent = cet4Mapper.selectCount(queryWrapper);
|
|
||||||
double passRateSum = passStudent / (double) allStudent * 100;
|
|
||||||
DecimalFormat decimalFormat = new DecimalFormat("#.#");
|
|
||||||
String rate = decimalFormat.format(passRateSum);
|
|
||||||
double res = Double.parseDouble(rate);
|
|
||||||
resultData.put("sumRate", res);
|
|
||||||
}
|
|
||||||
// System.out.println(collect);
|
// System.out.println(collect);
|
||||||
// List<Cet_4> result = cet4Mapper.selectList(queryWrapper);
|
// List<Cet_4> result = cet4Mapper.selectList(queryWrapper);
|
||||||
//通过批次
|
//通过批次
|
||||||
|
@ -162,10 +159,9 @@ public class Cet_4ServiceImpl extends ServiceImpl<Cet_4Mapper, Cet_4> implements
|
||||||
double size = entry.getValue().size();
|
double size = entry.getValue().size();
|
||||||
double passRate = size / sum * 100;
|
double passRate = size / sum * 100;
|
||||||
// 定义格式化规则,保留四位小数
|
// 定义格式化规则,保留四位小数
|
||||||
DecimalFormat decimalFormat = new DecimalFormat("#.#");
|
String passRateStr = decimalFormat.format(passRate);
|
||||||
String rate = decimalFormat.format(passRate);
|
double rateRes = Double.parseDouble(passRateStr);
|
||||||
double res = Double.parseDouble(rate);
|
jsonObject.put(String.valueOf(entry.getKey()), rateRes);
|
||||||
jsonObject.put(String.valueOf(entry.getKey()), res);
|
|
||||||
}
|
}
|
||||||
//对jsonObject的值进行排序
|
//对jsonObject的值进行排序
|
||||||
List<Map.Entry<String, Object>> list = new ArrayList<>(jsonObject.entrySet());
|
List<Map.Entry<String, Object>> list = new ArrayList<>(jsonObject.entrySet());
|
||||||
|
@ -174,7 +170,9 @@ public class Cet_4ServiceImpl extends ServiceImpl<Cet_4Mapper, Cet_4> implements
|
||||||
for (Map.Entry<String, Object> stringObjectEntry : list) {
|
for (Map.Entry<String, Object> stringObjectEntry : list) {
|
||||||
jsonObject.put(stringObjectEntry.getKey(), stringObjectEntry.getValue());
|
jsonObject.put(stringObjectEntry.getKey(), stringObjectEntry.getValue());
|
||||||
}
|
}
|
||||||
|
JSONObject gradeByBatch = getGradeByBatch(batch,college);
|
||||||
resultData.put("data", jsonObject);
|
resultData.put("data", jsonObject);
|
||||||
|
resultData.put("gradeData", gradeByBatch);
|
||||||
System.out.println(resultData);
|
System.out.println(resultData);
|
||||||
return Result.OK(resultData);
|
return Result.OK(resultData);
|
||||||
}
|
}
|
||||||
|
@ -692,11 +690,45 @@ 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) {
|
||||||
|
//根据批次获取正确的年级
|
||||||
|
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);
|
||||||
|
List<Cet_4> allStudent = list(wrapper);
|
||||||
|
wrapper.ge(Cet_4::getResult, 425);
|
||||||
|
List<Cet_4> allPassStudent = list(wrapper);
|
||||||
|
|
||||||
|
//所有参加该批次四级的学生,根据年级分组
|
||||||
|
Map<String, Long> gradeStudentCount = allStudent.stream().filter(e -> trueEntryDate.contains(e.getEntrydate())).collect(Collectors.groupingBy(Cet_4::getEntrydate, Collectors.counting()));
|
||||||
|
|
||||||
|
//所有参加该批次四级且通过的学生,根据年级分组
|
||||||
|
Map<String, Long> allPassStudentCount = allPassStudent.stream().filter(e -> trueEntryDate.contains(e.getEntrydate())).collect(Collectors.groupingBy(Cet_4::getEntrydate, Collectors.counting()));
|
||||||
|
Set<String> entryDateKeySet = gradeStudentCount.keySet();
|
||||||
|
JSONObject res = new JSONObject();
|
||||||
|
for (String key : entryDateKeySet) {
|
||||||
|
JSONObject jsonObject = new JSONObject();
|
||||||
|
double passRate;
|
||||||
|
long passStudent = allPassStudentCount.getOrDefault(key, 0L);
|
||||||
|
long allStudentNum = gradeStudentCount.getOrDefault(key, 0L);
|
||||||
|
passRate = passStudent / (double) allStudentNum;
|
||||||
|
passRate = passRate * 100;
|
||||||
|
DecimalFormat df = new DecimalFormat("#.##");
|
||||||
|
jsonObject.fluentPut("allStudent", allStudentNum)
|
||||||
|
.fluentPut("passed", passStudent)
|
||||||
|
.fluentPut("passRate", df.format(passRate));
|
||||||
|
res.put(key, jsonObject);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
//获取全校人数
|
//获取全校人数
|
||||||
private long getNumAll(Date batch) {
|
private List<Cet_4> getNumAll(Date batch) {
|
||||||
LambdaQueryWrapper<Cet_4> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Cet_4> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
queryWrapper.eq(Cet_4::getBatch, batch);
|
queryWrapper.eq(Cet_4::getBatch, batch);
|
||||||
return cet4Mapper.selectCount(queryWrapper);
|
return list(queryWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
//获取学院的人数
|
//获取学院的人数
|
||||||
|
|
Loading…
Reference in New Issue