四级可视化分析1.1
This commit is contained in:
parent
810e818201
commit
f0c12f5926
|
@ -3,7 +3,6 @@ package org.jeecg.modules.controller;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
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_6;
|
import org.jeecg.modules.entity.Cet_6;
|
||||||
import org.jeecg.modules.service.CenterService;
|
import org.jeecg.modules.service.CenterService;
|
||||||
import org.jeecg.modules.service.ICet_4Service;
|
import org.jeecg.modules.service.ICet_4Service;
|
||||||
|
@ -12,9 +11,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.text.ParseException;
|
import java.util.Collections;
|
||||||
import java.text.SimpleDateFormat;
|
import java.util.List;
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/cet")
|
@RequestMapping("/cet")
|
||||||
|
@ -68,11 +66,15 @@ public class CenterController {
|
||||||
return centerService.getData(college, major, entrydate);
|
return centerService.getData(college, major, entrydate);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/getRateByBatch")
|
@PostMapping("/getRateByCollege")
|
||||||
public Result<JSONObject> getRateByBatch(@RequestParam("college") String college, @RequestParam("entrydate") String entrydate, @RequestParam("level") String level) {
|
public Result<JSONObject> getRateByCollege(@RequestBody JSONObject webData) {
|
||||||
|
String level= webData.getString("level");
|
||||||
|
|
||||||
//四六级分开查询
|
//四六级分开查询
|
||||||
|
|
||||||
if (level.equals("cet4")) {
|
if (level.equals("cet4")) {
|
||||||
return cet4Service.getRateByBatch(college,entrydate);
|
|
||||||
|
return cet4Service.getRateByCollege(webData);
|
||||||
} else if (level.equals("cet6")) {
|
} else if (level.equals("cet6")) {
|
||||||
Cet_6 cet = new Cet_6();
|
Cet_6 cet = new Cet_6();
|
||||||
// cet.setBatch(date);
|
// cet.setBatch(date);
|
||||||
|
@ -81,13 +83,13 @@ public class CenterController {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//根据batch/college是否为空判断两种查询方式
|
|
||||||
|
|
||||||
@GetMapping("/getRateByCollege")
|
|
||||||
public Result<JSONObject> getRateByCollege(@RequestParam("college") String college,@RequestParam("major") String major, @RequestParam("level") String level) {
|
@GetMapping("/getRateByAllBatch")
|
||||||
|
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.getRateByCollege(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);
|
||||||
|
@ -96,7 +98,12 @@ public class CenterController {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@GetMapping("/getRateByBatch")
|
||||||
|
public Result<JSONObject> getRateByBatch(@RequestParam("batch")String batch, @RequestParam("college") String college, @RequestParam("level")String level){
|
||||||
|
if (level.equals("cet4")){
|
||||||
|
return cet4Service.getRateByBatch(college,batch);
|
||||||
|
}else return null;
|
||||||
|
}
|
||||||
@GetMapping("/getTest")
|
@GetMapping("/getTest")
|
||||||
public Result<JSONObject> getTest() {
|
public Result<JSONObject> getTest() {
|
||||||
return centerService.getTest();
|
return centerService.getTest();
|
||||||
|
|
|
@ -13,7 +13,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
* @Version: V1.0
|
* @Version: V1.0
|
||||||
*/
|
*/
|
||||||
public interface ICet_4Service extends IService<Cet_4> {
|
public interface ICet_4Service extends IService<Cet_4> {
|
||||||
Result<JSONObject> getRateByCollege(String college,String major);
|
Result<JSONObject> getRateByAllBatch(String college, String major);
|
||||||
Result<JSONObject> getRateByBatch(String college, String entrydate);
|
|
||||||
|
Result<JSONObject> getRateByBatch(String college, String batchStr);
|
||||||
|
|
||||||
|
Result<JSONObject> getRateByCollege(JSONObject webData);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,6 @@ import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
|
||||||
|
|
||||||
import org.checkerframework.checker.units.qual.A;
|
|
||||||
import org.jeecg.common.api.vo.Result;
|
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;
|
||||||
|
@ -42,7 +41,8 @@ public class Cet_4ServiceImpl extends ServiceImpl<Cet_4Mapper, Cet_4> implements
|
||||||
@Resource
|
@Resource
|
||||||
private Cet4_majorMapper cet4_majorMapper;
|
private Cet4_majorMapper cet4_majorMapper;
|
||||||
|
|
||||||
public Result<JSONObject> getRateByCollege(String college, String major) {
|
@Override
|
||||||
|
public Result<JSONObject> getRateByAllBatch(String college, String major) {
|
||||||
JSONObject jsonObject = new JSONObject(new LinkedHashMap<>());
|
JSONObject jsonObject = new JSONObject(new LinkedHashMap<>());
|
||||||
//select count(*) from cet_4 where college ='?' and result>=425
|
//select count(*) from cet_4 where college ='?' and result>=425
|
||||||
LambdaQueryWrapper<Cet_4> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Cet_4> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
@ -67,7 +67,8 @@ 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;
|
double passRate = size / sum;
|
||||||
DecimalFormat decimalFormat = new DecimalFormat("#.####");
|
passRate = passRate * 100;
|
||||||
|
DecimalFormat decimalFormat = new DecimalFormat("#.#");
|
||||||
String rate = decimalFormat.format(passRate);
|
String rate = decimalFormat.format(passRate);
|
||||||
double res = Double.parseDouble(rate);
|
double res = Double.parseDouble(rate);
|
||||||
Date key = entry.getKey();
|
Date key = entry.getKey();
|
||||||
|
@ -78,70 +79,80 @@ public class Cet_4ServiceImpl extends ServiceImpl<Cet_4Mapper, Cet_4> implements
|
||||||
return Result.OK(jsonObject);
|
return Result.OK(jsonObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
// public Result<JSONObject> getRateByBatch(String college, String entrydate) {
|
@Override
|
||||||
// SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
public Result<JSONObject> getRateByBatch(String college, String batchStr) {
|
||||||
// Date batch;
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
// try {
|
Date batch;
|
||||||
// batch = dateFormat.parse(batchStr);
|
try {
|
||||||
// } catch (ParseException e) {
|
batch = dateFormat.parse(batchStr);
|
||||||
// throw new RuntimeException(e);
|
} catch (ParseException e) {
|
||||||
// }
|
throw new RuntimeException(e);
|
||||||
// JSONObject jsonObject = new JSONObject(new LinkedHashMap<>());
|
}
|
||||||
//
|
JSONObject jsonObject = new JSONObject(new LinkedHashMap<>());
|
||||||
// LambdaQueryWrapper<Cet_4> queryWrapper = new LambdaQueryWrapper<>();
|
|
||||||
// //构造查询条件
|
LambdaQueryWrapper<Cet_4> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
// Map<String, List<Cet_4>> collect = new HashMap<>();
|
//构造查询条件
|
||||||
// //根据批次查人数
|
Map<String, List<Cet_4>> collect;
|
||||||
// if (college.equals("全校")) {
|
//根据批次查人数
|
||||||
// queryWrapper.eq(Cet_4::getBatch, batch).ge(Cet_4::getResult, 425);
|
if (college.equals("全校")) {
|
||||||
// List<Cet_4> result = cet4Mapper.selectList(queryWrapper);
|
queryWrapper.eq(Cet_4::getBatch, batch).ge(Cet_4::getResult, 425);
|
||||||
// collect = result.stream().collect(Collectors.groupingBy(Cet_4::getCollege));
|
List<Cet_4> result = cet4Mapper.selectList(queryWrapper);
|
||||||
// } else {
|
collect = result.stream().collect(Collectors.groupingBy(Cet_4::getCollege));
|
||||||
// queryWrapper.eq(Cet_4::getCollege, college).eq(Cet_4::getBatch, batch).ge(Cet_4::getResult, 425);
|
|
||||||
// List<Cet_4> result = cet4Mapper.selectList(queryWrapper);
|
} else {
|
||||||
// collect = result.stream().collect(Collectors.groupingBy(Cet_4::getMajorname));
|
queryWrapper.eq(Cet_4::getCollege, college).eq(Cet_4::getBatch, batch).ge(Cet_4::getResult, 425);
|
||||||
// }
|
List<Cet_4> result = cet4Mapper.selectList(queryWrapper);
|
||||||
//// System.out.println(collect);
|
collect = result.stream().collect(Collectors.groupingBy(Cet_4::getMajorname));
|
||||||
//// List<Cet_4> result = cet4Mapper.selectList(queryWrapper);
|
|
||||||
// //通过批次
|
|
||||||
//// Map<String, List<Cet_4>> collect = result.stream().collect(Collectors.groupingBy(Cet_4::getCollege));
|
}
|
||||||
// for (Map.Entry<String, List<Cet_4>> entry : collect.entrySet()) {
|
// System.out.println(collect);
|
||||||
// double sum;
|
// List<Cet_4> result = cet4Mapper.selectList(queryWrapper);
|
||||||
// if (college.equals("全校")) {
|
//通过批次
|
||||||
// sum = (double) getNumCollege(entry.getKey(), batch);
|
// Map<String, List<Cet_4>> collect = result.stream().collect(Collectors.groupingBy(Cet_4::getCollege));
|
||||||
// } else {
|
for (Map.Entry<String, List<Cet_4>> entry : collect.entrySet()) {
|
||||||
// //查某个学院的所有专业
|
double sum;
|
||||||
// LambdaQueryWrapper<Cet4_major> cet4MajorQW = new LambdaQueryWrapper<>();
|
if (college.equals("全校")) {
|
||||||
// cet4MajorQW.select(Cet4_major::getMajorname).eq(Cet4_major::getCollege, college).groupBy(Cet4_major::getMajorname);
|
sum = (double) getNumCollege(entry.getKey(), batch);
|
||||||
// //若为转专业的则剔除
|
} else {
|
||||||
// List<Object> majorList = cet4_MajorMapper.selectObjs(cet4MajorQW);
|
//查某个学院的所有专业
|
||||||
// System.out.println(majorList);
|
LambdaQueryWrapper<Cet4_major> cet4MajorQW = new LambdaQueryWrapper<>();
|
||||||
// if (majorList.contains(entry.getKey())) {
|
cet4MajorQW.select(Cet4_major::getMajorname).eq(Cet4_major::getCollege, college).groupBy(Cet4_major::getMajorname);
|
||||||
// sum = (double) getNumMajor(entry.getKey(), batch);
|
//若为转专业的则剔除
|
||||||
// } else {
|
List<Object> majorList = cet4_MajorMapper.selectObjs(cet4MajorQW);
|
||||||
// continue;
|
System.out.println(majorList);
|
||||||
// }
|
if (majorList.contains(entry.getKey())) {
|
||||||
// }
|
sum = (double) getNumMajor(entry.getKey(), batch);
|
||||||
// double size = entry.getValue().size();
|
} else {
|
||||||
// double passRate = size / sum;
|
continue;
|
||||||
// // 定义格式化规则,保留四位小数
|
}
|
||||||
// DecimalFormat decimalFormat = new DecimalFormat("#.####");
|
}
|
||||||
// String rate = decimalFormat.format(passRate);
|
double size = entry.getValue().size();
|
||||||
// double res = Double.parseDouble(rate);
|
double passRate = size / sum*100;
|
||||||
// jsonObject.put(String.valueOf(entry.getKey()), res);
|
// 定义格式化规则,保留四位小数
|
||||||
// }
|
DecimalFormat decimalFormat = new DecimalFormat("#.#");
|
||||||
// //对jsonObject的值进行排序
|
String rate = decimalFormat.format(passRate);
|
||||||
// List<Map.Entry<String, Object>> list = new ArrayList<>(jsonObject.entrySet());
|
double res = Double.parseDouble(rate);
|
||||||
// Collections.sort(list, (o1, o2) -> (double) o1.getValue() > (double) o2.getValue() ? -1 : 1);
|
jsonObject.put(String.valueOf(entry.getKey()), res);
|
||||||
// jsonObject.clear();
|
}
|
||||||
//
|
//对jsonObject的值进行排序
|
||||||
// for (Map.Entry<String, Object> stringObjectEntry : list) {
|
List<Map.Entry<String, Object>> list = new ArrayList<>(jsonObject.entrySet());
|
||||||
// jsonObject.put(stringObjectEntry.getKey(), stringObjectEntry.getValue());
|
System.out.println(list);
|
||||||
//
|
Collections.sort(list, (o1, o2) -> (double) o1.getValue() > (double) o2.getValue() ? -1 : 1);
|
||||||
// }
|
jsonObject.clear();
|
||||||
// return Result.OK(jsonObject);
|
|
||||||
// }
|
for (Map.Entry<String, Object> stringObjectEntry : list) {
|
||||||
public Result<JSONObject> getRateByBatch(String college, String entryDate) {
|
jsonObject.put(stringObjectEntry.getKey(), stringObjectEntry.getValue());
|
||||||
|
|
||||||
|
}
|
||||||
|
return Result.OK(jsonObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Result<JSONObject> getRateByCollege(JSONObject webData) {
|
||||||
|
JSONArray colleges = webData.getJSONArray("college");
|
||||||
|
|
||||||
|
String entryDate = webData.getString("entrydate");
|
||||||
//获取所有batch
|
//获取所有batch
|
||||||
JSONObject batch = centerService.getBatch();
|
JSONObject batch = centerService.getBatch();
|
||||||
JSONArray batchsArray = batch.getJSONArray("batches");
|
JSONArray batchsArray = batch.getJSONArray("batches");
|
||||||
|
@ -173,26 +184,33 @@ public class Cet_4ServiceImpl extends ServiceImpl<Cet_4Mapper, Cet_4> implements
|
||||||
LambdaQueryWrapper<Cet4_major> Cet4_majorQW = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Cet4_major> Cet4_majorQW = new LambdaQueryWrapper<>();
|
||||||
///学院/专业的全部在籍学生
|
///学院/专业的全部在籍学生
|
||||||
long allStudent = 0;
|
long allStudent = 0;
|
||||||
|
JSONObject result = new JSONObject();
|
||||||
JSONArray ans = new JSONArray();
|
JSONArray ans = new JSONArray();
|
||||||
//如果是全校,获取每个学院的数据
|
//如果是全校,获取每个学院的数据
|
||||||
if (college.equals("全校")) {
|
if (colleges.size() > 1 || colleges.get(0).equals("全校")) {
|
||||||
//获取所有学院列表
|
//获取所有学院列表
|
||||||
LambdaQueryWrapper<Cet_4> collegeQueryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Cet_4> collegeQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
collegeQueryWrapper.select(Cet_4::getCollege).groupBy(Cet_4::getCollege);
|
collegeQueryWrapper.select(Cet_4::getCollege).groupBy(Cet_4::getCollege);
|
||||||
List<Object> collegeList = cet4Mapper.selectObjs(collegeQueryWrapper);
|
List<Object> collegeList = cet4Mapper.selectObjs(collegeQueryWrapper);
|
||||||
|
if (colleges.size() > 1) {
|
||||||
|
collegeList = colleges;
|
||||||
|
}
|
||||||
//查某个入学年级的所有学院
|
//查某个入学年级的所有学院
|
||||||
LambdaQueryWrapper<Cet4_major> cet4MajorQW = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Cet4_major> cet4MajorQW = new LambdaQueryWrapper<>();
|
||||||
cet4MajorQW.select(Cet4_major::getCollege).eq(Cet4_major::getEntrydate, entryDate).groupBy(Cet4_major::getCollege);
|
cet4MajorQW.select(Cet4_major::getCollege).eq(Cet4_major::getEntrydate, entryDate).groupBy(Cet4_major::getCollege);
|
||||||
|
|
||||||
//若无该学院则剔除
|
//若无该学院则剔除
|
||||||
List<Object> collegeSet = cet4_MajorMapper.selectObjs(cet4MajorQW);
|
List<Object> collegeSet = cet4_MajorMapper.selectObjs(cet4MajorQW);
|
||||||
|
|
||||||
// 在循环开始之前,获取所有学院的在籍学生数量
|
// 在循环开始之前,获取所有学院的在籍学生数量
|
||||||
LambdaQueryWrapper<Cet4_major> allStudentQW = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Cet4_major> allStudentQW = new LambdaQueryWrapper<>();
|
||||||
allStudentQW.select(Cet4_major::getCollege, Cet4_major::getId).eq(Cet4_major::getState,"在校").eq(Cet4_major::getEntrydate, entryDate);
|
allStudentQW.select(Cet4_major::getCollege, Cet4_major::getId).eq(Cet4_major::getState, "在校").eq(Cet4_major::getEntrydate, entryDate);
|
||||||
List<Map<String, Object>> allStudentList = cet4_majorMapper.selectMaps(allStudentQW);
|
List<Map<String, Object>> allStudentList = cet4_majorMapper.selectMaps(allStudentQW);
|
||||||
Map<String, Long> allStudentMap = allStudentList.stream().collect(Collectors.groupingBy(map -> (String) map.get("college"), Collectors.counting()));
|
Map<String, Long> allStudentMap = allStudentList.stream().collect(Collectors.groupingBy(map -> (String) map.get("college"), Collectors.counting()));
|
||||||
|
|
||||||
// 在循环开始之前,获取所有批次的数据
|
// 在循环开始之前,获取所有批次的数据
|
||||||
LambdaQueryWrapper<Cet_4> allBatchQW = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Cet_4> allBatchQW = new LambdaQueryWrapper<>();
|
||||||
allBatchQW.select(Cet_4::getCollege,Cet_4::getId,Cet_4::getResult).eq(Cet_4::getEntrydate, entryDate).in(Cet_4::getBatch, batchList);
|
allBatchQW.select(Cet_4::getCollege, Cet_4::getId, Cet_4::getResult).eq(Cet_4::getEntrydate, entryDate).in(Cet_4::getBatch, batchList);
|
||||||
List<Map<String, Object>> allBatchList = cet4Mapper.selectMaps(allBatchQW);
|
List<Map<String, Object>> allBatchList = cet4Mapper.selectMaps(allBatchQW);
|
||||||
Map<String, List<Map<String, Object>>> allBatchMap = allBatchList.stream().collect(Collectors.groupingBy(map -> (String) map.get("college")));
|
Map<String, List<Map<String, Object>>> allBatchMap = allBatchList.stream().collect(Collectors.groupingBy(map -> (String) map.get("college")));
|
||||||
|
|
||||||
|
@ -220,22 +238,25 @@ public class Cet_4ServiceImpl extends ServiceImpl<Cet_4Mapper, Cet_4> implements
|
||||||
int passNumber = (int) attendMap4.values().stream().filter(value -> value == 1).count();
|
int passNumber = (int) attendMap4.values().stream().filter(value -> value == 1).count();
|
||||||
//每个年级的累计通过率保留三位小数
|
//每个年级的累计通过率保留三位小数
|
||||||
double passRate = passNumber / (double) allStudent;
|
double passRate = passNumber / (double) allStudent;
|
||||||
|
passRate = passRate * 100;
|
||||||
//保留三位小数
|
//保留三位小数
|
||||||
DecimalFormat df = new DecimalFormat("#.###");
|
DecimalFormat df = new DecimalFormat("#.#");
|
||||||
json.put("college", collegeName);
|
json.put("college", collegeName);
|
||||||
json.put("passRate", df.format(passRate));
|
json.put("passRate", df.format(passRate));
|
||||||
// System.out.println("学院:" + collegeName + ",累计通过人数:" + passNumber + ",总人数:" + allStudent + ", 通过率" + passRate);
|
// System.out.println("学院:" + collegeName + ",累计通过人数:" + passNumber + ",总人数:" + allStudent + ", 通过率" + passRate);
|
||||||
ans.add(json);
|
ans.add(json);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
//获取该学院的所有专业
|
//获取该学院的所有专业
|
||||||
LambdaQueryWrapper<Cet_4> collegeQueryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Cet_4> collegeQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
collegeQueryWrapper.eq(Cet_4::getCollege, college).select(Cet_4::getMajorname).groupBy(Cet_4::getMajorname);
|
collegeQueryWrapper.eq(Cet_4::getCollege, colleges.get(0)).select(Cet_4::getMajorname).groupBy(Cet_4::getMajorname);
|
||||||
List<Object> majorList = cet4Mapper.selectObjs(collegeQueryWrapper);
|
List<Object> majorList = cet4Mapper.selectObjs(collegeQueryWrapper);
|
||||||
//查某个学院的所有专业
|
//查某个学院的所有专业
|
||||||
LambdaQueryWrapper<Cet4_major> cet4MajorQW = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Cet4_major> cet4MajorQW = new LambdaQueryWrapper<>();
|
||||||
cet4MajorQW.select(Cet4_major::getMajorname).eq(Cet4_major::getCollege, college).eq(Cet4_major::getEntrydate, entryDate).groupBy(Cet4_major::getMajorname);
|
cet4MajorQW.select(Cet4_major::getMajorname).eq(Cet4_major::getCollege, colleges.get(0)).eq(Cet4_major::getEntrydate, entryDate).groupBy(Cet4_major::getMajorname);
|
||||||
//若为转专业的则剔除
|
//若为转专业的则剔除
|
||||||
List<Object> majorSet = cet4_MajorMapper.selectObjs(cet4MajorQW);
|
List<Object> majorSet = cet4_MajorMapper.selectObjs(cet4MajorQW);
|
||||||
// System.out.println("专业:" + majorList);
|
// System.out.println("专业:" + majorList);
|
||||||
|
@ -247,12 +268,12 @@ public class Cet_4ServiceImpl extends ServiceImpl<Cet_4Mapper, Cet_4> implements
|
||||||
Map<String, Integer> attendMap4 = new HashMap<>();
|
Map<String, Integer> attendMap4 = new HashMap<>();
|
||||||
//获取该专业的在籍学生
|
//获取该专业的在籍学生
|
||||||
Cet4_majorQW.clear();
|
Cet4_majorQW.clear();
|
||||||
Cet4_majorQW.select(Cet4_major::getId).eq(Cet4_major::getCollege, college).eq(Cet4_major::getMajorname, majorName).eq(Cet4_major::getEntrydate, entryDate);
|
Cet4_majorQW.select(Cet4_major::getId).eq(Cet4_major::getCollege, colleges.get(0)).eq(Cet4_major::getMajorname, majorName).eq(Cet4_major::getEntrydate, entryDate);
|
||||||
allStudent = cet4_majorMapper.selectCount(Cet4_majorQW);
|
allStudent = cet4_majorMapper.selectCount(Cet4_majorQW);
|
||||||
JSONObject json = new JSONObject();
|
JSONObject json = new JSONObject();
|
||||||
//一次性获取所有批次的数据
|
//一次性获取所有批次的数据
|
||||||
Cet_4QW.clear(); // 清空查询条件,以便重新设置
|
Cet_4QW.clear(); // 清空查询条件,以便重新设置
|
||||||
Cet_4QW.eq(Cet_4::getCollege, college).eq(Cet_4::getMajorname, majorName).eq(Cet_4::getEntrydate, entryDate).in(Cet_4::getBatch, batchList);
|
Cet_4QW.eq(Cet_4::getCollege, colleges.get(0)).eq(Cet_4::getMajorname, majorName).eq(Cet_4::getEntrydate, entryDate).in(Cet_4::getBatch, batchList);
|
||||||
List<Map<String, Object>> Cet_4eEntrydate = cet4Mapper.selectMaps(Cet_4QW);
|
List<Map<String, Object>> Cet_4eEntrydate = cet4Mapper.selectMaps(Cet_4QW);
|
||||||
for (Map<String, Object> map : Cet_4eEntrydate) {
|
for (Map<String, Object> map : Cet_4eEntrydate) {
|
||||||
String str = (String) map.get("id");
|
String str = (String) map.get("id");
|
||||||
|
@ -268,17 +289,19 @@ public class Cet_4ServiceImpl extends ServiceImpl<Cet_4Mapper, Cet_4> implements
|
||||||
int passNumber = (int) attendMap4.values().stream().filter(value -> value == 1).count();
|
int passNumber = (int) attendMap4.values().stream().filter(value -> value == 1).count();
|
||||||
//每个年级的累计通过率保留三位小数
|
//每个年级的累计通过率保留三位小数
|
||||||
double passRate = passNumber / (double) allStudent;
|
double passRate = passNumber / (double) allStudent;
|
||||||
|
passRate = passRate * 100;
|
||||||
//保留三位小数
|
//保留三位小数
|
||||||
DecimalFormat df = new DecimalFormat("#.###");
|
DecimalFormat df = new DecimalFormat("#.#");
|
||||||
json.put("college", majorName);
|
json.put("college", majorName);
|
||||||
json.put("passRate", df.format(passRate));
|
json.put("passRate", df.format(passRate));
|
||||||
// System.out.println("专业:" + majorName + ",累计通过人数:" + passNumber + ",总人数:" + allStudent + ",通过率:" + df.format(passRate));
|
// System.out.println("专业:" + majorName + ",累计通过人数:" + passNumber + ",总人数:" + allStudent + ",通过率:" + df.format(passRate));
|
||||||
ans.add(json);
|
ans.add(json);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
JSONObject result = new JSONObject();
|
|
||||||
result.put("data", ans);
|
result.put("data", ans);
|
||||||
|
|
||||||
return Result.ok(result);
|
return Result.ok(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue