Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
e21811d501
|
@ -47,20 +47,15 @@ public class CenterServiceImpl implements CenterService {
|
||||||
LambdaQueryWrapper<Cet_4> Cet_4CollegeQW = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Cet_4> Cet_4CollegeQW = new LambdaQueryWrapper<>();
|
||||||
Cet_4CollegeQW.select(Cet_4::getCollege)
|
Cet_4CollegeQW.select(Cet_4::getCollege)
|
||||||
.groupBy(Cet_4::getCollege);
|
.groupBy(Cet_4::getCollege);
|
||||||
LambdaQueryWrapper<Cet_6> Cet_6CollegeQW = new LambdaQueryWrapper<>();
|
|
||||||
Cet_6CollegeQW.select(Cet_6::getCollege)
|
|
||||||
.groupBy(Cet_6::getCollege);
|
|
||||||
|
|
||||||
List<Map<String, Object>> Cet_4College = cet4Mapper.selectMaps(Cet_4CollegeQW);
|
List<Map<String, Object>> Cet_4College = cet4Mapper.selectMaps(Cet_4CollegeQW);
|
||||||
List<Map<String, Object>> Cet_6College = cet6Mapper.selectMaps(Cet_6CollegeQW);
|
|
||||||
// 收集不重复的学院名称
|
// 收集不重复的学院名称
|
||||||
Set<String> collegeSet = new HashSet<>();
|
Set<String> collegeSet = new HashSet<>();
|
||||||
for (Map<String, Object> map : Cet_4College) {
|
for (Map<String, Object> map : Cet_4College) {
|
||||||
collegeSet.add(String.valueOf(map.get("college")));
|
collegeSet.add(String.valueOf(map.get("college")));
|
||||||
}
|
}
|
||||||
for (Map<String, Object> map : Cet_6College) {
|
|
||||||
collegeSet.add(String.valueOf(map.get("college")));
|
|
||||||
}
|
|
||||||
JSONArray colleges = new JSONArray();
|
JSONArray colleges = new JSONArray();
|
||||||
for (String college : collegeSet) {
|
for (String college : collegeSet) {
|
||||||
JSONObject collegeObj = new JSONObject();
|
JSONObject collegeObj = new JSONObject();
|
||||||
|
@ -88,20 +83,15 @@ public class CenterServiceImpl implements CenterService {
|
||||||
LambdaQueryWrapper<Cet_4> Cet_4BatchQW = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Cet_4> Cet_4BatchQW = new LambdaQueryWrapper<>();
|
||||||
Cet_4BatchQW.select(Cet_4::getBatch)
|
Cet_4BatchQW.select(Cet_4::getBatch)
|
||||||
.groupBy(Cet_4::getBatch);
|
.groupBy(Cet_4::getBatch);
|
||||||
LambdaQueryWrapper<Cet_6> Cet_6BatchQW = new LambdaQueryWrapper<>();
|
|
||||||
Cet_6BatchQW.select(Cet_6::getBatch)
|
|
||||||
.groupBy(Cet_6::getBatch);
|
|
||||||
|
|
||||||
List<Map<String, Object>> Cet_4Batch = cet4Mapper.selectMaps(Cet_4BatchQW);
|
List<Map<String, Object>> Cet_4Batch = cet4Mapper.selectMaps(Cet_4BatchQW);
|
||||||
List<Map<String, Object>> Cet_6Batch = cet6Mapper.selectMaps(Cet_6BatchQW);
|
|
||||||
// 收集不重复的批次
|
// 收集不重复的批次
|
||||||
Set<String> batchSet = new HashSet<>();
|
Set<String> batchSet = new TreeSet<>(Comparator.naturalOrder());
|
||||||
for (Map<String, Object> map : Cet_4Batch) {
|
for (Map<String, Object> map : Cet_4Batch) {
|
||||||
batchSet.add(String.valueOf(map.get("batch")));
|
batchSet.add(String.valueOf(map.get("batch")));
|
||||||
}
|
}
|
||||||
for (Map<String, Object> map : Cet_6Batch) {
|
|
||||||
batchSet.add(String.valueOf(map.get("batch")));
|
|
||||||
}
|
|
||||||
JSONArray batches = new JSONArray();
|
JSONArray batches = new JSONArray();
|
||||||
for (String batch : batchSet) {
|
for (String batch : batchSet) {
|
||||||
JSONObject batchObj = new JSONObject();
|
JSONObject batchObj = new JSONObject();
|
||||||
|
@ -120,10 +110,6 @@ public class CenterServiceImpl implements CenterService {
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public JSONObject getEntrydate() {
|
public JSONObject getEntrydate() {
|
||||||
// 判断是否存在缓存 ‘getEntrydate’
|
|
||||||
if (Boolean.TRUE.equals(redisTemplate.hasKey("getEntrydate"))) {
|
|
||||||
return (JSONObject) redisTemplate.opsForValue().get("getEntrydate");
|
|
||||||
}
|
|
||||||
// 判断是否存在缓存 ‘getEntrydate’
|
// 判断是否存在缓存 ‘getEntrydate’
|
||||||
if (Boolean.TRUE.equals(redisTemplate.hasKey("getEntrydate"))) {
|
if (Boolean.TRUE.equals(redisTemplate.hasKey("getEntrydate"))) {
|
||||||
return (JSONObject) redisTemplate.opsForValue().get("getEntrydate");
|
return (JSONObject) redisTemplate.opsForValue().get("getEntrydate");
|
||||||
|
@ -133,20 +119,12 @@ public class CenterServiceImpl implements CenterService {
|
||||||
LambdaQueryWrapper<Cet_4> Cet_4EntrydateQW = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Cet_4> Cet_4EntrydateQW = new LambdaQueryWrapper<>();
|
||||||
Cet_4EntrydateQW.select(Cet_4::getEntrydate)
|
Cet_4EntrydateQW.select(Cet_4::getEntrydate)
|
||||||
.groupBy(Cet_4::getEntrydate);
|
.groupBy(Cet_4::getEntrydate);
|
||||||
LambdaQueryWrapper<Cet_6> Cet_6EntrydateQW = new LambdaQueryWrapper<>();
|
|
||||||
Cet_6EntrydateQW.select(Cet_6::getEntrydate)
|
|
||||||
.groupBy(Cet_6::getEntrydate);
|
|
||||||
|
|
||||||
List<Map<String, Object>> Cet_4Entrydate = cet4Mapper.selectMaps(Cet_4EntrydateQW);
|
List<Map<String, Object>> Cet_4Entrydate = cet4Mapper.selectMaps(Cet_4EntrydateQW);
|
||||||
List<Map<String, Object>> Cet_6Entrydate = cet6Mapper.selectMaps(Cet_6EntrydateQW);
|
|
||||||
// 收集不重复的年级
|
// 收集不重复的年级
|
||||||
Set<String> entrydateSet = new HashSet<>();
|
Set<String> entrydateSet = new TreeSet<>(Comparator.naturalOrder());
|
||||||
for (Map<String, Object> map : Cet_4Entrydate) {
|
for (Map<String, Object> map : Cet_4Entrydate) {
|
||||||
entrydateSet.add(String.valueOf(map.get("entrydate")));
|
entrydateSet.add(String.valueOf(map.get("entrydate")));
|
||||||
}
|
}
|
||||||
for (Map<String, Object> map : Cet_6Entrydate) {
|
|
||||||
entrydateSet.add(String.valueOf(map.get("entrydate")));
|
|
||||||
}
|
|
||||||
JSONArray entrydates = new JSONArray();
|
JSONArray entrydates = new JSONArray();
|
||||||
for (String entrydate : entrydateSet) {
|
for (String entrydate : entrydateSet) {
|
||||||
JSONObject entrydateObj = new JSONObject();
|
JSONObject entrydateObj = new JSONObject();
|
||||||
|
@ -165,11 +143,8 @@ public class CenterServiceImpl implements CenterService {
|
||||||
String[] batchs = {"2019-12-01", "2020-09-01", "2020-12-01", "2021-06-01", "2021-12-01", "2022-09-01", "2023-03-01", "2023-06-01", "2023-12-01", "2024-06-01"};
|
String[] batchs = {"2019-12-01", "2020-09-01", "2020-12-01", "2021-06-01", "2021-12-01", "2022-09-01", "2023-03-01", "2023-06-01", "2023-12-01", "2024-06-01"};
|
||||||
JSONObject result = new JSONObject();
|
JSONObject result = new JSONObject();
|
||||||
LambdaQueryWrapper<Cet_4> Cet_4CollegeQW = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Cet_4> Cet_4CollegeQW = new LambdaQueryWrapper<>();
|
||||||
LambdaQueryWrapper<Cet_6> Cet_6CollegeQW = new LambdaQueryWrapper<>();
|
|
||||||
double[] passNumber4 = new double[10]; //四级新通过人数
|
double[] passNumber4 = new double[10]; //四级新通过人数
|
||||||
double[] attendNumber4 = new double[10];
|
double[] attendNumber4 = new double[10];
|
||||||
double[] passNumber6 = new double[10];
|
|
||||||
double[] attendNumber6 = new double[10];
|
|
||||||
Map<String, Integer> entryDataMap = new HashMap<>();
|
Map<String, Integer> entryDataMap = new HashMap<>();
|
||||||
entryDataMap.put("2019", 0);
|
entryDataMap.put("2019", 0);
|
||||||
entryDataMap.put("2020", 2);
|
entryDataMap.put("2020", 2);
|
||||||
|
@ -177,61 +152,42 @@ public class CenterServiceImpl implements CenterService {
|
||||||
entryDataMap.put("2022", 6);
|
entryDataMap.put("2022", 6);
|
||||||
entryDataMap.put("2023", 8);
|
entryDataMap.put("2023", 8);
|
||||||
Map<String, Integer> attendMap4 = new HashMap<>();
|
Map<String, Integer> attendMap4 = new HashMap<>();
|
||||||
Map<String, Integer> attendMap6 = new HashMap<>();
|
|
||||||
long[] mapSize4 = new long[10];
|
long[] mapSize4 = new long[10];
|
||||||
long[] mapSize6 = new long[10];
|
int index4 = 0;
|
||||||
for (int i = entryDataMap.get(entryDate); i < batchs.length; i++) {
|
for (int i = entryDataMap.get(entryDate); i < batchs.length; i++) {
|
||||||
Cet_4CollegeQW.clear(); // 清空查询条件,以便重新设置
|
Cet_4CollegeQW.clear(); // 清空查询条件,以便重新设置
|
||||||
Cet_6CollegeQW.clear(); // 清空查询条件,以便重新设置
|
|
||||||
Cet_4CollegeQW.eq(Cet_4::getCollege, college).eq(Cet_4::getEntrydate, entryDate).eq(Cet_4::getBatch, batchs[i]);
|
Cet_4CollegeQW.eq(Cet_4::getCollege, college).eq(Cet_4::getEntrydate, entryDate).eq(Cet_4::getBatch, batchs[i]);
|
||||||
Cet_6CollegeQW.eq(Cet_6::getCollege, college).eq(Cet_6::getEntrydate, entryDate).eq(Cet_6::getBatch, batchs[i]);
|
|
||||||
List<Map<String, Object>> Cet_4eEntrydate = cet4Mapper.selectMaps(Cet_4CollegeQW);
|
List<Map<String, Object>> Cet_4eEntrydate = cet4Mapper.selectMaps(Cet_4CollegeQW);
|
||||||
List<Map<String, Object>> Cet_6eEntrydate = cet6Mapper.selectMaps(Cet_6CollegeQW);
|
|
||||||
if (!Cet_4eEntrydate.isEmpty()) {
|
if (!Cet_4eEntrydate.isEmpty()) {
|
||||||
for (Map<String, Object> map : Cet_4eEntrydate) {
|
for (Map<String, Object> map : Cet_4eEntrydate) {
|
||||||
if ((int) map.get("result") >= 425) {
|
String str = (String) map.get("id");
|
||||||
attendMap4.put((String) map.get("id"), 1);
|
if (!map.containsKey(str)) {
|
||||||
} else {
|
if ((int) map.get("result") >= 425) {
|
||||||
attendMap4.put((String) map.get("id"), 0);
|
attendMap4.put(str, 1);
|
||||||
|
} else {
|
||||||
|
attendMap4.put(str, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mapSize4[i] = attendMap4.values().stream().filter(value -> value == 1).count();
|
mapSize4[index4] = attendMap4.values().stream().filter(value -> value == 1).count();
|
||||||
attendNumber4[i] = Cet_4eEntrydate.size();
|
attendNumber4[i] = Cet_4eEntrydate.size();
|
||||||
passNumber4[i] = i == entryDataMap.get(entryDate) ? mapSize4[i] : mapSize4[i] - mapSize4[i - 1];
|
passNumber4[i] = i == entryDataMap.get(entryDate) ? mapSize4[index4] : mapSize4[index4] - mapSize4[index4 - 1];
|
||||||
System.out.println("参加人数:" + attendMap4.size() + ",总通过人数:" + mapSize4[i] + ",新通过人数:" + passNumber4[i]);
|
System.out.println("四级参加人数:" + attendMap4.size() + ",总通过人数:" + mapSize4[index4] + ",新通过人数:" + passNumber4[i]);
|
||||||
|
index4++;
|
||||||
} else {
|
} else {
|
||||||
// 数据为空,设置为0
|
// 数据为空,设置为0
|
||||||
attendNumber4[i] = 0;
|
attendNumber4[i] = 0;
|
||||||
passNumber4[i] = 0;
|
passNumber4[i] = 0;
|
||||||
}
|
}
|
||||||
if (!Cet_6eEntrydate.isEmpty()) {
|
|
||||||
for (Map<String, Object> map : Cet_6eEntrydate) {
|
|
||||||
if ((int) map.get("result") >= 425) {
|
|
||||||
attendMap6.put((String) map.get("id"), 1);
|
|
||||||
} else {
|
|
||||||
attendMap6.put((String) map.get("id"), 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
mapSize6[i] = attendMap6.values().stream().filter(value -> value == 1).count();
|
|
||||||
attendNumber6[i] = Cet_6eEntrydate.size();
|
|
||||||
passNumber6[i] = i == entryDataMap.get(entryDate) ? mapSize6[i] : mapSize6[i] - mapSize6[i - 1];
|
|
||||||
System.out.println("参加人数:" + attendMap6.size() + ",总通过人数:" + mapSize6[i] + ",新通过人数:" + passNumber6[i]);
|
|
||||||
} else {
|
|
||||||
// 数据为空,设置为0
|
|
||||||
attendNumber6[i] = 0;
|
|
||||||
passNumber6[i] = 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
JSONArray list4 = new JSONArray();
|
JSONArray list4 = new JSONArray();
|
||||||
JSONArray list6 = new JSONArray();
|
|
||||||
JSONObject ans = new JSONObject();
|
JSONObject ans = new JSONObject();
|
||||||
String[] grade = {"大一", "大二", "大三", "大四"};
|
String[] grade = {"大一", "大二", "大三", "大四"};
|
||||||
int temp = 0;
|
int temp = 0;
|
||||||
double passSum4 = 0;
|
double passSum4 = 0;
|
||||||
double passSum6 = 0;
|
|
||||||
DecimalFormat df = new DecimalFormat("#.###");
|
DecimalFormat df = new DecimalFormat("#.###");
|
||||||
for (int i = entryDataMap.get(entryDate); i < batchs.length - 1; i += 2) {
|
for (int i = entryDataMap.get(entryDate); i < batchs.length - 1; i += 2) {
|
||||||
if (attendNumber4[i] != 0 || attendNumber4[i + 1] != 0 && temp < 4) {
|
if ((attendNumber4[i] != 0 || attendNumber4[i + 1] != 0) && temp < 4) {
|
||||||
JSONObject json = new JSONObject();
|
JSONObject json = new JSONObject();
|
||||||
double attendNumbers = attendNumber4[i] + attendNumber4[i + 1];
|
double attendNumbers = attendNumber4[i] + attendNumber4[i + 1];
|
||||||
double passNumbers = passNumber4[i] + passNumber4[i + 1];
|
double passNumbers = passNumber4[i] + passNumber4[i + 1];
|
||||||
|
@ -242,21 +198,10 @@ public class CenterServiceImpl implements CenterService {
|
||||||
json.put("passRate", df.format(passSum4 / (double) attendMap4.size()));//累计通过人数/四年参加人数
|
json.put("passRate", df.format(passSum4 / (double) attendMap4.size()));//累计通过人数/四年参加人数
|
||||||
list4.add(json);
|
list4.add(json);
|
||||||
}
|
}
|
||||||
if (attendNumber6[i] != 0 || attendNumber6[i + 1] != 0 && temp < 4) {
|
|
||||||
JSONObject json = new JSONObject();
|
|
||||||
double attendNumbers = attendNumber6[i] + attendNumber6[i + 1];
|
|
||||||
double passNumbers = passNumber6[i] + passNumber6[i + 1];
|
|
||||||
passSum6 += passNumbers;
|
|
||||||
json.put("grade", grade[temp]);
|
|
||||||
json.put("attendNumber", attendNumbers);
|
|
||||||
json.put("passNumber", passNumbers);
|
|
||||||
json.put("passRate", df.format(passSum6 / (double) attendMap6.size()));
|
|
||||||
list6.add(json);
|
|
||||||
}
|
|
||||||
temp++;
|
temp++;
|
||||||
}
|
}
|
||||||
ans.put("cet4", list4);
|
ans.put("cet4", list4);
|
||||||
ans.put("cet6", list6);
|
ans.put("total",(double) attendMap4.size());
|
||||||
result.put("data", ans);
|
result.put("data", ans);
|
||||||
return Result.ok(result);
|
return Result.ok(result);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue