调整高职高专 分差率
This commit is contained in:
zhouwentao 2024-03-31 16:52:23 +08:00
parent 0fb045b629
commit ea41cd0a12
7 changed files with 81 additions and 78 deletions

View File

@ -53,7 +53,7 @@ public class BiaoyanService {
BigDecimal professionalScore2 = null;//对应主考成绩 BigDecimal professionalScore2 = null;//对应主考成绩
BigDecimal professionalScore3 = null;//对应主考成绩 换算去年成绩后 BigDecimal professionalScore3 = null;//对应主考成绩 换算去年成绩后
BigDecimal nowYearDiff = null;//当前年分差 BigDecimal nowYearDiff = null;//当前年分差
Map<String, YxHistoryScoreControlLine> batchControlLineMaps = yxHistoryScoreControlLineService.mapsBatchByProfessionalCategoryOfYear(Integer.parseInt(YxConstant.historyControlLineYear), professionalCategory, activeCurrentUserScore.getCognitioPolyclinic()); Map<String, YxHistoryScoreControlLine> batchControlLineMaps = yxHistoryScoreControlLineService.mapsBatchByProfessionalCategoryOfYear(Integer.parseInt(YxConstant.nowYear), professionalCategory, activeCurrentUserScore.getCognitioPolyclinic());
BigDecimal culturalControlLine = null;//文化分省控线 BigDecimal culturalControlLine = null;//文化分省控线
BigDecimal specialControlLine = null;//专业分省控线 BigDecimal specialControlLine = null;//专业分省控线
BigDecimal nowYearProvincialControlLine = null;//当前年省控线 BigDecimal nowYearProvincialControlLine = null;//当前年省控线
@ -106,7 +106,6 @@ public class BiaoyanService {
//没有计算方式 没有往年录取分数线信息 或者没有过该批次 时跳过 //没有计算方式 没有往年录取分数线信息 或者没有过该批次 时跳过
if (StringUtils.isBlank(rulesEnrollProbability) if (StringUtils.isBlank(rulesEnrollProbability)
|| StringUtils.isBlank(probabilityOperator) || StringUtils.isBlank(probabilityOperator)
|| CollectionUtils.isEmpty(historyMajorEnrollList)
|| !ScoreUtil.hasComputeEnrollProbabilityPermissions(nowBatch, recommendMajorDTO.getBatch())) { || !ScoreUtil.hasComputeEnrollProbabilityPermissions(nowBatch, recommendMajorDTO.getBatch())) {
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0); recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
continue; continue;
@ -144,14 +143,15 @@ public class BiaoyanService {
continue; continue;
} }
if ("高职高专".equals(recommendMajorDTO.getBatch())) { if ("高职高专".equals(recommendMajorDTO.getBatch())) {
//展示分数 专业分用用 0.167 studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), activeCurrentUserScore.getProfessionalScore(), recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore2, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator)); recommendMajorDTO.setStudentScore(studentScore);
recommendMajorDTO.setStudentConvertedScore(studentScore);
//内部算分 专业分用 0.25 //内部算分 专业分用 0.25
rulesEnrollProbability = "文*0.067+专*0.25"; /*rulesEnrollProbability = "文*0.067+专*0.25";
probabilityOperator = "文*0.067+专*0.25"; probabilityOperator = "文*0.067+专*0.25";
//使用主考科目成绩将当期成绩按照专业录取分数方式折算 //使用主考科目成绩将当期成绩按照专业录取分数方式折算
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore3, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator); studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore3, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
recommendMajorDTO.setStudentConvertedScore(studentScore); recommendMajorDTO.setStudentConvertedScore(studentScore);*/
}else{ }else{
//使用主考科目成绩将当期成绩按照专业录取分数方式折算 //使用主考科目成绩将当期成绩按照专业录取分数方式折算
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore3, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator); studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore3, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
@ -159,6 +159,10 @@ public class BiaoyanService {
recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore2, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator)); recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore2, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator));
} }
if (CollectionUtils.isEmpty(historyMajorEnrollList)) {
continue;
}
if (rulesEnrollProbability.equals("文过专排主科")) { if (rulesEnrollProbability.equals("文过专排主科")) {
if (culturalScore.compareTo(culturalControlLine) < 0) { if (culturalScore.compareTo(culturalControlLine) < 0) {
//小于文化分省控线 //小于文化分省控线
@ -176,25 +180,31 @@ public class BiaoyanService {
recommendMajorDTO.setRulesEnrollProbability(ScoreUtil.replaceLastZeroChar(rulesEnrollProbability)); recommendMajorDTO.setRulesEnrollProbability(ScoreUtil.replaceLastZeroChar(rulesEnrollProbability));
recommendMajorDTO.setProbabilityOperator(ScoreUtil.replaceLastZeroChar(probabilityOperator)); recommendMajorDTO.setProbabilityOperator(ScoreUtil.replaceLastZeroChar(probabilityOperator));
} else { } else {
//当前年省控线
nowYearProvincialControlLine = ScoreUtil.covertIntoControlLine(rulesEnrollProbability, culturalControlLine, specialControlLine, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator); nowYearProvincialControlLine = ScoreUtil.covertIntoControlLine(rulesEnrollProbability, culturalControlLine, specialControlLine, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
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 ("高职高专".equals(recommendMajorDTO.getBatch())) {
nowYearDiff = nowYearDiff.divide(nowYearProvincialControlLine,6,RoundingMode.HALF_UP);
}
enrollProbability = ScoreUtil.commonCheckEnrollProbability(nowYearDiff,historyThreeYearDiff); enrollProbability = ScoreUtil.commonCheckEnrollProbability(nowYearDiff,historyThreeYearDiff);
} }
enrollProbability = ScoreUtil.commonCheckEnrollProbabilityBeilv(enrollProbability); enrollProbability = ScoreUtil.commonCheckEnrollProbabilityBeilv(enrollProbability);
recommendMajorDTO.setEnrollProbability(enrollProbability); recommendMajorDTO.setEnrollProbability(enrollProbability);
if("高职高专".equals(recommendMajorDTO.getBatch())){ /*if("高职高专".equals(recommendMajorDTO.getBatch())){
recommendMajorDTO.setRulesEnrollProbability("文*0.067+专*0.167"); recommendMajorDTO.setRulesEnrollProbability("文*0.067+专*0.167");
recommendMajorDTO.setProbabilityOperator("文*0.067+专*0.167"); recommendMajorDTO.setProbabilityOperator("文*0.067+专*0.167");
}else{ }else{
recommendMajorDTO.setRulesEnrollProbability(ScoreUtil.replaceLastZeroChar(rulesEnrollProbability)); recommendMajorDTO.setRulesEnrollProbability(ScoreUtil.replaceLastZeroChar(rulesEnrollProbability));
recommendMajorDTO.setProbabilityOperator(ScoreUtil.replaceLastZeroChar(probabilityOperator)); recommendMajorDTO.setProbabilityOperator(ScoreUtil.replaceLastZeroChar(probabilityOperator));
} }*/
//============================================== //==============================================
} }
} }

View File

@ -56,7 +56,7 @@ public class BoYinService {
BigDecimal professionalScore2 = null;//对应主考成绩 BigDecimal professionalScore2 = null;//对应主考成绩
BigDecimal professionalScore3 = null;//对应主考成绩 换算去年成绩后 BigDecimal professionalScore3 = null;//对应主考成绩 换算去年成绩后
BigDecimal nowYearDiff = null;//当前年分差 BigDecimal nowYearDiff = null;//当前年分差
Map<String, YxHistoryScoreControlLine> batchControlLineMaps = yxHistoryScoreControlLineService.mapsBatchByProfessionalCategoryOfYear(Integer.parseInt(YxConstant.historyControlLineYear), professionalCategory, activeCurrentUserScore.getCognitioPolyclinic()); Map<String, YxHistoryScoreControlLine> batchControlLineMaps = yxHistoryScoreControlLineService.mapsBatchByProfessionalCategoryOfYear(Integer.parseInt(YxConstant.nowYear), professionalCategory, activeCurrentUserScore.getCognitioPolyclinic());
BigDecimal culturalControlLine = null;//文化分省控线 BigDecimal culturalControlLine = null;//文化分省控线
BigDecimal specialControlLine = null;//专业分省控线 BigDecimal specialControlLine = null;//专业分省控线
BigDecimal nowYearProvincialControlLine = null;//当前年省控线 BigDecimal nowYearProvincialControlLine = null;//当前年省控线
@ -119,13 +119,8 @@ public class BoYinService {
} }
if ("高职高专".equals(recommendMajorDTO.getBatch())) { if ("高职高专".equals(recommendMajorDTO.getBatch())) {
//展示分数 专业分用 0.167 studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), activeCurrentUserScore.getProfessionalScore(), recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator)); recommendMajorDTO.setStudentScore(studentScore);
//内部算分 专业分用 1.25
rulesEnrollProbability = "文*0.067+专*0.125";
probabilityOperator = "文*0.067+专*0.125";
//使用主考科目成绩将当期成绩按照专业录取分数方式折算
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), by, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
recommendMajorDTO.setStudentConvertedScore(studentScore); recommendMajorDTO.setStudentConvertedScore(studentScore);
}else{ }else{
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(),by, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator); studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(),by, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
@ -153,26 +148,25 @@ public class BoYinService {
recommendMajorDTO.setRulesEnrollProbability(ScoreUtil.replaceLastZeroChar(rulesEnrollProbability)); recommendMajorDTO.setRulesEnrollProbability(ScoreUtil.replaceLastZeroChar(rulesEnrollProbability));
recommendMajorDTO.setProbabilityOperator(ScoreUtil.replaceLastZeroChar(probabilityOperator)); recommendMajorDTO.setProbabilityOperator(ScoreUtil.replaceLastZeroChar(probabilityOperator));
} else { } else {
//当前年省控线
nowYearProvincialControlLine = ScoreUtil.covertIntoControlLine(rulesEnrollProbability, culturalControlLine, specialControlLine, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator); nowYearProvincialControlLine = ScoreUtil.covertIntoControlLine(rulesEnrollProbability, culturalControlLine, specialControlLine, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
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 ("高职高专".equals(recommendMajorDTO.getBatch())) {
nowYearDiff = nowYearDiff.divide(nowYearProvincialControlLine,6,RoundingMode.HALF_UP);
}
enrollProbability = ScoreUtil.commonCheckEnrollProbability(nowYearDiff,historyThreeYearDiff); enrollProbability = ScoreUtil.commonCheckEnrollProbability(nowYearDiff,historyThreeYearDiff);
} }
//录取方式计算 //录取方式计算
enrollProbability = ScoreUtil.commonCheckEnrollProbabilityBeilv(enrollProbability); enrollProbability = ScoreUtil.commonCheckEnrollProbabilityBeilv(enrollProbability);
recommendMajorDTO.setEnrollProbability(enrollProbability); recommendMajorDTO.setEnrollProbability(enrollProbability);
if("高职高专".equals(recommendMajorDTO.getBatch())){
recommendMajorDTO.setRulesEnrollProbability("文*0.067+专*0.167");
recommendMajorDTO.setProbabilityOperator("文*0.067+专*0.167");
}else{
recommendMajorDTO.setRulesEnrollProbability(ScoreUtil.replaceLastZeroChar(rulesEnrollProbability));
recommendMajorDTO.setProbabilityOperator(ScoreUtil.replaceLastZeroChar(probabilityOperator));
}
//============================================== //==============================================
} }
} }

View File

@ -53,7 +53,7 @@ public class MusicService {
BigDecimal professionalScore2 = null;//对应主考成绩 BigDecimal professionalScore2 = null;//对应主考成绩
BigDecimal professionalScore3 = null;//对应主考成绩 换算去年成绩后 BigDecimal professionalScore3 = null;//对应主考成绩 换算去年成绩后
BigDecimal nowYearDiff = null;//当前年分差 BigDecimal nowYearDiff = null;//当前年分差
Map<String, YxHistoryScoreControlLine> batchControlLineMaps = yxHistoryScoreControlLineService.mapsBatchByProfessionalCategoryOfYear(Integer.parseInt(YxConstant.historyControlLineYear), professionalCategory, activeCurrentUserScore.getCognitioPolyclinic()); Map<String, YxHistoryScoreControlLine> batchControlLineMaps = yxHistoryScoreControlLineService.mapsBatchByProfessionalCategoryOfYear(Integer.parseInt(YxConstant.nowYear), professionalCategory, activeCurrentUserScore.getCognitioPolyclinic());
BigDecimal culturalControlLine = null; BigDecimal culturalControlLine = null;
BigDecimal specialControlLine = null; BigDecimal specialControlLine = null;
BigDecimal nowYearProvincialControlLine = null;//当前年省控线 BigDecimal nowYearProvincialControlLine = null;//当前年省控线
@ -113,9 +113,6 @@ public class MusicService {
culturalControlLine = batchControlLineMaps.get(recommendMajorDTO.getBatch()).getCulturalScore(); culturalControlLine = batchControlLineMaps.get(recommendMajorDTO.getBatch()).getCulturalScore();
specialControlLine = batchControlLineMaps.get(recommendMajorDTO.getBatch()).getSpecialScore(); specialControlLine = batchControlLineMaps.get(recommendMajorDTO.getBatch()).getSpecialScore();
if (recommendMajorDTO.getSchoolCode().equals("6040") && recommendMajorDTO.getBatch().equals("本科A段") && recommendMajorDTO.getEnrollmentCode().contains("06")) {
System.out.println("111");
}
//没有计算方式 跳过 //没有计算方式 跳过
if (StringUtils.isBlank(rulesEnrollProbability)) { if (StringUtils.isBlank(rulesEnrollProbability)) {
continue; continue;
@ -202,14 +199,17 @@ public class MusicService {
} }
if ("高职高专".equals(recommendMajorDTO.getBatch())) { if ("高职高专".equals(recommendMajorDTO.getBatch())) {
//展示分数 专业分用用 0.167 studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), activeCurrentUserScore.getProfessionalScore(), recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
recommendMajorDTO.setStudentScore(studentScore);
recommendMajorDTO.setStudentConvertedScore(studentScore);
/*//展示分数 专业分用用 0.167
recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore2, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator)); recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore2, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator));
//内部算分 专业分用 0.25 //内部算分 专业分用 0.25
rulesEnrollProbability = "文*0.067+专*0.25"; rulesEnrollProbability = "文*0.067+专*0.25";
probabilityOperator = "文*0.067+专*0.25"; probabilityOperator = "文*0.067+专*0.25";
//使用主考科目成绩将当期成绩按照专业录取分数方式折算 //使用主考科目成绩将当期成绩按照专业录取分数方式折算
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore3, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator); studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore3, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
recommendMajorDTO.setStudentConvertedScore(studentScore); recommendMajorDTO.setStudentConvertedScore(studentScore);*/
}else{ }else{
//使用主考科目成绩将当期成绩按照专业录取分数方式折算 //使用主考科目成绩将当期成绩按照专业录取分数方式折算
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore3, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator); studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore3, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
@ -236,26 +236,25 @@ public class MusicService {
recommendMajorDTO.setRulesEnrollProbability(ScoreUtil.replaceLastZeroChar(rulesEnrollProbability)); recommendMajorDTO.setRulesEnrollProbability(ScoreUtil.replaceLastZeroChar(rulesEnrollProbability));
recommendMajorDTO.setProbabilityOperator(ScoreUtil.replaceLastZeroChar(probabilityOperator)); recommendMajorDTO.setProbabilityOperator(ScoreUtil.replaceLastZeroChar(probabilityOperator));
} else { } else {
//当前年省控线
nowYearProvincialControlLine = ScoreUtil.covertIntoControlLine(rulesEnrollProbability, culturalControlLine, specialControlLine, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator); nowYearProvincialControlLine = ScoreUtil.covertIntoControlLine(rulesEnrollProbability, culturalControlLine, specialControlLine, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
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);
enrollProbability = ScoreUtil.commonCheckEnrollProbability(nowYearDiff, historyThreeYearDiff); //艺术类高职高专 当前年线差率 (当前年线差/当前年省控线)
if ("高职高专".equals(recommendMajorDTO.getBatch())) {
nowYearDiff = nowYearDiff.divide(nowYearProvincialControlLine,6,RoundingMode.HALF_UP);
}
enrollProbability = ScoreUtil.commonCheckEnrollProbability(nowYearDiff,historyThreeYearDiff);
} }
//调整录取倍率 //调整录取倍率
enrollProbability = ScoreUtil.commonCheckEnrollProbabilityBeilv(enrollProbability); enrollProbability = ScoreUtil.commonCheckEnrollProbabilityBeilv(enrollProbability);
recommendMajorDTO.setEnrollProbability(enrollProbability); recommendMajorDTO.setEnrollProbability(enrollProbability);
if("高职高专".equals(recommendMajorDTO.getBatch())){
recommendMajorDTO.setRulesEnrollProbability("文*0.067+专*0.167");
recommendMajorDTO.setProbabilityOperator("文*0.067+专*0.167");
}else{
recommendMajorDTO.setRulesEnrollProbability(ScoreUtil.replaceLastZeroChar(rulesEnrollProbability));
recommendMajorDTO.setProbabilityOperator(ScoreUtil.replaceLastZeroChar(probabilityOperator));
}
//============================================== //==============================================
} }
} }

View File

@ -53,8 +53,8 @@ public class WuDaoService {
BigDecimal professionalScore = activeCurrentUserScore.getProfessionalScore();//学生的文化分 BigDecimal professionalScore = activeCurrentUserScore.getProfessionalScore();//学生的文化分
BigDecimal professionalScore3 = null;//对应主考成绩 换算去年成绩后 BigDecimal professionalScore3 = null;//对应主考成绩 换算去年成绩后
BigDecimal nowYearDiff = null;//当前年分差 BigDecimal nowYearDiff = null;//当前年分差
Map<String, YxHistoryScoreControlLine> yswdHistoryScoreControlLineMap = yxHistoryScoreControlLineService.mapsBatchByProfessionalCategoryOfYear(Integer.parseInt(YxConstant.historyControlLineYear), "艺术舞蹈类", activeCurrentUserScore.getCognitioPolyclinic()); Map<String, YxHistoryScoreControlLine> yswdHistoryScoreControlLineMap = yxHistoryScoreControlLineService.mapsBatchByProfessionalCategoryOfYear(Integer.parseInt(YxConstant.nowYear), "舞蹈类", activeCurrentUserScore.getCognitioPolyclinic());
Map<String, YxHistoryScoreControlLine> gjbzwHistoryScoreControlLineMap = yxHistoryScoreControlLineService.mapsBatchByProfessionalCategoryOfYear(Integer.parseInt(YxConstant.historyControlLineYear), "国际标准舞类", activeCurrentUserScore.getCognitioPolyclinic()); Map<String, YxHistoryScoreControlLine> gjbzwHistoryScoreControlLineMap = yxHistoryScoreControlLineService.mapsBatchByProfessionalCategoryOfYear(Integer.parseInt(YxConstant.nowYear), "", activeCurrentUserScore.getCognitioPolyclinic());
BigDecimal culturalControlLine = null;//文化分省控线 BigDecimal culturalControlLine = null;//文化分省控线
BigDecimal specialControlLine = null;//专业分省控线 BigDecimal specialControlLine = null;//专业分省控线
BigDecimal nowYearProvincialControlLine = null;//当前年省控线 BigDecimal nowYearProvincialControlLine = null;//当前年省控线
@ -131,13 +131,8 @@ public class WuDaoService {
} }
if ("高职高专".equals(recommendMajorDTO.getBatch())) { if ("高职高专".equals(recommendMajorDTO.getBatch())) {
//展示分数 专业分用用 0.167 studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), activeCurrentUserScore.getProfessionalScore(), recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator)); recommendMajorDTO.setStudentScore(studentScore);
//内部算分 专业分用 0.25
rulesEnrollProbability = "文*0.067+专*0.25";
probabilityOperator = "文*0.067+专*0.25";
//使用主考科目成绩将当期成绩按照专业录取分数方式折算
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore3, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
recommendMajorDTO.setStudentConvertedScore(studentScore); recommendMajorDTO.setStudentConvertedScore(studentScore);
}else{ }else{
//使用主考科目成绩将当期成绩按照专业录取分数方式折算 //使用主考科目成绩将当期成绩按照专业录取分数方式折算
@ -166,27 +161,24 @@ public class WuDaoService {
enrollProbability = enrollProbability.multiply(YxConstant.bigDecimal075); enrollProbability = enrollProbability.multiply(YxConstant.bigDecimal075);
} else { } else {
//当前年省控线
nowYearProvincialControlLine = ScoreUtil.covertIntoControlLine(rulesEnrollProbability, culturalControlLine, specialControlLine, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator); nowYearProvincialControlLine = ScoreUtil.covertIntoControlLine(rulesEnrollProbability, culturalControlLine, specialControlLine, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
if (nowYearProvincialControlLine == null) { if (nowYearProvincialControlLine == null) {
continue; continue;
} }
if (index == 51) { //历年分差
System.out.println("111");
}
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 ("高职高专".equals(recommendMajorDTO.getBatch())) {
nowYearDiff = nowYearDiff.divide(nowYearProvincialControlLine,6,RoundingMode.HALF_UP);
}
enrollProbability = ScoreUtil.commonCheckEnrollProbability(nowYearDiff,historyThreeYearDiff); enrollProbability = ScoreUtil.commonCheckEnrollProbability(nowYearDiff,historyThreeYearDiff);
} }
enrollProbability = ScoreUtil.commonCheckEnrollProbabilityBeilv(enrollProbability); enrollProbability = ScoreUtil.commonCheckEnrollProbabilityBeilv(enrollProbability);
recommendMajorDTO.setEnrollProbability(enrollProbability); recommendMajorDTO.setEnrollProbability(enrollProbability);
if("高职高专".equals(recommendMajorDTO.getBatch())){
recommendMajorDTO.setRulesEnrollProbability("文*0.067+专*0.167");
recommendMajorDTO.setProbabilityOperator("文*0.067+专*0.167");
}else{
recommendMajorDTO.setRulesEnrollProbability(ScoreUtil.replaceLastZeroChar(rulesEnrollProbability));
recommendMajorDTO.setProbabilityOperator(ScoreUtil.replaceLastZeroChar(probabilityOperator));
}
//============================================== //==============================================
} }
} }

View File

@ -462,7 +462,7 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
BigDecimal professionalScore = activeCurrentUserScore.getProfessionalScore();//学生的专业分 BigDecimal professionalScore = activeCurrentUserScore.getProfessionalScore();//学生的专业分
BigDecimal professionalScore2 = null; BigDecimal professionalScore2 = null;
BigDecimal nowYearDiff = null;//当前年分差 BigDecimal nowYearDiff = null;//当前年分差
Map<String, YxHistoryScoreControlLine> historyScoreControlLineMap = yxHistoryScoreControlLineService.mapsBatchByProfessionalCategoryOfYear(Integer.parseInt(YxConstant.historyControlLineYear), professionalCategory, activeCurrentUserScore.getCognitioPolyclinic()); Map<String, YxHistoryScoreControlLine> historyScoreControlLineMap = yxHistoryScoreControlLineService.mapsBatchByProfessionalCategoryOfYear(Integer.parseInt(YxConstant.nowYear), professionalCategory, activeCurrentUserScore.getCognitioPolyclinic());
BigDecimal culturalControlLine = null;//文化分省控线 BigDecimal culturalControlLine = null;//文化分省控线
BigDecimal specialControlLine = null;//专业分省控线 BigDecimal specialControlLine = null;//专业分省控线
BigDecimal nowYearProvincialControlLine = null;//当前年省控线 BigDecimal nowYearProvincialControlLine = null;//当前年省控线
@ -544,18 +544,20 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
} }
//历年分差 //历年分差
differenceMap = ScoreUtil.computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability(rulesEnrollProbability, historyMajorEnrollList); differenceMap = ScoreUtil.computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability(rulesEnrollProbability, historyMajorEnrollList);
//
historyThreeYearDiff = (BigDecimal) differenceMap.get("scoreDifference"); historyThreeYearDiff = (BigDecimal) differenceMap.get("scoreDifference");
//当前年线差
//historyThreeYearDiff = sum.divide(new BigDecimal(size), 4, RoundingMode.HALF_UP);
nowYearDiff = studentScore.subtract(nowYearProvincialControlLine); nowYearDiff = studentScore.subtract(nowYearProvincialControlLine);
//艺术类高职高专 当前年线差率 (当前年线差/当前年省控线)
if ("高职高专".equals(recommendMajorDTO.getBatch()) && !"体育类".equals(recommendMajorDTO.getMajorType())) {
nowYearDiff = nowYearDiff.divide(nowYearProvincialControlLine,6,RoundingMode.HALF_UP);
}
enrollProbability = ScoreUtil.commonCheckEnrollProbability(nowYearDiff,historyThreeYearDiff); enrollProbability = ScoreUtil.commonCheckEnrollProbability(nowYearDiff,historyThreeYearDiff);
} }
enrollProbability = ScoreUtil.commonCheckEnrollProbabilityBeilv(enrollProbability); enrollProbability = ScoreUtil.commonCheckEnrollProbabilityBeilv(enrollProbability);
recommendMajorDTO.setEnrollProbability(enrollProbability); recommendMajorDTO.setEnrollProbability(enrollProbability);
recommendMajorDTO.setRulesEnrollProbability(ScoreUtil.replaceLastZeroChar(rulesEnrollProbability)); // recommendMajorDTO.setRulesEnrollProbability(ScoreUtil.replaceLastZeroChar(rulesEnrollProbability));
recommendMajorDTO.setProbabilityOperator(ScoreUtil.replaceLastZeroChar(probabilityOperator)); // recommendMajorDTO.setProbabilityOperator(ScoreUtil.replaceLastZeroChar(probabilityOperator));
//============================================== //==============================================
} }
} }

View File

@ -138,7 +138,13 @@ public class YxScoreSegmentServiceImpl extends ServiceImpl<YxScoreSegmentMapper,
for (int i = 0; i < oldLastYearScoreSegmentList.size(); i++) { for (int i = 0; i < oldLastYearScoreSegmentList.size(); i++) {
nextI = (i+1); nextI = (i+1);
nowOldScoreSegment = oldLastYearScoreSegmentList.get(i);//开始 高分 nowOldScoreSegment = oldLastYearScoreSegmentList.get(i);//开始 高分
if (nextI>=oldLastYearScoreSegmentList.size()) {
nextOldScoreSegment = oldLastYearScoreSegmentList.get(oldLastYearScoreSegmentList.size()-1);//下一位 低分
return nextOldScoreSegment;
}else{
nextOldScoreSegment = oldLastYearScoreSegmentList.get(nextI);//下一位 低分 nextOldScoreSegment = oldLastYearScoreSegmentList.get(nextI);//下一位 低分
}
//判断占比是否在 这二位成绩之间的占比 nowOld <= nowRate >= nextOld //判断占比是否在 这二位成绩之间的占比 nowOld <= nowRate >= nextOld
if (nextOldScoreSegment.getRate().compareTo(nowRate) < 1 && nowOldScoreSegment.getRate().compareTo(nowRate) < 0) { if (nextOldScoreSegment.getRate().compareTo(nowRate) < 1 && nowOldScoreSegment.getRate().compareTo(nowRate) < 0) {
return nowOldScoreSegment; return nowOldScoreSegment;

View File

@ -70,29 +70,29 @@ public class ScoreUtil {
int yearNum=0; int yearNum=0;
BigDecimal controlLine = null;//文科-省控线 BigDecimal controlLine = null;//文科-省控线
BigDecimal admissionLine = null;//文科-录取线 BigDecimal admissionLine = null;//文科-录取线
YxHistoryMajorEnroll yxHistoryMajorEnroll1 = historyMajorEnrollList.get(0);
for (YxHistoryMajorEnroll yxHistoryMajorEnroll : historyMajorEnrollList) { for (YxHistoryMajorEnroll yxHistoryMajorEnroll : historyMajorEnrollList) {
if (yearNum>=1&& !yxHistoryMajorEnroll.getRulesEnrollProbability().equals(rulesEnrollProbability)) {
//如果仅两年的录取原则一样后面的不一样不使用较旧的分数 111
continue;
}
controlLine = yxHistoryMajorEnroll.getControlLine(); controlLine = yxHistoryMajorEnroll.getControlLine();
admissionLine = yxHistoryMajorEnroll.getAdmissionLine(); admissionLine = yxHistoryMajorEnroll.getAdmissionLine();
if (admissionLine.compareTo(YxConstant.bigDecimal0) <=0) { if (admissionLine.compareTo(YxConstant.bigDecimal0) <=0) {
continue; continue;
} }
nowSum = admissionLine.subtract(controlLine); nowSum = admissionLine.subtract(controlLine);
if (!"高职高专".equals(yxHistoryMajorEnroll.getBatch()) || "体育类".equals(yxHistoryMajorEnroll.getMajorType())) {
if (!sum.equals(BigDecimal.ZERO)) { if (yearNum>=1&& !yxHistoryMajorEnroll.getRulesEnrollProbability().equals(rulesEnrollProbability)) {
// 判断 两年分差 //如果仅两年的录取原则一样后面的不一样不使用较旧的分数
double v = sum.subtract(nowSum).doubleValue(); continue;
if (v <=2 || v>=2) {
//历年分差 2 至上时将用户当前年分差-2
data.put("flag",true);
} }
}else{
//体育之外的如果是高职高专
// 分差/省控线
nowSum = nowSum.divide(yxHistoryMajorEnroll.getControlLine(),6,RoundingMode.HALF_UP);
} }
/*if (!sum.equals(BigDecimal.ZERO)) {
// 判断 两年分差double v = sum.subtract(nowSum).doubleValue();if (v <=2 || v>=2) { //历年分差 2 至上时将用户当前年分差-2 data.put("flag",true);}
}*/
sum=sum.add(nowSum);//录取线-省控线 sum=sum.add(nowSum);//录取线-省控线
yearNum++; yearNum++;
} }
if (yearNum!=0) { if (yearNum!=0) {
BigDecimal divide = sum.divide(new BigDecimal(yearNum), 4, RoundingMode.HALF_UP); BigDecimal divide = sum.divide(new BigDecimal(yearNum), 4, RoundingMode.HALF_UP);