Commit 968e413d authored by cy's avatar cy

方案查询添加本科专科选择、方案列表进行专业、分数排序

parent 2ebaa084
......@@ -116,6 +116,12 @@
<if test="type != null">
and type =#{type}
</if>
<if test="classNames != null">
and
<foreach collection="classNames" index="index" item="id" separator="or" open="(" close=")">
course_demand LIKE CONCAT('%',#{id},'%')
</foreach>
</if>
<if test="volunteerIds != null and volunteerIds.size > 0 ">
and id NOT IN
<foreach collection="volunteerIds" index="index" item="id" separator="," open="(" close=")">
......@@ -129,7 +135,8 @@
<select id="getListByIds" resultType="cn.wisenergy.model.app.Volunteer">
select
<include refid="cols_all"/>
id, type,scheme_id,substring(major_name,3) major_name,academy, course_demand,nature,year_limit,plan_num,
cast_archives_num,launch_num,lowest_mark, lowest_rank,is_delete,create_time,update_time
from
<include refid="table"/>
<where>
......@@ -138,6 +145,7 @@
#{id}
</foreach>
</where>
order BY major_name , lowest_mark desc
</select>
<select id="getVolunteerList" resultType="cn.wisenergy.model.app.Volunteer">
......
package cn.wisenergy.model.enums;
public enum GradeType {
//本科
UNDERGRADUATE(0, "本科"),
//专科
SPECIALTY(1, "专科");
private Integer code;
private String desc;
GradeType(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
public String getDescription() {
return desc;
}
public Integer getCode() {
return code;
}
public static String getNameByCode(Integer code) {
if (null == code) {
return null;
}
for (SceneType type : SceneType.values()) {
if (type.getCode().intValue() == code.intValue()) {
return type.name();
}
}
return null;
}
}
......@@ -54,5 +54,11 @@ public class SchemeVo implements Serializable {
@ApiModelProperty(value = "是否展示全部 0:否 1:是", name = "isShowAll")
private Integer isShowAll;
/**
* 类型(专科、本科)
*/
@ApiModelProperty(value = "类型(专科、本科)",name = "gradeType")
private String gradeType;
}
......@@ -123,7 +123,7 @@ public class SchemeRecordServiceImpl extends ServiceImpl<SchemeRecordMapper, Sch
for (Volunteer volunteer : result) {
volunteer.setQueryTime(schemeQueryRecord.getCreateTime());
}
result.sort(Comparator.comparing(Volunteer::getLowestMark).reversed());
//result.sort(Comparator.comparing(Volunteer::getLowestMark).reversed());
//最低位次为空,则用--代替
for(Volunteer info : result){
if(info.getLowestRank() == null){
......
......@@ -5,13 +5,12 @@ import cn.wisenergy.common.utils.R;
import cn.wisenergy.common.utils.StringUtil;
import cn.wisenergy.mapper.*;
import cn.wisenergy.model.app.*;
import cn.wisenergy.model.enums.GradeType;
import cn.wisenergy.model.enums.SchemeTypeEnums;
import cn.wisenergy.model.enums.StudentClassEnum;
import cn.wisenergy.model.enums.StudentType;
import cn.wisenergy.model.vo.*;
import cn.wisenergy.service.app.SchemeService;
import cn.wisenergy.service.app.UserLimitService;
import cn.wisenergy.service.app.UserVolunteerService;
import cn.wisenergy.service.common.VolunteerManager;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
......@@ -22,6 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
......@@ -46,9 +46,6 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
@Autowired
private VolunteerMapper volunteerMapper;
@Autowired
private SchemeRecordMapper schemeRecordMapper;
@Autowired
private UserVolunteerMapper userVolunteerMapper;
......@@ -58,13 +55,9 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
@Autowired
private ProfessionMapper professionMapper;
@Autowired
private UserVolunteerService userVolunteerService;
@Autowired
private VolunteerManager volunteerManager;
@Autowired
private UserLimitService userLimitService;
@Autowired
private UserLimitMapper userLimitMapper;
/**
......@@ -109,6 +102,8 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
if (CollectionUtils.isEmpty(professionName)) {
return R.error("未选择专业!");
}
//本科or专科
String gradeType = queryVo.getGradeType() == null ? null : queryVo.getGradeType();
//(1)判断考生类型 文化课考生
//初始化返回数据总条数
......@@ -147,7 +142,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
}
totalResult = firstRule.getNumber();
list = getCultureList(scoreInfo, firstRule, secondRule, className, professionName, firstCulture, secondCulture);
list = getCultureList(firstRule, secondRule, className, professionName, firstCulture, secondCulture, gradeType);
}
//(2)美术考生
......@@ -175,7 +170,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
}
totalResult = firstRule.getNumber();
list = getArtsList(queryVo, firstRule, secondRule, className, professionName);
list = getArtsList(queryVo, firstRule, secondRule, className, professionName, gradeType);
}
//(3)文学编导考生
......@@ -203,7 +198,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
}
totalResult = firstRule.getNumber();
list = getLiteratureList(queryVo, firstRule, secondRule, className, professionName);
list = getLiteratureList(queryVo, firstRule, secondRule, className, professionName, gradeType);
}
//(4)体育考生
......@@ -233,7 +228,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
}
totalResult = firstRule.getNumber();
list = getSportsList(total, firstRule, secondRule, className, professionName);
list = getSportsList(total, firstRule, secondRule, className, professionName, gradeType);
}
//4、判断返回的结果数据是否大于totalResult
......@@ -314,7 +309,6 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
if (null == schemeInfo) {
return R.error("方案信息不存在!");
}
//更新方案状态为 :1 删除
schemeInfo.setIsDelete(1);
......@@ -389,9 +383,9 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
return R.error("入参为空!");
}
//综合成绩
Integer totalMax = null == schemeVo.getTotalMax() ? null : schemeVo.getTotalMax();
Integer totalMin = null == schemeVo.getTotalMin() ? null : schemeVo.getTotalMin();
//综合成绩区间
Integer totalMax = schemeVo.getTotalMax();
Integer totalMin = schemeVo.getTotalMin();
//地区
List<String> locals = StringUtil.strToArrayStr(schemeVo.getLocal());
......@@ -402,7 +396,6 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
return R.error("请先添加vip客户信息!");
}
//2、获取考生成绩
QueryWrapper<ScoreInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("user_id", schemeVo.getUserId());
......@@ -442,7 +435,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
if (cultureGrade < secondRule.getCultureMin()) {
return R.error("很抱歉,客户的成绩不满足报考条件,无法查询!");
}
list = getCultureVipList(firstRule, secondRule, cultureGrade, totalMax, totalMin, locals, nameByIds);
list = getCultureVipList(firstRule, cultureGrade, totalMax, totalMin, locals, nameByIds);
}
//(2)美术考生
......@@ -462,7 +455,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
if (majorGrade < secondRule.getProfessionMin()) {
return R.error("很抱歉,客户的成绩不满足报考条件,无法查询!");
}
list = getArtsVipList(firstRule, secondRule, cultureGrade, majorGrade, totalMax, totalMin, locals, nameByIds);
list = getArtsVipList(firstRule, cultureGrade, majorGrade, totalMax, totalMin, locals, nameByIds);
}
//(3)文学编导考生
......@@ -479,11 +472,10 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
return R.error("无文学编导专科录取规则!");
}
if (majorGrade < secondRule.getProfessionMin()) {
return R.error("很抱歉,客户的成绩不满足报考条件,无法查询!");
}
list = getLiteratureVipList(firstRule, secondRule, cultureGrade, majorGrade, totalMax, totalMin, locals, nameByIds);
list = getLiteratureVipList(firstRule, cultureGrade, majorGrade, totalMax, totalMin, locals, nameByIds);
}
//(4)体育考生
......@@ -499,12 +491,12 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
if (null == secondRule) {
return R.error("无体育专科录取规则!");
}
double total = majorGrade * 750 / 100 * 0.7 + cultureGrade * 0.3 ;
double total = majorGrade * 750 / 100 * 0.7 + cultureGrade * 0.3;
if (total < secondRule.getCultureMin()) {
return R.error("很抱歉,客户的成绩不满足报考条件,无法查询!");
}
list = getSportsVipList(firstRule, secondRule, cultureGrade, majorGrade, totalMax, totalMin, locals, nameByIds);
list = getSportsVipList(firstRule, cultureGrade, majorGrade, totalMax, totalMin, locals, nameByIds);
}
//4判断是否展示全部方案
......@@ -540,12 +532,12 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
* @param professionNames 专业名称
* @return vip文化生志愿列表
*/
private List<Volunteer> getCultureVipList(AdmissionRule firstRule, AdmissionRule secondRule, Double cultureGrade, Integer totalMax, Integer totalMin, List<String> locals, List<String> professionNames) {
private List<Volunteer> getCultureVipList(AdmissionRule firstRule, double cultureGrade, Integer totalMax, Integer totalMin, List<String> locals, List<String> professionNames) {
double cultureMax = firstRule.getCultureMax();
double cultureMin = firstRule.getCultureMin();
//考生的分数在本科一批中
List<Volunteer> list = new ArrayList<>();
List<Volunteer> list;
Map<String, Object> map = new HashMap<>(16);
map.put("professionNames", professionNames);
map.put("locals", locals);
......@@ -554,8 +546,8 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
map.put("totalMax", totalMax);
map.put("totalMin", totalMin);
list = volunteerMapper.getVolunteerListVip(map);
} else {
//获取专科方案
map.put("type", SchemeTypeEnums.JUNIOR_COLLEGE_MAJOR.getCode());
map.put("totalMax", totalMax);
map.put("totalMin", totalMin);
......@@ -568,34 +560,28 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
* 获取vip美术生志愿方案
*
* @param firstRule 本科规则
* @param secondRule 专科规则
* @param professionNames 专业名称
* @return 志愿方案列表
*/
private List<Volunteer> getArtsVipList(AdmissionRule firstRule, AdmissionRule secondRule, Double cultureGrade, Double majorGrade, Integer totalMax, Integer totalMin, List<String> locals,
private List<Volunteer> getArtsVipList(AdmissionRule firstRule, double cultureGrade, double majorGrade, Integer totalMax, Integer totalMin, List<String> locals,
List<String> professionNames) {
//本科类比分 = 本年录取分 -去年录取分 + 考生分数
/*double culture = firstRule.getCurrentYearCulture() - firstRule.getCultureMin() + Double.parseDouble(schemeVo.getCultureGrade());
double major = firstRule.getCurrentYearMajor() - firstRule.getProfessionMin() + Double.parseDouble(schemeVo.getMajorGrade());*/
Map<String, Object> map = new HashMap<>(16);
map.put("professionNames", professionNames);
map.put("locals", locals);
//1、考生是否能报取美术本科
List<Volunteer> list = new ArrayList<>();
List<Volunteer> list;
if (cultureGrade >= firstRule.getCultureMin() && majorGrade >= firstRule.getProfessionMin()) {
map.put("type", SchemeTypeEnums.UNDERGRADUATE_ARTS.getCode());
map.put("totalMax", totalMax);
map.put("totalMin", totalMin);
list = volunteerMapper.getVolunteerListVip(map);
return list;
} else {
//获取专科方案
map.put("type", SchemeTypeEnums.JUNIOR_COLLEGE_ARTS.getCode());
map.put("totalMax", totalMax);
map.put("totalMin", totalMin);
list = volunteerMapper.getVolunteerListVip(map);
}
return list;
}
......@@ -603,17 +589,16 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
* 获取vip文学编导生志愿方案
*
* @param firstRule 本科规则
* @param secondRule 专科规则
* @param professionNames 专业名称
* @return 志愿方案列表
*/
private List<Volunteer> getLiteratureVipList(AdmissionRule firstRule, AdmissionRule secondRule, Double cultureGrade, Double majorGrade, Integer totalMax, Integer totalMin, List<String> locals,
private List<Volunteer> getLiteratureVipList(AdmissionRule firstRule, double cultureGrade, double majorGrade, Integer totalMax, Integer totalMin, List<String> locals,
List<String> professionNames) {
Map<String, Object> map = new HashMap<>(16);
map.put("professionNames", professionNames);
map.put("locals", locals);
//1、考生是否能报取美术本科
List<Volunteer> list = new ArrayList<>();
List<Volunteer> list;
if (cultureGrade >= firstRule.getCultureMin() && majorGrade >= firstRule.getProfessionMin()) {
map.put("type", SchemeTypeEnums.UNDERGRADUATE_LITERATURE.getCode());
......@@ -621,15 +606,14 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
map.put("totalMin", totalMin);
map.put("locals", locals);
list = volunteerMapper.getVolunteerListVip(map);
return list;
} else {
//获取专科方案
map.put("type", SchemeTypeEnums.JUNIOR_COLLEGE_LITERATURE.getCode());
map.put("totalMax", totalMax);
map.put("totalMin", totalMin);
map.put("locals", locals);
list = volunteerMapper.getVolunteerListVip(map);
}
return list;
}
......@@ -638,25 +622,24 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
*
* @param totalMax 考生综合成绩最高分
* @param firstRule 本科规则
* @param secondRule 专科规
* @param professionNames 专业名称
* @return 志愿方案列表
*/
private List<Volunteer> getSportsVipList(AdmissionRule firstRule, AdmissionRule secondRule, Double cultureGrade, Double majorGrade, Integer totalMax, Integer totalMin, List<String> locals,
private List<Volunteer> getSportsVipList(AdmissionRule firstRule, double cultureGrade, double majorGrade, Integer totalMax, Integer totalMin, List<String> locals,
List<String> professionNames) {
Map<String, Object> map = new HashMap<>(16);
map.put("professionNames", professionNames);
map.put("locals", locals);
//1、考生是否能报取体育本科
List<Volunteer> list = new ArrayList<>();
List<Volunteer> list;
if (cultureGrade >= firstRule.getCultureMin() && majorGrade > firstRule.getProfessionMin()) {
map.put("type", SchemeTypeEnums.UNDERGRADUATE_SPORTS.getCode());
map.put("totalMax", totalMax);
map.put("totalMin", totalMin);
map.put("locals", locals);
list = volunteerMapper.getVolunteerListVip(map);
} else {
//获取专科方案
map.put("type", SchemeTypeEnums.JUNIOR_COLLEGE_SPORTS.getCode());
map.put("totalMax", totalMax);
map.put("totalMin", totalMin);
......@@ -671,24 +654,25 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
/**
* 获取文化生志愿列表
*
* @param scoreInfo 成绩
* @param firstRule 录取规则
* @param classNames 副科名称
* @param professionNames 专业名称
* @return 文化生志愿列表
*/
private List<Volunteer> getCultureList(ScoreInfo scoreInfo, AdmissionRule firstRule, AdmissionRule secondRule,
private List<Volunteer> getCultureList(AdmissionRule firstRule, AdmissionRule secondRule,
List<String> classNames, List<String> professionNames,
double firstCulture, double secondCulture) {
double firstCulture, double secondCulture, String gradeType) {
double cultureMax = firstRule.getCultureMax();
double cultureMin = firstRule.getCultureMin();
//考生的分数在本科一批中
List<Volunteer> list = new ArrayList<>();
List<Volunteer> list;
Map<String, Object> map = new HashMap<>(16);
map.put("classNames", classNames);
map.put("professionNames", professionNames);
if (firstCulture < cultureMax && firstCulture >= cultureMin) {
boolean type = !StringUtils.isBlank(gradeType) && GradeType.UNDERGRADUATE.getDescription().equals(gradeType);
boolean grade = StringUtils.isBlank(gradeType) && firstCulture < cultureMax && firstCulture >= cultureMin;
if (type || grade) {
double upGrade = firstCulture + firstRule.getUpMark();
double downGrade = firstCulture - firstRule.getDownMark();
map.put("upGrade", upGrade);
......@@ -697,7 +681,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
list = volunteerMapper.getVolunteerList(map);
if (list.size() < firstRule.getNumber()) {
List<Volunteer> fillList = fillUpVolunteer(list, firstRule.getNumber(), upGrade, downGrade,
SchemeTypeEnums.UNDERGRADUATE_CULTURE.getCode());
SchemeTypeEnums.UNDERGRADUATE_CULTURE.getCode(), classNames);
list.addAll(fillList);
}
} else {
......@@ -712,7 +696,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
//如果数据不满足最大数量,取不限专业最低分补充
if (list.size() < secondRule.getNumber()) {
List<Volunteer> fillList = fillUpVolunteer(list, secondRule.getNumber(), upGrade, downGrade,
SchemeTypeEnums.JUNIOR_COLLEGE_MAJOR.getCode());
SchemeTypeEnums.JUNIOR_COLLEGE_MAJOR.getCode(), classNames);
list.addAll(fillList);
}
}
......@@ -730,7 +714,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
* @return 志愿方案列表
*/
private List<Volunteer> getArtsList(SchemeVo queryVo, AdmissionRule firstRule, AdmissionRule secondRule,
List<String> classNames, List<String> professionNames) {
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());
......@@ -745,7 +729,9 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
//1、考生是否能报取美术本科
List<Volunteer> list = new ArrayList<>();
if (culture >= firstRule.getCultureMin() && major >= firstRule.getProfessionMin()) {
boolean type = !StringUtils.isBlank(gradeType) && GradeType.UNDERGRADUATE.getDescription().equals(gradeType);
boolean grade=StringUtils.isBlank(gradeType) && culture >= firstRule.getCultureMin() && major >= firstRule.getProfessionMin();
if (type || grade) {
//浮动分数
double upGrade = total + firstRule.getUpMark();
double downGrade = total - firstRule.getDownMark();
......@@ -757,7 +743,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
//如果数据不满足最大数量,取不限专业最低分补充
if (list.size() < secondRule.getNumber()) {
List<Volunteer> fillList = fillUpVolunteer(list, firstRule.getNumber(), upGrade, downGrade,
SchemeTypeEnums.UNDERGRADUATE_ARTS.getCode());
SchemeTypeEnums.UNDERGRADUATE_ARTS.getCode(), classNames);
list.addAll(fillList);
}
return list;
......@@ -792,7 +778,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
//如果数据不满足最大数量,取不限专业最低分补充
if (list.size() < secondRule.getNumber()) {
List<Volunteer> fillList = fillUpVolunteer(list, secondRule.getNumber(), upGrade, downGrade,
SchemeTypeEnums.JUNIOR_COLLEGE_ARTS.getCode());
SchemeTypeEnums.JUNIOR_COLLEGE_ARTS.getCode(), classNames);
list.addAll(fillList);
}
}
......@@ -810,7 +796,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
* @return 志愿方案列表
*/
private List<Volunteer> getLiteratureList(SchemeVo queryVo, AdmissionRule firstRule, AdmissionRule secondRule,
List<String> classNames, List<String> professionNames) {
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());
......@@ -822,9 +808,11 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
map.put("classNames", classNames);
map.put("professionNames", professionNames);
//1、考生是否能报取美术本科
List<Volunteer> list = new ArrayList<>();
if (culture >= firstRule.getCultureMin() && major >= firstRule.getProfessionMin()) {
//1、考生是否能报取编导专科本科
List<Volunteer> list;
boolean type = !StringUtils.isBlank(gradeType) && GradeType.UNDERGRADUATE.getDescription().equals(gradeType);
boolean grade = StringUtils.isBlank(gradeType) && culture >= firstRule.getCultureMin() && major >= firstRule.getProfessionMin();
if (type || grade) {
//浮动分数
double upGrade = total + firstRule.getUpMark();
double downGrade = total - firstRule.getDownMark();
......@@ -836,49 +824,13 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
//如果数据不满足最大数量,取不限专业最低分补充
if (list.size() < secondRule.getNumber()) {
List<Volunteer> fillList = fillUpVolunteer(list, secondRule.getNumber(), upGrade, downGrade,
SchemeTypeEnums.UNDERGRADUATE_LITERATURE.getCode());
SchemeTypeEnums.UNDERGRADUATE_LITERATURE.getCode(), classNames);
list.addAll(fillList);
}
return list;
}
//专科类比分 = 本年录取分 -去年录取分 + 考生分数
double cultureSecond = firstRule.getCurrentYearCulture() - firstRule.getCultureMin() + Double.parseDouble(queryVo.getCultureGrade());
double majorSecond = firstRule.getCurrentYearMajor() - firstRule.getProfessionMin() + Double.parseDouble(queryVo.getMajorGrade());
//计算综合成绩
double totalSecond = majorSecond * 750 / 300 * 0.3 + cultureSecond * 0.7;
//判断文化成绩大于本科文化成绩最低分但专业成绩小于本科文化成绩最低分时进行文化成绩降分处理查询
if (cultureSecond > firstRule.getCultureMin() && majorSecond < firstRule.getProfessionMin()) {
List<Volunteer> volunteers = new ArrayList<>();
volunteers = volunteerMapper.getVolunteerByType(SchemeTypeEnums.JUNIOR_COLLEGE_LITERATURE.getCode());
totalSecond = Double.valueOf(volunteers.get(0).getLowestMark()) - secondRule.getUpMark() + 1;
}
log.info(classNames.toString());
//2、考生是否能报取美术专科
if (cultureSecond >= secondRule.getCultureMin() && majorSecond >= secondRule.getProfessionMin()) {
//浮动分数
// double upGrade = totalSecond + secondRule.getUpMark();
// double downGrade = totalSecond - secondRule.getDownMark();
// map.put("upGrade", upGrade);
// map.put("downGrade", downGrade);
// map.put("type", SchemeTypeEnums.JUNIOR_COLLEGE_LITERATURE.getCode());
// list = volunteerMapper.getVolunteerList(map);
//
// log.info(Integer.toString(list.size()));
// //如果数据不满足最大数量,取不限专业最低分补充
// if (list.size() < secondRule.getNumber()) {
// List<Volunteer> fillList = fillUpVolunteer(list, secondRule.getNumber(), upGrade, downGrade,
// SchemeTypeEnums.JUNIOR_COLLEGE_LITERATURE.getCode());
// list.addAll(fillList);
// }
} else {
//文学编导专科一批返回全部数据
list = volunteerMapper.getVolunteerByType(SchemeTypeEnums.JUNIOR_COLLEGE_LITERATURE.getCode());
}
return list;
}
......@@ -894,7 +846,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
* @return 志愿方案列表
*/
private List<Volunteer> getSportsList(double total, AdmissionRule firstRule, AdmissionRule secondRule,
List<String> classNames, List<String> professionNames) {
List<String> classNames, List<String> professionNames, String gradeType) {
Map<String, Object> map = new HashMap<>(16);
map.put("number", firstRule.getNumber());
map.put("classNames", classNames);
......@@ -902,7 +854,9 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
//1、考生是否能报取体育本科
List<Volunteer> list = new ArrayList<>();
if (total >= firstRule.getCultureMin()) {
boolean type = !StringUtils.isBlank(gradeType) && GradeType.UNDERGRADUATE.getDescription().equals(gradeType);
boolean grade = StringUtils.isBlank(gradeType) && total >= firstRule.getCultureMin();
if (type || grade) {
//浮动分数
double upGrade = total + firstRule.getUpMark();
double downGrade = total - firstRule.getDownMark();
......@@ -917,7 +871,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
//如果数据不满足最大数量,取不限专业最低分补充
if (list.size() < secondRule.getNumber()) {
List<Volunteer> fillList = fillUpVolunteer(list, secondRule.getNumber(), upGrade, downGrade,
SchemeTypeEnums.UNDERGRADUATE_SPORTS.getCode());
SchemeTypeEnums.UNDERGRADUATE_SPORTS.getCode(), classNames);
list.addAll(fillList);
}
return list;
......@@ -989,7 +943,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
* @param min 最低分
* @return 集合
*/
private List<Volunteer> fillUpVolunteer(List<Volunteer> list, Integer number, double max, double min, Integer type) {
private List<Volunteer> fillUpVolunteer(List<Volunteer> list, Integer number, double max, double min, Integer type, List<String> classNames) {
//已存在的志愿ids
List<Integer> volunteerIds = list.stream().map(Volunteer::getId).collect(Collectors.toList());
......@@ -1002,6 +956,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
map.put("upGrade", max);
map.put("downGrade", min);
map.put("type", type);
map.put("classNames", classNames);
List<Volunteer> fillList = volunteerMapper.getFillList(map);
List<Volunteer> resultList = new ArrayList<>();
......@@ -1086,8 +1041,7 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
List<Volunteer> otherList = new ArrayList<>();
//分组,每组数量大于2的,取2条,小于等于则全取
Map<Double, List<Volunteer>> map = list.stream().collect(Collectors.groupingBy(Volunteer::getLowestMark
));
Map<Double, List<Volunteer>> map = list.stream().collect(Collectors.groupingBy(Volunteer::getLowestMark));
for (Map.Entry<Double, List<Volunteer>> entry : map.entrySet()) {
List<Volunteer> volunteers = entry.getValue();
......@@ -1164,4 +1118,5 @@ public class SchemeServiceImpl extends ServiceImpl<SchemeMapper, SchemeInfo> imp
}
}
}
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