updates列表展示年份跟计算年份做区分

This commit is contained in:
zhouwentao 2025-03-01 18:44:22 +08:00
parent 80776bcd13
commit 469b41d533
8 changed files with 47 additions and 26 deletions

View File

@ -146,7 +146,7 @@ public class MiniTestCulturalService {
artTestCulturalDto.setDetail(yxSchoolMajor.getDetail());
// artTestCulturalDto.setProbabilityOperator(yxSchoolMajor.getProbabilityOperator());
// artTestCulturalDto.setRulesEnrollProbability(yxSchoolMajor.getRulesEnrollProbability());
if(StringUtils.isBlank(yxHistoryMajorEnroll.getProbabilityOperator())){
if(yxHistoryMajorEnroll == null || StringUtils.isBlank(yxHistoryMajorEnroll.getProbabilityOperator())){
continue;
}
artTestCulturalDto.setProbabilityOperator(yxHistoryMajorEnroll.getProbabilityOperator());

View File

@ -1,10 +1,7 @@
package org.jeecg.modules.yx.constant;
import org.apache.commons.collections.CollectionUtils;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@ -18,7 +15,7 @@ public class YxConstant {
/**
* 当前年
*/
public static String nowYear = "2024";
public static final String nowYear = "2024";
/**
* 使用省控线年份
@ -27,7 +24,9 @@ public class YxConstant {
/**
* 旧日期
*/
public static List<String> oldYearList = Arrays.asList("2023", "2022", "2021", "2020");
public static final List<String> oldYearList = Arrays.asList("2023", "2022", "2021", "2020");
public static final List<String> showOldYearList = Arrays.asList("2024", "2023", "2022", "2021", "2020");
public static List<String> cankaoMajorTypeList = Arrays.asList("音乐类", "舞蹈类", "播音与主持类", "表演类", "戏曲类");

View File

@ -29,7 +29,7 @@ public interface IYxHistoryMajorEnrollService extends IService<YxHistoryMajorEnr
* 给推荐专业列表写入历年分数信息
* @param recommendMajorDtoList 推荐专业列表
*/
void recommendMajorDTOListSetHistoryInfo(List<RecommendMajorDTO> recommendMajorDtoList);
void recommendMajorDTOListSetHistoryInfo(List<RecommendMajorDTO> recommendMajorDtoList, List<String> historyYearsList);
/**
* 给志愿单中的专业写入历年分数信息

View File

@ -59,18 +59,18 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
@Override
public List<RecommendMajorDTO> calculationMajor(YxUserScore userScore) {
// 最终返回的对象
List<RecommendMajorDTO> recommendMajorDTOList = new ArrayList<>();
if (userScore != null) {
String professionalCategory = userScore.getProfessionalCategory();
// 查询专业列表参数
QueryRecommendMajorVO queryRecommendMajorVO = new QueryRecommendMajorVO();
queryRecommendMajorVO.setProfessionalCategory(professionalCategory);//专业类别
queryRecommendMajorVO.setCognitioPolyclinic(userScore.getCognitioPolyclinic());//文理分科
//查询专业
queryRecommendMajorVO.setProfessionalCategory(userScore.getProfessionalCategory()); // 专业类别
queryRecommendMajorVO.setCognitioPolyclinic(userScore.getCognitioPolyclinic()); // 文理分科
long startTime = new Date().getTime();
recommendMajorDTOList = yxSchoolMajorMapper.recommendMajorList(queryRecommendMajorVO);
recommendMajorDTOList = yxSchoolMajorMapper.recommendMajorList(queryRecommendMajorVO); // 获取到当前专业/理科的数据
//将历史录取信息合并到专业信息里
if (CollectionUtils.isNotEmpty(recommendMajorDTOList)) {
yxHistoryMajorEnrollService.recommendMajorDTOListSetHistoryInfo(recommendMajorDTOList);
yxHistoryMajorEnrollService.recommendMajorDTOListSetHistoryInfo(recommendMajorDTOList, ScoreUtil.getCalOldYears());
this.checkEnrollProbability(recommendMajorDTOList, userScore);
}
long endTime = new Date().getTime();
@ -225,7 +225,7 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
}
}
//包装历年信息
yxHistoryMajorEnrollService.recommendMajorDTOListSetHistoryInfo(recommendMajorDTOList);
yxHistoryMajorEnrollService.recommendMajorDTOListSetHistoryInfo(recommendMajorDTOList, ScoreUtil.getShowOldYears());
//组装返回对象
int total = recommendMajorList.size();
IPage<RecommendMajorDTO> pageList = new Page<>();
@ -269,7 +269,7 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
}
//获取推荐志愿信息service
List<RecommendMajorDTO> recommendMajorList = baseMapper.recommendMajorList(activeCurrentUserScore.getCalculationTableName(),queryRecommendMajorVO);
yxHistoryMajorEnrollService.recommendMajorDTOListSetHistoryInfo(recommendMajorList);
yxHistoryMajorEnrollService.recommendMajorDTOListSetHistoryInfo(recommendMajorList, ScoreUtil.getShowOldYears());
ArtRecommendMajorBaseDTO artRecommendMajorBaseDTO = new ArtRecommendMajorBaseDTO();
convertRecommendMajorListToNull(recommendMajorList);
artRecommendMajorBaseDTO.setList(recommendMajorList);
@ -371,7 +371,7 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
queryRecommendMajorVO.setScoreId(activeCurrentUserScore.getId());
List<RecommendMajorDTO> recommendMajorList = baseMapper.recommendMajorListBenOrZhuan(activeCurrentUserScore.getCalculationTableName(),queryRecommendMajorVO);
yxHistoryMajorEnrollService.recommendMajorDTOListSetHistoryInfo(recommendMajorList);
yxHistoryMajorEnrollService.recommendMajorDTOListSetHistoryInfo(recommendMajorList,ScoreUtil.getShowOldYears());
//插入 院校标签
this.setSchoolTagsList(recommendMajorList);

View File

@ -11,6 +11,7 @@ import org.jeecg.modules.yx.entity.YxHistoryScoreControlLine;
import org.jeecg.modules.yx.mapper.YxHistoryMajorEnrollMapper;
import org.jeecg.modules.yx.service.IYxHistoryMajorEnrollService;
import org.jeecg.modules.yx.service.IYxHistoryScoreControlLineService;
import org.jeecg.modules.yx.util.ScoreUtil;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
@ -65,7 +66,7 @@ public class YxHistoryMajorEnrollServiceImpl extends ServiceImpl<YxHistoryMajorE
@Override
public void recommendMajorDTOListSetHistoryInfo(List<RecommendMajorDTO> recommendMajorDtoList){
public void recommendMajorDTOListSetHistoryInfo(List<RecommendMajorDTO> recommendMajorDtoList, List<String> historyYearsList){
if (CollectionUtils.isNotEmpty(recommendMajorDtoList)) {
String majorType = recommendMajorDtoList.get(0).getMajorType();
String category = recommendMajorDtoList.get(0).getCategory();
@ -73,7 +74,7 @@ public class YxHistoryMajorEnrollServiceImpl extends ServiceImpl<YxHistoryMajorE
Set<String> schoolCodeSet = recommendMajorDtoList.stream().map(RecommendMajorDTO::getSchoolCode).collect(Collectors.toSet());
//获取历年的招生计划
LambdaQueryWrapper<YxHistoryMajorEnroll> hmeWrapper = new LambdaQueryWrapper<>();
hmeWrapper.in(YxHistoryMajorEnroll::getYear, YxConstant.oldYearList);
hmeWrapper.in(YxHistoryMajorEnroll::getYear, historyYearsList);
hmeWrapper.in(YxHistoryMajorEnroll::getMajorName, majorNameSet);
hmeWrapper.in(YxHistoryMajorEnroll::getSchoolCode,schoolCodeSet);
hmeWrapper.eq(YxHistoryMajorEnroll::getCategory, category);//文科/理科
@ -99,7 +100,7 @@ public class YxHistoryMajorEnrollServiceImpl extends ServiceImpl<YxHistoryMajorE
historyMajorEnrollList = new ArrayList<>();
yearMajorEnrollMap = new LinkedHashMap<>();
//2022年
for (String year : YxConstant.oldYearList) {
for (String year : historyYearsList) {
key = recommendMajorDTO.getSchoolCode() + a_ + recommendMajorDTO.getMajorName() + a_ + recommendMajorDTO.getCategory() + a_ + recommendMajorDTO.getBatch();
yxHistoryMajorEnroll = majorEnrollMap.get(year + a_ + key);
if (yxHistoryMajorEnroll != null) {
@ -126,7 +127,7 @@ public class YxHistoryMajorEnrollServiceImpl extends ServiceImpl<YxHistoryMajorE
Set<String> schoolCodeSet = recordDtoList.stream().map(RecommendMajorDTO::getSchoolCode).collect(Collectors.toSet());
//获取历年的招生计划
LambdaQueryWrapper<YxHistoryMajorEnroll> hmeWrapper = new LambdaQueryWrapper<>();
hmeWrapper.in(YxHistoryMajorEnroll::getYear, YxConstant.oldYearList);
hmeWrapper.in(YxHistoryMajorEnroll::getYear, ScoreUtil.getShowOldYears());
hmeWrapper.in(YxHistoryMajorEnroll::getMajorName, majorNameSet);
hmeWrapper.in(YxHistoryMajorEnroll::getSchoolCode,schoolCodeSet);
hmeWrapper.eq(YxHistoryMajorEnroll::getCategory, category);//文科/理科
@ -152,7 +153,7 @@ public class YxHistoryMajorEnrollServiceImpl extends ServiceImpl<YxHistoryMajorE
historyMajorEnrollList = new ArrayList<>();
yearMajorEnrollMap = new LinkedHashMap<>();
//2022年
for (String year : YxConstant.oldYearList) {
for (String year : ScoreUtil.getShowOldYears()) {
key = recommendMajorDTO.getSchoolCode() + a_ + recommendMajorDTO.getMajorName() + a_ + recommendMajorDTO.getCategory() + a_ + recommendMajorDTO.getBatch();
yxHistoryMajorEnroll = majorEnrollMap.get(year + a_ + key);
if (yxHistoryMajorEnroll != null) {

View File

@ -108,7 +108,6 @@ public class YxSchoolMajorServiceImpl extends ServiceImpl<YxSchoolMajorMapper, Y
@Override
public List<RecommendMajorDTO> recommendMajorList(QueryRecommendMajorVO queryRecommendMajorVO) {
List<String> historyYearList = YxConstant.oldYearList;
//如果没有算出录取批次则返回空数据
if (StringUtils.isBlank(queryRecommendMajorVO.getBatch()) && CollectionUtils.isEmpty(queryRecommendMajorVO.getBatchList())) {
return new ArrayList<>();
@ -137,7 +136,7 @@ public class YxSchoolMajorServiceImpl extends ServiceImpl<YxSchoolMajorMapper, Y
//获取历年的招生计划
LambdaQueryWrapper<YxHistoryMajorEnroll> hmeWrapper = new LambdaQueryWrapper<>();
Set<String> majorNameList = recommendMajorDTOS.stream().map(RecommendMajorDTO::getMajorName).collect(Collectors.toSet());
hmeWrapper.in(YxHistoryMajorEnroll::getYear, YxConstant.oldYearList);
hmeWrapper.in(YxHistoryMajorEnroll::getYear, ScoreUtil.getShowOldYears());
hmeWrapper.eq(YxHistoryMajorEnroll::getCategory, queryRecommendMajorVO.getCognitioPolyclinic());//文科/理科
hmeWrapper.isNotNull(YxHistoryMajorEnroll::getRulesEnrollProbability);
hmeWrapper.eq(YxHistoryMajorEnroll::getMajorType,queryRecommendMajorVO.getProfessionalCategory());
@ -161,7 +160,7 @@ public class YxSchoolMajorServiceImpl extends ServiceImpl<YxSchoolMajorMapper, Y
historyMajorEnrollList = new ArrayList<>();
yearMajorEnrollMap = new LinkedHashMap<>();
//2022年
for (String year : historyYearList) {
for (String year : ScoreUtil.getShowOldYears()) {
key = recommendMajorDTO.getSchoolCode() + a_ + recommendMajorDTO.getMajorName() + a_ + recommendMajorDTO.getCategory() + a_ + recommendMajorDTO.getBatch();
yxHistoryMajorEnroll = majorEnrollMap.get(year + a_ + key);
if (yxHistoryMajorEnroll != null) {

View File

@ -19,6 +19,7 @@ import org.jeecg.modules.yx.entity.*;
import org.jeecg.modules.yx.mapper.YxVolunteerMapper;
import org.jeecg.modules.yx.mapper.YxVolunteerRecordMapper;
import org.jeecg.modules.yx.service.*;
import org.jeecg.modules.yx.util.ScoreUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -82,7 +83,7 @@ public class YxVolunteerServiceImpl extends ServiceImpl<YxVolunteerMapper, YxVol
LambdaQueryWrapper<YxHistoryMajorEnroll> hmeWrapper = new LambdaQueryWrapper<>();
List<String> majorNameList = recordDTOList.stream().map(VolunteerRecordDTO::getMajorName).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(majorNameList)) {
hmeWrapper.in(YxHistoryMajorEnroll::getYear, YxConstant.oldYearList);
hmeWrapper.in(YxHistoryMajorEnroll::getYear, ScoreUtil.getShowOldYears());
hmeWrapper.eq(YxHistoryMajorEnroll::getCategory, cognitioPolyclinic);//文科/理科
hmeWrapper.in(YxHistoryMajorEnroll::getMajorName, majorNameList);
hmeWrapper.orderByDesc(YxHistoryMajorEnroll::getYear);
@ -103,7 +104,7 @@ public class YxVolunteerServiceImpl extends ServiceImpl<YxVolunteerMapper, YxVol
yearMajorEnrollMap = new LinkedHashMap<>();
sm = schoolCode + a_ + majorName;
//往年分数线
for (String year : YxConstant.oldYearList) {
for (String year : ScoreUtil.getShowOldYears()) {
yxHistoryMajorEnroll = majorEnrollMap.get(sm + a_ + year);
if (yxHistoryMajorEnroll != null) {
yearMajorEnrollMap.put(yxHistoryMajorEnroll.getYear(), yxHistoryMajorEnroll);

View File

@ -18,6 +18,27 @@ import java.util.*;
* @Date 2023/11/9 13:30
*/
public class ScoreUtil {
public static String getNowYear(){
// 获取当前年
return YxConstant.nowYear;
}
/**
* 用于计算成绩时用到的历年时间
* @return
*/
public static List<String> getCalOldYears(){
return YxConstant.oldYearList;
}
/**
* 用于列表上显示历年信息
* @return
*/
public static List<String> getShowOldYears(){
return YxConstant.showOldYearList;
}
/**
* 计算 往年分数差之和 (往年的录取线-省控线)
* @param historyMajorEnrollList 往年录取分数