Commit 9babf1bc authored by licc's avatar licc

方案接口实现

parent cde30d3b
......@@ -81,10 +81,6 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
return R.error("无考生成绩!");
}
VolunteerVo volunteerVo = new VolunteerVo();
double culture = Double.parseDouble(queryVo.getCultureGrade());
double major = Double.parseDouble(queryVo.getMajorGrade());
//3、根据筛选方案算法,筛选方案
//副科名称
......@@ -101,6 +97,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
//(1)判断考生类型 文化课考生
List<Volunteer> list = new ArrayList<>();
VolunteerVo volunteerVo = new VolunteerVo();
if (StudentType.CULTURE_STUDENT.getCode().equals(userInfo.getExamType())) {
//获取文化课本科一批规则
AdmissionRule firstRule = admissionRuleMapper.getByType(SchemeTypeEnums.UNDERGRADUATE_CULTURE.getCode());
......@@ -115,20 +112,24 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
}
//1).判断文化课的分数是否大于等于最大文化分
//本科类比文化分 = 本年录取分 -去年录取分 + 考生分数
double firstCulture = firstRule.getCurrentYearCulture() - firstRule.getCultureMin() + Double.parseDouble(queryVo.getCultureGrade());
double cultureMax = Double.parseDouble(firstRule.getCultureMax().toString());
if (culture >= cultureMax) {
if (firstCulture >= cultureMax) {
volunteerVo.setUserId(userInfo.getId());
volunteerVo.setVolunteers(list);
return R.ok("恭喜您,因您的成绩突出,请联系官方免费领取VIP一对一报考方案指导!", volunteerVo);
}
//2).判断文化课的分数是否小于最小报考分数
//专科类比文化分 = 本年录取分 -去年录取分 + 考生分数
double secondCulture = secondRule.getCurrentYearCulture() - secondRule.getCultureMin() + Double.parseDouble(queryVo.getCultureGrade());
double cultureMin = Double.parseDouble(secondRule.getCultureMin().toString());
if (culture < cultureMin) {
if (secondCulture < cultureMin) {
return R.error("很抱歉,您的成绩不满足报考条件,无法查询!");
}
list = getCultureList(scoreInfo, firstRule, secondRule, className, professionName);
list = getCultureList(scoreInfo, firstRule, secondRule, className, professionName, firstCulture, secondCulture);
}
//(2)美术考生
......@@ -146,8 +147,10 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
}
//判断考生是否有报取资格
if (major < secondRule.getProfessionMin()) {
return R.error("很抱歉,您的专业成绩不满足报考条件,无法查询!");
//专科类比分 = 本年录取分 -去年录取分 + 考生分数
double secondMajor = secondRule.getCurrentYearMajor() - secondRule.getProfessionMin() + Double.parseDouble(queryVo.getMajorGrade());
if (secondMajor < secondRule.getProfessionMin()) {
return R.error("很抱歉,您的成绩不满足报考条件,无法查询!");
}
list = getArtsList(scoreInfo, firstRule, secondRule, className, professionName);
}
......@@ -167,7 +170,9 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
}
//判断考生是否有报取资格
if (major < secondRule.getProfessionMin()) {
//专科类比分 = 本年录取分 -去年录取分 + 考生分数
double secondMajor = secondRule.getCurrentYearMajor() - secondRule.getProfessionMin() + Double.parseDouble(queryVo.getMajorGrade());
if (secondMajor < secondRule.getProfessionMin()) {
return R.error("很抱歉,您的专业成绩不满足报考条件,无法查询!");
}
list = getLiteratureList(scoreInfo, firstRule, secondRule, className, professionName);
......@@ -188,8 +193,13 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
}
//判断考生是否有报取资格
//综合成绩差值
double value = secondRule.getCurrentYearCulture() - secondRule.getCultureMin();
double culture = Double.parseDouble(queryVo.getCultureGrade());
double major = Double.parseDouble(queryVo.getMajorGrade());
//计算综合成绩
double total = major * 750 / 100 * 0.7 + culture * 0.3;
double total = major * 750 / 100 * 0.7 + culture * 0.3 - value;
if (total < secondRule.getProfessionMin()) {
return R.error("很抱歉,您的成绩不满足报考条件,无法查询!");
}
......@@ -298,8 +308,8 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
* @return 文化生志愿列表
*/
private List<Volunteer> getCultureList(ScoreInfo scoreInfo, AdmissionRule firstRule, AdmissionRule secondRule,
List<String> classNames, List<String> professionNames) {
double culture = scoreInfo.getCultureGrade();
List<String> classNames, List<String> professionNames,
double firstCulture, double secondCulture) {
double cultureMax = firstRule.getCultureMax();
double cultureMin = firstRule.getCultureMin();
double downMark = firstRule.getDownMark();
......@@ -310,15 +320,15 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
map.put("number", firstRule.getNumber());
map.put("classNames", classNames);
map.put("professionNames", professionNames);
if (culture < cultureMax && culture > cultureMin) {
if (firstCulture < cultureMax && firstCulture > cultureMin) {
//判断分数是否小于对低分与向下浮动分数之和
double upMark = firstRule.getUpMark();
double upGrade = culture + upMark;
double upGrade = firstCulture + upMark;
map.put("upGrade", upGrade);
map.put("type", SchemeTypeEnums.UNDERGRADUATE_CULTURE.getCode());
double downGrade;
if (culture < cultureMin + downMark) {
if (firstCulture < cultureMin + downMark) {
downGrade = cultureMin;
map.put("downGrade", downGrade);
list = volunteerMapper.getVolunteerList(map);
......@@ -328,7 +338,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
}
} else {
downGrade = culture - firstRule.getDownMark();
downGrade = firstCulture - firstRule.getDownMark();
map.put("downGrade", downGrade);
list = volunteerMapper.getVolunteerList(map);
}
......@@ -336,7 +346,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
//考生的分数是在专科一批中
//判断分数是否小于对低分与向下浮动分数之和
double upMark = secondRule.getUpMark();
double upGrade = culture + upMark;
double upGrade = secondCulture + upMark;
if (upGrade > secondRule.getCultureMax()) {
upGrade = secondRule.getCultureMax();
}
......@@ -345,7 +355,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
map.put("type", SchemeTypeEnums.JUNIOR_COLLEGE_MAJOR.getCode());
double downGrade;
if (culture < cultureMin + downMark) {
if (secondCulture < cultureMin + downMark) {
downGrade = cultureMin;
map.put("downGrade", downGrade);
list = volunteerMapper.getVolunteerList(map);
......@@ -355,7 +365,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
}
} else {
downGrade = culture - secondRule.getDownMark();
downGrade = secondCulture - secondRule.getDownMark();
map.put("downGrade", downGrade);
list = volunteerMapper.getVolunteerList(map);
}
......@@ -375,9 +385,9 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
*/
private List<Volunteer> getArtsList(ScoreInfo scoreInfo, AdmissionRule firstRule, AdmissionRule secondRule,
List<String> classNames, List<String> professionNames) {
double culture = scoreInfo.getCultureGrade();
double major = scoreInfo.getMajorGrade();
//本科类比分 = 本年录取分 -去年录取分 + 考生分数
double culture = firstRule.getCurrentYearCulture() - firstRule.getCultureMin() + scoreInfo.getCultureGrade();
double major = firstRule.getCurrentYearMajor() - firstRule.getProfessionMin() + scoreInfo.getMajorGrade();
//计算综合成绩
double total = major * 750 / 300 * 0.7 + culture * 0.3;
......@@ -399,11 +409,16 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
}
//专科科类比分 = 本年录取分 -去年录取分 + 考生分数
double secondRuleCulture = secondRule.getCurrentYearCulture() - secondRule.getCultureMin() + scoreInfo.getCultureGrade();
double secondRuleMajor = secondRule.getCurrentYearMajor() - secondRule.getProfessionMin() + scoreInfo.getMajorGrade();
//计算综合成绩
double secondRuleTotal = secondRuleMajor * 750 / 300 * 0.7 + secondRuleCulture * 0.3;
//2、考生是否能报取美术专科
if (culture >= secondRule.getCultureMin() && major >= secondRule.getProfessionMin()) {
//浮动分数
double upGrade = total + secondRule.getUpMark();
double downGrade = total + secondRule.getDownMark();
double upGrade = secondRuleTotal + secondRule.getUpMark();
double downGrade = secondRuleTotal + secondRule.getDownMark();
map.put("upGrade", upGrade);
map.put("downGrade", downGrade);
map.put("type", SchemeTypeEnums.JUNIOR_COLLEGE_ARTS.getCode());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment