update
This commit is contained in:
parent
1953f50c5c
commit
64069bf2f2
|
|
@ -91,62 +91,110 @@ public class ArtRecommendMajorController {
|
|||
@ApiOperation(value = "投档分测算")
|
||||
@GetMapping("/calculateInvestment")
|
||||
public Result<?> calculateInvestment(QueryCalculateInvestmentVO queryCalculateInvestmentVO) {
|
||||
BigDecimal culturalScore = new BigDecimal(queryCalculateInvestmentVO.getCulturalScore());
|
||||
BigDecimal professionalScore = new BigDecimal(queryCalculateInvestmentVO.getProfessionalScore());
|
||||
//获取 院校专业信息列表,录取方式notnull
|
||||
LambdaQueryWrapper<YxSchoolMajor> yxSchoolMajorLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
yxSchoolMajorLambdaQueryWrapper.isNotNull(YxSchoolMajor::getRulesEnrollProbability);
|
||||
//字段匹配: batch 批次,category 文理分科,majorType 专业类型
|
||||
if (!"高职高专".equals(queryCalculateInvestmentVO.getBatch())) {
|
||||
yxSchoolMajorLambdaQueryWrapper.ne(YxSchoolMajor::getBatch, "高职高专");
|
||||
}else{
|
||||
} else {
|
||||
yxSchoolMajorLambdaQueryWrapper.eq(YxSchoolMajor::getBatch, queryCalculateInvestmentVO.getBatch());
|
||||
}
|
||||
|
||||
yxSchoolMajorLambdaQueryWrapper.eq(StringUtils.isNotBlank(queryCalculateInvestmentVO.getCategory()), YxSchoolMajor::getCategory, queryCalculateInvestmentVO.getCategory());
|
||||
yxSchoolMajorLambdaQueryWrapper.eq(StringUtils.isNotBlank(queryCalculateInvestmentVO.getProfessionalCategory()), YxSchoolMajor::getMajorType, queryCalculateInvestmentVO.getProfessionalCategory());
|
||||
if (!"体育类".equals(queryCalculateInvestmentVO.getProfessionalCategory())) {
|
||||
List<String> probabilityOperatorList = Arrays.asList("文*0.8+专*0.5","文*0.7+专*0.75","文*0.6+专*1","文*0.5+专*1.25");
|
||||
yxSchoolMajorLambdaQueryWrapper.in(YxSchoolMajor::getProbabilityOperator,probabilityOperatorList);
|
||||
}
|
||||
List<YxSchoolMajor> schooMajorList = yxSchoolMajorService.list(yxSchoolMajorLambdaQueryWrapper);
|
||||
|
||||
List<ArtCalculateInvestmentDTO> calculateInvestmentDTOList = new ArrayList<>();
|
||||
try {
|
||||
if (CollectionUtils.isEmpty(schooMajorList)) {
|
||||
return Result.OK();
|
||||
Map<String,String> rulesEnrollProbabilityMap=new HashMap<>();
|
||||
rulesEnrollProbabilityMap.put("专过文排","专过文排");
|
||||
rulesEnrollProbabilityMap.put("文*0.8+专*0.5","文8专2");
|
||||
rulesEnrollProbabilityMap.put("文*0.7+专*0.75","文7专3");
|
||||
rulesEnrollProbabilityMap.put("文*0.6+专*1","文6专4");
|
||||
rulesEnrollProbabilityMap.put("文*0.5+专*1.25","文5专5");
|
||||
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;
|
||||
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();
|
||||
}
|
||||
BigDecimal culturalScore = new BigDecimal(queryCalculateInvestmentVO.getCulturalScore());
|
||||
BigDecimal professionalScore = new BigDecimal(queryCalculateInvestmentVO.getProfessionalScore());
|
||||
//根据录取方式,计算折合分数
|
||||
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(rulesEnrollProbability);
|
||||
artCalculateInvestmentDTO.setProbabilityOperator(yxSchoolMajor.getProbabilityOperator());
|
||||
if (rulesEnrollProbability.contains("文*0.133+专*0")) {
|
||||
System.out.println("111");
|
||||
for (String probabilityOperator : rulesEnrollProbabilityList) {
|
||||
artCalculateInvestmentDTO = new ArtCalculateInvestmentDTO();
|
||||
if (probabilityOperator.equals("专过文排")) {
|
||||
artCalculateInvestmentDTO.setRulesEnrollProbability(rulesEnrollProbabilityMap.get(probabilityOperator));
|
||||
artCalculateInvestmentDTO.setProbabilityOperator("文*1");
|
||||
artCalculateInvestmentDTO.setScore(culturalScore);
|
||||
artCalculateInvestmentDTO.setSchoolNum((int) schooMajorList.stream().filter(s->s.getRulesEnrollProbability().equals("专过文排")).count());
|
||||
calculateInvestmentDTOList.add(artCalculateInvestmentDTO);
|
||||
} else {
|
||||
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]);
|
||||
}
|
||||
}
|
||||
artCalculateInvestmentDTO.setScore(ScoreUtil.convertIntoScore(rulesEnrollProbability, culturalScore, professionalScore, null, yxSchoolMajor.getProbabilityOperator()));
|
||||
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);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
return Result.error("计算折合分出错,请联系管理员");
|
||||
} 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("计算折合分出错,请联系管理员");
|
||||
}
|
||||
}
|
||||
return Result.OK(calculateInvestmentDTOList);
|
||||
}
|
||||
|
|
@ -160,6 +208,6 @@ public class ArtRecommendMajorController {
|
|||
String year = queryRecommendMajorVO.getYear();
|
||||
AssertUtils.notNull(loginUser, "未获取到登录信息");
|
||||
AssertUtils.notNull(year, "请选择年份");
|
||||
return Result.OK(testCulturalService.testCultural(schoolCode,year));
|
||||
return Result.OK(testCulturalService.testCultural(schoolCode, year));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -366,7 +366,7 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
|
|||
yxHistoryMajorEnroll.setControlLine(multiply);
|
||||
yxHistoryMajorEnroll.setRulesEnrollProbability("文过专排");
|
||||
} else if ("专过文排".equals(rulesEnrollProbability)) {
|
||||
BigDecimal multiply = specialScore.multiply(wenhuaBili);
|
||||
BigDecimal multiply = culturalScore.multiply(wenhuaBili);
|
||||
yxHistoryMajorEnroll.setControlLine(multiply);
|
||||
yxHistoryMajorEnroll.setRulesEnrollProbability("专过文排");
|
||||
} else if ("其他计算办法".equals(rulesEnrollProbability)) {
|
||||
|
|
|
|||
|
|
@ -518,6 +518,9 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
|
|||
recommendMajorDTO.setStudentConvertedScore(studentScore);
|
||||
recommendMajorDTO.setStudentScore(studentScore);
|
||||
|
||||
if (recommendMajorDTO.getSchoolCode().equals("6198") && "06".equals(recommendMajorDTO.getEnrollmentCode())) {
|
||||
System.out.println("1111");
|
||||
}
|
||||
|
||||
//录取方式计算
|
||||
if (rulesEnrollProbability.equals("文过专排主科")) {
|
||||
|
|
@ -542,9 +545,6 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
|
|||
historyThreeYearDiff = (BigDecimal) differenceMap.get("scoreDifference");
|
||||
//historyThreeYearDiff = sum.divide(new BigDecimal(size), 4, RoundingMode.HALF_UP);
|
||||
nowYearDiff = studentScore.subtract(nowYearProvincialControlLine);
|
||||
if (historyThreeYearDiff == null || historyThreeYearDiff.doubleValue() == 0) {
|
||||
continue;
|
||||
}
|
||||
enrollProbability = ScoreUtil.commonCheckEnrollProbability(nowYearDiff,historyThreeYearDiff);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -170,8 +170,9 @@ public class YxHistoryMajorEnrollServiceImpl extends ServiceImpl<YxHistoryMajorE
|
|||
if (StringUtils.isNotBlank(id)) {
|
||||
lambdaQueryWrapper.in(YxHistoryMajorEnroll::getId, Arrays.asList(id.split(",")));
|
||||
}
|
||||
lambdaQueryWrapper.eq(YxHistoryMajorEnroll::getMajorType,"体育类");
|
||||
lambdaQueryWrapper.eq(YxHistoryMajorEnroll::getBatch,"本科");
|
||||
// lambdaQueryWrapper.eq(YxHistoryMajorEnroll::getMajorType,"体育类");
|
||||
// lambdaQueryWrapper.eq(YxHistoryMajorEnroll::getBatch,"本科");
|
||||
lambdaQueryWrapper.eq(YxHistoryMajorEnroll::getRulesEnrollProbability,"专过文排");
|
||||
//lambdaQueryWrapper.in(YxHistoryMajorEnroll::getRulesEnrollProbability,"专过文排","文过专排");
|
||||
List<YxHistoryMajorEnroll> list = list(lambdaQueryWrapper);
|
||||
if (CollectionUtils.isNotEmpty(list)) {
|
||||
|
|
@ -266,7 +267,7 @@ public class YxHistoryMajorEnrollServiceImpl extends ServiceImpl<YxHistoryMajorE
|
|||
record.setControlLine(multiply);
|
||||
record.setRulesEnrollProbability("文过专排");
|
||||
} else if ("专过文排".equals(rulesEnrollProbability)) {
|
||||
BigDecimal multiply = specialScore.multiply(wenhuaBili);
|
||||
BigDecimal multiply = culturalScore.multiply(wenhuaBili);
|
||||
record.setControlLine(multiply);
|
||||
record.setRulesEnrollProbability("专过文排");
|
||||
} else if ("其他计算办法".equals(rulesEnrollProbability)) {
|
||||
|
|
@ -291,7 +292,7 @@ public class YxHistoryMajorEnrollServiceImpl extends ServiceImpl<YxHistoryMajorE
|
|||
}
|
||||
}
|
||||
updateBatchById(list,500);
|
||||
log.debug("已刷新省控线");
|
||||
log.error("已刷新省控线");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue