This commit is contained in:
zhouwentao 2024-03-19 23:08:34 +08:00
parent 37e1284e0f
commit d2e23e93ad
2 changed files with 76 additions and 33 deletions

View File

@ -31,10 +31,13 @@ import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.modules.yx.service.IYxHistoryScoreControlLineService;
import org.jeecg.modules.yx.service.IYxMajorService;
import org.jeecg.modules.yx.service.IYxSchoolService;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -55,6 +58,8 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
@Autowired
private IYxMajorService yxMajorService;
@Autowired
private IYxSchoolService yxSchoolService;
@Autowired
private IYxHistoryMajorEnrollService yxHistoryMajorEnrollService;
@Autowired
private IYxHistoryScoreControlLineService yxHistoryScoreControlLineService;
@ -128,19 +133,19 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
}
/**
* 批量保存
* 批量保存
*/
@AutoLog(value = "历年录取数据表-批量保存")
@ApiOperation(value="历年录取数据表-批量保存", notes="历年录取数据表-批量保存")
@ApiOperation(value = "历年录取数据表-批量保存", notes = "历年录取数据表-批量保存")
@RequiresPermissions("yx:yx_history_major_enroll:edit")
@RequestMapping(value = "/saveBatch", method = {RequestMethod.PUT,RequestMethod.POST})
@RequestMapping(value = "/saveBatch", method = {RequestMethod.PUT, RequestMethod.POST})
public Result<String> saveBatch(@RequestBody List<YxHistoryMajorEnroll> yxHistoryMajorEnrollList) {
String id=null;
String id = null;
String majorCode = null;
String majorName = null;
String schoolCode = null;
String enrollmentCode = null;
int i=0;
int i = 0;
for (YxHistoryMajorEnroll yxHistoryMajorEnroll : yxHistoryMajorEnrollList) {
i++;
id = yxHistoryMajorEnroll.getId();
@ -148,10 +153,10 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
majorName = yxHistoryMajorEnroll.getMajorName();
schoolCode = yxHistoryMajorEnroll.getSchoolCode();
enrollmentCode = yxHistoryMajorEnroll.getEnrollmentCode();
AssertUtils.notEmpty(schoolCode, String.format("第%s行,请输入[学校代码]!",i));
AssertUtils.notEmpty(majorCode, String.format("第%s行,请输入[专业代码]!",i));
AssertUtils.notEmpty(majorName, String.format("第%s行,请输入[专业名称]!",i));
AssertUtils.notEmpty(enrollmentCode, String.format("第%s行,请输入[招生代码]!",i));
AssertUtils.notEmpty(schoolCode, String.format("第%s行,请输入[学校代码]!", i));
AssertUtils.notEmpty(majorCode, String.format("第%s行,请输入[专业代码]!", i));
AssertUtils.notEmpty(majorName, String.format("第%s行,请输入[专业名称]!", i));
AssertUtils.notEmpty(enrollmentCode, String.format("第%s行,请输入[招生代码]!", i));
}
if (CollectionUtils.isNotEmpty(yxHistoryMajorEnrollList)) {
yxHistoryMajorEnrollService.saveOrUpdateBatch(yxHistoryMajorEnrollList);
@ -228,7 +233,48 @@ 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) {
return super.importExcel(request, response, YxHistoryMajorEnroll.class);
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
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, YxSchool> schoolNameMap = yxSchoolService.mapsForSchoolName();
Collection<YxSchool> schoolCodeList = schoolNameMap.values();
String schoolCode = null;
String schoolName = null;
List<YxHistoryMajorEnroll> list = ExcelImportUtil.importExcel(file.getInputStream(), YxHistoryMajorEnroll.class, params);
for (YxHistoryMajorEnroll yxHistoryMajorEnroll : list) {
index++;
schoolCode = yxHistoryMajorEnroll.getSchoolCode();
schoolName = yxHistoryMajorEnroll.getSchoolName();
AssertUtils.isTrue(schoolCodeList.contains(schoolCode),String.format("行[%s],学校代码[%s]未在系统找到",index,schoolCode));
}
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());
}
} finally {
try {
file.getInputStream().close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return Result.error("文件导入失败!");
}
@ -518,13 +564,13 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
majorType = "美术与设计类";
} else if (fileName.contains("音乐")) {
majorType = "音乐类";
if(fileName.contains("器乐")){
if (fileName.contains("器乐")) {
majorTypeChild = "器乐";
}
if(fileName.contains("声乐")){
if (fileName.contains("声乐")) {
majorTypeChild = "声乐";
}
if(fileName.contains("声乐")){
if (fileName.contains("声乐")) {
majorTypeChild = "声乐";
}
} else if (fileName.contains("艺术舞蹈")) {
@ -789,8 +835,8 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
List<String> notMajorList = new ArrayList<>();
List<String> notHistoryList = new ArrayList<>();
List<YxHistoryMajorEnroll> historyMajorEnrollList = new ArrayList<>();
LambdaQueryWrapper<YxHistoryMajorEnroll> yxHistoryMajorEnrollLambdaQueryWrapper =new LambdaQueryWrapper<>();
if(true){
LambdaQueryWrapper<YxHistoryMajorEnroll> yxHistoryMajorEnrollLambdaQueryWrapper = new LambdaQueryWrapper<>();
if (true) {
String majorType = "";
String majorTypeChild = "";
String fileName = file.getName();
@ -927,7 +973,7 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
}
//获取省控线
key =nianfen+"_" + (batch.equals("提前批") ? "本科A段" : batch.equals("高职高专") ? "高职高专" : batch) + "_" + kelei;
key = nianfen + "_" + (batch.equals("提前批") ? "本科A段" : batch.equals("高职高专") ? "高职高专" : batch) + "_" + kelei;
if (StringUtils.isNotBlank(majorTypeChild)) {
key += "_" + majorTypeChild + "";
} else {
@ -983,17 +1029,14 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
yxHistoryMajorEnroll.setRulesEnrollProbability("专过文排");
BigDecimal wenhuaBl = new BigDecimal(wenhuaBili).divide(bigDecimal100, 4, RoundingMode.HALF_UP);
yxHistoryMajorEnroll.setControlLine(wenhuaBl.multiply(culturalScore));
}
else if (StringUtils.isNotBlank(sortType) && sortType.contains("专业课排队")) {
} else if (StringUtils.isNotBlank(sortType) && sortType.contains("专业课排队")) {
//文过专排
yxHistoryMajorEnroll.setRulesEnrollProbability("文过专排");
BigDecimal zhuanyeBl = new BigDecimal(zhuanyeBili).divide(bigDecimal100, 4, RoundingMode.HALF_UP);
yxHistoryMajorEnroll.setControlLine(zhuanyeBl.multiply(specialScore));
}
else if (StringUtils.isNotBlank(sortType) && sortType.equals("其他计算办法")) {
} else if (StringUtils.isNotBlank(sortType) && sortType.equals("其他计算办法")) {
yxHistoryMajorEnroll.setRulesEnrollProbability("其他计算办法");
}
else {
} else {
if (StringUtils.isBlank(wenhuaBili) && StringUtils.isBlank(zhuanyeBili)) {
//没有招生
} else {
@ -1018,21 +1061,21 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
}
yxHistoryMajorEnrollLambdaQueryWrapper.clear();
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getMajorType,"体育类");
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getMajorName,yxHistoryMajorEnroll.getMajorName());
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getSchoolCode,yxHistoryMajorEnroll.getSchoolCode());
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getBatch,"高职高专");
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getCategory,kelei);
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getYear,yxHistoryMajorEnroll.getYear());
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getEnrollmentCode,yxHistoryMajorEnroll.getEnrollmentCode());
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getMajorType, "体育类");
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getMajorName, yxHistoryMajorEnroll.getMajorName());
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getSchoolCode, yxHistoryMajorEnroll.getSchoolCode());
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getBatch, "高职高专");
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getCategory, kelei);
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getYear, yxHistoryMajorEnroll.getYear());
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getEnrollmentCode, yxHistoryMajorEnroll.getEnrollmentCode());
long count = yxHistoryMajorEnrollService.count(yxHistoryMajorEnrollLambdaQueryWrapper);
if (count==0) {
if (count == 0) {
historyMajorEnrollList.add(yxHistoryMajorEnroll);
}
}
}
if (CollectionUtils.isEmpty(notMajorList) &&CollectionUtils.isEmpty(notHistoryList)) {
if (CollectionUtils.isEmpty(notMajorList) && CollectionUtils.isEmpty(notHistoryList)) {
//yxHistoryMajorEnrollService.saveBatch(historyMajorEnrollList);
}
return Result.ok("文件导入成功!数据行数:" + list.size());

View File

@ -128,9 +128,9 @@ public class BoYinService {
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), by, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
recommendMajorDTO.setStudentConvertedScore(studentScore);
}else{
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, culturalScore, professionalScore, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(),by, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
//将当期成绩按照专业录取分数方式折算
recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(rulesEnrollProbability, culturalScore, by, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator));
recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator));
recommendMajorDTO.setStudentConvertedScore(studentScore);
}