updates
This commit is contained in:
parent
a8c28627ce
commit
25fc43daf0
|
|
@ -18,6 +18,7 @@ import org.jeecg.modules.art.dto.ArtRecommendMajorBaseDTO;
|
|||
import org.jeecg.modules.art.dto.ArtTestCulturalDTO;
|
||||
import org.jeecg.modules.art.vo.QueryCalculateInvestmentVO;
|
||||
import org.jeecg.modules.art.vo.QueryRecommendMajorVO;
|
||||
import org.jeecg.modules.yx.constant.YxConstant;
|
||||
import org.jeecg.modules.yx.entity.*;
|
||||
import org.jeecg.modules.yx.service.IYxHistoryMajorEnrollService;
|
||||
import org.jeecg.modules.yx.service.IYxHistoryScoreControlLineService;
|
||||
|
|
@ -30,6 +31,7 @@ import org.springframework.web.bind.annotation.RestController;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
|
@ -206,7 +208,13 @@ public class ArtRecommendMajorController {
|
|||
String year = queryRecommendMajorVO.getYear();
|
||||
AssertUtils.notNull(loginUser, "未获取到登录信息");
|
||||
AssertUtils.notNull(year, "请选择年份");
|
||||
//========================学生的成绩 start
|
||||
YxUserScore userScore = yxUserScoreService.getActiveCurrentUserScore();
|
||||
String professionalCategory = userScore.getProfessionalCategory();
|
||||
String cognitioPolyclinic = userScore.getCognitioPolyclinic();
|
||||
BigDecimal culturalScore = userScore.getCulturalScore();
|
||||
BigDecimal professionalScore = userScore.getProfessionalScore();
|
||||
//========================end
|
||||
List<ArtTestCulturalDTO> artTestCulturalDtoList = new ArrayList<>();
|
||||
//查询条件构建对象
|
||||
LambdaQueryWrapper<YxSchoolMajor> yxSchoolMajorLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
|
|
@ -215,8 +223,9 @@ public class ArtRecommendMajorController {
|
|||
if (userScore != null) {
|
||||
//根据当前用户的专业类别查询
|
||||
yxSchoolMajorLambdaQueryWrapper.eq(YxSchoolMajor::getMajorType, userScore.getProfessionalCategory());
|
||||
// yxSchoolMajorLambdaQueryWrapper.eq(YxSchoolMajor::getBatch,userScore.getBatch());
|
||||
yxSchoolMajorLambdaQueryWrapper.eq(YxSchoolMajor::getCategory,cognitioPolyclinic);
|
||||
yxHistoryScoreControlLineLambdaQueryWrapper.eq(YxHistoryScoreControlLine::getProfessionalCategory, userScore.getProfessionalCategory());
|
||||
yxSchoolMajorLambdaQueryWrapper.eq(YxSchoolMajor::getCategory,cognitioPolyclinic);
|
||||
}
|
||||
String a_ = "_";
|
||||
yxSchoolMajorLambdaQueryWrapper.eq(YxSchoolMajor::getSchoolCode, schoolCode);
|
||||
|
|
@ -226,12 +235,14 @@ public class ArtRecommendMajorController {
|
|||
}
|
||||
yxSchoolMajorList = yxSchoolMajorList.stream().collect(Collectors.collectingAndThen(
|
||||
Collectors.toCollection(() -> new TreeSet<>(
|
||||
Comparator.comparing(p -> p.getRulesEnrollProbability()))), ArrayList::new));
|
||||
Comparator.comparing(p ->p.getCategory()+ p.getRulesEnrollProbability()))), ArrayList::new));
|
||||
|
||||
Set<String> majorNameSet = yxSchoolMajorList.stream().map(YxSchoolMajor::getMajorName).collect(Collectors.toSet());
|
||||
|
||||
|
||||
yxHistoryMajorEnrollLambdaQueryWrapper.isNotNull(YxHistoryMajorEnroll::getRulesEnrollProbability);
|
||||
yxHistoryMajorEnrollLambdaQueryWrapper.isNotNull(YxHistoryMajorEnroll::getAdmissionLine);
|
||||
yxHistoryMajorEnrollLambdaQueryWrapper.orderByDesc(YxHistoryMajorEnroll::getYear);
|
||||
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getCategory,cognitioPolyclinic);
|
||||
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getSchoolCode, schoolCode);
|
||||
yxHistoryMajorEnrollLambdaQueryWrapper.in(YxHistoryMajorEnroll::getMajorName, majorNameSet);
|
||||
//获取 历年分数信息
|
||||
|
|
@ -286,7 +297,35 @@ public class ArtRecommendMajorController {
|
|||
//专业分控线
|
||||
artTestCulturalDto.setSpecialScore(yxHistoryScoreControlLine.getSpecialScore());
|
||||
}
|
||||
//计算需要超过多少分可以录取
|
||||
BigDecimal schoolOldYearAdmissionLine = artTestCulturalDto.getScore();
|
||||
//录取方式
|
||||
String probabilityOperator = artTestCulturalDto.getProbabilityOperator();
|
||||
if (StringUtils.isNotBlank(probabilityOperator) && probabilityOperator.contains("文")&& probabilityOperator.contains("专")) {
|
||||
String[] split = probabilityOperator.split("\\+");
|
||||
BigDecimal culturalProbabilityOperator = null;
|
||||
BigDecimal professionalProbabilityOperator = null;
|
||||
//先取出文化分和专业分的计算方式
|
||||
for (String s : split) {
|
||||
if (s.contains("专")) {
|
||||
professionalProbabilityOperator = new BigDecimal( s.split("\\*")[1]);
|
||||
}else{
|
||||
culturalProbabilityOperator = new BigDecimal(s.split("\\*")[1]);
|
||||
}
|
||||
}
|
||||
//如果计算方式为空就不算了
|
||||
if (culturalProbabilityOperator!=null && professionalProbabilityOperator !=null && culturalProbabilityOperator.compareTo(YxConstant.bigDecimal0)>0 && professionalProbabilityOperator.compareTo(YxConstant.bigDecimal0)>0) {
|
||||
//当前输入分数乘以专业折合分
|
||||
BigDecimal professionalConverted = professionalScore.multiply(professionalProbabilityOperator);
|
||||
//余数,院校分数-专业折合分
|
||||
BigDecimal remainder = artTestCulturalDto.getScore().subtract(professionalConverted);
|
||||
//余数/文化课计算方式
|
||||
BigDecimal divide = remainder.divide(culturalProbabilityOperator, 0, RoundingMode.HALF_UP);
|
||||
//需要超越多少分
|
||||
artTestCulturalDto.setNeedScore(divide);
|
||||
}
|
||||
|
||||
}
|
||||
artTestCulturalDtoList.add(artTestCulturalDto);
|
||||
}
|
||||
return Result.OK(artTestCulturalDtoList);
|
||||
|
|
|
|||
|
|
@ -37,5 +37,7 @@ public class ArtTestCulturalDTO implements Serializable {
|
|||
private BigDecimal culturalScore;
|
||||
@ApiModelProperty("省专业分控线")
|
||||
private BigDecimal SpecialScore;
|
||||
@ApiModelProperty("当前学生成绩需要超越多少分数")
|
||||
private BigDecimal needScore;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -100,6 +100,9 @@ public class YxHistoryScoreControlLineController extends JeecgController<YxHisto
|
|||
historyScoreControlLine.setCulturalScoreXk(YxConstant.bigDecimal0);
|
||||
historyScoreControlLine.setSpecialScore(YxConstant.bigDecimal0);
|
||||
historyScoreControlLine.setSpecialScoreXk(YxConstant.bigDecimal0);
|
||||
}else{
|
||||
historyScoreControlLine.setCulturalScore(YxConstant.bigDecimal0);
|
||||
historyScoreControlLine.setCulturalScoreXk(YxConstant.bigDecimal0);
|
||||
}
|
||||
}
|
||||
list = dataMaps.getOrDefault(year,new ArrayList<>());
|
||||
|
|
|
|||
|
|
@ -226,6 +226,10 @@
|
|||
<if test="qvo.professionalCategory!=null and qvo.professionalCategory!=''">
|
||||
AND major_type = #{qvo.professionalCategory}
|
||||
</if>
|
||||
<!--文理分科-->
|
||||
<if test="qvo.cognitioPolyclinic!=null and qvo.cognitioPolyclinic!=''">
|
||||
AND category = #{qvo.cognitioPolyclinic}
|
||||
</if>
|
||||
) sm ON sm.school_code = sc.school_code
|
||||
where 1=1 AND s.is_ys = 1
|
||||
<if test="qvo.schoolName!=null and qvo.schoolName!=''">
|
||||
|
|
|
|||
|
|
@ -69,6 +69,7 @@ public class YxSchoolServiceImpl extends ServiceImpl<YxSchoolMapper, YxSchool> i
|
|||
String professionalCategory = currentUserScore.getProfessionalCategory();//专业类别
|
||||
String professionalCategoryChildren = currentUserScore.getProfessionalCategoryChildren();//子类
|
||||
List<String> pCategoryChildrenList = ScoreUtil.checkProfessionalCategoryToChildrenList(professionalCategoryChildren);
|
||||
queryRecommendMajorVO.setCognitioPolyclinic(currentUserScore.getCognitioPolyclinic());
|
||||
queryRecommendMajorVO.setProfessionalCategory(professionalCategory);
|
||||
queryRecommendMajorVO.setPCategoryChildrenList(pCategoryChildrenList);
|
||||
if (StringUtils.isNotBlank(queryRecommendMajorVO.getMajorCode())) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue