This commit is contained in:
zhouwentao 2024-03-21 18:18:54 +08:00
parent 129e68b202
commit e867ef29fc
3 changed files with 29 additions and 831 deletions

View File

@ -30,7 +30,7 @@ import java.util.stream.Collectors;
* @Author ZhouWenTao
* @Date 2024/1/17 9:47
*/
@Api(tags="小程序端-专业接口")
@Api(tags = "小程序端-专业接口")
@RestController
@Slf4j
@RequestMapping("/mini/major")
@ -54,18 +54,19 @@ public class MiniMajorController {
}
@GetMapping(value = "/recommendMajor/page")
public Result<?> recommendMajorPage(QueryRecommendMajorVO queryRecommendMajorVO){
public Result<?> recommendMajorPage(QueryRecommendMajorVO queryRecommendMajorVO) {
return Result.OK(yxCalculationMajorService.recommendMajorPage(queryRecommendMajorVO));
}
@ApiOperation(value = "获取院校当前其他推荐专业")
@GetMapping(value = "/schoolOtherMajor")
public Result<?> schoolOtherMajor(QueryRecommendMajorVO queryRecommendMajorVO){
public Result<?> schoolOtherMajor(QueryRecommendMajorVO queryRecommendMajorVO) {
return Result.OK(yxCalculationMajorService.schoolOtherMajor(queryRecommendMajorVO));
}
@ApiOperation(value = "专业介绍")
@GetMapping("/majorInfo")
public Result<?> schoolInfo(QueryRecommendMajorVO queryRecommendMajorVO){
public Result<?> schoolInfo(QueryRecommendMajorVO queryRecommendMajorVO) {
String majorCode = queryRecommendMajorVO.getMajorCode();
return Result.OK(yxMajorService.findByMajorCode(majorCode));
}
@ -75,7 +76,7 @@ public class MiniMajorController {
*/
@ApiOperation(value = "小程序端查专业列表")
@GetMapping("/miniMajorList")
public Result<?> miniMajorList(QueryRecommendMajorVO queryRecommendMajorVO){
public Result<?> miniMajorList(QueryRecommendMajorVO queryRecommendMajorVO) {
/*LambdaQueryWrapper<YxHistoryMajorEnroll> yxHistoryMajorEnrollLambdaQueryWrapper = new LambdaQueryWrapper<>();
yxHistoryMajorEnrollLambdaQueryWrapper.eq(YxHistoryMajorEnroll::getBatch,"本科B段");
yxHistoryMajorEnrollLambdaQueryWrapper.likeRight(YxHistoryMajorEnroll::getMajorCode,"3");
@ -113,7 +114,7 @@ public class MiniMajorController {
@ApiOperation(value = "获取院校的专业信息")
@GetMapping(value = "/schoolMajorList")
public Result<?> schoolMajorList(QueryRecommendMajorVO queryRecommendMajorVO){
public Result<?> schoolMajorList(QueryRecommendMajorVO queryRecommendMajorVO) {
return Result.OK(yxMajorService.schoolMajorList(queryRecommendMajorVO));
}
@ -131,16 +132,18 @@ public class MiniMajorController {
} else {
String str = null;
if (queryRecommendMajorVO.getProfessionalCategory().equals("音乐类")) {
str="[\"文过专排主科\",\"文过专排\",\"专过文排\",\"文1专1\",\"文3专7\",\"文3专10\",\"文4专10\",\"文4专6\",\"文5专10\",\"文5专5\",\"文6专10\",\"文6专4\",\"文7专3\"]";
}else{
str="[\"文过专排\",\"专过文排\",\"文1专1\",\"文3专7\",\"文3专10\",\"文4专10\",\"文4专6\",\"文5专10\",\"文5专5\",\"文6专10\",\"文6专4\",\"文7专3\"]";
}
str = "[\"文过专排主科\",\"文过专排\",\"专过文排\",\"文1专1\",\"文3专7\",\"文3专10\",\"文4专10\",\"文4专6\",\"文5专10\",\"文5专5\",\"文6专10\",\"文6专4\",\"文7专3\"]";
} else if (queryRecommendMajorVO.getProfessionalCategory().equals("体育类")) {
str = "[\"文过专排\",\"专过文排\",\"文3专7\",\"文5专5\",\"文7专3\"]";
} else {
str = "[\"文过专排\",\"专过文排\",\"文1专1\",\"文3专7\",\"文3专10\",\"文4专10\",\"文4专6\",\"文5专10\",\"文5专5\",\"文6专10\",\"文6专4\",\"文7专3\"]";
}//277
JSONArray objects = JSONArray.parseArray(str);
List<String> javaList = objects.toJavaList(String.class);
for (String s : javaList) {
data = new LinkedHashMap<>();
data.put("label",s);
data.put("value",s);
data.put("label", s);
data.put("value", s);
dataList.add(data);
}
json = JSONObject.toJSONString(dataList);

View File

@ -197,6 +197,19 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
return Result.OK("批量删除成功!");
}
@AutoLog(value = "历年录取数据表-更新省控线")
@ApiOperation(value = "历年录取数据表-更新省控线")
@PostMapping(value = "/renewControlLine")
@RequiresPermissions("yx:yx_history_major_enroll:edit")
public Result<?> renewControlLine(@RequestBody YxHistoryMajorEnroll yxHistoryMajorEnroll){
String id = yxHistoryMajorEnroll.getId();
LambdaQueryWrapper<YxHistoryMajorEnroll> lambdaQueryWrapper = new LambdaQueryWrapper<>();
if (StringUtils.isNotBlank(id)) {
}
return Result.OK("操作成功");
}
/**
* 通过id查询
*
@ -419,823 +432,4 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
}
/**
* 导入往年招录信息 提前批
*/
@RequestMapping(value = "/importExcelNew", method = RequestMethod.POST)
public Result<?> importExcelNew(HttpServletRequest request, HttpServletResponse response) {
//File file = new File("C:\\Users\\Denim\\Desktop\\2023河南录取分数\\2023美术提前批分数.xlsx");
//File file = new File("C:\\Users\\Denim\\Desktop\\2023河南录取分数\\2023河南音乐提前批分数.xlsx");
//File file = new File("C:\\Users\\Denim\\Desktop\\2023河南录取分数\\2023河南表演提前批分数.xlsx");
//File file = new File("C:\\Users\\Denim\\Desktop\\2023河南录取分数\\2023河南播音提前批.xlsx");
//File file = new File("C:\\Users\\Denim\\Desktop\\2023河南录取分数\\2023河南国际标准舞提前批分数.xlsx");
//File file = new File("C:\\Users\\Denim\\Desktop\\2023河南录取分数\\2023河南艺术舞蹈提前批分数.xlsx");
File file = new File("C:\\Users\\Denim\\Desktop\\2023河南录取分数\\2023河南书法提前批分数.xlsx");
FileInputStream fileInputStream = null;
int i = 0;
try {
fileInputStream = new FileInputStream(file);
ImportParams params = new ImportParams();
params.setTitleRows(0);
params.setNeedSave(true);
List<LiNianShuJuDTO> list = ExcelImportUtil.importExcel(fileInputStream, LiNianShuJuDTO.class, params);
BigDecimal bigDecimal100 = new BigDecimal(100);
String year = "2023";
String majorType = "";
String majorTypeChild = "";
String fileName = file.getName();
if (fileName.contains("美术")) {
majorType = "美术与设计类";
} else if (fileName.contains("音乐")) {
majorType = "音乐类";
} else if (fileName.contains("艺术舞蹈")) {
majorType = "舞蹈类";
majorTypeChild = "艺术舞蹈";
} else if (fileName.contains("国际标准舞")) {
majorType = "舞蹈类";
majorTypeChild = "国际标准舞";
} else if (fileName.contains("播音")) {
majorType = "播音与主持类";
} else if (fileName.contains("书法")) {
majorType = "书法类";
} else if (fileName.contains("戏曲")) {
majorType = "戏曲类";
} else if (fileName.contains("体育")) {
majorType = "体育类";
} else if (fileName.contains("表演")) {
majorType = "表演类";
} else {
throw new JeecgBootException("专业类别未获取");
}
//批次
String batch = null;
if (fileName.contains("提前批")) {
batch = "提前批";
} else if (fileName.contains("a")) {
batch = "本科A段";
} else if (fileName.contains("b")) {
batch = "本科B段";
} else if (fileName.contains("本科")) {
batch = "本科";
} else if (fileName.contains("高职高专")) {
batch = "高职高专";
} else {
throw new JeecgBootException("批次未获取");
}
//获取 23年省控线
LambdaQueryWrapper<YxHistoryScoreControlLine> yxHistoryScoreControlLineLambdaQueryWrapper = new LambdaQueryWrapper<>();
yxHistoryScoreControlLineLambdaQueryWrapper.eq(YxHistoryScoreControlLine::getYear, year);
yxHistoryScoreControlLineLambdaQueryWrapper.eq(YxHistoryScoreControlLine::getProfessionalCategory, majorType.equals("舞蹈类") ? majorTypeChild + "" : majorType);
List<YxHistoryScoreControlLine> historyScoreControlLineList = yxHistoryScoreControlLineService.list(yxHistoryScoreControlLineLambdaQueryWrapper);
Map<String, YxHistoryScoreControlLine> historyScoreControlLineMap = new LinkedHashMap<>();
String key = null;
for (YxHistoryScoreControlLine yhsl : historyScoreControlLineList) {
key = yhsl.getBatch() + "_" + yhsl.getCategory();
if (StringUtils.isNotBlank(majorTypeChild)) {
key += "_" + majorTypeChild + "";
} else {
key += "_" + yhsl.getProfessionalCategory();
}
historyScoreControlLineMap.put(key, yhsl);
}
//获取专业信息
LambdaQueryWrapper<YxMajor> yxMajorLambdaQueryWrapper = new LambdaQueryWrapper<>();
if ("高职高专".equals(batch)) {
yxMajorLambdaQueryWrapper.eq(YxMajor::getEducationalLevel, 2);
} else {
yxMajorLambdaQueryWrapper.eq(YxMajor::getEducationalLevel, 1);
}
List<YxMajor> yxMajorList = yxMajorService.list(yxMajorLambdaQueryWrapper);
Map<String, YxMajor> majorMap = new LinkedHashMap<>();
for (YxMajor yxMajor : yxMajorList) {
majorMap.put(yxMajor.getMajorName(), yxMajor);
}
String yuanxiaoCode = null;
String yuanxiao = null;
String kelei = null;
String nianfen = null;
String zhuanyeCode = null;
String zhuanye = null;
String sortType = null;
String wenhuaBili = null;
String zhuanyeBili = null;
String jihuashu = null;
String luqushu = null;
String yizhiyuanluqushu = null;
String yizhiyuanzuidipaixuchengji = null;
String majorName = null;
int i3 = 0;
YxHistoryScoreControlLine yxHistoryScoreControlLine = null;
YxHistoryMajorEnroll yxHistoryMajorEnroll = null;
YxMajor yxMajor = null;
List<YxHistoryMajorEnroll> historyMajorEnrollList = new ArrayList<>();
//没有找到的数据
List<String> notMajorList = new ArrayList<>();
List<String> notHistoryList = new ArrayList<>();
for (LiNianShuJuDTO liNianShuJuDTO : list) {
i++;
yuanxiaoCode = liNianShuJuDTO.getYuanxiaoCode();//院校代码
yuanxiao = liNianShuJuDTO.getYuanxiao();
kelei = liNianShuJuDTO.getKelei();//科类
nianfen = liNianShuJuDTO.getNianfen();//年份
zhuanyeCode = liNianShuJuDTO.getZhuanyeCode();//专业代码
zhuanye = liNianShuJuDTO.getZhuanye();//专业名称
sortType = liNianShuJuDTO.getSortType();//排序方法
wenhuaBili = liNianShuJuDTO.getWenhuaBili();//文化成绩比例
zhuanyeBili = liNianShuJuDTO.getZhuanyeBili();//专业成绩比例
jihuashu = liNianShuJuDTO.getJihuashu();//计划数
luqushu = liNianShuJuDTO.getLuqushu();//录取数
yizhiyuanluqushu = liNianShuJuDTO.getYizhiyuanluqushu();//一志愿录取数
yizhiyuanzuidipaixuchengji = liNianShuJuDTO.getYizhiyuanzuidipaixuchengji();//一志愿最低成绩
//更正数据
yuanxiao = yuanxiao.replace("(", "").replace(")", "");
zhuanye = zhuanye.replace("(", "").replace(")", "");
i3 = zhuanye.indexOf("");
majorName = zhuanye;
if (i3 != -1) {
majorName = zhuanye.substring(0, i3);
}
//获取省控线
key = (batch.equals("提前批") ? "本科A段" : batch.equals("高职高专") ? "高职高专" : batch) + "_" + kelei;
if (StringUtils.isNotBlank(majorTypeChild)) {
key += "_" + majorTypeChild + "";
} else {
key += "_" + majorType;
}
yxHistoryScoreControlLine = historyScoreControlLineMap.get(key);
if (yxHistoryScoreControlLine == null) {
notHistoryList.add(key);
continue;
}
yxMajor = majorMap.get(majorName);
if (yxMajor == null) {
notMajorList.add(zhuanye);
continue;
}
//组合保存对象
yxHistoryMajorEnroll = new YxHistoryMajorEnroll();
yxHistoryMajorEnroll.setSchoolCode(yuanxiaoCode);
yxHistoryMajorEnroll.setSchoolName(yuanxiao);
yxHistoryMajorEnroll.setInstitutionCode(yuanxiaoCode);
yxHistoryMajorEnroll.setMajorCode(yxMajor.getMajorCode());
yxHistoryMajorEnroll.setMajorName(zhuanye);
yxHistoryMajorEnroll.setMajorType(majorType);
if (StringUtils.isNotBlank(majorTypeChild)) {
yxHistoryMajorEnroll.setMajorTypeChild(majorTypeChild);
}
yxHistoryMajorEnroll.setEnrollmentCode(zhuanyeCode);
yxHistoryMajorEnroll.setCategory(kelei);
yxHistoryMajorEnroll.setYear(year);
yxHistoryMajorEnroll.setBatch(batch);
yxHistoryMajorEnroll.setEnrollNum(StringUtils.isBlank(jihuashu) ? 0 : Integer.parseInt(jihuashu));//计划数
yxHistoryMajorEnroll.setAdmissionNum(StringUtils.isBlank(luqushu) ? 0 : Integer.parseInt(luqushu));//录取数
yxHistoryMajorEnroll.setOneVolunteerAdmissionNum(StringUtils.isBlank(yizhiyuanluqushu) ? 0 : Integer.parseInt(yizhiyuanluqushu));//一志愿录取数
if (StringUtils.isBlank(yizhiyuanzuidipaixuchengji)) {
//没有招生
yxHistoryMajorEnroll.setAdmissionLine(new BigDecimal(0));
} else {
yxHistoryMajorEnroll.setAdmissionLine(new BigDecimal(yizhiyuanzuidipaixuchengji));
}
//============录取方式
//文化成绩分
BigDecimal culturalScore = yxHistoryScoreControlLine.getCulturalScore();
//专业成绩分
BigDecimal specialScore = yxHistoryScoreControlLine.getSpecialScore();
if (StringUtils.isNotBlank(sortType) && sortType.equals("专业课上线,文化课排队")) {
//专过文排
yxHistoryMajorEnroll.setRulesEnrollProbability("专过文排");
BigDecimal wenhuaBl = new BigDecimal(wenhuaBili).divide(bigDecimal100, 4, RoundingMode.HALF_UP);
yxHistoryMajorEnroll.setControlLine(wenhuaBl.multiply(culturalScore));
} else if (StringUtils.isNotBlank(sortType) && sortType.equals("文化课上线,专业课排队")) {
//文过专排
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.isBlank(wenhuaBili) && StringUtils.isBlank(zhuanyeBili)) {
//没有招生
} else {
if (wenhuaBili.equals("0") && zhuanyeBili.equals("100")) {
//文过专排
yxHistoryMajorEnroll.setRulesEnrollProbability("文过专排");
BigDecimal zhuanyeBl = new BigDecimal(zhuanyeBili).divide(bigDecimal100, 4, RoundingMode.HALF_UP);
yxHistoryMajorEnroll.setControlLine(zhuanyeBl.multiply(specialScore));
} else if (wenhuaBili.equals("100") && zhuanyeBili.equals("0")) {
yxHistoryMajorEnroll.setRulesEnrollProbability("专过文排");
BigDecimal wenhuaBl = new BigDecimal(wenhuaBili).divide(bigDecimal100, 4, RoundingMode.HALF_UP);
yxHistoryMajorEnroll.setControlLine(wenhuaBl.multiply(culturalScore));
} else {
BigDecimal wenhuaBl = new BigDecimal(wenhuaBili).divide(bigDecimal100, 4, RoundingMode.HALF_UP);
BigDecimal zhuanyeBl = new BigDecimal(zhuanyeBili).divide(bigDecimal100, 4, RoundingMode.HALF_UP);
BigDecimal controlLine = wenhuaBl.multiply(culturalScore).add(zhuanyeBl.multiply(specialScore));
yxHistoryMajorEnroll.setControlLine(controlLine);
yxHistoryMajorEnroll.setRulesEnrollProbability("" + wenhuaBl.toString() + "+专" + zhuanyeBl.toString());
yxHistoryMajorEnroll.setProbabilityOperator("文*" + wenhuaBl.toString() + "+专*" + zhuanyeBl.toString());
}
}
}
historyMajorEnrollList.add(yxHistoryMajorEnroll);
}
return Result.ok("文件导入成功!数据行数:" + list.size());
//yxHistoryMajorEnrollService.saveBatch(historyMajorEnrollList);
} catch (Exception e) {
System.out.println("索引:" + i);
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 {
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 导入往年招录信息 本科
*/
@RequestMapping(value = "/importExcelNewBen", method = RequestMethod.POST)
public Result<?> importExcelNewBen(HttpServletRequest request, HttpServletResponse response) {
//File file = new File("C:\\Users\\Denim\\Desktop\\2023河南录取分数\\2023河南表演A录取分数.xlsx");
//File file = new File("C:\\Users\\Denim\\Desktop\\2023河南录取分数\\2023河南播音A录取分数.xlsx");
//File file = new File("C:\\Users\\Denim\\Desktop\\2023河南录取分数\\2023河南美术A录取分数.xlsx");
//File file = new File("C:\\Users\\Denim\\Desktop\\2023河南录取分数\\2023河南书法A录取分数.xlsx");
//File file = new File("C:\\Users\\Denim\\Desktop\\2023河南录取分数\\2023河南省国际标准舞A录取分数.xlsx");
//File file = new File("C:\\Users\\Denim\\Desktop\\2023河南录取分数\\2023河南艺术舞蹈A录取分数.xlsx");
//File file = new File("C:\\Users\\Denim\\Desktop\\2023河南录取分数\\2023河南音乐A录取分数.xlsx");
File file = new File("C:\\Users\\Denim\\Desktop\\2023河南录取分数\\2023体育本科录取分数.xlsx");
FileInputStream fileInputStream = null;
int i = 0;
try {
fileInputStream = new FileInputStream(file);
ImportParams params = new ImportParams();
params.setTitleRows(0);
params.setNeedSave(true);
List<LiNianShuJuBenDTO> list = ExcelImportUtil.importExcel(fileInputStream, LiNianShuJuBenDTO.class, params);
BigDecimal bigDecimal100 = new BigDecimal(100);
String year = "2023";
String majorType = "";
String majorTypeChild = "";
String fileName = file.getName();
if (fileName.contains("美术")) {
majorType = "美术与设计类";
} else if (fileName.contains("音乐")) {
majorType = "音乐类";
if (fileName.contains("器乐")) {
majorTypeChild = "器乐";
}
if (fileName.contains("声乐")) {
majorTypeChild = "声乐";
}
if (fileName.contains("声乐")) {
majorTypeChild = "声乐";
}
} else if (fileName.contains("艺术舞蹈")) {
majorType = "舞蹈类";
majorTypeChild = "艺术舞蹈";
} else if (fileName.contains("国际标准舞")) {
majorType = "舞蹈类";
majorTypeChild = "国际标准舞";
} else if (fileName.contains("播音")) {
majorType = "播音与主持类";
} else if (fileName.contains("书法")) {
majorType = "书法类";
} else if (fileName.contains("戏曲")) {
majorType = "戏曲类";
} else if (fileName.contains("体育")) {
majorType = "体育类";
} else if (fileName.contains("表演")) {
majorType = "表演类";
} else {
throw new JeecgBootException("专业类别未获取");
}
//批次
String batch = null;
if (fileName.contains("提前批")) {
batch = "提前批";
} else if (fileName.contains("A") || fileName.contains("a")) {
batch = "本科A段";
} else if (fileName.contains("B") || fileName.contains("b")) {
batch = "本科B段";
} else if (fileName.contains("本科")) {
batch = "本科";
} else if (fileName.contains("高职高专")) {
batch = "高职高专";
} else {
throw new JeecgBootException("批次未获取");
}
//获取 23年省控线
LambdaQueryWrapper<YxHistoryScoreControlLine> yxHistoryScoreControlLineLambdaQueryWrapper = new LambdaQueryWrapper<>();
yxHistoryScoreControlLineLambdaQueryWrapper.eq(YxHistoryScoreControlLine::getYear, year);
yxHistoryScoreControlLineLambdaQueryWrapper.eq(YxHistoryScoreControlLine::getProfessionalCategory, majorType.equals("舞蹈类") ? majorTypeChild + "" : majorType);
List<YxHistoryScoreControlLine> historyScoreControlLineList = yxHistoryScoreControlLineService.list(yxHistoryScoreControlLineLambdaQueryWrapper);
Map<String, YxHistoryScoreControlLine> historyScoreControlLineMap = new LinkedHashMap<>();
String key = null;
for (YxHistoryScoreControlLine yhsl : historyScoreControlLineList) {
key = yhsl.getBatch() + "_" + yhsl.getCategory();
if (StringUtils.isNotBlank(majorTypeChild)) {
key += "_" + majorTypeChild + "";
} else {
key += "_" + yhsl.getProfessionalCategory();
}
historyScoreControlLineMap.put(key, yhsl);
}
//获取专业信息
LambdaQueryWrapper<YxMajor> yxMajorLambdaQueryWrapper = new LambdaQueryWrapper<>();
if ("高职高专".equals(batch)) {
yxMajorLambdaQueryWrapper.eq(YxMajor::getEducationalLevel, 2);
} else {
yxMajorLambdaQueryWrapper.eq(YxMajor::getEducationalLevel, 1);
}
List<YxMajor> yxMajorList = yxMajorService.list(yxMajorLambdaQueryWrapper);
Map<String, YxMajor> majorMap = new LinkedHashMap<>();
for (YxMajor yxMajor : yxMajorList) {
majorMap.put(yxMajor.getMajorName(), yxMajor);
}
String yuanxiaoCode = null;
String yuanxiao = null;
String kelei = null;
String nianfen = null;
String zhuanyeCode = null;
String zhuanye = null;
String sortType = null;
String wenhuaBili = null;
String zhuanyeBili = null;
String jihuashu = null;
String luqushu = null;
String yizhiyuanluqushu = null;
String yizhiyuanzuidipaixuchengji = null;
String majorName = null;
int i3 = 0;
YxHistoryScoreControlLine yxHistoryScoreControlLine = null;
YxHistoryMajorEnroll yxHistoryMajorEnroll = null;
YxMajor yxMajor = null;
List<YxHistoryMajorEnroll> historyMajorEnrollList = new ArrayList<>();
//没有找到的数据
List<String> notMajorList = new ArrayList<>();
List<String> notHistoryList = new ArrayList<>();
for (LiNianShuJuBenDTO liNianShuJuDTO : list) {
i++;
yuanxiaoCode = liNianShuJuDTO.getYuanxiaoCode();//院校代码
yuanxiao = liNianShuJuDTO.getYuanxiao();
kelei = liNianShuJuDTO.getKelei();//科类
nianfen = liNianShuJuDTO.getNianfen();//年份
zhuanyeCode = liNianShuJuDTO.getZhuanyeCode();//专业代码
zhuanye = liNianShuJuDTO.getZhuanye();//专业名称
sortType = liNianShuJuDTO.getSortType();//排序方法
wenhuaBili = liNianShuJuDTO.getWenhuaBili();//文化成绩比例
zhuanyeBili = liNianShuJuDTO.getZhuanyeBili();//专业成绩比例
jihuashu = liNianShuJuDTO.getJihuashu();//计划数
luqushu = "";//录取数
yizhiyuanluqushu = "";//一志愿录取数
yizhiyuanzuidipaixuchengji = liNianShuJuDTO.getYizhiyuanzuidipaixuchengji();//一志愿最低成绩
//更正数据
yuanxiao = yuanxiao.replace("(", "").replace(")", "");
zhuanye = zhuanye.replace("(", "").replace(")", "");
i3 = zhuanye.indexOf("");
majorName = zhuanye;
if (i3 != -1) {
majorName = zhuanye.substring(0, i3);
}
//获取省控线
key = (batch.equals("提前批") ? "本科A段" : batch.equals("高职高专") ? "高职高专" : batch) + "_" + kelei;
if (StringUtils.isNotBlank(majorTypeChild)) {
key += "_" + majorTypeChild + "";
} else {
key += "_" + majorType;
}
yxHistoryScoreControlLine = historyScoreControlLineMap.get(key);
if (yxHistoryScoreControlLine == null) {
notHistoryList.add(key);
continue;
}
yxMajor = majorMap.get(majorName);
if (yxMajor == null) {
notMajorList.add(zhuanye);
continue;
}
//组合保存对象
yxHistoryMajorEnroll = new YxHistoryMajorEnroll();
yxHistoryMajorEnroll.setSchoolCode(yuanxiaoCode);
yxHistoryMajorEnroll.setSchoolName(yuanxiao);
yxHistoryMajorEnroll.setInstitutionCode(yuanxiaoCode);
yxHistoryMajorEnroll.setMajorCode(yxMajor.getMajorCode());
yxHistoryMajorEnroll.setMajorName(zhuanye);
yxHistoryMajorEnroll.setMajorType(majorType);
if (StringUtils.isNotBlank(majorTypeChild)) {
yxHistoryMajorEnroll.setMajorTypeChild(majorTypeChild);
}
yxHistoryMajorEnroll.setEnrollmentCode(zhuanyeCode);
yxHistoryMajorEnroll.setCategory(kelei);
yxHistoryMajorEnroll.setYear(year);
yxHistoryMajorEnroll.setBatch(batch);
yxHistoryMajorEnroll.setEnrollNum(StringUtils.isBlank(jihuashu) ? 0 : Integer.parseInt(jihuashu));//计划数
yxHistoryMajorEnroll.setAdmissionNum(StringUtils.isBlank(luqushu) ? 0 : Integer.parseInt(luqushu));//录取数
yxHistoryMajorEnroll.setOneVolunteerAdmissionNum(StringUtils.isBlank(yizhiyuanluqushu) ? 0 : Integer.parseInt(yizhiyuanluqushu));//一志愿录取数
if (StringUtils.isBlank(yizhiyuanzuidipaixuchengji)) {
//没有招生
yxHistoryMajorEnroll.setAdmissionLine(new BigDecimal(0));
} else {
yxHistoryMajorEnroll.setAdmissionLine(new BigDecimal(yizhiyuanzuidipaixuchengji));
}
//============录取方式
//文化成绩分
BigDecimal culturalScore = yxHistoryScoreControlLine.getCulturalScore();
//专业成绩分
BigDecimal specialScore = yxHistoryScoreControlLine.getSpecialScore();
if (StringUtils.isNotBlank(sortType) && sortType.contains("文化课排队")) {
//专过文排
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("专业课排队")) {
//文过专排
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.isBlank(wenhuaBili) && StringUtils.isBlank(zhuanyeBili)) {
//没有招生
} else {
if (wenhuaBili.equals("0") && zhuanyeBili.equals("100")) {
//文过专排
yxHistoryMajorEnroll.setRulesEnrollProbability("文过专排");
BigDecimal zhuanyeBl = new BigDecimal(zhuanyeBili).divide(bigDecimal100, 4, RoundingMode.HALF_UP);
yxHistoryMajorEnroll.setControlLine(zhuanyeBl.multiply(specialScore));
} else if (wenhuaBili.equals("100") && zhuanyeBili.equals("0")) {
yxHistoryMajorEnroll.setRulesEnrollProbability("专过文排");
BigDecimal wenhuaBl = new BigDecimal(wenhuaBili).divide(bigDecimal100, 4, RoundingMode.HALF_UP);
yxHistoryMajorEnroll.setControlLine(wenhuaBl.multiply(culturalScore));
} else {
BigDecimal wenhuaBl = new BigDecimal(wenhuaBili).divide(bigDecimal100, 4, RoundingMode.HALF_UP);
BigDecimal zhuanyeBl = new BigDecimal(zhuanyeBili).divide(bigDecimal100, 4, RoundingMode.HALF_UP);
BigDecimal controlLine = wenhuaBl.multiply(culturalScore).add(zhuanyeBl.multiply(specialScore));
yxHistoryMajorEnroll.setControlLine(controlLine);
yxHistoryMajorEnroll.setRulesEnrollProbability("" + wenhuaBl.toString() + "+专" + zhuanyeBl.toString());
yxHistoryMajorEnroll.setProbabilityOperator("文*" + wenhuaBl.toString() + "+专*" + zhuanyeBl.toString());
}
}
}
historyMajorEnrollList.add(yxHistoryMajorEnroll);
}
return Result.ok("文件导入成功!数据行数:" + list.size());
//yxHistoryMajorEnrollService.saveBatch(historyMajorEnrollList);
} catch (Exception e) {
System.out.println("索引:" + i);
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 {
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 导入往年招录信息 Zhuan
*/
@RequestMapping(value = "/importExcelNewZhuan", method = RequestMethod.POST)
public Result<?> importExcelNewZhuan(HttpServletRequest request, HttpServletResponse response) {
//File file = new File("C:\\Users\\Denim\\Desktop\\艺术类表格\\美术高职高专.xlsx");
//File file = new File("C:\\Users\\Denim\\Desktop\\艺术类表格\\音乐高职高专.xlsx");
//File file = new File("C:\\Users\\Denim\\Desktop\\艺术类表格\\表演高职高专.xlsx");
//File file = new File("C:\\Users\\Denim\\Desktop\\艺术类表格\\播音高职高专.xlsx");
//File file = new File("C:\\Users\\Denim\\Desktop\\艺术类表格\\国际标准舞高职高专.xlsx");
//File file = new File("C:\\Users\\Denim\\Desktop\\艺术类表格\\书法高职高专.xlsx");
//File file = new File("C:\\Users\\Denim\\Desktop\\艺术类表格\\艺术舞蹈高职高专.xlsx");
//
//File file = new File("C:\\Users\\Denim\\Desktop\\艺术类表格\\美术B段.xlsx");
//File file = new File("C:\\Users\\Denim\\Desktop\\艺术类表格\\表演B段.xlsx");
//File file = new File("C:\\Users\\Denim\\Desktop\\艺术类表格\\播音B段.xlsx");
//File file = new File("C:\\Users\\Denim\\Desktop\\艺术类表格\\国际标准舞B段.xlsx");
//File file = new File("C:\\Users\\Denim\\Desktop\\艺术类表格\\艺术舞蹈B段.xlsx");
//File file = new File("C:\\Users\\Denim\\Desktop\\艺术类表格\\音乐B段.xlsx");
// File file = new File("C:\\Users\\Denim\\Desktop\\艺术类表格\\\\体育专科.xlsx");
File file = new File("C:\\Users\\Denim\\Desktop\\艺术类表格\\\\体育专科.xlsx");
FileInputStream fileInputStream = null;
int i = 0;
try {
fileInputStream = new FileInputStream(file);
ImportParams params = new ImportParams();
params.setTitleRows(0);
params.setNeedSave(true);
List<LiNianShuJuZhuanDTO> list = ExcelImportUtil.importExcel(fileInputStream, LiNianShuJuZhuanDTO.class, params);
BigDecimal bigDecimal100 = new BigDecimal(100);
//没有找到的数据
List<String> notMajorList = new ArrayList<>();
List<String> notHistoryList = new ArrayList<>();
List<YxHistoryMajorEnroll> historyMajorEnrollList = new ArrayList<>();
LambdaQueryWrapper<YxHistoryMajorEnroll> yxHistoryMajorEnrollLambdaQueryWrapper = new LambdaQueryWrapper<>();
if (true) {
String majorType = "";
String majorTypeChild = "";
String fileName = file.getName();
if (fileName.contains("美术")) {
majorType = "美术与设计类";
} else if (fileName.contains("音乐")) {
majorType = "音乐类";
} else if (fileName.contains("艺术舞蹈")) {
majorType = "舞蹈类";
majorTypeChild = "艺术舞蹈";
} else if (fileName.contains("国际标准舞")) {
majorType = "舞蹈类";
majorTypeChild = "国际标准舞";
} else if (fileName.contains("播音")) {
majorType = "播音与主持类";
} else if (fileName.contains("书法")) {
majorType = "书法类";
} else if (fileName.contains("戏曲")) {
majorType = "戏曲类";
} else if (fileName.contains("体育")) {
majorType = "体育类";
} else if (fileName.contains("表演")) {
majorType = "表演类";
} else {
throw new JeecgBootException("专业类别未获取");
}
//批次
String batch = null;
if (fileName.contains("提前批")) {
batch = "提前批";
} else if (fileName.contains("A") || fileName.contains("a")) {
batch = "本科A段";
} else if (fileName.contains("B") || fileName.contains("b")) {
batch = "本科B段";
} else if (fileName.contains("本科")) {
batch = "本科";
} else if (fileName.contains("高职高专") || fileName.contains("专科")) {
batch = "高职高专";
} else {
throw new JeecgBootException("批次未获取");
}
//获取 23年省控线
LambdaQueryWrapper<YxHistoryScoreControlLine> yxHistoryScoreControlLineLambdaQueryWrapper = new LambdaQueryWrapper<>();
//yxHistoryScoreControlLineLambdaQueryWrapper.eq(YxHistoryScoreControlLine::getYear, );
yxHistoryScoreControlLineLambdaQueryWrapper.eq(YxHistoryScoreControlLine::getProfessionalCategory, majorType.equals("舞蹈类") ? majorTypeChild + "" : majorType);
List<YxHistoryScoreControlLine> historyScoreControlLineList = yxHistoryScoreControlLineService.list(yxHistoryScoreControlLineLambdaQueryWrapper);
Map<String, YxHistoryScoreControlLine> historyScoreControlLineMap = new LinkedHashMap<>();
String key = null;
for (YxHistoryScoreControlLine yhsl : historyScoreControlLineList) {
key = yhsl.getYear() + "_" + yhsl.getBatch() + "_" + yhsl.getCategory();
if (StringUtils.isNotBlank(majorTypeChild)) {
key += "_" + majorTypeChild + "";
} else {
key += "_" + yhsl.getProfessionalCategory();
}
historyScoreControlLineMap.put(key, yhsl);
}
//获取专业信息
LambdaQueryWrapper<YxMajor> yxMajorLambdaQueryWrapper = new LambdaQueryWrapper<>();
if ("高职高专".equals(batch)) {
yxMajorLambdaQueryWrapper.eq(YxMajor::getEducationalLevel, 2);
} else {
yxMajorLambdaQueryWrapper.eq(YxMajor::getEducationalLevel, 1);
}
List<YxMajor> yxMajorList = yxMajorService.list(yxMajorLambdaQueryWrapper);
Map<String, YxMajor> majorMap = new LinkedHashMap<>();
for (YxMajor yxMajor : yxMajorList) {
majorMap.put(yxMajor.getMajorName(), yxMajor);
}
String yuanxiaoCode = null;
String yuanxiao = null;
String kelei = null;
String nianfen = null;
String zhuanyeCode = null;
String zhuanye = null;
String sortType = null;
String wenhuaBili = null;
String zhuanyeBili = null;
String jihuashu = null;
String luqushu = null;
String yizhiyuanluqushu = null;
String yizhiyuanzuidipaixuchengji = null;
String majorName = null;
int i3 = 0;
YxHistoryScoreControlLine yxHistoryScoreControlLine = null;
YxHistoryMajorEnroll yxHistoryMajorEnroll = null;
YxMajor yxMajor = null;
for (LiNianShuJuZhuanDTO liNianShuJuDTO : list) {
i++;
yuanxiao = liNianShuJuDTO.getYuanxiao();
kelei = liNianShuJuDTO.getKelei();//科类
nianfen = liNianShuJuDTO.getNianfen();//年份
//zhuanyeCode = liNianShuJuDTO.getZhuanyeCode();//专业代码
zhuanye = liNianShuJuDTO.getZhuanye();//专业名称
sortType = liNianShuJuDTO.getSortType();//排序方法
wenhuaBili = liNianShuJuDTO.getWenhuaBili();//文化成绩比例
zhuanyeBili = liNianShuJuDTO.getZhuanyeBili();//专业成绩比例
jihuashu = liNianShuJuDTO.getJihuashu();//计划数
luqushu = "";//录取数
yizhiyuanluqushu = "";//一志愿录取数
yizhiyuanzuidipaixuchengji = liNianShuJuDTO.getYizhiyuanzuidipaixuchengji();//一志愿最低成绩
if (StringUtils.isNotBlank(yizhiyuanzuidipaixuchengji)) {
continue;
}
if (yuanxiao.contains("银川科技学院")) {
System.out.println("111");
}
//更正数据
yuanxiao = yuanxiao.replace("(", "").replace(")", "");
yuanxiao = yuanxiao.replace("\n" +
" ", "");
yuanxiao = yuanxiao.replace("\n", "");
yuanxiao = yuanxiao.replace(" ", "");
//拆出院校代码
yuanxiaoCode = yuanxiao.substring(1, 5);
yuanxiao = yuanxiao.substring(6, yuanxiao.length());
//yuanxiaoCode = liNianShuJuDTO.getYuanxiaoCode();//院校代码
zhuanye = zhuanye.replace("(", "").replace(")", "");
zhuanyeCode = zhuanye.substring(1, 3);
zhuanye = zhuanye.substring(4, zhuanye.length());
i3 = zhuanye.indexOf("");
majorName = zhuanye;
if (i3 != -1) {
majorName = zhuanye.substring(0, i3);
}
//获取省控线
key = nianfen + "_" + (batch.equals("提前批") ? "本科A段" : batch.equals("高职高专") ? "高职高专" : batch) + "_" + kelei;
if (StringUtils.isNotBlank(majorTypeChild)) {
key += "_" + majorTypeChild + "";
} else {
key += "_" + majorType;
}
yxHistoryScoreControlLine = historyScoreControlLineMap.get(key);
if (yxHistoryScoreControlLine == null) {
notHistoryList.add(key);
continue;
}
if (majorName.equals("广告设计与制作")) {
majorName = "广告艺术设计";
}
yxMajor = majorMap.get(majorName);
if (yxMajor == null) {
notMajorList.add(zhuanye);
continue;
}
//组合保存对象
yxHistoryMajorEnroll = new YxHistoryMajorEnroll();
yxHistoryMajorEnroll.setSchoolCode(yuanxiaoCode);
yxHistoryMajorEnroll.setSchoolName(yuanxiao);
yxHistoryMajorEnroll.setInstitutionCode(yuanxiaoCode);
yxHistoryMajorEnroll.setMajorCode(yxMajor.getMajorCode());
yxHistoryMajorEnroll.setMajorName(zhuanye);
yxHistoryMajorEnroll.setMajorType(majorType);
if (StringUtils.isNotBlank(majorTypeChild)) {
yxHistoryMajorEnroll.setMajorTypeChild(majorTypeChild);
}
yxHistoryMajorEnroll.setEnrollmentCode(zhuanyeCode);
yxHistoryMajorEnroll.setCategory(kelei);
yxHistoryMajorEnroll.setYear(nianfen);
yxHistoryMajorEnroll.setBatch(batch);
yxHistoryMajorEnroll.setEnrollNum(StringUtils.isBlank(jihuashu) ? 0 : Integer.parseInt(jihuashu));//计划数
yxHistoryMajorEnroll.setAdmissionNum(StringUtils.isBlank(luqushu) ? 0 : Integer.parseInt(luqushu));//录取数
yxHistoryMajorEnroll.setOneVolunteerAdmissionNum(StringUtils.isBlank(yizhiyuanluqushu) ? 0 : Integer.parseInt(yizhiyuanluqushu));//一志愿录取数
if (StringUtils.isBlank(yizhiyuanzuidipaixuchengji)) {
//没有招生
yxHistoryMajorEnroll.setAdmissionLine(new BigDecimal(0));
} else {
yxHistoryMajorEnroll.setAdmissionLine(new BigDecimal(yizhiyuanzuidipaixuchengji));
}
//============录取方式
//文化成绩分
BigDecimal culturalScore = yxHistoryScoreControlLine.getCulturalScore();
//专业成绩分
BigDecimal specialScore = yxHistoryScoreControlLine.getSpecialScore();
if (StringUtils.isNotBlank(sortType) && sortType.contains("文化课排队")) {
//专过文排
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("专业课排队")) {
//文过专排
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("其他计算办法")) {
yxHistoryMajorEnroll.setRulesEnrollProbability("其他计算办法");
} else {
if (StringUtils.isBlank(wenhuaBili) && StringUtils.isBlank(zhuanyeBili)) {
//没有招生
} else {
if (wenhuaBili.equals("0") && zhuanyeBili.equals("100")) {
//文过专排
yxHistoryMajorEnroll.setRulesEnrollProbability("文过专排");
BigDecimal zhuanyeBl = new BigDecimal(zhuanyeBili).divide(bigDecimal100, 4, RoundingMode.HALF_UP);
yxHistoryMajorEnroll.setControlLine(zhuanyeBl.multiply(specialScore));
} else if (wenhuaBili.equals("100") && zhuanyeBili.equals("0")) {
yxHistoryMajorEnroll.setRulesEnrollProbability("专过文排");
BigDecimal wenhuaBl = new BigDecimal(wenhuaBili).divide(bigDecimal100, 4, RoundingMode.HALF_UP);
yxHistoryMajorEnroll.setControlLine(wenhuaBl.multiply(culturalScore));
} else {
BigDecimal wenhuaBl = new BigDecimal(wenhuaBili).divide(bigDecimal100, 4, RoundingMode.HALF_UP);
BigDecimal zhuanyeBl = new BigDecimal(zhuanyeBili).divide(bigDecimal100, 4, RoundingMode.HALF_UP);
BigDecimal controlLine = wenhuaBl.multiply(culturalScore).add(zhuanyeBl.multiply(specialScore));
yxHistoryMajorEnroll.setControlLine(controlLine);
yxHistoryMajorEnroll.setRulesEnrollProbability("" + wenhuaBl.toString() + "+专" + zhuanyeBl.toString());
yxHistoryMajorEnroll.setProbabilityOperator("文*" + wenhuaBl.toString() + "+专*" + zhuanyeBl.toString());
}
}
}
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());
long count = yxHistoryMajorEnrollService.count(yxHistoryMajorEnrollLambdaQueryWrapper);
if (count == 0) {
historyMajorEnrollList.add(yxHistoryMajorEnroll);
}
}
}
if (CollectionUtils.isEmpty(notMajorList) && CollectionUtils.isEmpty(notHistoryList)) {
//yxHistoryMajorEnrollService.saveBatch(historyMajorEnrollList);
}
return Result.ok("文件导入成功!数据行数:" + list.size());
} catch (Exception e) {
System.out.println("索引:" + i);
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 {
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

View File

@ -258,6 +258,7 @@ public class YxVolunteerServiceImpl extends ServiceImpl<YxVolunteerMapper, YxVol
LambdaQueryWrapper<YxVolunteer> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(YxVolunteer::getCreateBy, sysUser.getId());
queryWrapper.orderByDesc(YxVolunteer::getCreateTime);
queryWrapper.last("limit 0,5");
List<YxVolunteer> volunteerList = this.list(queryWrapper);
List<VolunteerDTO> list = new ArrayList<>();
VolunteerDTO volunteerDTO = null;