Commit f5f00c83 authored by cy's avatar cy

修改方案查询规则

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