feat: 算投档分院校关联bug及优化。
This commit is contained in:
parent
1a9d4e87a2
commit
1cc2800238
|
|
@ -158,99 +158,27 @@ public class MiniMajorController {
|
||||||
} else {
|
} else {
|
||||||
yxSchoolMajorLambdaQueryWrapper.eq(YxSchoolMajor::getBatch, queryCalculateInvestmentVO.getBatch());
|
yxSchoolMajorLambdaQueryWrapper.eq(YxSchoolMajor::getBatch, queryCalculateInvestmentVO.getBatch());
|
||||||
}
|
}
|
||||||
|
// TODO 2025年后 录取方式统一
|
||||||
|
Map<String, YxSchoolMajor> ruleEnrollProbabilityCountMap = yxSchoolMajorService.countMajorTypeWithProbability(queryCalculateInvestmentVO.getCategory(), queryCalculateInvestmentVO.getBatch(), queryCalculateInvestmentVO.getProfessionalCategory());
|
||||||
|
|
||||||
yxSchoolMajorLambdaQueryWrapper.eq(StringUtils.isNotBlank(queryCalculateInvestmentVO.getCategory()), YxSchoolMajor::getCategory, queryCalculateInvestmentVO.getCategory());
|
|
||||||
yxSchoolMajorLambdaQueryWrapper.eq(StringUtils.isNotBlank(queryCalculateInvestmentVO.getProfessionalCategory()), YxSchoolMajor::getMajorType, queryCalculateInvestmentVO.getProfessionalCategory());
|
|
||||||
yxSchoolMajorLambdaQueryWrapper.orderByDesc(YxSchoolMajor::getRulesEnrollProbabilitySx);
|
|
||||||
List<ArtCalculateInvestmentDTO> calculateInvestmentDTOList = new ArrayList<>();
|
List<ArtCalculateInvestmentDTO> calculateInvestmentDTOList = new ArrayList<>();
|
||||||
Map<String,String> rulesEnrollProbabilityMap=new HashMap<>();
|
YxSchoolMajor yxSchoolMajor = null;
|
||||||
rulesEnrollProbabilityMap.put("专过文排","专过文排");
|
ArtCalculateInvestmentDTO artCalculateInvestmentDTO = null;
|
||||||
rulesEnrollProbabilityMap.put("文*0.8+专*0.5","文8专2");
|
try {
|
||||||
rulesEnrollProbabilityMap.put("文*0.7+专*0.75","文7专3");
|
for (String key : ruleEnrollProbabilityCountMap.keySet()) {
|
||||||
rulesEnrollProbabilityMap.put("文*0.6+专*1","文6专4");
|
yxSchoolMajor = ruleEnrollProbabilityCountMap.get(key);
|
||||||
rulesEnrollProbabilityMap.put("文*0.5+专*1.25","文5专5");
|
if (null == yxSchoolMajor) continue;
|
||||||
if (!"体育类".equals(queryCalculateInvestmentVO.getProfessionalCategory())) {
|
|
||||||
//非体育类
|
|
||||||
List<String> rulesEnrollProbabilityList = null;
|
|
||||||
if ("高职高专".equals(queryCalculateInvestmentVO.getBatch())) {
|
|
||||||
rulesEnrollProbabilityList = Arrays.asList("文*0.5+专*1.25");
|
|
||||||
}else{
|
|
||||||
rulesEnrollProbabilityList = Arrays.asList("文*0.8+专*0.5", "文*0.7+专*0.75", "文*0.6+专*1", "文*0.5+专*1.25", "专过文排");
|
|
||||||
}
|
|
||||||
|
|
||||||
yxSchoolMajorLambdaQueryWrapper.in(YxSchoolMajor::getRulesEnrollProbability, rulesEnrollProbabilityList);
|
|
||||||
List<YxSchoolMajor> schooMajorList = yxSchoolMajorService.list(yxSchoolMajorLambdaQueryWrapper);
|
|
||||||
BigDecimal wenhuaBili = null;
|
|
||||||
BigDecimal zhuanyeBili = null;
|
|
||||||
ArtCalculateInvestmentDTO artCalculateInvestmentDTO = null;
|
|
||||||
for (String probabilityOperator : rulesEnrollProbabilityList) {
|
|
||||||
artCalculateInvestmentDTO = new ArtCalculateInvestmentDTO();
|
artCalculateInvestmentDTO = new ArtCalculateInvestmentDTO();
|
||||||
if (probabilityOperator.equals("专过文排")) {
|
artCalculateInvestmentDTO.setProbabilityOperator(yxSchoolMajor.getProbabilityOperator());
|
||||||
artCalculateInvestmentDTO.setRulesEnrollProbability(rulesEnrollProbabilityMap.get(probabilityOperator));
|
artCalculateInvestmentDTO.setRulesEnrollProbability(yxSchoolMajor.getRulesEnrollProbability());
|
||||||
artCalculateInvestmentDTO.setProbabilityOperator("文*1");
|
artCalculateInvestmentDTO.setSchoolNum(yxSchoolMajor.getPlanNum());
|
||||||
artCalculateInvestmentDTO.setScore(culturalScore);
|
// 计算成绩
|
||||||
artCalculateInvestmentDTO.setSchoolNum((int) schooMajorList.stream().filter(s->s.getRulesEnrollProbability().equals("专过文排")).count());
|
artCalculateInvestmentDTO.setScore(ScoreUtil.convertIntoScore(yxSchoolMajor.getRulesEnrollProbability(),
|
||||||
calculateInvestmentDTOList.add(artCalculateInvestmentDTO);
|
culturalScore, professionalScore,yxSchoolMajor.getProbabilityOperator()));
|
||||||
} else {
|
calculateInvestmentDTOList.add(artCalculateInvestmentDTO);
|
||||||
wenhuaBili = null;
|
|
||||||
zhuanyeBili = null;
|
|
||||||
String[] operators = probabilityOperator.split("\\+");
|
|
||||||
for (String operator : operators) {
|
|
||||||
if (operator.contains("文")) {
|
|
||||||
wenhuaBili = new BigDecimal(operator.split("\\*")[1]);
|
|
||||||
}
|
|
||||||
if (operator.contains("专")) {
|
|
||||||
zhuanyeBili = new BigDecimal(operator.split("\\*")[1]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (wenhuaBili == null || zhuanyeBili == null) {
|
|
||||||
wenhuaBili = YxConstant.bigDecimal100;
|
|
||||||
zhuanyeBili = YxConstant.bigDecimal100;
|
|
||||||
}
|
|
||||||
artCalculateInvestmentDTO = new ArtCalculateInvestmentDTO();
|
|
||||||
artCalculateInvestmentDTO.setRulesEnrollProbability(rulesEnrollProbabilityMap.get(probabilityOperator));
|
|
||||||
artCalculateInvestmentDTO.setProbabilityOperator(probabilityOperator);
|
|
||||||
artCalculateInvestmentDTO.setScore((culturalScore.multiply(wenhuaBili)).add((professionalScore.multiply(zhuanyeBili))));
|
|
||||||
artCalculateInvestmentDTO.setSchoolNum((int) schooMajorList.stream().filter(s->s.getProbabilityOperator().contains(probabilityOperator)).count());
|
|
||||||
calculateInvestmentDTOList.add(artCalculateInvestmentDTO);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
List<YxSchoolMajor> schooMajorList = yxSchoolMajorService.list(yxSchoolMajorLambdaQueryWrapper);
|
|
||||||
try {
|
|
||||||
if (CollectionUtils.isEmpty(schooMajorList)) {
|
|
||||||
return Result.OK();
|
|
||||||
}
|
|
||||||
ArtCalculateInvestmentDTO artCalculateInvestmentDTO = null;
|
|
||||||
Integer schoolNum = 0;
|
|
||||||
//遍历 院校专业列表,将录取方式,院校代码储存起来
|
|
||||||
//map,key:录取方式,value: array[院校代码]
|
|
||||||
Map<String, Set<String>> maps = new LinkedHashMap<>();
|
|
||||||
Set<String> schoolCodeSet = null;
|
|
||||||
for (YxSchoolMajor yxSchoolMajor : schooMajorList) {
|
|
||||||
schoolCodeSet = maps.getOrDefault(yxSchoolMajor.getRulesEnrollProbability(), new HashSet<>());
|
|
||||||
schoolCodeSet.add(yxSchoolMajor.getSchoolCode());
|
|
||||||
maps.put(yxSchoolMajor.getRulesEnrollProbability(), schoolCodeSet);
|
|
||||||
}
|
|
||||||
if (maps.isEmpty()) {
|
|
||||||
return Result.OK();
|
|
||||||
}
|
|
||||||
//根据录取方式,计算折合分数
|
|
||||||
for (String rulesEnrollProbability : maps.keySet()) {
|
|
||||||
Optional<YxSchoolMajor> any = schooMajorList.stream().filter(s -> s.getRulesEnrollProbability().equals(rulesEnrollProbability)).findAny();
|
|
||||||
if (any.isPresent()) {
|
|
||||||
YxSchoolMajor yxSchoolMajor = any.get();
|
|
||||||
artCalculateInvestmentDTO = new ArtCalculateInvestmentDTO();
|
|
||||||
artCalculateInvestmentDTO.setSchoolNum(maps.get(rulesEnrollProbability).size());
|
|
||||||
artCalculateInvestmentDTO.setRulesEnrollProbability(yxSchoolMajor.getRulesEnrollProbabilitySx());
|
|
||||||
artCalculateInvestmentDTO.setProbabilityOperator(yxSchoolMajor.getProbabilityOperator());
|
|
||||||
artCalculateInvestmentDTO.setScore(ScoreUtil.convertIntoScore(rulesEnrollProbability, culturalScore, professionalScore, null, yxSchoolMajor.getProbabilityOperator()));
|
|
||||||
calculateInvestmentDTOList.add(artCalculateInvestmentDTO);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
return Result.error("计算折合分出错,请联系管理员");
|
|
||||||
}
|
}
|
||||||
|
}catch (Exception e){
|
||||||
|
Result.error(e.getMessage());
|
||||||
}
|
}
|
||||||
return Result.OK(calculateInvestmentDTOList);
|
return Result.OK(calculateInvestmentDTOList);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -77,102 +77,27 @@ public class ArtRecommendMajorController {
|
||||||
} else {
|
} else {
|
||||||
yxSchoolMajorLambdaQueryWrapper.eq(YxSchoolMajor::getBatch, queryCalculateInvestmentVO.getBatch());
|
yxSchoolMajorLambdaQueryWrapper.eq(YxSchoolMajor::getBatch, queryCalculateInvestmentVO.getBatch());
|
||||||
}
|
}
|
||||||
|
// TODO 2025年后 录取方式统一
|
||||||
|
Map<String, YxSchoolMajor> ruleEnrollProbabilityCountMap = yxSchoolMajorService.countMajorTypeWithProbability(queryCalculateInvestmentVO.getCategory(), queryCalculateInvestmentVO.getBatch(), queryCalculateInvestmentVO.getProfessionalCategory());
|
||||||
|
|
||||||
yxSchoolMajorLambdaQueryWrapper.eq(StringUtils.isNotBlank(queryCalculateInvestmentVO.getCategory()), YxSchoolMajor::getCategory, queryCalculateInvestmentVO.getCategory());
|
|
||||||
yxSchoolMajorLambdaQueryWrapper.eq(StringUtils.isNotBlank(queryCalculateInvestmentVO.getProfessionalCategory()), YxSchoolMajor::getMajorType, queryCalculateInvestmentVO.getProfessionalCategory());
|
|
||||||
yxSchoolMajorLambdaQueryWrapper.orderByDesc(YxSchoolMajor::getRulesEnrollProbabilitySx);
|
|
||||||
List<ArtCalculateInvestmentDTO> calculateInvestmentDTOList = new ArrayList<>();
|
List<ArtCalculateInvestmentDTO> calculateInvestmentDTOList = new ArrayList<>();
|
||||||
Map<String,String> rulesEnrollProbabilityMap=new HashMap<>();
|
YxSchoolMajor yxSchoolMajor = null;
|
||||||
rulesEnrollProbabilityMap.put("专过文排","专过文排");
|
ArtCalculateInvestmentDTO artCalculateInvestmentDTO = null;
|
||||||
rulesEnrollProbabilityMap.put("文*0.8+专*0.5","文8专2");
|
try {
|
||||||
rulesEnrollProbabilityMap.put("文*0.7+专*0.75","文7专3");
|
for (String key : ruleEnrollProbabilityCountMap.keySet()) {
|
||||||
rulesEnrollProbabilityMap.put("文*0.6+专*1","文6专4");
|
yxSchoolMajor = ruleEnrollProbabilityCountMap.get(key);
|
||||||
rulesEnrollProbabilityMap.put("文*0.5+专*1.25","文5专5");
|
if (null == yxSchoolMajor) continue;
|
||||||
if (!"体育类".equals(queryCalculateInvestmentVO.getProfessionalCategory())) {
|
|
||||||
//非体育类
|
|
||||||
List<String> rulesEnrollProbabilityList = null;
|
|
||||||
if ("高职高专".equals(queryCalculateInvestmentVO.getBatch())) {
|
|
||||||
rulesEnrollProbabilityList = Arrays.asList("文*0.5+专*1.25");
|
|
||||||
}else{
|
|
||||||
rulesEnrollProbabilityList = Arrays.asList("文*0.8+专*0.5", "文*0.7+专*0.75", "文*0.6+专*1", "文*0.5+专*1.25", "专过文排");
|
|
||||||
}
|
|
||||||
|
|
||||||
yxSchoolMajorLambdaQueryWrapper.in(YxSchoolMajor::getRulesEnrollProbability, rulesEnrollProbabilityList);
|
|
||||||
List<YxSchoolMajor> schooMajorList = yxSchoolMajorService.list(yxSchoolMajorLambdaQueryWrapper);
|
|
||||||
BigDecimal wenhuaBili = null;
|
|
||||||
BigDecimal zhuanyeBili = null;
|
|
||||||
ArtCalculateInvestmentDTO artCalculateInvestmentDTO = null;
|
|
||||||
for (String probabilityOperator : rulesEnrollProbabilityList) {
|
|
||||||
artCalculateInvestmentDTO = new ArtCalculateInvestmentDTO();
|
artCalculateInvestmentDTO = new ArtCalculateInvestmentDTO();
|
||||||
if (probabilityOperator.equals("专过文排")) {
|
artCalculateInvestmentDTO.setProbabilityOperator(yxSchoolMajor.getProbabilityOperator());
|
||||||
artCalculateInvestmentDTO.setRulesEnrollProbability(rulesEnrollProbabilityMap.get(probabilityOperator));
|
artCalculateInvestmentDTO.setRulesEnrollProbability(yxSchoolMajor.getRulesEnrollProbability());
|
||||||
artCalculateInvestmentDTO.setProbabilityOperator("文*1");
|
artCalculateInvestmentDTO.setSchoolNum(yxSchoolMajor.getPlanNum());
|
||||||
artCalculateInvestmentDTO.setScore(culturalScore);
|
// 计算成绩
|
||||||
artCalculateInvestmentDTO.setSchoolNum((int) schooMajorList.stream().filter(s->s.getRulesEnrollProbability().equals("专过文排")).count());
|
artCalculateInvestmentDTO.setScore(ScoreUtil.convertIntoScore(yxSchoolMajor.getRulesEnrollProbability(),
|
||||||
calculateInvestmentDTOList.add(artCalculateInvestmentDTO);
|
culturalScore, professionalScore,yxSchoolMajor.getProbabilityOperator()));
|
||||||
} else {
|
calculateInvestmentDTOList.add(artCalculateInvestmentDTO);
|
||||||
wenhuaBili = null;
|
|
||||||
zhuanyeBili = null;
|
|
||||||
String[] operators = probabilityOperator.split("\\+");
|
|
||||||
for (String operator : operators) {
|
|
||||||
if (operator.contains("文")) {
|
|
||||||
wenhuaBili = new BigDecimal(operator.split("\\*")[1]);
|
|
||||||
}
|
|
||||||
if (operator.contains("专")) {
|
|
||||||
zhuanyeBili = new BigDecimal(operator.split("\\*")[1]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (wenhuaBili == null || zhuanyeBili == null) {
|
|
||||||
wenhuaBili = YxConstant.bigDecimal100;
|
|
||||||
zhuanyeBili = YxConstant.bigDecimal100;
|
|
||||||
}
|
|
||||||
artCalculateInvestmentDTO = new ArtCalculateInvestmentDTO();
|
|
||||||
artCalculateInvestmentDTO.setRulesEnrollProbability(rulesEnrollProbabilityMap.get(probabilityOperator));
|
|
||||||
artCalculateInvestmentDTO.setProbabilityOperator(probabilityOperator);
|
|
||||||
artCalculateInvestmentDTO.setScore((culturalScore.multiply(wenhuaBili)).add((professionalScore.multiply(zhuanyeBili))));
|
|
||||||
artCalculateInvestmentDTO.setSchoolNum((int) schooMajorList.stream().filter(s->s.getProbabilityOperator().contains(probabilityOperator)).count());
|
|
||||||
calculateInvestmentDTOList.add(artCalculateInvestmentDTO);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
List<YxSchoolMajor> schooMajorList = yxSchoolMajorService.list(yxSchoolMajorLambdaQueryWrapper);
|
|
||||||
try {
|
|
||||||
if (CollectionUtils.isEmpty(schooMajorList)) {
|
|
||||||
return Result.OK();
|
|
||||||
}
|
|
||||||
ArtCalculateInvestmentDTO artCalculateInvestmentDTO = null;
|
|
||||||
Integer schoolNum = 0;
|
|
||||||
//遍历 院校专业列表,将录取方式,院校代码储存起来
|
|
||||||
//map,key:录取方式,value: array[院校代码]
|
|
||||||
Map<String, Set<String>> maps = new LinkedHashMap<>();
|
|
||||||
Set<String> schoolCodeSet = null;
|
|
||||||
for (YxSchoolMajor yxSchoolMajor : schooMajorList) {
|
|
||||||
schoolCodeSet = maps.getOrDefault(yxSchoolMajor.getRulesEnrollProbability(), new HashSet<>());
|
|
||||||
schoolCodeSet.add(yxSchoolMajor.getSchoolCode());
|
|
||||||
maps.put(yxSchoolMajor.getRulesEnrollProbability(), schoolCodeSet);
|
|
||||||
}
|
|
||||||
if (maps.isEmpty()) {
|
|
||||||
return Result.OK();
|
|
||||||
}
|
|
||||||
//根据录取方式,计算折合分数
|
|
||||||
for (String rulesEnrollProbability : maps.keySet()) {
|
|
||||||
if (StringUtils.isBlank(rulesEnrollProbability)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
Optional<YxSchoolMajor> any = schooMajorList.stream().filter(s -> s.getRulesEnrollProbability().equals(rulesEnrollProbability)).findAny();
|
|
||||||
if (any.isPresent()) {
|
|
||||||
YxSchoolMajor yxSchoolMajor = any.get();
|
|
||||||
artCalculateInvestmentDTO = new ArtCalculateInvestmentDTO();
|
|
||||||
artCalculateInvestmentDTO.setSchoolNum(maps.get(rulesEnrollProbability).size());
|
|
||||||
artCalculateInvestmentDTO.setRulesEnrollProbability(yxSchoolMajor.getRulesEnrollProbabilitySx());
|
|
||||||
artCalculateInvestmentDTO.setProbabilityOperator(yxSchoolMajor.getProbabilityOperator());
|
|
||||||
artCalculateInvestmentDTO.setScore(ScoreUtil.convertIntoScore(rulesEnrollProbability, culturalScore, professionalScore, null, yxSchoolMajor.getProbabilityOperator()));
|
|
||||||
calculateInvestmentDTOList.add(artCalculateInvestmentDTO);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
return Result.error("计算折合分出错,请联系管理员");
|
|
||||||
}
|
}
|
||||||
|
}catch (Exception e){
|
||||||
|
Result.error(e.getMessage());
|
||||||
}
|
}
|
||||||
return Result.OK(calculateInvestmentDTOList);
|
return Result.OK(calculateInvestmentDTOList);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,8 @@ public class YxConstant {
|
||||||
public static String culturalControlLineGuo2 = "文过专排主科";
|
public static String culturalControlLineGuo2 = "文过专排主科";
|
||||||
|
|
||||||
|
|
||||||
public static List<String> defaultRulesEnrollProbabilityList = Arrays.asList("文过专排", "专过文排");
|
public static List<String> defaultRulesEnrollProbabilityList = Arrays.asList("文5专5","文6专4","专过文排","文8专2","文7专3");
|
||||||
|
public static List<String> default_TiYu_RulesEnrollProbabilityList = Arrays.asList("文3专7","文过专排","文5专5","专过文排","文7专3");
|
||||||
|
|
||||||
public static String zhuanke = "高职高专";
|
public static String zhuanke = "高职高专";
|
||||||
public static List<String> batchList1 = Arrays.asList("提前批", "本科", "本科A段", "本科B段");
|
public static List<String> batchList1 = Arrays.asList("提前批", "本科", "本科A段", "本科B段");
|
||||||
|
|
|
||||||
|
|
@ -87,4 +87,6 @@ public interface IYxSchoolMajorService extends IService<YxSchoolMajor> {
|
||||||
* 获取院校下其他可报专业
|
* 获取院校下其他可报专业
|
||||||
*/
|
*/
|
||||||
ArtRecommendMajorBaseDTO schoolOtherMajor(QueryRecommendMajorVO queryRecommendMajorVO);
|
ArtRecommendMajorBaseDTO schoolOtherMajor(QueryRecommendMajorVO queryRecommendMajorVO);
|
||||||
|
|
||||||
|
Map<String, YxSchoolMajor> countMajorTypeWithProbability(String category, String batch, String professionalCategory);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.jeecg.common.util.RedisUtil;
|
import org.jeecg.common.util.RedisUtil;
|
||||||
|
|
@ -1342,4 +1343,20 @@ public class YxSchoolMajorServiceImpl extends ServiceImpl<YxSchoolMajorMapper, Y
|
||||||
artRecommendMajorBaseDTO.setList(recommendMajorList);
|
artRecommendMajorBaseDTO.setList(recommendMajorList);
|
||||||
return artRecommendMajorBaseDTO;
|
return artRecommendMajorBaseDTO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, YxSchoolMajor> countMajorTypeWithProbability(String category, String batch, String majorType) {
|
||||||
|
QueryWrapper<YxSchoolMajor> wrapper = new QueryWrapper<>();
|
||||||
|
wrapper.select("CONCAT(major_type, '-', rules_enroll_probability) as rules_enroll_probability_sx",
|
||||||
|
"rules_enroll_probability", "probability_operator", "COUNT(0) as plan_num")
|
||||||
|
.eq(StringUtils.isNotBlank(category), "category", category)
|
||||||
|
.like(StringUtils.isNotBlank(batch), "batch", batch)
|
||||||
|
.eq(StringUtils.isNotBlank(majorType), "major_type", majorType)
|
||||||
|
.isNotNull("rules_enroll_probability")
|
||||||
|
.groupBy("CONCAT(major_type, '-', rules_enroll_probability)");
|
||||||
|
return baseMapper.selectList(wrapper).stream().collect(Collectors.toMap(
|
||||||
|
YxSchoolMajor::getRulesEnrollProbabilitySx,(r->r)
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -246,6 +246,7 @@ public class ScoreUtil {
|
||||||
* @param professionalScore 专业成绩
|
* @param professionalScore 专业成绩
|
||||||
* @return 折合成绩
|
* @return 折合成绩
|
||||||
*/
|
*/
|
||||||
|
/*
|
||||||
public static BigDecimal convertIntoScore(String rulesEnrollProbability, BigDecimal culturalScore, BigDecimal professionalScore) {
|
public static BigDecimal convertIntoScore(String rulesEnrollProbability, BigDecimal culturalScore, BigDecimal professionalScore) {
|
||||||
BigDecimal score = new BigDecimal(0);
|
BigDecimal score = new BigDecimal(0);
|
||||||
if (rulesEnrollProbability == null || culturalScore == null || professionalScore == null) {
|
if (rulesEnrollProbability == null || culturalScore == null || professionalScore == null) {
|
||||||
|
|
@ -276,7 +277,7 @@ public class ScoreUtil {
|
||||||
score = score.divide(decimal1, 4, RoundingMode.HALF_UP);
|
score = score.divide(decimal1, 4, RoundingMode.HALF_UP);
|
||||||
return score;
|
return score;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 转换主项成绩
|
* 转换主项成绩
|
||||||
|
|
@ -305,19 +306,24 @@ public class ScoreUtil {
|
||||||
return score;
|
return score;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(operator)) {
|
try {
|
||||||
score = new BigDecimal("0");
|
if (StringUtils.isNotBlank(operator)) {
|
||||||
String[] operators = operator.split("\\+");
|
score = new BigDecimal("0");
|
||||||
for (String d : operators) {
|
String[] operators = operator.split("\\+");
|
||||||
String[] split = d.split("\\*");
|
String[] split = null;
|
||||||
if (split[0].contains("文")) {
|
for (String d : operators) {
|
||||||
score = score.add(culturalScore.multiply(new BigDecimal(split[1])));
|
split = d.split("\\*");
|
||||||
} else {
|
if (split[0].contains("文")) {
|
||||||
score = score.add(professionalScore.multiply(new BigDecimal(split[1])));
|
score = score.add(culturalScore.multiply(new BigDecimal(split[1])));
|
||||||
|
} else {
|
||||||
|
score = score.add(professionalScore.multiply(new BigDecimal(split[1])));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
score = score.divide(decimal1, 4, RoundingMode.HALF_UP);
|
||||||
|
}catch (Exception e){
|
||||||
|
throw new RuntimeException("计算分数出错: "+ rulesEnrollProbability +":"+ operator);
|
||||||
}
|
}
|
||||||
score = score.divide(decimal1, 4, RoundingMode.HALF_UP);
|
|
||||||
return score;
|
return score;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue