updates
This commit is contained in:
parent
a308c83091
commit
e8a62dac93
|
|
@ -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");
|
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> 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 w1z1 = "文1专1";
|
||||||
public static String w1jiaz1 = "文1+专1";
|
public static String w1jiaz1 = "文1+专1";
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,7 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
|
||||||
//将历史录取信息合并到专业信息里
|
//将历史录取信息合并到专业信息里
|
||||||
if (CollectionUtils.isNotEmpty(recommendMajorDTOList)) {
|
if (CollectionUtils.isNotEmpty(recommendMajorDTOList)) {
|
||||||
//
|
//
|
||||||
yxHistoryMajorEnrollService.recommendMajorDTOListSetHistoryInfo(recommendMajorDTOList, Collections.singletonList("2025"));
|
yxHistoryMajorEnrollService.recommendMajorDTOListSetHistoryInfo(recommendMajorDTOList, ScoreUtil.getCalOldYears());
|
||||||
/*if (!"美术与设计类".equals(userScore.getProfessionalCategory())) {}else{
|
/*if (!"美术与设计类".equals(userScore.getProfessionalCategory())) {}else{
|
||||||
yxHistoryMajorEnrollService.recommendMajorDTOListSetHistoryInfo(recommendMajorDTOList, ScoreUtil.getCalOldYears());
|
yxHistoryMajorEnrollService.recommendMajorDTOListSetHistoryInfo(recommendMajorDTOList, ScoreUtil.getCalOldYears());
|
||||||
}*/
|
}*/
|
||||||
|
|
@ -592,6 +592,11 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// && "美术学(师范)".equals(recommendMajorDTO.getMajorName())
|
||||||
|
if("6501".equals(recommendMajorDTO.getSchoolCode())){
|
||||||
|
System.out.println("qvq");
|
||||||
|
}
|
||||||
|
|
||||||
//不是体育类的专业,如果是文过专排,并且没有录取计算运算符时,文过专排是文*0+专*1,专过文排是文*1+专*0
|
//不是体育类的专业,如果是文过专排,并且没有录取计算运算符时,文过专排是文*0+专*1,专过文排是文*1+专*0
|
||||||
if ("文过专排".equals(rulesEnrollProbability) && StringUtils.isBlank(probabilityOperator)) {
|
if ("文过专排".equals(rulesEnrollProbability) && StringUtils.isBlank(probabilityOperator)) {
|
||||||
probabilityOperator = "文*0+专*1";
|
probabilityOperator = "文*0+专*1";
|
||||||
|
|
@ -614,9 +619,6 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
|
||||||
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
|
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if("7730".equals(recommendMajorDTO.getSchoolCode()) && "冰雪运动与管理(雪上运动与管理方向)".equals(recommendMajorDTO.getMajorName()) && "高职高专".equals(recommendMajorDTO.getBatch())){
|
|
||||||
System.out.println("qvq");
|
|
||||||
}
|
|
||||||
|
|
||||||
//判断录取方式,分数是否过省控线
|
//判断录取方式,分数是否过省控线
|
||||||
if (!ScoreUtil.crossingControlLine(rulesEnrollProbability, culturalScore, professionalScore, culturalControlLine, specialControlLine)) {
|
if (!ScoreUtil.crossingControlLine(rulesEnrollProbability, culturalScore, professionalScore, culturalControlLine, specialControlLine)) {
|
||||||
|
|
@ -624,29 +626,11 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
|
||||||
continue;
|
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);
|
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);
|
recommendMajorDTO.setPrivateStudentScore(studentScore);
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(recommendMajorDTO.getRulesEnrollProbability())) {
|
if (StringUtils.isNotBlank(recommendMajorDTO.getRulesEnrollProbability())) {
|
||||||
//recommendMajorDTO.setStudentConvertedScore(studentScore);
|
//recommendMajorDTO.setStudentConvertedScore(studentScore);
|
||||||
//计算展示用分数
|
//计算展示用分数
|
||||||
|
|
@ -659,12 +643,6 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 如果没有24年数据,则不计算
|
|
||||||
if(CollectionUtils.isEmpty(historyMajorEnrollList) && historyMajorEnrollList.stream().noneMatch(h -> "2024".equals(h.getYear()))){
|
|
||||||
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
//录取方式计算
|
//录取方式计算
|
||||||
if (rulesEnrollProbability.equals("文过专排主科")) {
|
if (rulesEnrollProbability.equals("文过专排主科")) {
|
||||||
if (CollectionUtils.isEmpty(historyMajorEnrollList)) {
|
if (CollectionUtils.isEmpty(historyMajorEnrollList)) {
|
||||||
|
|
@ -689,27 +667,37 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
|
||||||
//历年分差
|
//历年分差
|
||||||
differenceMap = ScoreUtil.computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability(rulesEnrollProbability, probabilityOperator, historyMajorEnrollList);
|
differenceMap = ScoreUtil.computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability(rulesEnrollProbability, probabilityOperator, historyMajorEnrollList);
|
||||||
historyThreeYearDiff = (BigDecimal) differenceMap.get("scoreDifference");
|
historyThreeYearDiff = (BigDecimal) differenceMap.get("scoreDifference");
|
||||||
if(professionalCategory.equals("体育类")
|
// if(professionalCategory.equals("体育类")
|
||||||
&& "文过专排".equals(rulesEnrollProbability)){
|
// && "文过专排".equals(rulesEnrollProbability)){
|
||||||
historyThreeYearDiff = historyThreeYearDiff.multiply(YxConstant.bigDecimal5);
|
// historyThreeYearDiff = historyThreeYearDiff.multiply(YxConstant.bigDecimal5);
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 体育,文过专排 / 5
|
// 体育,文过专排 / 5
|
||||||
if (professionalCategory.equals("体育类")
|
// if (professionalCategory.equals("体育类")
|
||||||
&& !"文过专排".equals(rulesEnrollProbability)
|
// && !"文过专排".equals(rulesEnrollProbability)
|
||||||
&& !"专过文排".equals(rulesEnrollProbability)) {
|
// && !"专过文排".equals(rulesEnrollProbability)) {
|
||||||
// 体育,非专过文排 / 7.5
|
// // 体育,非专过文排 / 7.5
|
||||||
nowYearProvincialControlLine = nowYearProvincialControlLine.divide(YxConstant.bigDecimal7p5, 4, RoundingMode.HALF_UP);
|
// nowYearProvincialControlLine = nowYearProvincialControlLine.divide(YxConstant.bigDecimal7p5, 4, RoundingMode.HALF_UP);
|
||||||
//当前年线差
|
// //当前年线差
|
||||||
studentScore = studentScore.divide(YxConstant.bigDecimal7p5, 4, RoundingMode.HALF_UP);
|
// studentScore = studentScore.divide(YxConstant.bigDecimal7p5, 4, RoundingMode.HALF_UP);
|
||||||
}
|
// }
|
||||||
//当前年线差
|
//当前年线差
|
||||||
nowYearDiff = studentScore.subtract(nowYearProvincialControlLine);
|
nowYearDiff = studentScore.subtract(nowYearProvincialControlLine);
|
||||||
|
|
||||||
//艺术类,高职高专 算 当前年线差率 (当前年线差/当前年省控线)
|
//艺术类,高职高专 算 当前年线差率 (当前年线差/当前年省控线)
|
||||||
// if ("高职高专".equals(recommendMajorDTO.getBatch()) && !"体育类".equals(recommendMajorDTO.getMajorType())) {
|
// if ("高职高专".equals(recommendMajorDTO.getBatch()) && !"体育类".equals(recommendMajorDTO.getMajorType())) {
|
||||||
// nowYearDiff = nowYearDiff.divide(nowYearProvincialControlLine,6,RoundingMode.HALF_UP);
|
// nowYearDiff = nowYearDiff.divide(nowYearProvincialControlLine,6,RoundingMode.HALF_UP);
|
||||||
// }
|
// }
|
||||||
|
if(historyThreeYearDiff.compareTo(YxConstant.bigDecimal0) == 0){
|
||||||
|
// 历年线差无,无概率
|
||||||
|
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
enrollProbability = ScoreUtil.commonCheckEnrollProbability(nowYearDiff,historyThreeYearDiff);
|
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);
|
enrollProbability = ScoreUtil.commonCheckEnrollProbabilityBeilv(enrollProbability);
|
||||||
|
|
|
||||||
|
|
@ -107,17 +107,29 @@ public class ScoreUtil {
|
||||||
// 5. 特殊逻辑:高职高专(非体育类)需计算分差率(分差/省控线)
|
// 5. 特殊逻辑:高职高专(非体育类)需计算分差率(分差/省控线)
|
||||||
boolean isVocationalCollege = "高职高专".equals(enrollData.getBatch());
|
boolean isVocationalCollege = "高职高专".equals(enrollData.getBatch());
|
||||||
boolean isSportsMajor = "体育类".equals(enrollData.getMajorType());
|
boolean isSportsMajor = "体育类".equals(enrollData.getMajorType());
|
||||||
if(isSportsMajor && rulesEnrollProbability.equals(enrollData.getRulesEnrollProbability())){
|
if(isSportsMajor){
|
||||||
sum = sum.add(currentDiff);
|
if("2024".equals(enrollData.getYear()) && !"专过文排".equals(enrollData.getRulesEnrollProbability())
|
||||||
validYearCount++;
|
&& !"文过专排".equals(enrollData.getRulesEnrollProbability())) {
|
||||||
continue;
|
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 &&
|
// 6. 非高职高专 or 体育类:检查录取方式是否一致 validYearCount >= 1 &&
|
||||||
// !rulesEnrollProbability.equals(enrollData.getRulesEnrollProbability()) &&
|
// !rulesEnrollProbability.equals(enrollData.getRulesEnrollProbability()) &&
|
||||||
else if (!probabilityOperator.equals(enrollData.getProbabilityOperator())) {
|
if (!probabilityOperator.equals(enrollData.getProbabilityOperator())) {
|
||||||
continue; // 录取方式不一致,跳过
|
continue; // 录取方式不一致,跳过
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
sum = sum.add(currentDiff);
|
sum = sum.add(currentDiff);
|
||||||
validYearCount++;
|
validYearCount++;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue