diff --git a/jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/bigScreen/service/CompSystemBigScreenServiceImpl.java b/jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/bigScreen/service/CompSystemBigScreenServiceImpl.java index 9d0d2efe..8541f866 100644 --- a/jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/bigScreen/service/CompSystemBigScreenServiceImpl.java +++ b/jeecg-boot-master/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/bigScreen/service/CompSystemBigScreenServiceImpl.java @@ -4,9 +4,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.jeecg.common.util.ComputeUtils; import org.jeecg.common.util.DateUtils; import org.jeecg.modules.demo.abilityEvaluation.entity.DepartAbilityEvaluation; +import org.jeecg.modules.demo.abilityEvaluation.entity.PersonalAbilityEvaluation; import org.jeecg.modules.demo.abilityEvaluation.entity.PersonalAbilityEvaluationCollect; import org.jeecg.modules.demo.abilityEvaluation.service.IDepartAbilityEvaluationService; import org.jeecg.modules.demo.abilityEvaluation.service.IPersonalAbilityEvaluationCollectService; +import org.jeecg.modules.demo.abilityEvaluation.service.IPersonalAbilityEvaluationService; import org.jeecg.modules.demo.annual.entity.Annual; import org.jeecg.modules.demo.annual.service.IAnnualService; import org.jeecg.modules.demo.annualCompPoint.entity.AnnualCompPoint; @@ -85,6 +87,9 @@ public class CompSystemBigScreenServiceImpl implements CompSystemBigScreenServic @Autowired private IDepartAbilityEvaluationService iDepartAbilityEvaluationService; + @Autowired + private IPersonalAbilityEvaluationService iPersonalAbilityEvaluationService; + @Autowired private IPersonalAbilityEvaluationCollectService iPersonalAbilityEvaluationCollectService; @@ -114,7 +119,6 @@ public class CompSystemBigScreenServiceImpl implements CompSystemBigScreenServic List annualCompList = this.getAnnualCompList(comp); //年度比赛列表 resultMap.put("annualCompList", annualCompList); -// List annualCompList = iAnnualCompService.list(new LambdaQueryWrapper().eq(AnnualComp::getCompid, compId)); //年度比赛ids @@ -137,13 +141,15 @@ public class CompSystemBigScreenServiceImpl implements CompSystemBigScreenServic resultMap.put("awardList", awardPersionList); - //TODO - List personalCompScoreList = iPersonalCompTotalScoreService.list(new LambdaQueryWrapper() -// .eq(PersonalCompTotalScore::getDepet, departId) + List personalCompScoreList = iPersonalCompScoreService.list(new LambdaQueryWrapper().in(PersonalCompScore::getAnnualCompId, annualCompIds)); + //参加该比赛的所有学生学号 + Set workNos = Optional.ofNullable(personalCompScoreList).orElse(new ArrayList<>()).stream().map(personalCompScore -> personalCompScore.getWorkOn()).collect(Collectors.toSet()); + List personalCompTotalScoreList = iPersonalCompTotalScoreService.list(new LambdaQueryWrapper() + .in(PersonalCompTotalScore::getWorkOn, workNos) .orderByDesc(PersonalCompTotalScore::getScore) .last("limit 50")); //学生积分排名 - resultMap.put("studentScore", personalCompScoreList); + resultMap.put("studentScore", personalCompTotalScoreList); Map compCounts = new LinkedHashMap<>(); @@ -170,29 +176,29 @@ public class CompSystemBigScreenServiceImpl implements CompSystemBigScreenServic resultMap.put("compCounts", compCounts); - //TODO -// List departAbilityEvaluations = iDepartAbilityEvaluationService.list(new LambdaQueryWrapper() -// .eq(DepartAbilityEvaluation::getDepetId, departId)); -// List vos = new LinkedList<>(); -// Map> capacityIdListMap = Optional.ofNullable(departAbilityEvaluations).orElse(new LinkedList<>()).stream() -// .collect(Collectors.groupingBy(DepartAbilityEvaluation::getCapacityId)); -// //遍历分组后的结果 -// Optional.ofNullable(capacityIdListMap).orElse(new LinkedHashMap<>()).forEach((key, value) -> { -// List departAbilityEvaluationList = value; -// double sum = departAbilityEvaluationList.stream().mapToDouble(obj -> obj.getValue()).sum(); -// DecimalFormat decimalFormat = new DecimalFormat(); -// decimalFormat.setMaximumFractionDigits(2); // 保留两位小数 -// decimalFormat.setRoundingMode(RoundingMode.HALF_UP); // 设置具体的进位机制 -// double val = ComputeUtils.div2(sum, departAbilityEvaluationList.size()); -// DepartAbilityEvaluation vo = new DepartAbilityEvaluation(); + List personalAbilityEvaluationList = iPersonalAbilityEvaluationService.list(new LambdaQueryWrapper() + .in(PersonalAbilityEvaluation::getAnnualCompId, annualCompIds) + .in(PersonalAbilityEvaluation::getWorkOn, workNos) + ); + List vos = new LinkedList<>(); + Map> capacityIdListMap = Optional.ofNullable(personalAbilityEvaluationList).orElse(new LinkedList<>()).stream() + .collect(Collectors.groupingBy(PersonalAbilityEvaluation::getCapacityId)); + //遍历分组后的结果 + Optional.ofNullable(capacityIdListMap).orElse(new LinkedHashMap<>()).forEach((key, obj) -> { + double sum = obj.stream().mapToDouble(bo -> bo.getValue()).sum(); + DecimalFormat decimalFormat = new DecimalFormat(); + decimalFormat.setMaximumFractionDigits(2); // 保留两位小数 + decimalFormat.setRoundingMode(RoundingMode.HALF_UP); // 设置具体的进位机制 + double val = ComputeUtils.div2(sum, obj.size()); + DepartAbilityEvaluation vo = new DepartAbilityEvaluation(); // vo.setDepetId(departId); -// vo.setValue(val); -// vo.setCapacityId(key); -// vo.setCapacityName(departAbilityEvaluationList.get(0).getCapacityName()); -// vos.add(vo); -// }); -// //能力评估 -// resultMap.put("departAbilityEvaluation", vos); + vo.setValue(val); + vo.setCapacityId(key); + vo.setCapacityName(obj.get(0).getCapacityName()); + vos.add(vo); + }); + //单项比赛能力评估 + resultMap.put("comAbilityEvaluation", vos); List years = DateUtils.getLastxYear(5);