This commit is contained in:
zhouwentao 2025-12-10 22:18:28 +08:00
parent a308c83091
commit e8a62dac93
3 changed files with 49 additions and 49 deletions

View File

@ -26,7 +26,7 @@ public class YxConstant {
/**
* 旧日期
*/
public static final List<String> oldYearList = Arrays.asList("2025", "2024", "2023", "2022");
public static final List<String> oldYearList = Arrays.asList("2025", "2024", "2023");
public static final List<String> showOldYearList = Arrays.asList("2025", "2024", "2023", "2022", "2021");
@ -34,7 +34,7 @@ public class YxConstant {
public static List<String> betaMajorTypeList = Arrays.asList("美术与设计类", "书法类", "体育类");
public static List<String> cankaoYearList = Arrays.asList("2024", "2023");
public static List<String> cankaoYearList = Arrays.asList("2025","2024", "2023");
public static String w1z1 = "文1专1";
public static String w1jiaz1 = "文1+专1";

View File

@ -71,7 +71,7 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
//将历史录取信息合并到专业信息里
if (CollectionUtils.isNotEmpty(recommendMajorDTOList)) {
//
yxHistoryMajorEnrollService.recommendMajorDTOListSetHistoryInfo(recommendMajorDTOList, Collections.singletonList("2025"));
yxHistoryMajorEnrollService.recommendMajorDTOListSetHistoryInfo(recommendMajorDTOList, ScoreUtil.getCalOldYears());
/*if (!"美术与设计类".equals(userScore.getProfessionalCategory())) {}else{
yxHistoryMajorEnrollService.recommendMajorDTOListSetHistoryInfo(recommendMajorDTOList, ScoreUtil.getCalOldYears());
}*/
@ -592,6 +592,11 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
continue;
}
// && "美术学(师范)".equals(recommendMajorDTO.getMajorName())
if("6501".equals(recommendMajorDTO.getSchoolCode())){
System.out.println("qvq");
}
//不是体育类的专业如果是文过专排并且没有录取计算运算符时文过专排是文*0+*1,专过文排是文*1+*0
if ("文过专排".equals(rulesEnrollProbability) && StringUtils.isBlank(probabilityOperator)) {
probabilityOperator = "文*0+专*1";
@ -614,9 +619,6 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
continue;
}
if("7730".equals(recommendMajorDTO.getSchoolCode()) && "冰雪运动与管理(雪上运动与管理方向)".equals(recommendMajorDTO.getMajorName()) && "高职高专".equals(recommendMajorDTO.getBatch())){
System.out.println("qvq");
}
//判断录取方式分数是否过省控线
if (!ScoreUtil.crossingControlLine(rulesEnrollProbability, culturalScore, professionalScore, culturalControlLine, specialControlLine)) {
@ -624,29 +626,11 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
continue;
}
if("体育类".equals(professionalCategory) && "4615".equals(recommendMajorDTO.getSchoolCode())
&& recommendMajorDTO.getMajorName().contains("休闲体育")){
System.out.println("qvq");
}else if("体育类".equals(professionalCategory) && "5510".equals(recommendMajorDTO.getSchoolCode())
&& recommendMajorDTO.getMajorName().contains("体育教育")){
System.out.println("qvq");
}
if(recommendMajorDTO.getSchoolCode().equals("6506") &&
recommendMajorDTO.getMajorName().equals("社会体育指导与管理")){
System.out.println("qvq");
}
//算分用
// 当前学生的分数折合
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), activeCurrentUserScore.getProfessionalScore(), recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
/*if (professionalCategory.equals("体育类")
&& !"文过专排".equals(rulesEnrollProbability)
&& !"专过文排".equals(rulesEnrollProbability)) {
// 体育非专过文排 / 7.5
studentScore = studentScore.divide(YxConstant.bigDecimal7p5, 4, RoundingMode.HALF_UP);
}*/
recommendMajorDTO.setPrivateStudentScore(studentScore);
if (StringUtils.isNotBlank(recommendMajorDTO.getRulesEnrollProbability())) {
//recommendMajorDTO.setStudentConvertedScore(studentScore);
//计算展示用分数
@ -659,12 +643,6 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
continue;
}
// 如果没有24年数据则不计算
if(CollectionUtils.isEmpty(historyMajorEnrollList) && historyMajorEnrollList.stream().noneMatch(h -> "2024".equals(h.getYear()))){
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
continue;
}
//录取方式计算
if (rulesEnrollProbability.equals("文过专排主科")) {
if (CollectionUtils.isEmpty(historyMajorEnrollList)) {
@ -689,27 +667,37 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
//历年分差
differenceMap = ScoreUtil.computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability(rulesEnrollProbability, probabilityOperator, historyMajorEnrollList);
historyThreeYearDiff = (BigDecimal) differenceMap.get("scoreDifference");
if(professionalCategory.equals("体育类")
&& "文过专排".equals(rulesEnrollProbability)){
historyThreeYearDiff = historyThreeYearDiff.multiply(YxConstant.bigDecimal5);
}
// if(professionalCategory.equals("体育类")
// && "文过专排".equals(rulesEnrollProbability)){
// historyThreeYearDiff = historyThreeYearDiff.multiply(YxConstant.bigDecimal5);
// }
// 体育文过专排 / 5
if (professionalCategory.equals("体育类")
&& !"文过专排".equals(rulesEnrollProbability)
&& !"专过文排".equals(rulesEnrollProbability)) {
// 体育非专过文排 / 7.5
nowYearProvincialControlLine = nowYearProvincialControlLine.divide(YxConstant.bigDecimal7p5, 4, RoundingMode.HALF_UP);
//当前年线差
studentScore = studentScore.divide(YxConstant.bigDecimal7p5, 4, RoundingMode.HALF_UP);
}
// if (professionalCategory.equals("体育类")
// && !"文过专排".equals(rulesEnrollProbability)
// && !"专过文排".equals(rulesEnrollProbability)) {
// // 体育非专过文排 / 7.5
// nowYearProvincialControlLine = nowYearProvincialControlLine.divide(YxConstant.bigDecimal7p5, 4, RoundingMode.HALF_UP);
// //当前年线差
// studentScore = studentScore.divide(YxConstant.bigDecimal7p5, 4, RoundingMode.HALF_UP);
// }
//当前年线差
nowYearDiff = studentScore.subtract(nowYearProvincialControlLine);
//艺术类高职高专 当前年线差率 (当前年线差/当前年省控线)
// if ("高职高专".equals(recommendMajorDTO.getBatch()) && !"体育类".equals(recommendMajorDTO.getMajorType())) {
// nowYearDiff = nowYearDiff.divide(nowYearProvincialControlLine,6,RoundingMode.HALF_UP);
// }
if(historyThreeYearDiff.compareTo(YxConstant.bigDecimal0) == 0){
// 历年线差无,无概率
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
continue;
}
enrollProbability = ScoreUtil.commonCheckEnrollProbability(nowYearDiff,historyThreeYearDiff);
if ("体育类".equals(recommendMajorDTO.getMajorType()) && ("文过专排".equals(rulesEnrollProbability) || "专过文排".equals(rulesEnrollProbability))) {
enrollProbability = enrollProbability.divide(YxConstant.bigDecimal075, 4, RoundingMode.HALF_UP);
}
}
enrollProbability = ScoreUtil.commonCheckEnrollProbabilityBeilv(enrollProbability);

View File

@ -107,17 +107,29 @@ public class ScoreUtil {
// 5. 特殊逻辑高职高专非体育类需计算分差率分差/省控线
boolean isVocationalCollege = "高职高专".equals(enrollData.getBatch());
boolean isSportsMajor = "体育类".equals(enrollData.getMajorType());
if(isSportsMajor && rulesEnrollProbability.equals(enrollData.getRulesEnrollProbability())){
sum = sum.add(currentDiff);
validYearCount++;
continue;
}
if(isSportsMajor){
if("2024".equals(enrollData.getYear()) && !"专过文排".equals(enrollData.getRulesEnrollProbability())
&& !"文过专排".equals(enrollData.getRulesEnrollProbability())) {
currentDiff = currentDiff.multiply(YxConstant.bigDecimal7p5);
}else if("2024".equals(enrollData.getYear()) && "文过专排".equals(enrollData.getRulesEnrollProbability())) {
currentDiff = currentDiff.multiply(YxConstant.bigDecimal5);
}else if("2023".equals(enrollData.getYear())) {
continue; // 26年 体育不看23年数据
}else if(rulesEnrollProbability.equals(enrollData.getRulesEnrollProbability())){
currentDiff = admissionLine.subtract(controlLine);
sum = sum.add(currentDiff);
validYearCount++;
continue;
}
}else
// 6. 非高职高专 or 体育类检查录取方式是否一致 validYearCount >= 1 &&
// !rulesEnrollProbability.equals(enrollData.getRulesEnrollProbability()) &&
else if (!probabilityOperator.equals(enrollData.getProbabilityOperator())) {
if (!probabilityOperator.equals(enrollData.getProbabilityOperator())) {
continue; // 录取方式不一致跳过
}
sum = sum.add(currentDiff);
validYearCount++;
}