updates
This commit is contained in:
parent
517c38bc6f
commit
e4c57c5021
|
|
@ -42,7 +42,10 @@ public class QueryRecommendMajorVO extends ArtBaseDTO {
|
|||
private String schoolNatureStrs;
|
||||
@ApiModelProperty(value = "办学性质List")
|
||||
private List<String> schoolNatureList;
|
||||
|
||||
@ApiModelProperty(value = "科研教学")
|
||||
private String kyjxStrs;
|
||||
@ApiModelProperty(value = "科研教学List")
|
||||
private List<String> kyjxList;
|
||||
@ApiModelProperty(value = "院校类型")
|
||||
private String institutionType;
|
||||
@ApiModelProperty(value = "院校类型List")
|
||||
|
|
|
|||
|
|
@ -66,7 +66,9 @@ public class YxConstant {
|
|||
public static final Integer todayMaxEditScoreCount = 10;
|
||||
public static BigDecimal bigDecimal1 = new BigDecimal("1");
|
||||
public static BigDecimal bigDecimal175 = new BigDecimal("175");
|
||||
public static BigDecimal bigDecimal75 = new BigDecimal("75");
|
||||
public static BigDecimal bigDecimal50 = new BigDecimal("50");
|
||||
public static String oldCalculationMajorName = "yx_calculation_major";
|
||||
public static String newCalculationMajorName = "yx_calculation_major";
|
||||
public static BigDecimal bigDecimal10 = new BigDecimal("10");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -486,6 +486,15 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
|
|||
majorType = "美术与设计类";
|
||||
} else if (fileName.contains("音乐")) {
|
||||
majorType = "音乐类";
|
||||
if(fileName.contains("器乐")){
|
||||
majorTypeChild = "器乐";
|
||||
}
|
||||
if(fileName.contains("声乐")){
|
||||
majorTypeChild = "声乐";
|
||||
}
|
||||
if(fileName.contains("声乐")){
|
||||
majorTypeChild = "声乐";
|
||||
}
|
||||
} else if (fileName.contains("艺术舞蹈")) {
|
||||
majorType = "舞蹈类";
|
||||
majorTypeChild = "艺术舞蹈";
|
||||
|
|
@ -730,6 +739,7 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
|
|||
//File file = new File("C:\\Users\\Denim\\Desktop\\艺术类表格\\国际标准舞B段.xlsx");
|
||||
//File file = new File("C:\\Users\\Denim\\Desktop\\艺术类表格\\艺术舞蹈B段.xlsx");
|
||||
//File file = new File("C:\\Users\\Denim\\Desktop\\艺术类表格\\音乐B段.xlsx");
|
||||
// File file = new File("C:\\Users\\Denim\\Desktop\\艺术类表格\\专\\体育专科.xlsx");
|
||||
File file = new File("C:\\Users\\Denim\\Desktop\\艺术类表格\\专\\体育专科.xlsx");
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -278,9 +278,9 @@ public class YxScoreSegmentController extends JeecgController<YxScoreSegment, IY
|
|||
*/
|
||||
@RequestMapping(value = "/test", method = RequestMethod.POST)
|
||||
public Result<?> test() {
|
||||
String year = "2023";
|
||||
String professionalCategory = "舞蹈类";
|
||||
String professionalCategoryChild=null;
|
||||
String year = "2024";
|
||||
String professionalCategory = "表演类";
|
||||
String professionalCategoryChild="服装表演";
|
||||
String province = "河南";
|
||||
LambdaQueryWrapper<YxScoreSegment> yxScoreSegmentLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
yxScoreSegmentLambdaQueryWrapper.eq(YxScoreSegment::getYear,year);
|
||||
|
|
@ -289,7 +289,7 @@ public class YxScoreSegmentController extends JeecgController<YxScoreSegment, IY
|
|||
if (StringUtils.isNotBlank(professionalCategoryChild)) {
|
||||
yxScoreSegmentLambdaQueryWrapper.eq(YxScoreSegment::getProfessionalCategoryChild,professionalCategoryChild);
|
||||
}
|
||||
yxScoreSegmentLambdaQueryWrapper.isNull(YxScoreSegment::getProfessionalCategoryChild);
|
||||
//yxScoreSegmentLambdaQueryWrapper.isNull(YxScoreSegment::getProfessionalCategoryChild);
|
||||
List<YxScoreSegment> list = yxScoreSegmentService.list(yxScoreSegmentLambdaQueryWrapper);
|
||||
List<YxScoreSegment> scoreSegmentNextAddList=new ArrayList<>();
|
||||
//根据5分一段表,遍历,折算出每个段位内4分的占比
|
||||
|
|
@ -337,8 +337,8 @@ public class YxScoreSegmentController extends JeecgController<YxScoreSegment, IY
|
|||
@RequestMapping(value = "/test2", method = RequestMethod.POST)
|
||||
public Result<?> test2() {
|
||||
BigDecimal score = new BigDecimal(273);
|
||||
String professionalCategory = "音乐类";
|
||||
String professionalCategoryChild = "音乐表演声乐";
|
||||
String professionalCategory = "表演类";
|
||||
String professionalCategoryChild = "服装表演";
|
||||
String province = "河南";
|
||||
YxScoreSegment scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, score, professionalCategory, professionalCategoryChild, province);
|
||||
System.out.println("约等于上一年的分数:");
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
cm.major_name,
|
||||
cm.enrollment_code,
|
||||
cm.tuition,
|
||||
cm.detail,
|
||||
cm.detail as majorDetail,
|
||||
cm.category,
|
||||
cm.batch,
|
||||
cm.student_old_converted_score as studentScore,
|
||||
|
|
@ -45,6 +45,7 @@
|
|||
|
||||
FROM ${tableName} cm
|
||||
LEFT JOIN yx_school_child sc ON sc.school_code = cm.school_code
|
||||
LEFT JOIN yx_school_research_teaching srt ON srt.school_id = sc.school_id
|
||||
LEFT JOIN yx_school s ON s.id = sc.school_id
|
||||
WHERE cm.rules_enroll_probability is not null
|
||||
<!--成绩单-->
|
||||
|
|
@ -99,6 +100,18 @@
|
|||
#{b}
|
||||
</foreach>
|
||||
</if>
|
||||
<!--科研教学-->
|
||||
<if test="queryvo.kyjxList!=null and queryvo.kyjxList.size>0">
|
||||
<if test="queryvo.kyjxList.contains('硕士点')">
|
||||
AND (srt.academic_master_degree_point >0 or srt.professional_master_degree_point >0)
|
||||
</if>
|
||||
<if test="queryvo.kyjxList.contains('博士点')">
|
||||
AND srt.doctoral_point>0
|
||||
</if>
|
||||
<if test="queryvo.kyjxList.contains('保研')">
|
||||
AND srt.byzg = 1
|
||||
</if>
|
||||
</if>
|
||||
<!--院校标签-->
|
||||
<if test="queryvo.tagsList!=null and queryvo.tagsList.size>0">
|
||||
<choose>
|
||||
|
|
@ -128,20 +141,22 @@
|
|||
AND(
|
||||
<choose>
|
||||
<when test="queryvo.pCategoryChildrenList.contains('音乐表演声乐')">
|
||||
cm.main_subjects like '%声乐%' AND (
|
||||
cm.main_subjects like '%声乐%'
|
||||
<!--AND (
|
||||
cm.major_type_child = '音乐表演'
|
||||
<if test="queryvo.pCategoryChildrenList.contains('音乐教育')">
|
||||
or cm.major_type_child = '音乐教育'
|
||||
</if>
|
||||
)
|
||||
)-->
|
||||
</when>
|
||||
<when test="queryvo.pCategoryChildrenList.contains('音乐表演器乐')">
|
||||
cm.main_subjects like '%器乐%' AND (
|
||||
cm.main_subjects like '%器乐%'
|
||||
<!--AND (
|
||||
cm.major_type_child = '音乐表演'
|
||||
<if test="queryvo.pCategoryChildrenList.contains('音乐教育')">
|
||||
or cm.major_type_child = '音乐教育'
|
||||
</if>
|
||||
)
|
||||
)-->
|
||||
</when>
|
||||
<when test="queryvo.pCategoryChildrenList.contains('音乐教育')">
|
||||
cm.major_type_child = '音乐教育'
|
||||
|
|
@ -170,3 +185,4 @@
|
|||
ORDER BY enroll_probability desc
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
|
|
|
|||
|
|
@ -249,11 +249,11 @@
|
|||
</if>
|
||||
<if test="qvo.schoolType!=null and qvo.schoolType!=''">
|
||||
<choose>
|
||||
<when test="qvo.schoolType=='普通本科'">
|
||||
<when test="qvo.schoolType=='本科'">
|
||||
AND s.school_type like '%本科%'
|
||||
</when>
|
||||
<when test="qvo.schoolType=='高职高专'">
|
||||
AND s.school_type like '%高职高专%'
|
||||
<when test="qvo.schoolType=='专科'">
|
||||
AND s.school_type like '%专科%'
|
||||
</when>
|
||||
<otherwise>
|
||||
AND s.school_nature = #{qvo.schoolType}
|
||||
|
|
|
|||
|
|
@ -172,32 +172,9 @@ public class BiaoyanService {
|
|||
differenceMap = ScoreUtil.computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability(rulesEnrollProbability, historyMajorEnrollList);
|
||||
historyThreeYearDiff = (BigDecimal) differenceMap.get("scoreDifference");
|
||||
nowYearDiff = studentScore.subtract(nowYearProvincialControlLine);
|
||||
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);
|
||||
}
|
||||
}
|
||||
if (enrollProbability.compareTo(YxConstant.bigDecimal150) > 0) {
|
||||
enrollProbability = YxConstant.bigDecimal95x;
|
||||
} else if (enrollProbability.compareTo(YxConstant.bigDecimal100) > 0) {
|
||||
enrollProbability = YxConstant.bigDecimal85x;
|
||||
} else if (enrollProbability.compareTo(YxConstant.bigDecimal0) <= 0) {
|
||||
enrollProbability = YxConstant.bigDecimal0;
|
||||
enrollProbability = ScoreUtil.commonCheckEnrollProbability(nowYearDiff,historyThreeYearDiff);
|
||||
}
|
||||
enrollProbability = ScoreUtil.commonCheckEnrollProbabilityBeilv(enrollProbability);
|
||||
recommendMajorDTO.setEnrollProbability(enrollProbability);
|
||||
recommendMajorDTO.setRulesEnrollProbability(ScoreUtil.replaceLastZeroChar(rulesEnrollProbability));
|
||||
recommendMajorDTO.setProbabilityOperator(ScoreUtil.replaceLastZeroChar(probabilityOperator));
|
||||
|
|
|
|||
|
|
@ -86,12 +86,13 @@ public class BoYinService {
|
|||
if (StringUtils.isBlank(rulesEnrollProbability)) {
|
||||
continue;
|
||||
}
|
||||
historyMajorEnrollList = historyMajorEnrollList.stream().filter(h -> YxConstant.cankaoYearList.contains(h.getYear())).collect(Collectors.toList());
|
||||
//没有往年录取分数线信息
|
||||
if (CollectionUtils.isEmpty(historyMajorEnrollList) || !ScoreUtil.hasComputeEnrollProbabilityPermissions(nowBatch, recommendMajorDTO.getBatch())) {
|
||||
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
|
||||
continue;
|
||||
}
|
||||
historyMajorEnrollList = historyMajorEnrollList.stream().filter(h -> YxConstant.cankaoYearList.contains(h.getYear())).collect(Collectors.toList());
|
||||
|
||||
|
||||
//不是体育类的专业,如果是文过专排,并且没有录取计算运算符时,文过专排是文*0+专*1,专过文排是文*1+专*0
|
||||
if ("文过专排".equals(rulesEnrollProbability) && StringUtils.isBlank(probabilityOperator)) {
|
||||
|
|
@ -144,21 +145,11 @@ public class BoYinService {
|
|||
differenceMap = ScoreUtil.computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability(rulesEnrollProbability, historyMajorEnrollList);
|
||||
historyThreeYearDiff = (BigDecimal) differenceMap.get("scoreDifference");
|
||||
nowYearDiff = studentScore.subtract(nowYearProvincialControlLine);
|
||||
if (historyThreeYearDiff == null || historyThreeYearDiff.doubleValue() == 0) {
|
||||
continue;
|
||||
}
|
||||
enrollProbability = nowYearDiff.divide(historyThreeYearDiff, 4, RoundingMode.HALF_UP).multiply(YxConstant.bigDecimal100);
|
||||
enrollProbability = ScoreUtil.commonCheckEnrollProbability(nowYearDiff,historyThreeYearDiff);
|
||||
|
||||
}
|
||||
//录取方式计算
|
||||
//录取率*0.75
|
||||
enrollProbability = enrollProbability.multiply(YxConstant.bigDecimal075);
|
||||
if (enrollProbability.compareTo(YxConstant.bigDecimal150) > 0) {
|
||||
enrollProbability = YxConstant.bigDecimal95x;
|
||||
} else if (enrollProbability.compareTo(YxConstant.bigDecimal100) > 0) {
|
||||
enrollProbability = YxConstant.bigDecimal85x;
|
||||
} else if (enrollProbability.compareTo(YxConstant.bigDecimal0) <= 0) {
|
||||
enrollProbability = YxConstant.bigDecimal0;
|
||||
}
|
||||
enrollProbability = ScoreUtil.commonCheckEnrollProbabilityBeilv(enrollProbability);
|
||||
recommendMajorDTO.setEnrollProbability(enrollProbability);
|
||||
recommendMajorDTO.setRulesEnrollProbability(ScoreUtil.replaceLastZeroChar(rulesEnrollProbability));
|
||||
recommendMajorDTO.setProbabilityOperator(ScoreUtil.replaceLastZeroChar(probabilityOperator));
|
||||
|
|
|
|||
|
|
@ -111,17 +111,20 @@ public class MusicService {
|
|||
|
||||
culturalControlLine = batchControlLineMaps.get(recommendMajorDTO.getBatch()).getCulturalScore();
|
||||
specialControlLine = batchControlLineMaps.get(recommendMajorDTO.getBatch()).getSpecialScore();
|
||||
|
||||
if (recommendMajorDTO.getSchoolCode().equals("9941") && recommendMajorDTO.getBatch().equals("提前批") && recommendMajorDTO.getEnrollmentCode().contains("08")) {
|
||||
System.out.println("111");
|
||||
}
|
||||
//没有计算方式 跳过
|
||||
if (StringUtils.isBlank(rulesEnrollProbability)) {
|
||||
continue;
|
||||
}
|
||||
historyMajorEnrollList = historyMajorEnrollList.stream().filter(h -> YxConstant.cankaoYearList.contains(h.getYear())).collect(Collectors.toList());
|
||||
//没有往年录取分数线信息
|
||||
if (CollectionUtils.isEmpty(historyMajorEnrollList) || !ScoreUtil.hasComputeEnrollProbabilityPermissions(nowBatch, recommendMajorDTO.getBatch())) {
|
||||
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
|
||||
continue;
|
||||
}
|
||||
historyMajorEnrollList = historyMajorEnrollList.stream().filter(h -> YxConstant.cankaoYearList.contains(h.getYear())).collect(Collectors.toList());
|
||||
|
||||
|
||||
//不是体育类的专业,如果是文过专排,并且没有录取计算运算符时,文过专排是文*0+专*1,专过文排是文*1+专*0
|
||||
if ("文过专排".equals(rulesEnrollProbability) && StringUtils.isBlank(probabilityOperator)) {
|
||||
|
|
@ -134,10 +137,6 @@ public class MusicService {
|
|||
continue;
|
||||
}
|
||||
|
||||
if (recommendMajorDTO.getSchoolCode().equals("6030") && recommendMajorDTO.getBatch().equals("本科A段") && recommendMajorDTO.getEnrollmentCode().contains("12")) {
|
||||
System.out.println("111");
|
||||
}
|
||||
|
||||
//将当期成绩按照专业录取分数方式折算
|
||||
majorTypeChild = recommendMajorDTO.getMajorTypeChild();
|
||||
mainSubjects = recommendMajorDTO.getMainSubjects();
|
||||
|
|
@ -203,11 +202,12 @@ public class MusicService {
|
|||
YxHistoryMajorEnroll yxHistoryMajorEnroll = historyMajorEnrollList.get(0);
|
||||
BigDecimal admissionLine = yxHistoryMajorEnroll.getAdmissionLine();
|
||||
enrollProbability = studentScore.divide(admissionLine,4,RoundingMode.HALF_UP);
|
||||
/*if (studentScore.compareTo(admissionLine) < 0) {
|
||||
//如果当前主项成绩<近一年的录取分数,录取概率*0.5
|
||||
enrollProbability = enrollProbability.multiply(YxConstant.bigDecimal05);
|
||||
}*/
|
||||
enrollProbability = enrollProbability.multiply(YxConstant.bigDecimal100);
|
||||
//当前年主科成绩跟去年的专业主科录取分 相等,按照正常的概率去算 :*0.75
|
||||
enrollProbability = enrollProbability.multiply(YxConstant.bigDecimal075).multiply(YxConstant.bigDecimal100);
|
||||
//当前年主科成绩小于去年的专业主科录取分,按照正常的概率去算 :*0.75,之后 每少1分,少10%概率
|
||||
if(studentScore.compareTo(admissionLine)<0){
|
||||
enrollProbability = enrollProbability.subtract((admissionLine.subtract(studentScore)).multiply(YxConstant.bigDecimal10));
|
||||
}
|
||||
recommendMajorDTO.setEnrollProbability(enrollProbability);
|
||||
recommendMajorDTO.setRulesEnrollProbability(ScoreUtil.replaceLastZeroChar(rulesEnrollProbability));
|
||||
recommendMajorDTO.setProbabilityOperator(ScoreUtil.replaceLastZeroChar(probabilityOperator));
|
||||
|
|
@ -219,26 +219,11 @@ public class MusicService {
|
|||
differenceMap = ScoreUtil.computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability(rulesEnrollProbability, historyMajorEnrollList);
|
||||
historyThreeYearDiff = (BigDecimal) differenceMap.get("scoreDifference");
|
||||
nowYearDiff = studentScore.subtract(nowYearProvincialControlLine);
|
||||
if (historyThreeYearDiff.compareTo(YxConstant.bigDecimal0)<=0) {
|
||||
enrollProbability = nowYearDiff.multiply(YxConstant.bigDecimal100);
|
||||
}else{
|
||||
if (historyThreeYearDiff == null) {
|
||||
continue;
|
||||
}
|
||||
enrollProbability = nowYearDiff.divide(historyThreeYearDiff, 4, RoundingMode.HALF_UP).multiply(YxConstant.bigDecimal100);
|
||||
}
|
||||
enrollProbability = ScoreUtil.commonCheckEnrollProbability(nowYearDiff,historyThreeYearDiff);
|
||||
|
||||
}
|
||||
//录取方式计算
|
||||
//录取率*0.75
|
||||
enrollProbability = enrollProbability.multiply(YxConstant.bigDecimal075);
|
||||
if (enrollProbability.compareTo(YxConstant.bigDecimal150) > 0) {
|
||||
enrollProbability = YxConstant.bigDecimal95x;
|
||||
} else if (enrollProbability.compareTo(YxConstant.bigDecimal100) > 0) {
|
||||
enrollProbability = YxConstant.bigDecimal85x;
|
||||
} else if (enrollProbability.compareTo(YxConstant.bigDecimal0) <= 0) {
|
||||
enrollProbability = YxConstant.bigDecimal0;
|
||||
}
|
||||
//调整录取倍率
|
||||
enrollProbability = ScoreUtil.commonCheckEnrollProbabilityBeilv(enrollProbability);
|
||||
recommendMajorDTO.setEnrollProbability(enrollProbability);
|
||||
recommendMajorDTO.setRulesEnrollProbability(ScoreUtil.replaceLastZeroChar(rulesEnrollProbability));
|
||||
recommendMajorDTO.setProbabilityOperator(ScoreUtil.replaceLastZeroChar(probabilityOperator));
|
||||
|
|
|
|||
|
|
@ -86,12 +86,14 @@ public class WuDaoService {
|
|||
if (StringUtils.isBlank(rulesEnrollProbability)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
historyMajorEnrollList = historyMajorEnrollList.stream().filter(h -> YxConstant.cankaoYearList.contains(h.getYear())).collect(Collectors.toList());
|
||||
//没有往年录取分数线信息
|
||||
if (CollectionUtils.isEmpty(historyMajorEnrollList) || !ScoreUtil.hasComputeEnrollProbabilityPermissions(nowBatch, recommendMajorDTO.getBatch())) {
|
||||
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
|
||||
continue;
|
||||
}
|
||||
historyMajorEnrollList = historyMajorEnrollList.stream().filter(h -> YxConstant.cankaoYearList.contains(h.getYear())).collect(Collectors.toList());
|
||||
|
||||
|
||||
//不是体育类的专业,如果是文过专排,并且没有录取计算运算符时,文过专排是文*0+专*1,专过文排是文*1+专*0
|
||||
if ("文过专排".equals(rulesEnrollProbability) && StringUtils.isBlank(probabilityOperator)) {
|
||||
|
|
@ -161,33 +163,9 @@ public class WuDaoService {
|
|||
differenceMap = ScoreUtil.computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability(rulesEnrollProbability, historyMajorEnrollList);
|
||||
historyThreeYearDiff = (BigDecimal) differenceMap.get("scoreDifference");
|
||||
nowYearDiff = studentScore.subtract(nowYearProvincialControlLine);
|
||||
if(nowYearDiff.compareTo(YxConstant.bigDecimal0)==0 && (historyThreeYearDiff == null || historyThreeYearDiff.doubleValue() == 0)) {
|
||||
//当前年分差为0,并且 前年的分差也为0
|
||||
enrollProbability = YxConstant.bigDecimal50;//录取率50
|
||||
}else if (historyThreeYearDiff == null || historyThreeYearDiff.doubleValue() == 0) {
|
||||
continue;
|
||||
} 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);
|
||||
}
|
||||
|
||||
}
|
||||
//录取方式计算
|
||||
if (enrollProbability.compareTo(YxConstant.bigDecimal150) > 0) {
|
||||
enrollProbability = YxConstant.bigDecimal95x;
|
||||
} else if (enrollProbability.compareTo(YxConstant.bigDecimal100) > 0) {
|
||||
enrollProbability = YxConstant.bigDecimal85x;
|
||||
} else if (enrollProbability.compareTo(YxConstant.bigDecimal0) <= 0) {
|
||||
enrollProbability = YxConstant.bigDecimal0;
|
||||
enrollProbability = ScoreUtil.commonCheckEnrollProbability(nowYearDiff,historyThreeYearDiff);
|
||||
}
|
||||
enrollProbability = ScoreUtil.commonCheckEnrollProbabilityBeilv(enrollProbability);
|
||||
recommendMajorDTO.setEnrollProbability(enrollProbability);
|
||||
recommendMajorDTO.setRulesEnrollProbability(ScoreUtil.replaceLastZeroChar(rulesEnrollProbability));
|
||||
recommendMajorDTO.setProbabilityOperator(ScoreUtil.replaceLastZeroChar(probabilityOperator));
|
||||
|
|
|
|||
|
|
@ -94,6 +94,7 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
|
|||
otherScoreLimitation = new StringBuilder();
|
||||
yxCalculationMajor = new YxCalculationMajor();
|
||||
BeanUtils.copyProperties(recommendMajorDTO, yxCalculationMajor);
|
||||
yxCalculationMajor.setDetail(recommendMajorDTO.getMajorDetail());
|
||||
yxCalculationMajor.setScoreId(userScore.getId());
|
||||
yxCalculationMajor.setStudentOldConvertedScore(recommendMajorDTO.getStudentScore());
|
||||
//其他分数要求
|
||||
|
|
@ -172,6 +173,10 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
|
|||
if (StringUtils.isNotBlank(queryRecommendMajorVO.getProvince())) {
|
||||
queryRecommendMajorVO.setAddressList(Arrays.asList(queryRecommendMajorVO.getProvince().split(",")));
|
||||
}
|
||||
//科研教学
|
||||
if (StringUtils.isNotBlank(queryRecommendMajorVO.getKyjxStrs())) {
|
||||
queryRecommendMajorVO.setKyjxList(Arrays.asList(queryRecommendMajorVO.getKyjxStrs().split(",")));
|
||||
}
|
||||
|
||||
//获取推荐志愿信息service
|
||||
List<RecommendMajorDTO> recommendMajorList = baseMapper.recommendMajorList(activeCurrentUserScore.getCalculationTableName(),queryRecommendMajorVO);
|
||||
|
|
@ -488,6 +493,9 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
|
|||
continue;
|
||||
}
|
||||
|
||||
if(recommendMajorDTO.getRulesEnrollProbability().equals("文过专排") && recommendMajorDTO.getSchoolCode().equals("4100")){
|
||||
System.out.println("11");
|
||||
}
|
||||
//不是体育类的专业,如果是文过专排,并且没有录取计算运算符时,文过专排是文*0+专*1,专过文排是文*1+专*0
|
||||
if ("文过专排".equals(rulesEnrollProbability) && StringUtils.isBlank(probabilityOperator)) {
|
||||
probabilityOperator = "文*0+专*1";
|
||||
|
|
@ -540,18 +548,10 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
|
|||
if (historyThreeYearDiff == null || historyThreeYearDiff.doubleValue() == 0) {
|
||||
continue;
|
||||
}
|
||||
enrollProbability = nowYearDiff.divide(historyThreeYearDiff, 4, RoundingMode.HALF_UP).multiply(YxConstant.bigDecimal100);
|
||||
enrollProbability = ScoreUtil.commonCheckEnrollProbability(nowYearDiff,historyThreeYearDiff);
|
||||
}
|
||||
|
||||
//录取率*0.75
|
||||
enrollProbability = enrollProbability.multiply(YxConstant.bigDecimal075);
|
||||
if (enrollProbability.compareTo(YxConstant.bigDecimal150) > 0) {
|
||||
enrollProbability = YxConstant.bigDecimal95x;
|
||||
} else if (enrollProbability.compareTo(YxConstant.bigDecimal100) > 0) {
|
||||
enrollProbability = YxConstant.bigDecimal85x;
|
||||
} else if (enrollProbability.compareTo(YxConstant.bigDecimal0) <= 0) {
|
||||
enrollProbability = YxConstant.bigDecimal0;
|
||||
}
|
||||
enrollProbability = ScoreUtil.commonCheckEnrollProbabilityBeilv(enrollProbability);
|
||||
recommendMajorDTO.setEnrollProbability(enrollProbability);
|
||||
recommendMajorDTO.setRulesEnrollProbability(ScoreUtil.replaceLastZeroChar(rulesEnrollProbability));
|
||||
recommendMajorDTO.setProbabilityOperator(ScoreUtil.replaceLastZeroChar(probabilityOperator));
|
||||
|
|
@ -564,4 +564,5 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
|
|||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -85,14 +85,15 @@ public class ZhuanService {
|
|||
if (StringUtils.isBlank(rulesEnrollProbability)) {
|
||||
continue;
|
||||
}
|
||||
if (YxConstant.cankaoMajorTypeList.contains(recommendMajorDTO.getMajorType())) {
|
||||
historyMajorEnrollList = historyMajorEnrollList.stream().filter(h->YxConstant.cankaoYearList.contains(h.getYear())).collect(Collectors.toList());
|
||||
}
|
||||
//没有往年录取分数线信息
|
||||
if (CollectionUtils.isEmpty(historyMajorEnrollList) || !ScoreUtil.hasComputeEnrollProbabilityPermissions(nowBatch,recommendMajorDTO.getBatch())) {
|
||||
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
|
||||
continue;
|
||||
}
|
||||
if (YxConstant.cankaoMajorTypeList.contains(recommendMajorDTO.getMajorType())) {
|
||||
historyMajorEnrollList = historyMajorEnrollList.stream().filter(h->YxConstant.cankaoYearList.contains(h.getYear())).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
|
||||
//不是体育类的专业,如果是文过专排,并且没有录取计算运算符时,文过专排是文*0+专*1,专过文排是文*1+专*0
|
||||
if ("文过专排".equals(rulesEnrollProbability) && StringUtils.isBlank(probabilityOperator)) {
|
||||
|
|
|
|||
|
|
@ -487,4 +487,41 @@ public class ScoreUtil {
|
|||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 统一计算录取率方法
|
||||
* @param nowYearDiff 当前年分差
|
||||
* @param historyThreeYearDiff 去年分差
|
||||
* @return 录取率
|
||||
*/
|
||||
public static BigDecimal commonCheckEnrollProbability(BigDecimal nowYearDiff, BigDecimal historyThreeYearDiff) {
|
||||
BigDecimal enrollProbability = null;
|
||||
if(nowYearDiff.compareTo(YxConstant.bigDecimal0) == 0 && historyThreeYearDiff.compareTo(YxConstant.bigDecimal0)>0){
|
||||
//当前年的分差为0,去年分差不为0: 75/去年的线差
|
||||
enrollProbability = YxConstant.bigDecimal75.divide(historyThreeYearDiff,4,RoundingMode.HALF_UP);
|
||||
}else if(nowYearDiff.compareTo(YxConstant.bigDecimal0) == 0 && historyThreeYearDiff.compareTo(YxConstant.bigDecimal0)<=0){
|
||||
//当前年分差为0,去年分差为0
|
||||
enrollProbability = YxConstant.bigDecimal50;//录取率50
|
||||
}else if(nowYearDiff.compareTo(YxConstant.bigDecimal0) > 0 && historyThreeYearDiff.compareTo(YxConstant.bigDecimal0)<=0){
|
||||
//当前年分差不为0,去年分差为0:默认去年的分差为1
|
||||
enrollProbability = nowYearDiff.multiply(YxConstant.bigDecimal075).multiply(YxConstant.bigDecimal100);
|
||||
} else {
|
||||
//当前年分差不为0,去年分差也不为0:(当前年分差/去年分差)*0.75
|
||||
enrollProbability = nowYearDiff.divide(historyThreeYearDiff, 4, RoundingMode.HALF_UP).multiply(YxConstant.bigDecimal100);
|
||||
//录取率*0.75
|
||||
enrollProbability = enrollProbability.multiply(YxConstant.bigDecimal075);
|
||||
}
|
||||
return enrollProbability;
|
||||
}
|
||||
|
||||
public static BigDecimal commonCheckEnrollProbabilityBeilv(BigDecimal enrollProbability) {
|
||||
if (enrollProbability.compareTo(YxConstant.bigDecimal150) > 0) {
|
||||
enrollProbability = YxConstant.bigDecimal95x;
|
||||
} else if (enrollProbability.compareTo(YxConstant.bigDecimal100) > 0) {
|
||||
enrollProbability = YxConstant.bigDecimal85x;
|
||||
} else if (enrollProbability.compareTo(YxConstant.bigDecimal0) <= 0) {
|
||||
enrollProbability = YxConstant.bigDecimal0;
|
||||
}
|
||||
return enrollProbability;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue