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 final Integer todayMaxEditScoreCount =5;
public static final Integer todayMaxEditScoreCount =10;
public static BigDecimal bigDecimal1 = new BigDecimal("1");
public static BigDecimal bigDecimal175= new BigDecimal("175");
public static BigDecimal bigDecimal50=new BigDecimal("50");

View File

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

View File

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

View File

@ -264,26 +264,28 @@ public class YxSchoolMajorServiceImpl extends ServiceImpl<YxSchoolMajorMapper, Y
String paneName = queryRecommendMajorVO.getPaneName();
////计算录取概率
if ("高职高专".equals(queryRecommendMajorVO.getBatch())) {
zhuanService.zhuanRecommendMajorListSetEnrollProbability(recommendMajorList, activeCurrentUserScore);
if (YxConstant.betaMajorTypeList.contains(professionalCategory)) {
//如果当前专业是(美术设计类,书法类,体育类)
//不需要换算为往年分数
betaRecommendMajorListSetEnrollProbability(recommendMajorList, activeCurrentUserScore);
} else {
if (YxConstant.betaMajorTypeList.contains(professionalCategory)) {
//如果当前专业是(美术设计类,书法类,体育类)
//不需要换算为往年分数
betaRecommendMajorListSetEnrollProbability(recommendMajorList, activeCurrentUserScore);
} else {
if ("音乐类".equals(professionalCategory)) {
//音乐类的
musicService.musicRecommendMajorListSetEnrollProbability(recommendMajorList, activeCurrentUserScore);
} else if ("表演类".equals(professionalCategory)) {
biaoyanService.biaoyanRecommendMajorListSetEnrollProbability(recommendMajorList, activeCurrentUserScore);
} else if ("舞蹈类".equals(professionalCategory)) {
wuDaoService.wudaoRecommendMajorListSetEnrollProbability(recommendMajorList, activeCurrentUserScore);
} else if ("播音与主持类".equals(professionalCategory)) {
boYinService.boYinRecommendMajorListSetEnrollProbability(recommendMajorList, activeCurrentUserScore);
}
if ("音乐类".equals(professionalCategory)) {
//音乐类的
musicService.musicRecommendMajorListSetEnrollProbability(recommendMajorList, activeCurrentUserScore);
} else if ("表演类".equals(professionalCategory)) {
biaoyanService.biaoyanRecommendMajorListSetEnrollProbability(recommendMajorList, activeCurrentUserScore);
} else if ("舞蹈类".equals(professionalCategory)) {
wuDaoService.wudaoRecommendMajorListSetEnrollProbability(recommendMajorList, activeCurrentUserScore);
} else if ("播音与主持类".equals(professionalCategory)) {
boYinService.boYinRecommendMajorListSetEnrollProbability(recommendMajorList, activeCurrentUserScore);
}
}
/*if ("高职高专".equals(queryRecommendMajorVO.getBatch())) {
zhuanService.zhuanRecommendMajorListSetEnrollProbability(recommendMajorList, activeCurrentUserScore);
} else {
}*/
//统计各录取率的数量
for (RecommendMajorDTO recommendMajorDTO : recommendMajorList) {
number++;