Commit f5f00c83 authored by cy's avatar cy

修改方案查询规则

parent 96b077b8
...@@ -22,6 +22,7 @@ import org.springframework.stereotype.Service; ...@@ -22,6 +22,7 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -124,8 +125,9 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp ...@@ -124,8 +125,9 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
} }
//1).判断文化课的分数是否大于等于最大文化分 //1).判断文化课的分数是否大于等于最大文化分
//本科类比文化分 = 本年录取分 -去年录取分 + 考生分数 //本科类比文化分 = 考生分数-( 本年录取分 -去年录取分)
double firstCulture = firstRule.getCurrentYearCulture() - firstRule.getCultureMin() + Double.parseDouble(queryVo.getCultureGrade()); double firstCulture = Double.parseDouble(queryVo.getCultureGrade())-
(firstRule.getCurrentYearCulture() - firstRule.getCultureMin());
double cultureMax = Double.parseDouble(firstRule.getCultureMax().toString()); double cultureMax = Double.parseDouble(firstRule.getCultureMax().toString());
if (firstCulture >= cultureMax) { if (firstCulture >= cultureMax) {
volunteerVo.setUserId(user.getId()); volunteerVo.setUserId(user.getId());
...@@ -135,7 +137,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp ...@@ -135,7 +137,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
//2).判断文化课的分数是否小于最小报考分数 //2).判断文化课的分数是否小于最小报考分数
//专科类比文化分 = 本年录取分 -去年录取分 + 考生分数 //专科类比文化分 = 本年录取分 -去年录取分 + 考生分数
double secondCulture = secondRule.getCurrentYearCulture() - secondRule.getCultureMin() + Double.parseDouble(queryVo.getCultureGrade()); double secondCulture = Double.parseDouble(queryVo.getCultureGrade())-(secondRule.getCurrentYearCulture() - secondRule.getCultureMin()) ;
double cultureMin = Double.parseDouble(secondRule.getCultureMin().toString()); double cultureMin = Double.parseDouble(secondRule.getCultureMin().toString());
if (secondCulture < cultureMin) { if (secondCulture < cultureMin) {
return R.error("很抱歉,您的成绩不满足报考条件,无法查询!"); return R.error("很抱歉,您的成绩不满足报考条件,无法查询!");
...@@ -160,11 +162,11 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp ...@@ -160,11 +162,11 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
} }
//判断考生是否有报取资格 //判断考生是否有报取资格
//专科类比分 = 本年录取分 -去年录取分 + 考生分数 //专科类比分 = 考生分数-( 本年录取分 -去年录取分)
double secondCulture = secondRule.getCurrentYearCulture() - secondRule.getCultureMin() + double secondCulture = Double.parseDouble(queryVo.getCultureGrade())-
Double.parseDouble(queryVo.getCultureGrade()); (secondRule.getCurrentYearCulture() - secondRule.getCultureMin());
double secondMajor = secondRule.getCurrentYearMajor() - secondRule.getProfessionMin() + double secondMajor =Double.parseDouble(queryVo.getMajorGrade())-
Double.parseDouble(queryVo.getMajorGrade()); (secondRule.getCurrentYearMajor() - secondRule.getProfessionMin());
if (secondCulture < secondRule.getCultureMin() || secondMajor < secondRule.getProfessionMin()) { if (secondCulture < secondRule.getCultureMin() || secondMajor < secondRule.getProfessionMin()) {
return R.error("很抱歉,您的成绩不满足报考条件,无法查询!"); return R.error("很抱歉,您的成绩不满足报考条件,无法查询!");
} }
...@@ -188,11 +190,11 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp ...@@ -188,11 +190,11 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
} }
//判断考生是否有报取资格 //判断考生是否有报取资格
//专科类比分 = 本年录取分 -去年录取分 + 考生分数 //专科类比分 =考生分数-( 本年录取分 -去年录取分)
double secondCulture = secondRule.getCurrentYearCulture() - secondRule.getCultureMin() + double secondCulture = Double.parseDouble(queryVo.getCultureGrade()) -
Double.parseDouble(queryVo.getCultureGrade()); (secondRule.getCurrentYearCulture() - secondRule.getCultureMin() );
double secondMajor = secondRule.getCurrentYearMajor() - secondRule.getProfessionMin() + double secondMajor =Double.parseDouble(queryVo.getMajorGrade())-
Double.parseDouble(queryVo.getMajorGrade()); (secondRule.getCurrentYearMajor() - secondRule.getProfessionMin() );
if (secondCulture < secondRule.getCultureMin() || secondMajor < secondRule.getProfessionMin()) { if (secondCulture < secondRule.getCultureMin() || secondMajor < secondRule.getProfessionMin()) {
return R.error("很抱歉,您的专业成绩不满足报考条件,无法查询!"); return R.error("很抱歉,您的专业成绩不满足报考条件,无法查询!");
} }
...@@ -227,7 +229,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp ...@@ -227,7 +229,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
} }
totalResult = firstRule.getNumber(); totalResult = firstRule.getNumber();
list = getSportsList(total, firstRule, secondRule, className, professionName, gradeType); list = getSportsList(culture,major, firstRule, secondRule, className, professionName, gradeType);
} }
//4、判断返回的结果数据是否大于totalResult //4、判断返回的结果数据是否大于totalResult
...@@ -793,12 +795,15 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp ...@@ -793,12 +795,15 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
*/ */
private List<Volunteer> getArtsList(SchemeVo queryVo, AdmissionRule firstRule, AdmissionRule secondRule, private List<Volunteer> getArtsList(SchemeVo queryVo, AdmissionRule firstRule, AdmissionRule secondRule,
List<String> classNames, List<String> professionNames, String gradeType) { List<String> classNames, List<String> professionNames, String gradeType) {
//本科类比分 = 本年录取分 -去年录取分 + 考生分数 //本科类比分 = 考生分数-( 本年录取分 -去年录取分)
double culture = firstRule.getCurrentYearCulture() - firstRule.getCultureMin() + Double.parseDouble(queryVo.getCultureGrade()); double culture = Double.parseDouble(queryVo.getCultureGrade()) -
double major = firstRule.getCurrentYearMajor() - firstRule.getProfessionMin() + Double.parseDouble(queryVo.getMajorGrade()); (firstRule.getCurrentYearCulture() - firstRule.getCultureMin());
double major = Double.parseDouble(queryVo.getMajorGrade()) -
(firstRule.getCurrentYearMajor() - firstRule.getProfessionMin()) ;
//计算综合成绩 //计算综合成绩
double total = major * 750 / 300 * 0.7 + culture * 0.3; double total = major * 750 / 300 * 0.7 + culture * 0.3;
BigDecimal b = new BigDecimal(total);
total = b.setScale(2, RoundingMode.HALF_UP).doubleValue();
Map<String, Object> map = new HashMap<>(16); Map<String, Object> map = new HashMap<>(16);
map.put("number", firstRule.getNumber()); map.put("number", firstRule.getNumber());
...@@ -843,14 +848,15 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp ...@@ -843,14 +848,15 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
//专科科类比分 = 本年录取分 -去年录取分 + 考生分数 //专科科类比分 = 本年录取分 -去年录取分 + 考生分数
double secondCulture = secondRule.getCurrentYearCulture() - secondRule.getCultureMin() + double secondCulture = Double.parseDouble(queryVo.getCultureGrade()) -
Double.parseDouble(queryVo.getCultureGrade()); (secondRule.getCurrentYearCulture() - secondRule.getCultureMin() );
double secondMajor = secondRule.getCurrentYearMajor() - secondRule.getProfessionMin() + double secondMajor = Double.parseDouble(queryVo.getMajorGrade()) -
Double.parseDouble(queryVo.getMajorGrade()); (secondRule.getCurrentYearMajor() - secondRule.getProfessionMin() );
//计算综合成绩 //计算综合成绩
double secondRuleTotal = secondMajor * 750 / 300 * 0.7 + secondCulture * 0.3; double secondRuleTotal = secondMajor * 750 / 300 * 0.7 + secondCulture * 0.3;
BigDecimal rel = new BigDecimal(secondRuleTotal);
secondRuleTotal = rel.setScale(2, RoundingMode.HALF_UP).doubleValue();
//获取该类型录取最高分数 //获取该类型录取最高分数
double high = volunteerMapper.getMaxLowestMark(SchemeTypeEnums.JUNIOR_COLLEGE_ARTS.getCode()); double high = volunteerMapper.getMaxLowestMark(SchemeTypeEnums.JUNIOR_COLLEGE_ARTS.getCode());
...@@ -903,11 +909,14 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp ...@@ -903,11 +909,14 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
private List<Volunteer> getLiteratureList(SchemeVo queryVo, AdmissionRule firstRule, AdmissionRule secondRule, private List<Volunteer> getLiteratureList(SchemeVo queryVo, AdmissionRule firstRule, AdmissionRule secondRule,
List<String> classNames, List<String> professionNames, String gradeType) { List<String> classNames, List<String> professionNames, String gradeType) {
//本科类比分 = 本年录取分 -去年录取分 + 考生分数 //本科类比分 = 本年录取分 -去年录取分 + 考生分数
double culture = firstRule.getCurrentYearCulture() - firstRule.getCultureMin() + Double.parseDouble(queryVo.getCultureGrade()); double culture = Double.parseDouble(queryVo.getCultureGrade()) -
double major = firstRule.getCurrentYearMajor() - firstRule.getProfessionMin() + Double.parseDouble(queryVo.getMajorGrade()); (firstRule.getCurrentYearCulture() - firstRule.getCultureMin());
double major = Double.parseDouble(queryVo.getMajorGrade()) -
(firstRule.getCurrentYearMajor() - firstRule.getProfessionMin()) ;
//计算综合成绩 //计算综合成绩
double total = major * 750 / 300 * 0.3 + culture * 0.7; double total = major * 750 / 300 * 0.3 + culture * 0.7;
BigDecimal b = new BigDecimal(total);
total = b.setScale(2, RoundingMode.HALF_UP).doubleValue();
Map<String, Object> map = new HashMap<>(16); Map<String, Object> map = new HashMap<>(16);
map.put("number", firstRule.getNumber()); map.put("number", firstRule.getNumber());
map.put("classNames", classNames); map.put("classNames", classNames);
...@@ -957,20 +966,24 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp ...@@ -957,20 +966,24 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
/** /**
* 获取体育生生志愿方案 * 获取体育生生志愿方案
* *
* @param total 考生综合成绩 * @param culture 考生文化成绩
* @param major 考生专业成绩
* @param firstRule 本科规则 * @param firstRule 本科规则
* @param secondRule 专科规则 * @param secondRule 专科规则
* @param classNames 副科名称 * @param classNames 副科名称
* @param professionNames 专业名称 * @param professionNames 专业名称
* @return 志愿方案列表 * @return 志愿方案列表
*/ */
private List<Volunteer> getSportsList(double total, AdmissionRule firstRule, AdmissionRule secondRule, private List<Volunteer> getSportsList(double culture,double major, AdmissionRule firstRule, AdmissionRule secondRule,
List<String> classNames, List<String> professionNames, String gradeType) { List<String> classNames, List<String> professionNames, String gradeType) {
Map<String, Object> map = new HashMap<>(16); Map<String, Object> map = new HashMap<>(16);
map.put("number", firstRule.getNumber()); map.put("number", firstRule.getNumber());
map.put("classNames", classNames); map.put("classNames", classNames);
map.put("professionNames", professionNames); map.put("professionNames", professionNames);
double value = firstRule.getCurrentYearCulture() - firstRule.getCultureMin();
double total= major * 750 / 100 * 0.7 + culture * 0.3 - value;
BigDecimal b = new BigDecimal(total);
total = b.setScale(2, RoundingMode.HALF_UP).doubleValue();
//1、考生是否能报取体育本科 //1、考生是否能报取体育本科
List<Volunteer> list = new ArrayList<>(); List<Volunteer> list = new ArrayList<>();
boolean type = !StringUtils.isBlank(gradeType) && GradeType.UNDERGRADUATE.getDescription().equals(gradeType); boolean type = !StringUtils.isBlank(gradeType) && GradeType.UNDERGRADUATE.getDescription().equals(gradeType);
......
...@@ -295,7 +295,7 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U ...@@ -295,7 +295,7 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U
userShowVo.setComprehensiveScore(scoreInfo.getCultureGrade()); userShowVo.setComprehensiveScore(scoreInfo.getCultureGrade());
AdmissionRule firstRule = admissionRuleMapper.getByType(SchemeTypeEnums.UNDERGRADUATE_CULTURE.getCode()); AdmissionRule firstRule = admissionRuleMapper.getByType(SchemeTypeEnums.UNDERGRADUATE_CULTURE.getCode());
if (null != firstRule) { if (null != firstRule) {
double firstCulture = firstRule.getCurrentYearCulture() - firstRule.getCultureMin() + scoreInfo.getCultureGrade(); double firstCulture =scoreInfo.getCultureGrade()-(firstRule.getCurrentYearCulture() - firstRule.getCultureMin()) ;
if (firstCulture >= firstRule.getCultureMin()) { if (firstCulture >= firstRule.getCultureMin()) {
userShowVo.setGradeType(GradeType.UNDERGRADUATE.getDescription()); userShowVo.setGradeType(GradeType.UNDERGRADUATE.getDescription());
} else { } else {
...@@ -310,8 +310,8 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U ...@@ -310,8 +310,8 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U
userShowVo.setComprehensiveScore(new BigDecimal(score).setScale(2, RoundingMode.UP).doubleValue()); userShowVo.setComprehensiveScore(new BigDecimal(score).setScale(2, RoundingMode.UP).doubleValue());
AdmissionRule firstRule = admissionRuleMapper.getByType(SchemeTypeEnums.UNDERGRADUATE_ARTS.getCode()); AdmissionRule firstRule = admissionRuleMapper.getByType(SchemeTypeEnums.UNDERGRADUATE_ARTS.getCode());
if (null != firstRule) { if (null != firstRule) {
double culture = firstRule.getCurrentYearCulture() - firstRule.getCultureMin() + scoreInfo.getCultureGrade(); double culture =scoreInfo.getCultureGrade()-(firstRule.getCurrentYearCulture() - firstRule.getCultureMin()) ;
double major = firstRule.getCurrentYearMajor() - firstRule.getProfessionMin() + scoreInfo.getMajorGrade(); double major =scoreInfo.getMajorGrade() -(firstRule.getCurrentYearMajor() - firstRule.getProfessionMin()) ;
if (culture >= firstRule.getCultureMin() && major >= firstRule.getProfessionMin()) { if (culture >= firstRule.getCultureMin() && major >= firstRule.getProfessionMin()) {
userShowVo.setGradeType(GradeType.UNDERGRADUATE.getDescription()); userShowVo.setGradeType(GradeType.UNDERGRADUATE.getDescription());
} else { } else {
...@@ -327,8 +327,8 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U ...@@ -327,8 +327,8 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U
AdmissionRule firstRule = admissionRuleMapper.getByType(SchemeTypeEnums.UNDERGRADUATE_LITERATURE.getCode()); AdmissionRule firstRule = admissionRuleMapper.getByType(SchemeTypeEnums.UNDERGRADUATE_LITERATURE.getCode());
//本科类比分 = 本年录取分 -去年录取分 + 考生分数 //本科类比分 = 本年录取分 -去年录取分 + 考生分数
if (null != firstRule) { if (null != firstRule) {
double culture = firstRule.getCurrentYearCulture() - firstRule.getCultureMin() + scoreInfo.getCultureGrade(); double culture =scoreInfo.getCultureGrade()-(firstRule.getCurrentYearCulture() - firstRule.getCultureMin()) ;
double major = firstRule.getCurrentYearMajor() - firstRule.getProfessionMin() + scoreInfo.getMajorGrade(); double major =scoreInfo.getMajorGrade() -(firstRule.getCurrentYearMajor() - firstRule.getProfessionMin()) ;
if (culture >= firstRule.getCultureMin() && major >= firstRule.getProfessionMin()) { if (culture >= firstRule.getCultureMin() && major >= firstRule.getProfessionMin()) {
userShowVo.setGradeType(GradeType.UNDERGRADUATE.getDescription()); userShowVo.setGradeType(GradeType.UNDERGRADUATE.getDescription());
} else { } else {
......
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