updates
This commit is contained in:
parent
f1bc00a5ae
commit
5e49ef5570
|
|
@ -214,7 +214,7 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
|
|||
|
||||
@PostMapping("/majrseTest1")
|
||||
public Result<?> majrseTest1(){
|
||||
String majorType = "音乐类";
|
||||
String majorType = "表演类";
|
||||
LambdaQueryWrapper<YxHistoryMajorEnroll> helqw = new LambdaQueryWrapper<>();
|
||||
helqw.eq(YxHistoryMajorEnroll::getYear,"2024");
|
||||
helqw.eq(YxHistoryMajorEnroll::getMajorType, majorType);
|
||||
|
|
@ -250,6 +250,9 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
|
|||
if ("音乐表演".equals(recommendMajorDTO.getMajorTypeChild())) {
|
||||
key += recommendMajorDTO.getMainSubjects();
|
||||
}
|
||||
}else if ("表演类".equals(majorType)) {
|
||||
key = key +"-表演类-"+ recommendMajorDTO.getMajorTypeChild();
|
||||
batchControlLineMaps.get(recommendMajorDTO.getBatch());
|
||||
}
|
||||
culturalControlLine = batchControlLineMaps.get(key).getCulturalScore();
|
||||
specialControlLine = batchControlLineMaps.get(key).getSpecialScore();
|
||||
|
|
@ -476,7 +479,7 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
|
|||
*/
|
||||
@RequiresPermissions("yx:yx_history_major_enroll:importExcel")
|
||||
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
|
||||
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
|
||||
public Result<?> importExcel1(HttpServletRequest request, HttpServletResponse response) {
|
||||
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
|
||||
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
|
||||
int nowYear = DateUtils.getYear(); // 当前年
|
||||
|
|
@ -492,13 +495,25 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
|
|||
int index = 0;
|
||||
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, YxSchool> schoolNameMap = yxSchoolService.mapsForSchoolName();
|
||||
//Collection<YxSchool> schoolCodeList = schoolNameMap.values();
|
||||
String schoolCode = null;
|
||||
String schoolName = null;
|
||||
String majorName = null, mn = null, key = null;
|
||||
String majorName = null, mn = null;
|
||||
String majorType = null;
|
||||
String batch = null;
|
||||
String enrollmentCode = null;
|
||||
|
|
@ -532,6 +547,7 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
|
|||
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();//学校名称
|
||||
|
|
@ -563,16 +579,13 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
|
|||
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));
|
||||
// AssertUtils.notEmpty(probabilityOperator, String.format("行[%s],请输入录取方式运算符", index));
|
||||
|
||||
// 如果录取线没有,则替换为0
|
||||
//AssertUtils.notNull(admissionLine, String.format("行[%s],请输入录取线", index));
|
||||
if(admissionLine == null){
|
||||
admissionLine = new BigDecimal(0);
|
||||
}
|
||||
if(schoolCode.equals("1260") && majorName.equals("环境设计(中外合作办学)(中英合作")){
|
||||
System.out.println("1");
|
||||
}
|
||||
// AssertUtils.notNull(enrollNum, 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);
|
||||
AssertUtils.notNull(major, String.format("行[%s],专业未在系统中找到", index));
|
||||
|
||||
if(index == 267){
|
||||
System.out.println("qvq");
|
||||
}
|
||||
|
||||
yxHistoryMajorEnroll.setMajorCode(major.getMajorCode());
|
||||
|
||||
if(enrollmentCode.length() == 1){
|
||||
|
|
@ -613,8 +631,63 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
|
|||
if ("提前批".equals(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));
|
||||
if (mainSubjects.contains("艺术舞蹈")) {
|
||||
key = category + "_" + batch + "_" + "艺术舞蹈类" + "_" + year;
|
||||
|
|
@ -632,13 +705,14 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
|
|||
key = category + "_" + batch + "_" + majorType + "_" + year;
|
||||
} else {
|
||||
key = category + "_" + batch + "_" + majorType + "_" + year;
|
||||
}
|
||||
}*/
|
||||
|
||||
historyScoreControlLine = historyScoreControlLineMap.get(key);
|
||||
AssertUtils.notNull(historyScoreControlLine, String.format("行[%s],未在系统中找到省控线", index));
|
||||
culturalScore = historyScoreControlLine.getCulturalScore();
|
||||
specialScore = historyScoreControlLine.getSpecialScore();
|
||||
//换算分数
|
||||
if(StringUtils.isNotBlank(probabilityOperator)){
|
||||
String[] operators = probabilityOperator.split("\\+");
|
||||
for (String operator : operators) {
|
||||
if (operator.contains("文")) {
|
||||
|
|
@ -648,9 +722,29 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
|
|||
zhuanyeBili = new BigDecimal(operator.split("\\*")[1]);
|
||||
}
|
||||
}
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 判断,如果库里没有这个院校的专业,则添加
|
||||
schoolMajor = new YxSchoolMajor();
|
||||
/*schoolMajor = new YxSchoolMajor();
|
||||
if(!schoolMajorMap.containsKey(schoolCode+"_"+majorName+"_"+yxHistoryMajorEnroll.getBatch()+"_"+category)){
|
||||
// 该专业没有录入
|
||||
schoolMajor.setState("1");
|
||||
|
|
@ -694,28 +788,9 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
|
|||
schoolMajorList.add(schoolMajor);
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
// 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(batch.contains("专科") || batch.contains("高职高专")){
|
||||
|
|
@ -727,6 +802,14 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
|
|||
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();
|
||||
|
|
@ -737,6 +820,21 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
|
|||
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getBatch, batch.contains("提前批") ? "提前批" : batch);
|
||||
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getCategory, category);
|
||||
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 {
|
||||
oldYxHistoryMajorEnroll = yxHistoryMajorEnrollService.getOne(yxHistoryMajorEnrollLambdaQueryWrapper);
|
||||
}catch (TooManyResultsException e){
|
||||
|
|
@ -744,7 +842,7 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
|
|||
}
|
||||
|
||||
if (oldYxHistoryMajorEnroll == null) {
|
||||
updateList.add(yxHistoryMajorEnroll);
|
||||
// updateList.add(yxHistoryMajorEnroll);
|
||||
} else {
|
||||
oldYxHistoryMajorEnroll.setRulesEnrollProbability(yxHistoryMajorEnroll.getRulesEnrollProbability());
|
||||
oldYxHistoryMajorEnroll.setSchoolName(schoolName);
|
||||
|
|
@ -755,15 +853,16 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
|
|||
oldYxHistoryMajorEnroll.setAdmissionLine(admissionLine);
|
||||
oldYxHistoryMajorEnroll.setEnrollNum(enrollNum);
|
||||
oldYxHistoryMajorEnroll.setControlLine(yxHistoryMajorEnroll.getControlLine());
|
||||
oldYxHistoryMajorEnroll.setBatch("本科B段");
|
||||
updateList.add(oldYxHistoryMajorEnroll);
|
||||
}
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(updateList)) {
|
||||
yxHistoryMajorEnrollService.saveOrUpdateBatch(updateList);
|
||||
}
|
||||
// if(CollectionUtils.isNotEmpty(schoolMajorList)){
|
||||
// yxSchoolMajorService.saveOrUpdateBatch(schoolMajorList);
|
||||
// }
|
||||
if(CollectionUtils.isNotEmpty(schoolMajorList)){
|
||||
yxSchoolMajorService.saveOrUpdateBatch(schoolMajorList);
|
||||
}
|
||||
log.info("消耗时间" + (System.currentTimeMillis() - start) + "毫秒");
|
||||
return Result.ok("文件导入成功!数据行数:" + list.size());
|
||||
} catch (Exception e) {
|
||||
|
|
@ -785,5 +884,262 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
|
|||
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("文件导入失败!");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue