This commit is contained in:
zhouwentao 2025-06-14 17:42:38 +08:00
parent f1bc00a5ae
commit 5e49ef5570
1 changed files with 397 additions and 41 deletions

View File

@ -214,7 +214,7 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
@PostMapping("/majrseTest1") @PostMapping("/majrseTest1")
public Result<?> majrseTest1(){ public Result<?> majrseTest1(){
String majorType = "音乐"; String majorType = "表演";
LambdaQueryWrapper<YxHistoryMajorEnroll> helqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<YxHistoryMajorEnroll> helqw = new LambdaQueryWrapper<>();
helqw.eq(YxHistoryMajorEnroll::getYear,"2024"); helqw.eq(YxHistoryMajorEnroll::getYear,"2024");
helqw.eq(YxHistoryMajorEnroll::getMajorType, majorType); helqw.eq(YxHistoryMajorEnroll::getMajorType, majorType);
@ -250,6 +250,9 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
if ("音乐表演".equals(recommendMajorDTO.getMajorTypeChild())) { if ("音乐表演".equals(recommendMajorDTO.getMajorTypeChild())) {
key += recommendMajorDTO.getMainSubjects(); key += recommendMajorDTO.getMainSubjects();
} }
}else if ("表演类".equals(majorType)) {
key = key +"-表演类-"+ recommendMajorDTO.getMajorTypeChild();
batchControlLineMaps.get(recommendMajorDTO.getBatch());
} }
culturalControlLine = batchControlLineMaps.get(key).getCulturalScore(); culturalControlLine = batchControlLineMaps.get(key).getCulturalScore();
specialControlLine = batchControlLineMaps.get(key).getSpecialScore(); specialControlLine = batchControlLineMaps.get(key).getSpecialScore();
@ -476,7 +479,7 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
*/ */
@RequiresPermissions("yx:yx_history_major_enroll:importExcel") @RequiresPermissions("yx:yx_history_major_enroll:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST) @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { public Result<?> importExcel1(HttpServletRequest request, HttpServletResponse response) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
int nowYear = DateUtils.getYear(); // 当前年 int nowYear = DateUtils.getYear(); // 当前年
@ -492,13 +495,25 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
int index = 0; int index = 0;
try { try {
//加载省控线 //加载省控线
Map<String, YxHistoryScoreControlLine> historyScoreControlLineMap = yxHistoryScoreControlLineService.allMaps(); // Map<String, YxHistoryScoreControlLine> historyScoreControlLineMap = yxHistoryScoreControlLineService.allMaps();
Map<String, YxHistoryScoreControlLine> historyScoreControlLineMap = new LinkedHashMap<>();
LambdaQueryWrapper<YxHistoryScoreControlLine> yhsclWrapper = new LambdaQueryWrapper<>();
yhsclWrapper.in(YxHistoryScoreControlLine::getBatch,"本科","高职高专","本科A段","本科B段");
// yhsclWrapper.eq(YxHistoryScoreControlLine::getYear,"2024");
// yhsclWrapper.like(YxHistoryScoreControlLine::getProfessionalCategory,);
List<YxHistoryScoreControlLine> yhsclList = yxHistoryScoreControlLineService.list(yhsclWrapper);
String key = null;
for (YxHistoryScoreControlLine yhscl : yhsclList) {
key = yhscl.getYear()+"_" +yhscl.getCategory()+"-"+ yhscl.getBatch()+"-"+yhscl.getProfessionalCategory();
historyScoreControlLineMap.put(key,yhscl);
}
Map<String, YxMajor> majorMap = yxMajorService.mapsForMajorNameBatch(); Map<String, YxMajor> majorMap = yxMajorService.mapsForMajorNameBatch();
//Map<String, YxSchool> schoolNameMap = yxSchoolService.mapsForSchoolName(); //Map<String, YxSchool> schoolNameMap = yxSchoolService.mapsForSchoolName();
//Collection<YxSchool> schoolCodeList = schoolNameMap.values(); //Collection<YxSchool> schoolCodeList = schoolNameMap.values();
String schoolCode = null; String schoolCode = null;
String schoolName = null; String schoolName = null;
String majorName = null, mn = null, key = null; String majorName = null, mn = null;
String majorType = null; String majorType = null;
String batch = null; String batch = null;
String enrollmentCode = null; String enrollmentCode = null;
@ -532,6 +547,7 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
key = yxSchoolMajor.getSchoolCode()+"_"+yxSchoolMajor.getMajorName()+"_"+yxSchoolMajor.getBatch()+"_"+yxSchoolMajor.getCategory(); key = yxSchoolMajor.getSchoolCode()+"_"+yxSchoolMajor.getMajorName()+"_"+yxSchoolMajor.getBatch()+"_"+yxSchoolMajor.getCategory();
schoolMajorMap.put(key,yxSchoolMajor); schoolMajorMap.put(key,yxSchoolMajor);
} }
LambdaQueryWrapper<YxSchoolMajor> smQueryWrapper = new LambdaQueryWrapper<>();
for (YxHistoryMajorEnroll yxHistoryMajorEnroll : list) { for (YxHistoryMajorEnroll yxHistoryMajorEnroll : list) {
schoolCode = yxHistoryMajorEnroll.getSchoolCode();//学校代码 schoolCode = yxHistoryMajorEnroll.getSchoolCode();//学校代码
schoolName = yxHistoryMajorEnroll.getSchoolName();//学校名称 schoolName = yxHistoryMajorEnroll.getSchoolName();//学校名称
@ -563,16 +579,13 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
AssertUtils.notEmpty(year, String.format("行[%s],请输入年份", index)); AssertUtils.notEmpty(year, String.format("行[%s],请输入年份", index));
AssertUtils.notEmpty(category, String.format("行[%s],请输入科类", index)); AssertUtils.notEmpty(category, String.format("行[%s],请输入科类", index));
//AssertUtils.notEmpty(rulesEnrollProbability, String.format("行[%s],请输入录取方式", index)); //AssertUtils.notEmpty(rulesEnrollProbability, String.format("行[%s],请输入录取方式", index));
AssertUtils.notEmpty(probabilityOperator, String.format("行[%s],请输入录取方式运算符", index)); // AssertUtils.notEmpty(probabilityOperator, String.format("行[%s],请输入录取方式运算符", index));
// 如果录取线没有则替换为0 // 如果录取线没有则替换为0
//AssertUtils.notNull(admissionLine, String.format("行[%s],请输入录取线", index)); //AssertUtils.notNull(admissionLine, String.format("行[%s],请输入录取线", index));
if(admissionLine == null){ if(admissionLine == null){
admissionLine = new BigDecimal(0); admissionLine = new BigDecimal(0);
} }
if(schoolCode.equals("1260") && majorName.equals("环境设计(中外合作办学)(中英合作")){
System.out.println("1");
}
// AssertUtils.notNull(enrollNum, String.format("行[%s],请输入招生人数", index)); // AssertUtils.notNull(enrollNum, String.format("行[%s],请输入招生人数", index));
// AssertUtils.notNull(admissionNum, String.format("行[%s],请输入录取人数", index)); // AssertUtils.notNull(admissionNum, String.format("行[%s],请输入录取人数", index));
//========================================================================= //=========================================================================
@ -596,6 +609,11 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
} }
major = majorMap.get(mn); major = majorMap.get(mn);
AssertUtils.notNull(major, String.format("行[%s],专业未在系统中找到", index)); AssertUtils.notNull(major, String.format("行[%s],专业未在系统中找到", index));
if(index == 267){
System.out.println("qvq");
}
yxHistoryMajorEnroll.setMajorCode(major.getMajorCode()); yxHistoryMajorEnroll.setMajorCode(major.getMajorCode());
if(enrollmentCode.length() == 1){ if(enrollmentCode.length() == 1){
@ -613,8 +631,63 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
if ("提前批".equals(batch)) { if ("提前批".equals(batch)) {
batch = "本科提前批"; batch = "本科提前批";
} }
//省控线 //省控线
if ("舞蹈类".equals(majorType) && Integer.parseInt(year) <= 2023) { if (year.equals("2024")) {
if("高职高专".equals(yxHistoryMajorEnroll.getBatch())){
key = "2024_"+ category +"-高职高专";
}else{
key = "2024_"+ category +"-本科";
}
}else{
if("高职高专".equals(yxHistoryMajorEnroll.getBatch())){
key = year+"_" + yxHistoryMajorEnroll.getCategory() + "-" + yxHistoryMajorEnroll.getBatch();
}else{
key = year+"_" + yxHistoryMajorEnroll.getCategory() + "-"+ yxHistoryMajorEnroll.getBatch();
}
}
// 判断是 音乐教育还是音乐表演 器乐/声乐
if ("音乐类".equals(majorType)) {
if(year.equals("2024")){
if("高职高专".equals(yxHistoryMajorEnroll.getBatch())){
key = "2024_"+ category +"-高职高专-音乐类-"+ yxHistoryMajorEnroll.getMajorTypeChild();
}else{
key = "2024_"+ category +"-本科-音乐类-"+ yxHistoryMajorEnroll.getMajorTypeChild();
}
if ("音乐表演".equals(yxHistoryMajorEnroll.getMajorTypeChild())) {
key += yxHistoryMajorEnroll.getMainSubjects();
}
}else{
key = year + "_" + batch + "_音乐类";
}
}else if ("表演类".equals(majorType)) {
if(year.equals("2024")){
if("高职高专".equals(yxHistoryMajorEnroll.getBatch())){
key = "2024_"+ category +"-高职高专-音乐类-"+ yxHistoryMajorEnroll.getMajorTypeChild();
}else{
key = "2024_"+ category +"-本科-音乐类-"+ yxHistoryMajorEnroll.getMajorTypeChild();
}
if ("音乐表演".equals(yxHistoryMajorEnroll.getMajorTypeChild())) {
key += yxHistoryMajorEnroll.getMainSubjects();
}
key = key +"-表演类-" + yxHistoryMajorEnroll.getMajorTypeChild();
}else{
key = key +"-表演类";
}
}else if("舞蹈类".equals(majorType)){
if(year.equals("2024")){
key = key +"-舞蹈类";
}else{
key = key +"-" + yxHistoryMajorEnroll.getMajorTypeChild() +"";
}
} else{
key = key + "-" + majorType;
}
/*culturalControlLine = batchControlLineMaps.get(key).getCulturalScore();
specialControlLine = batchControlLineMaps.get(key).getSpecialScore();*/
/*if ("舞蹈类".equals(majorType) && Integer.parseInt(year) <= 2023) {
AssertUtils.notEmpty(mainSubjects, String.format("行[%s],未识别到舞蹈类型", index)); AssertUtils.notEmpty(mainSubjects, String.format("行[%s],未识别到舞蹈类型", index));
if (mainSubjects.contains("艺术舞蹈")) { if (mainSubjects.contains("艺术舞蹈")) {
key = category + "_" + batch + "_" + "艺术舞蹈类" + "_" + year; key = category + "_" + batch + "_" + "艺术舞蹈类" + "_" + year;
@ -632,25 +705,46 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
key = category + "_" + batch + "_" + majorType + "_" + year; key = category + "_" + batch + "_" + majorType + "_" + year;
} else { } else {
key = category + "_" + batch + "_" + majorType + "_" + year; key = category + "_" + batch + "_" + majorType + "_" + year;
} }*/
historyScoreControlLine = historyScoreControlLineMap.get(key); historyScoreControlLine = historyScoreControlLineMap.get(key);
AssertUtils.notNull(historyScoreControlLine, String.format("行[%s],未在系统中找到省控线", index)); AssertUtils.notNull(historyScoreControlLine, String.format("行[%s],未在系统中找到省控线", index));
culturalScore = historyScoreControlLine.getCulturalScore(); culturalScore = historyScoreControlLine.getCulturalScore();
specialScore = historyScoreControlLine.getSpecialScore(); specialScore = historyScoreControlLine.getSpecialScore();
//换算分数 //换算分数
String[] operators = probabilityOperator.split("\\+"); if(StringUtils.isNotBlank(probabilityOperator)){
for (String operator : operators) { String[] operators = probabilityOperator.split("\\+");
if (operator.contains("")) { for (String operator : operators) {
wenhuaBili = new BigDecimal(operator.split("\\*")[1]); if (operator.contains("")) {
wenhuaBili = new BigDecimal(operator.split("\\*")[1]);
}
if (operator.contains("")) {
zhuanyeBili = new BigDecimal(operator.split("\\*")[1]);
}
} }
if (operator.contains("")) { if ("文过专排".equals(rulesEnrollProbability) || "文过专排主科".equals(rulesEnrollProbability)) {
zhuanyeBili = new BigDecimal(operator.split("\\*")[1]); BigDecimal multiply = specialScore.multiply(zhuanyeBili);
yxHistoryMajorEnroll.setControlLine(multiply);
yxHistoryMajorEnroll.setRulesEnrollProbability("文过专排");
} else if ("专过文排".equals(rulesEnrollProbability)) {
BigDecimal multiply = culturalScore.multiply(wenhuaBili);
yxHistoryMajorEnroll.setControlLine(multiply);
yxHistoryMajorEnroll.setRulesEnrollProbability("专过文排");
} else if ("其他计算办法".equals(rulesEnrollProbability)) {
yxHistoryMajorEnroll.setRulesEnrollProbability("其他计算办法");
} else {
if (wenhuaBili == null || zhuanyeBili == null) {
wenhuaBili = YxConstant.bigDecimal100;
zhuanyeBili = YxConstant.bigDecimal100;
}
yxHistoryMajorEnroll.setControlLine((culturalScore.multiply(wenhuaBili)).add((specialScore.multiply(zhuanyeBili))));
yxHistoryMajorEnroll.setRulesEnrollProbability(rulesEnrollProbability);
} }
} }
// 判断如果库里没有这个院校的专业则添加 // 判断如果库里没有这个院校的专业则添加
schoolMajor = new YxSchoolMajor(); /*schoolMajor = new YxSchoolMajor();
if(!schoolMajorMap.containsKey(schoolCode+"_"+majorName+"_"+yxHistoryMajorEnroll.getBatch()+"_"+category)){ if(!schoolMajorMap.containsKey(schoolCode+"_"+majorName+"_"+yxHistoryMajorEnroll.getBatch()+"_"+category)){
// 该专业没有录入 // 该专业没有录入
schoolMajor.setState("1"); schoolMajor.setState("1");
@ -694,28 +788,9 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
schoolMajorList.add(schoolMajor); schoolMajorList.add(schoolMajor);
} }
} }
} }*/
// AssertUtils.notTrue(!schoolMajorMap.containsKey(schoolCode+"_"+majorName+"_"+yxHistoryMajorEnroll.getBatch()+"_"+category), String.format("行[%s],未在系统中找到招录专业", index)); // AssertUtils.notTrue(!schoolMajorMap.containsKey(schoolCode+"_"+majorName+"_"+yxHistoryMajorEnroll.getBatch()+"_"+category), String.format("行[%s],未在系统中找到招录专业", index));
if ("文过专排".equals(rulesEnrollProbability) || "文过专排主科".equals(rulesEnrollProbability)) {
BigDecimal multiply = specialScore.multiply(zhuanyeBili);
yxHistoryMajorEnroll.setControlLine(multiply);
yxHistoryMajorEnroll.setRulesEnrollProbability("文过专排");
} else if ("专过文排".equals(rulesEnrollProbability)) {
BigDecimal multiply = culturalScore.multiply(wenhuaBili);
yxHistoryMajorEnroll.setControlLine(multiply);
yxHistoryMajorEnroll.setRulesEnrollProbability("专过文排");
} else if ("其他计算办法".equals(rulesEnrollProbability)) {
yxHistoryMajorEnroll.setRulesEnrollProbability("其他计算办法");
} else {
if (wenhuaBili == null || zhuanyeBili == null) {
wenhuaBili = YxConstant.bigDecimal100;
zhuanyeBili = YxConstant.bigDecimal100;
}
yxHistoryMajorEnroll.setControlLine((culturalScore.multiply(wenhuaBili)).add((specialScore.multiply(zhuanyeBili))));
yxHistoryMajorEnroll.setRulesEnrollProbability(rulesEnrollProbability);
}
if("体育".contains(yxHistoryMajorEnroll.getMajorType())){ if("体育".contains(yxHistoryMajorEnroll.getMajorType())){
if(batch.contains("专科") || batch.contains("高职高专")){ if(batch.contains("专科") || batch.contains("高职高专")){
@ -727,6 +802,14 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
yxHistoryMajorEnroll.setBatch("提前批"); yxHistoryMajorEnroll.setBatch("提前批");
} }
// 查询招录信息
schoolMajor = new YxSchoolMajor();
smQueryWrapper.clear();
smQueryWrapper.eq(YxSchoolMajor::getSchoolCode, schoolCode);
smQueryWrapper.eq(YxSchoolMajor::getMajorName, majorName);
smQueryWrapper.eq(YxSchoolMajor::getBatch, batch);
smQueryWrapper.eq(YxSchoolMajor::getCategory, category);
smQueryWrapper.eq(YxSchoolMajor::getMajorType, majorType);
//查询库中是否有该条数据 //查询库中是否有该条数据
yxHistoryMajorEnrollLambdaQueryWrapper.clear(); yxHistoryMajorEnrollLambdaQueryWrapper.clear();
@ -737,6 +820,21 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getBatch, batch.contains("提前批") ? "提前批" : batch); yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getBatch, batch.contains("提前批") ? "提前批" : batch);
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getCategory, category); yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getCategory, category);
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getMajorType, majorType); yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getMajorType, majorType);
if(majorType.equals("音乐类") || majorType.equals("表演类")){
smQueryWrapper.eq(YxSchoolMajor::getMajorTypeChild, majorTypeChild);
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getMajorTypeChild, majorTypeChild);
if (StringUtils.isNotBlank(mainSubjects)) {
smQueryWrapper.eq(YxSchoolMajor::getMainSubjects, mainSubjects);
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getMainSubjects, mainSubjects);
}
}
schoolMajor = yxSchoolMajorService.getOne(smQueryWrapper);
if(schoolMajor!=null){
schoolMajor.setBatch("本科B段");
schoolMajorList.add(schoolMajor);
}
try { try {
oldYxHistoryMajorEnroll = yxHistoryMajorEnrollService.getOne(yxHistoryMajorEnrollLambdaQueryWrapper); oldYxHistoryMajorEnroll = yxHistoryMajorEnrollService.getOne(yxHistoryMajorEnrollLambdaQueryWrapper);
}catch (TooManyResultsException e){ }catch (TooManyResultsException e){
@ -744,7 +842,7 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
} }
if (oldYxHistoryMajorEnroll == null) { if (oldYxHistoryMajorEnroll == null) {
updateList.add(yxHistoryMajorEnroll); // updateList.add(yxHistoryMajorEnroll);
} else { } else {
oldYxHistoryMajorEnroll.setRulesEnrollProbability(yxHistoryMajorEnroll.getRulesEnrollProbability()); oldYxHistoryMajorEnroll.setRulesEnrollProbability(yxHistoryMajorEnroll.getRulesEnrollProbability());
oldYxHistoryMajorEnroll.setSchoolName(schoolName); oldYxHistoryMajorEnroll.setSchoolName(schoolName);
@ -755,15 +853,16 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
oldYxHistoryMajorEnroll.setAdmissionLine(admissionLine); oldYxHistoryMajorEnroll.setAdmissionLine(admissionLine);
oldYxHistoryMajorEnroll.setEnrollNum(enrollNum); oldYxHistoryMajorEnroll.setEnrollNum(enrollNum);
oldYxHistoryMajorEnroll.setControlLine(yxHistoryMajorEnroll.getControlLine()); oldYxHistoryMajorEnroll.setControlLine(yxHistoryMajorEnroll.getControlLine());
oldYxHistoryMajorEnroll.setBatch("本科B段");
updateList.add(oldYxHistoryMajorEnroll); updateList.add(oldYxHistoryMajorEnroll);
} }
} }
if (CollectionUtils.isNotEmpty(updateList)) { if (CollectionUtils.isNotEmpty(updateList)) {
yxHistoryMajorEnrollService.saveOrUpdateBatch(updateList); yxHistoryMajorEnrollService.saveOrUpdateBatch(updateList);
} }
// if(CollectionUtils.isNotEmpty(schoolMajorList)){ if(CollectionUtils.isNotEmpty(schoolMajorList)){
// yxSchoolMajorService.saveOrUpdateBatch(schoolMajorList); yxSchoolMajorService.saveOrUpdateBatch(schoolMajorList);
// } }
log.info("消耗时间" + (System.currentTimeMillis() - start) + "毫秒"); log.info("消耗时间" + (System.currentTimeMillis() - start) + "毫秒");
return Result.ok("文件导入成功!数据行数:" + list.size()); return Result.ok("文件导入成功!数据行数:" + list.size());
} catch (Exception e) { } catch (Exception e) {
@ -785,5 +884,262 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
return Result.error("文件导入失败!"); return Result.error("文件导入失败!");
} }
@RequiresPermissions("yx:yx_history_major_enroll:importExcel")
@RequestMapping(value = "/importExcel1", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
int nowYear = DateUtils.getYear(); // 当前年
int nowMonth = DateUtils.getMonth(); // 当前月
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
// 获取上传文件对象
MultipartFile file = entity.getValue();
ImportParams params = new ImportParams();
params.setTitleRows(2);
params.setHeadRows(1);
params.setNeedSave(true);
long start = System.currentTimeMillis();
int index = 0;
try {
//加载省控线
// Map<String, YxHistoryScoreControlLine> historyScoreControlLineMap = yxHistoryScoreControlLineService.allMaps();
Map<String, YxHistoryScoreControlLine> historyScoreControlLineMap = new LinkedHashMap<>();
LambdaQueryWrapper<YxHistoryScoreControlLine> yhsclWrapper = new LambdaQueryWrapper<>();
yhsclWrapper.in(YxHistoryScoreControlLine::getBatch,"本科","高职高专","本科A段","本科B段");
// yhsclWrapper.eq(YxHistoryScoreControlLine::getYear,"2024");
// yhsclWrapper.like(YxHistoryScoreControlLine::getProfessionalCategory,);
List<YxHistoryScoreControlLine> yhsclList = yxHistoryScoreControlLineService.list(yhsclWrapper);
String key = null;
for (YxHistoryScoreControlLine yhscl : yhsclList) {
key = yhscl.getYear()+"_" +yhscl.getCategory()+"-"+ yhscl.getBatch()+"-"+yhscl.getProfessionalCategory();
historyScoreControlLineMap.put(key,yhscl);
}
Map<String, YxMajor> majorMap = yxMajorService.mapsForMajorNameBatch();
//Map<String, YxSchool> schoolNameMap = yxSchoolService.mapsForSchoolName();
//Collection<YxSchool> schoolCodeList = schoolNameMap.values();
String schoolCode = null;
String schoolName = null;
String majorName = null, mn = null;
String majorType = null;
String batch = null;
String enrollmentCode = null;
String year = null;
String category = null;
String rulesEnrollProbability = null;
String probabilityOperator = null;
BigDecimal admissionLine = null;
BigDecimal culturalScore = null;
BigDecimal specialScore = null;
BigDecimal wenhuaBili = null;
BigDecimal zhuanyeBili = null;
Integer enrollNum = null;
Integer admissionNum = null;
String detail = null;
String majorTypeChild = null;
String mainSubjects = null;
YxMajor major = null;
YxSchoolMajor schoolMajor = null;
YxHistoryScoreControlLine historyScoreControlLine = null;
YxHistoryMajorEnroll oldYxHistoryMajorEnroll = null;
LambdaQueryWrapper<YxHistoryMajorEnroll> yxHistoryMajorEnrollLambdaQueryWrapper = new LambdaQueryWrapper<>();
List<YxHistoryMajorEnroll> updateList = new ArrayList<>();
List<YxSchoolMajor> schoolMajorList = 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))) {
key = yxSchoolMajor.getSchoolCode()+"_"+yxSchoolMajor.getMajorName()+"_"+yxSchoolMajor.getBatch()+"_"+yxSchoolMajor.getCategory();
schoolMajorMap.put(key,yxSchoolMajor);
}
LambdaQueryWrapper<YxSchoolMajor> smQueryWrapper = new LambdaQueryWrapper<>();
for (YxHistoryMajorEnroll yxHistoryMajorEnroll : list) {
schoolCode = yxHistoryMajorEnroll.getSchoolCode();//学校代码
schoolName = yxHistoryMajorEnroll.getSchoolName();//学校名称
majorName = yxHistoryMajorEnroll.getMajorName();//专业名称
batch = yxHistoryMajorEnroll.getBatch();//批次
if (StringUtils.isBlank(schoolCode) && StringUtils.isBlank(schoolName) && StringUtils.isBlank(majorName)) {
continue;
}
index++;
year = yxHistoryMajorEnroll.getYear();
enrollmentCode = yxHistoryMajorEnroll.getEnrollmentCode();//招生代码
majorType = yxHistoryMajorEnroll.getMajorType();//专业类型
category = yxHistoryMajorEnroll.getCategory();//科类
rulesEnrollProbability = yxHistoryMajorEnroll.getRulesEnrollProbability();//录取方式
probabilityOperator = yxHistoryMajorEnroll.getProbabilityOperator();//录取概率计算规则运算符
admissionLine = yxHistoryMajorEnroll.getAdmissionLine();//录取线
enrollNum = yxHistoryMajorEnroll.getEnrollNum();//招生人数
admissionNum = yxHistoryMajorEnroll.getAdmissionNum();//录取人数
detail = yxHistoryMajorEnroll.getDetail();//备注
majorTypeChild = yxHistoryMajorEnroll.getMajorTypeChild();
mainSubjects = yxHistoryMajorEnroll.getMainSubjects();
AssertUtils.notEmpty(schoolCode, String.format("行[%s],请输入学校代码", index));
AssertUtils.notEmpty(schoolName, String.format("行[%s],请输入学校名称", index));
AssertUtils.notEmpty(batch, String.format("行[%s],请输入批次", index));
AssertUtils.notEmpty(enrollmentCode, String.format("行[%s],请输入专业代码", index));
AssertUtils.notEmpty(majorName, String.format("行[%s],请输入专业名称", index));
AssertUtils.notEmpty(majorType, String.format("行[%s],请输入专业类型", index));
//=========================================================================
AssertUtils.notEmpty(year, String.format("行[%s],请输入年份", index));
AssertUtils.notEmpty(category, String.format("行[%s],请输入科类", index));
//AssertUtils.notEmpty(rulesEnrollProbability, String.format("行[%s],请输入录取方式", index));
// AssertUtils.notEmpty(probabilityOperator, 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));
//=========================================================================
majorName = majorName.replace("(", "").replace(")", "");
// 判断 majorName 是否包含符号如果包含则判断最后一个字符是否为不是则补
if (majorName.contains("") && majorName.charAt(majorName.length() - 1) != '') {
majorName += "";
}
yxHistoryMajorEnroll.setMajorName(majorName);
int i = majorName.indexOf("");
mn = majorName;
if (i != -1) {
mn = majorName.substring(0, i);
}
if(yxHistoryMajorEnroll.getBatch().contains("")){
mn+="_专";
}else{
mn+="_本";
}
major = majorMap.get(mn);
AssertUtils.notNull(major, String.format("行[%s],专业未在系统中找到", index));
if(index == 267){
System.out.println("qvq");
}
yxHistoryMajorEnroll.setMajorCode(major.getMajorCode());
if(enrollmentCode.length() == 1){
enrollmentCode = "0" + enrollmentCode;
}
if(schoolCode.length() == 3){
schoolCode = "0" + schoolCode;
}else if(schoolCode.length() == 2){
schoolCode = "00" + schoolCode;
}else if(schoolCode.length() == 1){
schoolCode = "000" + schoolCode;
}
if ("提前批".equals(batch)) {
batch = "本科提前批";
}
//省控线
if (year.equals("2024")) {
if("高职高专".equals(yxHistoryMajorEnroll.getBatch())){
key = "2024_"+ category +"-高职高专";
}else{
key = "2024_"+ category +"-本科";
}
}else{
if("高职高专".equals(yxHistoryMajorEnroll.getBatch())){
key = year+"_" + yxHistoryMajorEnroll.getCategory() + "-" + yxHistoryMajorEnroll.getBatch();
}else{
key = year+"_" + yxHistoryMajorEnroll.getCategory() + "-"+ yxHistoryMajorEnroll.getBatch();
}
}
if("体育".contains(yxHistoryMajorEnroll.getMajorType())){
if(batch.contains("专科") || batch.contains("高职高专")){
yxHistoryMajorEnroll.setBatch("高职高专");
}else {
yxHistoryMajorEnroll.setBatch("本科");
}
}else if (batch.contains("提前")) {
yxHistoryMajorEnroll.setBatch("提前批");
}
// 查询招录信息
schoolMajor = new YxSchoolMajor();
smQueryWrapper.clear();
smQueryWrapper.eq(YxSchoolMajor::getSchoolCode, schoolCode);
smQueryWrapper.eq(YxSchoolMajor::getEnrollmentCode, enrollmentCode);
smQueryWrapper.eq(YxSchoolMajor::getMajorName, majorName);
smQueryWrapper.eq(YxSchoolMajor::getBatch, batch);
smQueryWrapper.eq(YxSchoolMajor::getCategory, category);
smQueryWrapper.eq(YxSchoolMajor::getMajorType, majorType);
//查询库中是否有该条数据
yxHistoryMajorEnrollLambdaQueryWrapper.clear();
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getYear, year);
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getMajorName, majorName);
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getEnrollmentCode, enrollmentCode);
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getSchoolCode, schoolCode);
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getBatch, batch.contains("提前批") ? "提前批" : batch);
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getCategory, category);
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getMajorType, majorType);
if(majorType.equals("音乐类") || majorType.equals("表演类")){
if(StringUtils.isNotBlank(majorTypeChild)){
smQueryWrapper.eq(YxSchoolMajor::getMajorTypeChild, majorTypeChild);
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getMajorTypeChild, majorTypeChild);
}
if (StringUtils.isNotBlank(mainSubjects)) {
smQueryWrapper.eq(YxSchoolMajor::getMainSubjects, mainSubjects);
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getMainSubjects, mainSubjects);
}
}
schoolMajor = yxSchoolMajorService.getOne(smQueryWrapper);
if(schoolMajor!=null){
schoolMajor.setBatch("本科A段");
schoolMajorList.add(schoolMajor);
}else{
System.out.println("不存在");
}
try {
oldYxHistoryMajorEnroll = yxHistoryMajorEnrollService.getOne(yxHistoryMajorEnrollLambdaQueryWrapper);
}catch (TooManyResultsException e){
throw new JeecgBootException("该数据已存在多条该历年数据");
}
if (oldYxHistoryMajorEnroll == null) {
System.out.println("sout111");
// updateList.add(yxHistoryMajorEnroll);
} else {
oldYxHistoryMajorEnroll.setBatch("本科A段");
updateList.add(oldYxHistoryMajorEnroll);
}
}
if (CollectionUtils.isNotEmpty(updateList)) {
yxHistoryMajorEnrollService.saveOrUpdateBatch(updateList);
}
if(CollectionUtils.isNotEmpty(schoolMajorList)){
yxSchoolMajorService.saveOrUpdateBatch(schoolMajorList);
}
log.info("消耗时间" + (System.currentTimeMillis() - start) + "毫秒");
return Result.ok("文件导入成功!数据行数:" + list.size());
} catch (Exception e) {
String msg = e.getMessage();
log.error(msg, e);
if (msg != null && msg.indexOf("Duplicate entry") >= 0) {
return Result.error("文件导入失败:有重复数据!");
} else {
return Result.error("文件导入失败:" + e.getMessage() + ",行:" + index);
}
} finally {
try {
file.getInputStream().close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return Result.error("文件导入失败!");
}
} }