From 25fc43daf0287b90af02b3c3d75290c5aa686dd3 Mon Sep 17 00:00:00 2001 From: zhouwentao <1577701412@qq.com> Date: Sat, 9 Mar 2024 15:00:45 +0800 Subject: [PATCH] updates --- .../ArtRecommendMajorController.java | 45 +++++++++++++++++-- .../modules/art/dto/ArtTestCulturalDTO.java | 2 + .../YxHistoryScoreControlLineController.java | 3 ++ .../modules/yx/mapper/xml/YxSchoolMapper.xml | 4 ++ .../yx/service/impl/YxSchoolServiceImpl.java | 1 + 5 files changed, 52 insertions(+), 3 deletions(-) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/art/controller/ArtRecommendMajorController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/art/controller/ArtRecommendMajorController.java index 755b87b..f15e2e6 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/art/controller/ArtRecommendMajorController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/art/controller/ArtRecommendMajorController.java @@ -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 artTestCulturalDtoList = new ArrayList<>(); //查询条件构建对象 LambdaQueryWrapper 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 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); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/art/dto/ArtTestCulturalDTO.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/art/dto/ArtTestCulturalDTO.java index 9e28240..ce1c080 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/art/dto/ArtTestCulturalDTO.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/art/dto/ArtTestCulturalDTO.java @@ -37,5 +37,7 @@ public class ArtTestCulturalDTO implements Serializable { private BigDecimal culturalScore; @ApiModelProperty("省专业分控线") private BigDecimal SpecialScore; + @ApiModelProperty("当前学生成绩需要超越多少分数") + private BigDecimal needScore; } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/controller/YxHistoryScoreControlLineController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/controller/YxHistoryScoreControlLineController.java index a8328c4..a762802 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/controller/YxHistoryScoreControlLineController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/controller/YxHistoryScoreControlLineController.java @@ -100,6 +100,9 @@ public class YxHistoryScoreControlLineController extends JeecgController()); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxSchoolMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxSchoolMapper.xml index d81e854..d1c3aa7 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxSchoolMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxSchoolMapper.xml @@ -226,6 +226,10 @@ AND major_type = #{qvo.professionalCategory} + + + AND category = #{qvo.cognitioPolyclinic} + ) sm ON sm.school_code = sc.school_code where 1=1 AND s.is_ys = 1 diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxSchoolServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxSchoolServiceImpl.java index 456811b..94e3f7a 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxSchoolServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxSchoolServiceImpl.java @@ -69,6 +69,7 @@ public class YxSchoolServiceImpl extends ServiceImpl i String professionalCategory = currentUserScore.getProfessionalCategory();//专业类别 String professionalCategoryChildren = currentUserScore.getProfessionalCategoryChildren();//子类 List pCategoryChildrenList = ScoreUtil.checkProfessionalCategoryToChildrenList(professionalCategoryChildren); + queryRecommendMajorVO.setCognitioPolyclinic(currentUserScore.getCognitioPolyclinic()); queryRecommendMajorVO.setProfessionalCategory(professionalCategory); queryRecommendMajorVO.setPCategoryChildrenList(pCategoryChildrenList); if (StringUtils.isNotBlank(queryRecommendMajorVO.getMajorCode())) {