This commit is contained in:
zhouwentao 2024-03-16 12:42:13 +08:00
parent 22e67ac4d7
commit 4085bae747
4 changed files with 43 additions and 29 deletions

View File

@ -63,7 +63,7 @@ public class YxConstant {
public static List<String> defaultRulesEnrollProbabilityList =Arrays.asList("文过专排","专过文排"); public static List<String> defaultRulesEnrollProbabilityList =Arrays.asList("文过专排","专过文排");
//当天最多修改成绩次数 //当天最多修改成绩次数
public static final Integer todayMaxEditScoreCount =5; public static final Integer todayMaxEditScoreCount =10;
public static BigDecimal bigDecimal1 = new BigDecimal("1"); public static BigDecimal bigDecimal1 = new BigDecimal("1");
public static BigDecimal bigDecimal175= new BigDecimal("175"); public static BigDecimal bigDecimal175= new BigDecimal("175");
public static BigDecimal bigDecimal50=new BigDecimal("50"); public static BigDecimal bigDecimal50=new BigDecimal("50");

View File

@ -101,7 +101,7 @@ public class YxScoreController {
if ("音乐类".equals(professionalCategory)) { if ("音乐类".equals(professionalCategory)) {
AssertUtils.notTrue(professionalScore.compareTo(YxConstant.bigDecimal300) > 0,"[主项成绩]最高分为300"); AssertUtils.notTrue(professionalScore.compareTo(YxConstant.bigDecimal300) > 0,"[主项成绩]最高分为300");
AssertUtils.notTrue(professionalScore.compareTo(YxConstant.bigDecimal0) < 0,"[主项成绩]最低分为0"); AssertUtils.notTrue(professionalScore.compareTo(YxConstant.bigDecimal0) < 0,"[主项成绩]最低分为0");
}else{ }else if(!"表演类".equals(professionalCategory)){
AssertUtils.notTrue(professionalScore.compareTo(YxConstant.bigDecimal300) > 0,"[统考成绩]最高分为300"); AssertUtils.notTrue(professionalScore.compareTo(YxConstant.bigDecimal300) > 0,"[统考成绩]最高分为300");
AssertUtils.notTrue(professionalScore.compareTo(YxConstant.bigDecimal0) < 0,"[统考成绩]最低分为0"); AssertUtils.notTrue(professionalScore.compareTo(YxConstant.bigDecimal0) < 0,"[统考成绩]最低分为0");
} }

View File

@ -133,14 +133,14 @@ public class BiaoyanService {
professionalScore2 = byMaxScoreOld; professionalScore2 = byMaxScoreOld;
professionalScore3 = byMaxScore; professionalScore3 = byMaxScore;
} else if ("戏剧影视表演".equals(mainSubjects)) { } else if ("戏剧影视表演".equals(mainSubjects)) {
professionalScore2 = activeCurrentUserScore.getFzby(); professionalScore2 = activeCurrentUserScore.getXjysby();
professionalScore3 = fzby; professionalScore3 = xjysby;
} else if ("戏剧影视导演".equals(mainSubjects)) { } else if ("戏剧影视导演".equals(mainSubjects)) {
professionalScore2 = activeCurrentUserScore.getXjysdy(); professionalScore2 = activeCurrentUserScore.getXjysdy();
professionalScore3 = xjysdy; professionalScore3 = xjysdy;
} else if ("服装表演".equals(mainSubjects)) { } else if ("服装表演".equals(mainSubjects)) {
professionalScore2 = activeCurrentUserScore.getXjysby(); professionalScore2 = activeCurrentUserScore.getFzby();
professionalScore3 = xjysby; professionalScore3 = fzby;
} else { } else {
log.error("当前专业有问题,不清楚主考科目:" + JSONObject.toJSONString(recommendMajorDTO)); log.error("当前专业有问题,不清楚主考科目:" + JSONObject.toJSONString(recommendMajorDTO));
continue; continue;
@ -182,17 +182,29 @@ public class BiaoyanService {
if (nowYearProvincialControlLine == null) { if (nowYearProvincialControlLine == null) {
continue; continue;
} }
differenceMap = ScoreUtil.computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability(rulesEnrollProbability, historyMajorEnrollList); differenceMap = ScoreUtil.computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability(rulesEnrollProbability, historyMajorEnrollList);
historyThreeYearDiff = (BigDecimal) differenceMap.get("scoreDifference"); historyThreeYearDiff = (BigDecimal) differenceMap.get("scoreDifference");
nowYearDiff = studentScore.subtract(nowYearProvincialControlLine); nowYearDiff = studentScore.subtract(nowYearProvincialControlLine);
if (historyThreeYearDiff == null || historyThreeYearDiff.doubleValue() == 0) { if(nowYearDiff.compareTo(YxConstant.bigDecimal0)==0 && (historyThreeYearDiff == null || historyThreeYearDiff.doubleValue() == 0)) {
continue; //当前年分差为0并且 前年的分差也为0
enrollProbability = YxConstant.bigDecimal50;//录取率50
}else if (nowYearDiff.compareTo(YxConstant.bigDecimal0)>0 && (historyThreeYearDiff == null || historyThreeYearDiff.doubleValue() == 0)) {
//当前年分差不为0且历年分差为0
enrollProbability = nowYearDiff.multiply(YxConstant.bigDecimal075).multiply(YxConstant.bigDecimal100);
} else if(nowYearDiff.compareTo(YxConstant.bigDecimal0)==0 && historyThreeYearDiff.compareTo(YxConstant.bigDecimal0)>0){
//当前年分差为0但是之前年分差大于零0
enrollProbability = YxConstant.bigDecimal1.divide(historyThreeYearDiff,4,RoundingMode.HALF_UP).multiply(YxConstant.bigDecimal100);
if (historyThreeYearDiff.compareTo(YxConstant.bigDecimal1)==0) {
//如果历年分差为1再乘0.75
enrollProbability = enrollProbability.multiply(YxConstant.bigDecimal075);
} }
}else{
enrollProbability = nowYearDiff.divide(historyThreeYearDiff, 4, RoundingMode.HALF_UP).multiply(YxConstant.bigDecimal100); enrollProbability = nowYearDiff.divide(historyThreeYearDiff, 4, RoundingMode.HALF_UP).multiply(YxConstant.bigDecimal100);
}
//录取方式计算
//录取率*0.75 //录取率*0.75
enrollProbability = enrollProbability.multiply(YxConstant.bigDecimal075); enrollProbability = enrollProbability.multiply(YxConstant.bigDecimal075);
}
}
if (enrollProbability.compareTo(YxConstant.bigDecimal150) > 0) { if (enrollProbability.compareTo(YxConstant.bigDecimal150) > 0) {
enrollProbability = YxConstant.bigDecimal95x; enrollProbability = YxConstant.bigDecimal95x;
} else if (enrollProbability.compareTo(YxConstant.bigDecimal100) > 0) { } else if (enrollProbability.compareTo(YxConstant.bigDecimal100) > 0) {

View File

@ -264,9 +264,6 @@ public class YxSchoolMajorServiceImpl extends ServiceImpl<YxSchoolMajorMapper, Y
String paneName = queryRecommendMajorVO.getPaneName(); String paneName = queryRecommendMajorVO.getPaneName();
////计算录取概率 ////计算录取概率
if ("高职高专".equals(queryRecommendMajorVO.getBatch())) {
zhuanService.zhuanRecommendMajorListSetEnrollProbability(recommendMajorList, activeCurrentUserScore);
} else {
if (YxConstant.betaMajorTypeList.contains(professionalCategory)) { if (YxConstant.betaMajorTypeList.contains(professionalCategory)) {
//如果当前专业是(美术设计类,书法类,体育类) //如果当前专业是(美术设计类,书法类,体育类)
//不需要换算为往年分数 //不需要换算为往年分数
@ -283,7 +280,12 @@ public class YxSchoolMajorServiceImpl extends ServiceImpl<YxSchoolMajorMapper, Y
boYinService.boYinRecommendMajorListSetEnrollProbability(recommendMajorList, activeCurrentUserScore); boYinService.boYinRecommendMajorListSetEnrollProbability(recommendMajorList, activeCurrentUserScore);
} }
} }
}
/*if ("高职高专".equals(queryRecommendMajorVO.getBatch())) {
zhuanService.zhuanRecommendMajorListSetEnrollProbability(recommendMajorList, activeCurrentUserScore);
} else {
}*/
//统计各录取率的数量 //统计各录取率的数量
for (RecommendMajorDTO recommendMajorDTO : recommendMajorList) { for (RecommendMajorDTO recommendMajorDTO : recommendMajorList) {
number++; number++;