This commit is contained in:
zhouwentao 2025-01-16 15:08:29 +08:00
parent a7996dbdae
commit a904dd941f
8 changed files with 67 additions and 23 deletions

View File

@ -147,7 +147,7 @@ public class MiniMajorController {
String year = queryRecommendMajorVO.getYear();
AssertUtils.notNull(loginUser, "未获取到登录信息");
AssertUtils.notNull(year, "请选择年份");
return Result.OK(testCulturalService.testCultural(schoolCode, year));
return Result.OK(testCulturalService.testCultural(schoolCode));
}
@ApiOperation(value = "投档分测算")

View File

@ -48,10 +48,9 @@ public class MiniRecommendMajorController {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//根据 院校代码获取 院校的招生专业计算各专业的录取分数
String schoolCode = queryRecommendMajorVO.getSchoolCode();
String year = queryRecommendMajorVO.getYear();
AssertUtils.notNull(loginUser, "未获取到登录信息");
AssertUtils.notNull(year, "请选择年份");
return Result.OK(testCulturalService.testCultural(schoolCode, year));
// AssertUtils.notNull(year, "请选择年份");
return Result.OK(testCulturalService.testCultural(schoolCode));
}
@ApiOperation(value = "投档分测算")

View File

@ -2,6 +2,8 @@ package org.jeecg.modules.mini.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.jeecg.common.util.DateUtils;
import org.jeecg.modules.web.dto.ArtTestCulturalDTO;
import org.jeecg.modules.yx.constant.YxConstant;
import org.jeecg.modules.yx.entity.YxHistoryMajorEnroll;
@ -47,7 +49,8 @@ public class MiniTestCulturalService {
@Resource
private BiaoyanService biaoyanService;
public List<ArtTestCulturalDTO> testCultural(String schoolCode,String year){
public List<ArtTestCulturalDTO> testCultural(String schoolCode){
String year = DateUtils.getYear() + "";
//========================学生的成绩 start
YxUserScore userScore = yxUserScoreService.getActiveCurrentUserScore();
String professionalCategory = userScore.getProfessionalCategory();
@ -71,10 +74,19 @@ public class MiniTestCulturalService {
if (CollectionUtils.isEmpty(yxSchoolMajorList)) {
return artTestCulturalDtoList;
}
yxSchoolMajorList = yxSchoolMajorList.stream().collect(Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(
Comparator.comparing(p ->p.getCategory()+p.getMajorName()+ p.getRulesEnrollProbability()+p.getDetail()))), ArrayList::new));
// 专业去重
// 这里使用了 Java 8 Stream API 对该集合进行操作
yxSchoolMajorList = yxSchoolMajorList.stream()
// collect 方法用于将流中的元素收集到一个新的集合中
.collect(Collectors.collectingAndThen(
// 首先使用 Collectors.toCollection 收集元素到一个新的集合中
Collectors.toCollection(() -> new TreeSet<>(
// 使用自定义的 Comparator 来保证元素的唯一性和排序顺序
// 这里的 Comparator.comparing 会根据元素的多个属性组合进行比较
Comparator.comparing(p -> p.getCategory() + p.getMajorName() + p.getRulesEnrollProbability() + p.getDetail()))),
// 最终将收集到的元素存储在一个 ArrayList
ArrayList::new));
// 专业名去重
Set<String> majorNameSet = yxSchoolMajorList.stream().map(YxSchoolMajor::getMajorName).collect(Collectors.toSet());
yxHistoryMajorEnrollLambdaQueryWrapper.isNotNull(YxHistoryMajorEnroll::getRulesEnrollProbability);
@ -134,6 +146,9 @@ public class MiniTestCulturalService {
artTestCulturalDto.setDetail(yxSchoolMajor.getDetail());
// artTestCulturalDto.setProbabilityOperator(yxSchoolMajor.getProbabilityOperator());
// artTestCulturalDto.setRulesEnrollProbability(yxSchoolMajor.getRulesEnrollProbability());
if(StringUtils.isBlank(yxSchoolMajor.getPrivateProbabilityOperator())){
continue;
}
artTestCulturalDto.setProbabilityOperator(yxSchoolMajor.getPrivateProbabilityOperator());
artTestCulturalDto.setRulesEnrollProbability(yxSchoolMajor.getPrivateRulesEnrollProbability());
artTestCulturalDto.setMajorNameAll(yxSchoolMajor.getMajorName() + "[" + yxSchoolMajor.getCategory() + "]" + "(" + yxSchoolMajor.getBatch() + ")");
@ -158,8 +173,6 @@ public class MiniTestCulturalService {
//美术与设计类书法类体育类
artTestCulturalDtoList.add(artTestCulturalDto);
}
}
//录取方式运算符
String probabilityOperator = null;

View File

@ -183,9 +183,7 @@ public class ArtRecommendMajorController {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//根据 院校代码获取 院校的招生专业计算各专业的录取分数
String schoolCode = queryRecommendMajorVO.getSchoolCode();
String year = queryRecommendMajorVO.getYear();
AssertUtils.notNull(loginUser, "未获取到登录信息");
AssertUtils.notNull(year, "请选择年份");
return Result.OK(testCulturalService.testCultural(schoolCode, year));
return Result.OK(testCulturalService.testCultural(schoolCode));
}
}

View File

@ -116,9 +116,8 @@ public class WebMajorController {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//根据 院校代码获取 院校的招生专业计算各专业的录取分数
String schoolCode = queryRecommendMajorVO.getSchoolCode();
String year = queryRecommendMajorVO.getYear();
AssertUtils.notNull(loginUser, "未获取到登录信息");
AssertUtils.notNull(year, "请选择年份");
return Result.OK(testCulturalService.testCultural(schoolCode, year));
AssertUtils.notNull(loginUser, "未获取到院校信息");
return Result.OK(testCulturalService.testCultural(schoolCode));
}
}

View File

@ -372,12 +372,16 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
YxHistoryMajorEnroll oldYxHistoryMajorEnroll = null;
LambdaQueryWrapper<YxHistoryMajorEnroll> yxHistoryMajorEnrollLambdaQueryWrapper = new LambdaQueryWrapper<>();
List<YxHistoryMajorEnroll> updateList = new ArrayList<>();
List<YxSchoolMajor> newSchoolMajorList = new ArrayList<>();
List<YxHistoryMajorEnroll> list = ExcelImportUtil.importExcel(file.getInputStream(), YxHistoryMajorEnroll.class, params);
index = 3;
List<String> schoolCodeList = list.stream().filter(l -> StringUtils.isNotBlank(l.getSchoolCode())).map(l -> l.getSchoolCode()).collect(Collectors.toList());
AssertUtils.notTrue(CollectionUtils.isEmpty(schoolCodeList),"未读取到学校代码");
Map<String,YxSchoolMajor> schoolMajorMap = new LinkedHashMap<>();
for (YxSchoolMajor yxSchoolMajor : yxSchoolMajorService.list(new LambdaQueryWrapper<YxSchoolMajor>().in(YxSchoolMajor::getSchoolCode, schoolCodeList))) {
if(yxSchoolMajor.getSchoolCode().equals("0019")){
System.out.println("'111");
}
key = yxSchoolMajor.getSchoolCode()+"_"+yxSchoolMajor.getMajorName()+"_"+yxSchoolMajor.getBatch()+"_"+yxSchoolMajor.getCategory();
schoolMajorMap.put(key,yxSchoolMajor);
}
@ -413,7 +417,12 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
AssertUtils.notEmpty(category, String.format("行[%s],请输入科类", index));
//AssertUtils.notEmpty(rulesEnrollProbability, String.format("行[%s],请输入录取方式", index));
AssertUtils.notEmpty(probabilityOperator, String.format("行[%s],请输入录取方式运算符", index));
AssertUtils.notNull(admissionLine, String.format("行[%s],请输入录取线", index));
// 如果录取线没有则替换为0
//AssertUtils.notNull(admissionLine, String.format("行[%s],请输入录取线", index));
if(admissionLine == null){
admissionLine = new BigDecimal(0);
}
// AssertUtils.notNull(enrollNum, String.format("行[%s],请输入招生人数", index));
// AssertUtils.notNull(admissionNum, String.format("行[%s],请输入录取人数", index));
//=========================================================================
@ -472,7 +481,32 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
}
}
AssertUtils.notTrue(!schoolMajorMap.containsKey(schoolCode+"_"+majorName+"_"+yxHistoryMajorEnroll.getBatch()+"_"+category), String.format("行[%s],未在系统中找到招录专业", index));
if(!schoolMajorMap.containsKey(schoolCode+"_"+majorName+"_"+yxHistoryMajorEnroll.getBatch()+"_"+category)){
// 该专业没有录入
YxSchoolMajor yxSchoolMajor = new YxSchoolMajor();
yxSchoolMajor.setState("1");
yxSchoolMajor.setSchoolCode(schoolCode);
yxSchoolMajor.setMajorCode(major.getMajorCode());
yxSchoolMajor.setMajorName(majorName);
yxSchoolMajor.setEnrollmentCode(enrollmentCode);
// 提取学费
yxSchoolMajor.setTuition(yxHistoryMajorEnroll.getTuition());
yxSchoolMajor.setDetail(detail);
yxSchoolMajor.setCategory(category);
yxSchoolMajor.setRulesEnrollProbabilitySx(rulesEnrollProbability);
yxSchoolMajor.setRulesEnrollProbability(rulesEnrollProbability);
yxSchoolMajor.setPrivateRulesEnrollProbability(rulesEnrollProbability);
yxSchoolMajor.setProbabilityOperator(probabilityOperator);
yxSchoolMajor.setPrivateProbabilityOperator(probabilityOperator);
yxSchoolMajor.setBatch(batch);
yxSchoolMajor.setMajorType(majorType);
yxSchoolMajor.setMajorTypeChild(majorTypeChild);
yxSchoolMajor.setPlanNum(enrollNum);
yxSchoolMajor.setMainSubjects(mainSubjects);
newSchoolMajorList.add(yxSchoolMajor);
}
// AssertUtils.notTrue(!schoolMajorMap.containsKey(schoolCode+"_"+majorName+"_"+yxHistoryMajorEnroll.getBatch()+"_"+category), String.format("行[%s],未在系统中找到招录专业", index));
if ("文过专排".equals(rulesEnrollProbability) || "文过专排主科".equals(rulesEnrollProbability)) {
BigDecimal multiply = specialScore.multiply(zhuanyeBili);
@ -520,8 +554,6 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
throw new JeecgBootException("该数据已存在多条该历年数据");
}
if (oldYxHistoryMajorEnroll == null) {
updateList.add(yxHistoryMajorEnroll);
} else {
@ -540,6 +572,9 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
if (CollectionUtils.isNotEmpty(updateList)) {
yxHistoryMajorEnrollService.saveOrUpdateBatch(updateList);
}
if(CollectionUtils.isNotEmpty(newSchoolMajorList)){
yxSchoolMajorService.saveBatch(newSchoolMajorList);
}
log.info("消耗时间" + (System.currentTimeMillis() - start) + "毫秒");
return Result.ok("文件导入成功!数据行数:" + list.size());
} catch (Exception e) {

View File

@ -409,7 +409,7 @@ public class YxSchoolMajorController extends JeecgController<YxSchoolMajor, IYxS
// 提取学费
try {
if (detail.contains("元/年")) {
item.setTuition(new BigDecimal(detail.split("元/年")[0].replace("","")));
item.setTuition(detail.split("元/年")[0].replace("",""));
}
}catch (Exception e){
}

View File

@ -82,7 +82,7 @@ public class YxSchoolMajor implements Serializable {
/**学费*/
@ApiModelProperty(value = "学费")
private java.math.BigDecimal tuition;
private java.lang.String tuition;
/**学制*/
@ApiModelProperty(value = "学制")
private java.lang.String semester;