From e2d4005c4de7002ab4da21709b28d7bd37c0526b Mon Sep 17 00:00:00 2001 From: zhouwentao <1577701412@qq.com> Date: Mon, 12 May 2025 21:53:12 +0800 Subject: [PATCH] updates --- .../api/controller/StaticDataController.java | 132 ++++++++++++++++++ .../yx/service/impl/BiaoyanService.java | 2 +- .../modules/yx/service/impl/BoYinService.java | 2 +- .../modules/yx/service/impl/MusicService.java | 2 +- .../modules/yx/service/impl/WuDaoService.java | 2 +- .../impl/YxCalculationMajorServiceImpl.java | 16 ++- .../impl/YxHistoryMajorEnrollServiceImpl.java | 4 + .../impl/YxSchoolMajorServiceImpl.java | 4 +- .../modules/yx/service/impl/ZhuanService.java | 2 +- .../org/jeecg/modules/yx/util/ScoreUtil.java | 4 +- 10 files changed, 155 insertions(+), 15 deletions(-) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/api/controller/StaticDataController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/api/controller/StaticDataController.java index fafbf30..c571b18 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/api/controller/StaticDataController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/api/controller/StaticDataController.java @@ -4,12 +4,18 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.json.JSONObject; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import io.swagger.annotations.Api; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.util.AssertUtils; +import org.jeecg.modules.yx.entity.YxHistoryMajorEnroll; +import org.jeecg.modules.yx.entity.YxSchoolMajor; import org.jeecg.modules.yx.entity.YxSportsScore; +import org.jeecg.modules.yx.service.IYxHistoryMajorEnrollService; +import org.jeecg.modules.yx.service.IYxSchoolMajorService; import org.jeecg.modules.yx.service.IYxSportsScoreService; import org.springframework.web.bind.annotation.*; @@ -30,6 +36,10 @@ import java.util.List; public class StaticDataController { @Resource private IYxSportsScoreService yxSportsScoreService; + @Resource + private IYxSchoolMajorService yxSchoolMajorService; + @Resource + private IYxHistoryMajorEnrollService yxHistoryMajorEnrollService; @RequestMapping(value = "/getJson",method = RequestMethod.POST) public Result getJson(@RequestBody JSONObject params, HttpServletRequest request){ @@ -105,4 +115,126 @@ public class StaticDataController { jsonObject.set("zhuanZhiYuanNum", 64); return jsonObject; } + + @RequestMapping("test") + public Result test() { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.groupBy(YxSchoolMajor::getProbabilityOperator); + queryWrapper.select(YxSchoolMajor::getProbabilityOperator); + List list = yxSchoolMajorService.list(queryWrapper); + int i1 = 0; + for (YxSchoolMajor major : list) { + i1++; +// System.out.println(i1); + if(i1 == 61){ +// System.out.println("1"); + } + if (major != null && StringUtils.isNotBlank(major.getProbabilityOperator()) && !major.getProbabilityOperator().equals("") && major.getProbabilityOperator().contains("+")) { + // 1. 按 "+" 分割字符串 + String[] parts = major.getProbabilityOperator().split("\\+"); + // 2. 处理每个部分,去除末尾的 0 + for (int i = 0; i < parts.length; i++) { + if (parts[i].contains("*")) { + String[] subParts = parts[i].split("\\*"); + if (subParts.length == 2) { + // 3. 去除小数末尾的 0 + subParts[1] = subParts[1].replaceAll("0+$", ""); // 去掉末尾的 0 + subParts[1] = subParts[1].endsWith(".") ? subParts[1] + "0" : subParts[1]; // 避免变成 "0." -> "0.0" + parts[i] = subParts[0] + "*" + subParts[1]; // 重新拼接 + } + } + } + + // 4. 重新组合成完整字符串 + major.setProbabilityOperator(String.join("+", parts)); + System.out.println(major.getProbabilityOperator()); + } + } + + return Result.OK(); + } + + @RequestMapping("test2") + public Result test2() { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.groupBy(YxHistoryMajorEnroll::getProbabilityOperator); + queryWrapper.select(YxHistoryMajorEnroll::getProbabilityOperator); + List list = yxHistoryMajorEnrollService.list(queryWrapper); + int i1 = 0; + String old = ""; + String newd = ""; + for (YxHistoryMajorEnroll major : list) { + i1++; +// System.out.println(i1); + if(i1 == 61){ +// System.out.println("1"); + } + if (major != null && StringUtils.isNotBlank(major.getProbabilityOperator()) && !major.getProbabilityOperator().equals("") && major.getProbabilityOperator().contains("+")) { + old = major.getProbabilityOperator(); + // 1. 按 "+" 分割字符串 + String[] parts = major.getProbabilityOperator().split("\\+"); + // 2. 处理每个部分,去除末尾的 0 + for (int i = 0; i < parts.length; i++) { + if (parts[i].contains("*")) { + String[] subParts = parts[i].split("\\*"); + if (subParts.length == 2) { + // 3. 去除小数末尾的 0 + subParts[1] = subParts[1].replaceAll("0+$", ""); // 去掉末尾的 0 + subParts[1] = subParts[1].endsWith(".") ? subParts[1] + "0" : subParts[1]; // 避免变成 "0." -> "0.0" + parts[i] = subParts[0] + "*" + subParts[1]; // 重新拼接 + } + } + } + + // 4. 重新组合成完整字符串 + major.setProbabilityOperator(String.join("+", parts)); + System.out.println(major.getProbabilityOperator()); + + newd = major.getProbabilityOperator(); + + // 修改 + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper(); + updateWrapper.set(YxHistoryMajorEnroll::getProbabilityOperator, newd); + updateWrapper.eq(YxHistoryMajorEnroll::getProbabilityOperator, old); + yxHistoryMajorEnrollService.update(updateWrapper); + } + } + + return Result.OK(); + } + + @RequestMapping("test3") + public Result test3() { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + List schoolMajorList = yxSchoolMajorService.list(queryWrapper); + LambdaQueryWrapper hmel = new LambdaQueryWrapper<>(); + List hmelList = null; + List newList = new ArrayList<>(); + for (YxSchoolMajor yxSchoolMajor : schoolMajorList) { + hmel.clear(); + hmel.eq(YxHistoryMajorEnroll::getSchoolCode,yxSchoolMajor.getSchoolCode()); + hmel.eq(YxHistoryMajorEnroll::getMajorName,yxSchoolMajor.getMajorName()); + hmel.eq(YxHistoryMajorEnroll::getCategory,yxSchoolMajor.getCategory()); + hmel.eq(YxHistoryMajorEnroll::getBatch,yxSchoolMajor.getBatch()); + hmel.eq(YxHistoryMajorEnroll::getMajorType,yxSchoolMajor.getMajorType()); + hmel.eq(YxHistoryMajorEnroll::getYear, "2024"); + + hmelList = yxHistoryMajorEnrollService.list(hmel); + if (CollectionUtils.isNotEmpty(hmelList)) { + // 判断是否一致 + if (StringUtils.isNotBlank(yxSchoolMajor.getProbabilityOperator()) && !yxSchoolMajor.getProbabilityOperator().equals(hmelList.get(0).getProbabilityOperator())) { + // 不一致 + yxSchoolMajor.setProbabilityOperator(hmelList.get(0).getProbabilityOperator()); + yxSchoolMajor.setPrivateProbabilityOperator(hmelList.get(0).getProbabilityOperator()); + yxSchoolMajor.setRulesEnrollProbability(hmelList.get(0).getRulesEnrollProbability()); + yxSchoolMajor.setRulesEnrollProbabilitySx(hmelList.get(0).getRulesEnrollProbability()); + yxSchoolMajor.setPrivateRulesEnrollProbability(hmelList.get(0).getRulesEnrollProbability()); + newList.add(yxSchoolMajor); + } + } + } + yxSchoolMajorService.updateBatchById(newList, 500); + return Result.OK(); + } + } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/BiaoyanService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/BiaoyanService.java index 16a0077..71555b2 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/BiaoyanService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/BiaoyanService.java @@ -239,7 +239,7 @@ public class BiaoyanService { continue; } //历年分差 - differenceMap = ScoreUtil.computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability(rulesEnrollProbability, historyMajorEnrollList); + differenceMap = ScoreUtil.computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability(rulesEnrollProbability, probabilityOperator, historyMajorEnrollList); historyThreeYearDiff = (BigDecimal) differenceMap.get("scoreDifference"); //当前年线差 nowYearDiff = studentScore.subtract(nowYearProvincialControlLine); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/BoYinService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/BoYinService.java index 9a594b7..8e7c403 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/BoYinService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/BoYinService.java @@ -167,7 +167,7 @@ public class BoYinService { continue; } //历年分差 - differenceMap = ScoreUtil.computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability(rulesEnrollProbability, historyMajorEnrollList); + differenceMap = ScoreUtil.computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability(rulesEnrollProbability, probabilityOperator, historyMajorEnrollList); historyThreeYearDiff = (BigDecimal) differenceMap.get("scoreDifference"); //当前年线差 nowYearDiff = studentScore.subtract(nowYearProvincialControlLine); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/MusicService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/MusicService.java index f2fd2c4..4af7485 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/MusicService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/MusicService.java @@ -291,7 +291,7 @@ public class MusicService { continue; } //历年分差 - differenceMap = ScoreUtil.computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability(rulesEnrollProbability, historyMajorEnrollList); + differenceMap = ScoreUtil.computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability(rulesEnrollProbability, probabilityOperator, historyMajorEnrollList); historyThreeYearDiff = (BigDecimal) differenceMap.get("scoreDifference"); //当前年线差 nowYearDiff = studentScore.subtract(nowYearProvincialControlLine); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/WuDaoService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/WuDaoService.java index 71a73fb..fed5a10 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/WuDaoService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/WuDaoService.java @@ -185,7 +185,7 @@ public class WuDaoService { continue; } //历年分差 - differenceMap = ScoreUtil.computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability(rulesEnrollProbability, historyMajorEnrollList); + differenceMap = ScoreUtil.computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability(rulesEnrollProbability, probabilityOperator, historyMajorEnrollList); historyThreeYearDiff = (BigDecimal) differenceMap.get("scoreDifference"); //当前年线差 nowYearDiff = studentScore.subtract(nowYearProvincialControlLine); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxCalculationMajorServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxCalculationMajorServiceImpl.java index 70bbbd1..d5a4ca5 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxCalculationMajorServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxCalculationMajorServiceImpl.java @@ -494,6 +494,7 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl recommendMajorList, YxUserScore activeCurrentUserScore) { + int index = 0; try { long startTime = new Date().getTime(); //专业类别 @@ -516,10 +517,14 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl differenceMap = null; List historyMajorEnrollList = null;//历年录取信息 - int index = 0; if (CollectionUtils.isNotEmpty(recommendMajorList)) { //遍历专业列表 for (RecommendMajorDTO recommendMajorDTO : recommendMajorList) { + index++; + System.out.println(recommendMajorDTO.getSchoolCode()); + if ("4915".equals(recommendMajorDTO.getSchoolCode()) && recommendMajorDTO.getMajorName().equals("产品设计")) { + System.out.println("qvq"); + } //取出往年的分数信息, 算出 三年平均差值 historyMajorEnrollList = recommendMajorDTO.getHistoryMajorEnrollList(); rulesEnrollProbability = recommendMajorDTO.getPrivateRulesEnrollProbability(); @@ -531,10 +536,6 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl(); yearMajorEnrollMap = new LinkedHashMap<>(); + + if("6031".equals(recommendMajorDTO.getSchoolCode())){ + System.out.println("qqvqvq"); + } //2022年 for (String year : historyYearsList) { key = recommendMajorDTO.getSchoolCode() + a_ + recommendMajorDTO.getMajorName() + a_ + recommendMajorDTO.getCategory() + a_ + recommendMajorDTO.getBatch(); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxSchoolMajorServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxSchoolMajorServiceImpl.java index 8847d74..7ef3297 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxSchoolMajorServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxSchoolMajorServiceImpl.java @@ -499,7 +499,7 @@ public class YxSchoolMajorServiceImpl extends ServiceImpl computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability( String rulesEnrollProbability, + String probabilityOperator, List historyMajorEnrollList) { // 1. 提前返回空结果,避免后续空指针 if (CollectionUtils.isEmpty(historyMajorEnrollList)) { @@ -106,7 +107,8 @@ public class ScoreUtil { currentDiff = currentDiff.divide(controlLine, 6, RoundingMode.HALF_UP); } // 6. 非高职高专 or 体育类:检查录取方式是否一致 validYearCount >= 1 && - else if (!rulesEnrollProbability.equals(enrollData.getRulesEnrollProbability())) { + // !rulesEnrollProbability.equals(enrollData.getRulesEnrollProbability()) && + else if (!probabilityOperator.equals(enrollData.getProbabilityOperator())) { continue; // 录取方式不一致,跳过 }