diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/WebMajorController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/WebMajorController.java index b3ae5b0..bbee1db 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/WebMajorController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/web/controller/WebMajorController.java @@ -15,17 +15,24 @@ import org.jeecg.common.util.RedisUtil; import org.jeecg.modules.mini.service.MiniTestCulturalService; import org.jeecg.modules.web.service.WebMajorService; import org.jeecg.modules.web.vo.QueryRecommendMajorVO; +import org.jeecg.modules.yx.constant.YxConstant; +import org.jeecg.modules.yx.entity.YxHistoryMajorEnroll; +import org.jeecg.modules.yx.entity.YxHistoryScoreControlLine; import org.jeecg.modules.yx.entity.YxMajor; import org.jeecg.modules.yx.service.IYxCalculationMajorService; +import org.jeecg.modules.yx.service.IYxHistoryMajorEnrollService; +import org.jeecg.modules.yx.service.IYxHistoryScoreControlLineService; import org.jeecg.modules.yx.service.IYxMajorService; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -47,8 +54,105 @@ public class WebMajorController { IYxCalculationMajorService yxCalculationMajorService; @Resource RedisUtil redisUtil; + @Resource + private IYxHistoryMajorEnrollService yxHistoryMajorEnrollService; + @Resource + private IYxHistoryScoreControlLineService yxHistoryScoreControlLineService; @GetMapping(value = "/recommendMajor/page") public Result recommendMajorPage(QueryRecommendMajorVO queryRecommendMajorVO) { +// Map historyScoreControlLineMap = yxHistoryScoreControlLineService.allMaps(); +// +// List list = yxHistoryMajorEnrollService.list(new LambdaQueryWrapper() +// .eq(YxHistoryMajorEnroll::getBatch,"高职高专") +// .eq(YxHistoryMajorEnroll::getYear, "2023") +// .eq(YxHistoryMajorEnroll::getRulesEnrollProbability, "文*0.5+专*1.25")); +// String year = "2023"; +// String batch = "高职高专"; +// String category = ""; +// String key = ""; +// YxHistoryScoreControlLine historyScoreControlLine = null; +// BigDecimal culturalScore = null; +// BigDecimal specialScore = null; +// BigDecimal wenhuaBili = null; +// BigDecimal zhuanyeBili = null; +// for (YxHistoryMajorEnroll yxHistoryMajorEnroll : list) { +// String majorType = yxHistoryMajorEnroll.getMajorType(); +// category = yxHistoryMajorEnroll.getCategory(); +// String mainSubjects = yxHistoryMajorEnroll.getMainSubjects(); +// if(majorType.contains("美术")){ +// yxHistoryMajorEnroll.setProbabilityOperator("文*0.067+专*0.167"); +// }else if(majorType.contains("音乐")){ +// yxHistoryMajorEnroll.setProbabilityOperator("文*0.067+专*0.25"); +// }else if(majorType.contains("舞蹈")){ +// yxHistoryMajorEnroll.setProbabilityOperator("文*0.067+专*0.25"); +// }else if(majorType.contains("播音")){ +// yxHistoryMajorEnroll.setProbabilityOperator("文*0.067+专*0.125"); +// }else if(majorType.contains("表演")){ +// yxHistoryMajorEnroll.setProbabilityOperator("文*0.067+专*0.25"); +// }else if(majorType.contains("书法")){ +// yxHistoryMajorEnroll.setProbabilityOperator("文*0.067+专*0.167"); +// } +// String probabilityOperator = yxHistoryMajorEnroll.getProbabilityOperator(); +// String rulesEnrollProbability = yxHistoryMajorEnroll.getRulesEnrollProbability(); +// //省控线 +// //美术与设计类文0.067 专0.167 +// //音乐类文0.067 专0.25 +// //舞蹈类文0.067 专0.25 +// //播音与主持类文 0.067 专0.125 +// //表演类文0.067 专0.25 +// //书法类文0.067 专0.167 +// +// //文科_本科A段_美术与设计_2023 +// if ("舞蹈类".equals(majorType)) { +// if (mainSubjects.contains("艺术舞蹈")) { +// key = category + "_" + batch + "_" + "艺术舞蹈类" + "_" + year; +// } else if (mainSubjects.contains("国际标准")) { +// key = category + "_" + batch + "_" + "国际标准舞类" + "_" + year; +// } +// } else if(majorType.contains("体育")){ +// if (batch.contains("专科") || batch.contains("高职高专")) { +// batch = "高职高专"; +// }else{ +// batch = "本科"; +// } +// key = category + "_" + batch + "_" + majorType + "_" + year; +// } else { +// key = category + "_" + batch + "_" + majorType + "_" + year; +// } +// historyScoreControlLine = historyScoreControlLineMap.get(key); +// AssertUtils.notNull(historyScoreControlLine, String.format("行,未在系统中找到省控线")); +// culturalScore = historyScoreControlLine.getCulturalScore(); +// specialScore = historyScoreControlLine.getSpecialScore(); +// //换算分数 +// String[] operators = probabilityOperator.split("\\+"); +// for (String operator : operators) { +// if (operator.contains("文")) { +// wenhuaBili = new BigDecimal(operator.split("\\*")[1]); +// } +// if (operator.contains("专")) { +// 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(probabilityOperator); +// } +// } +// yxHistoryMajorEnrollService.updateBatchById(list,300); return Result.OK(yxCalculationMajorService.recommendMajorPage(queryRecommendMajorVO)); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/controller/YxHistoryMajorEnrollController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/controller/YxHistoryMajorEnrollController.java index 601c2f9..47bcbd0 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/controller/YxHistoryMajorEnrollController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/controller/YxHistoryMajorEnrollController.java @@ -244,50 +244,71 @@ public class YxHistoryMajorEnrollController extends JeecgController dataList = new ArrayList<>(); - List historyMajorEnrollList = yxHistoryMajorEnrollService.list(new LambdaQueryWrapper() - .eq(YxHistoryMajorEnroll::getYear,"2023") - .eq(YxHistoryMajorEnroll::getMajorType,"体育类")); - Set notAddSet = new LinkedHashSet<>(); - Map map =new LinkedHashMap<>(); - for (YxHistoryMajorEnroll y : historyMajorEnrollList) { - notAddSet.add(y.getSchoolCode()+"_"+y.getEnrollmentCode()+"_"+y.getMajorType()+"_"+y.getCategory()); - map.put(y.getSchoolCode()+"_"+y.getEnrollmentCode()+"_"+y.getMajorType()+"_"+y.getCategory(),y); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.apply("control_line > admission_line") + .gt(YxHistoryMajorEnroll::getAdmissionLine, 1); + List historyMajorEnrollList = yxHistoryMajorEnrollService.list(queryWrapper); + dataList = historyMajorEnrollList; + List schoolMajorList1 = yxSchoolMajorService.list(new LambdaQueryWrapper()); + Map map1 =new LinkedHashMap<>(); + for (YxSchoolMajor y : schoolMajorList1) { + map1.put(y.getSchoolCode()+"_"+y.getEnrollmentCode()+"_"+y.getMajorType()+"_"+y.getCategory(),y); } - List schoolMajorList = yxSchoolMajorService.list(new LambdaQueryWrapper() - .eq(YxSchoolMajor::getMajorType,"体育类")); - List schoolChildList = yxSchoolChildService.list(); - Map schoolNameMap = schoolChildList.stream().collect(Collectors.toMap(YxSchoolChild::getSchoolCode, YxSchoolChild::getSchoolName)); - String schoolName = ""; - - YxHistoryMajorEnroll yxHistoryMajorEnroll = null; - int i =0; - try { - String key = null; - for (YxSchoolMajor yxSchoolMajor : schoolMajorList) { - key = yxSchoolMajor.getSchoolCode()+"_"+yxSchoolMajor.getEnrollmentCode()+"_"+yxSchoolMajor.getMajorType()+"_"+yxSchoolMajor.getCategory(); - if (!notAddSet.contains(key)) { - yxHistoryMajorEnroll = new YxHistoryMajorEnroll(); - schoolName = schoolNameMap.getOrDefault(yxSchoolMajor.getSchoolCode(), ""); - BeanUtils.copyProperties(yxSchoolMajor,yxHistoryMajorEnroll); - yxHistoryMajorEnroll.setSchoolName(schoolName); - yxHistoryMajorEnroll.setEnrollNum(yxSchoolMajor.getPlanNum()); - yxHistoryMajorEnroll.setRulesEnrollProbability(yxSchoolMajor.getPrivateRulesEnrollProbability()); - yxHistoryMajorEnroll.setProbabilityOperator(yxSchoolMajor.getPrivateProbabilityOperator()); - }else{ - yxHistoryMajorEnroll = map.get(key); + for (YxHistoryMajorEnroll y : dataList) { + YxSchoolMajor yxSchoolMajor = map1.get(y.getSchoolCode() + "_" + y.getEnrollmentCode() + "_" + y.getMajorType() + "_" + y.getCategory()); + if (yxSchoolMajor!=null) { + if(yxSchoolMajor.getTuition()!=null){ + y.setTuition(yxSchoolMajor.getTuition().toString()); } - if (yxSchoolMajor.getTuition()!=null) { - yxHistoryMajorEnroll.setTuition(yxSchoolMajor.getTuition().toString()); + if(StringUtils.isNotBlank(yxSchoolMajor.getDetail())){ + y.setDetail(yxSchoolMajor.getDetail()); } - if (StringUtils.isNotBlank(yxSchoolMajor.getDetail())) { - yxHistoryMajorEnroll.setDetail(yxSchoolMajor.getDetail()); - } - dataList.add(yxHistoryMajorEnroll); - i++; } - }catch (Exception e) { - System.out.println(i); - throw new JeecgBootException("导出数据有错误,第"+i+"行出错:"+e.getMessage()); + } + + if(false){ + Set notAddSet = new LinkedHashSet<>(); + Map map =new LinkedHashMap<>(); + for (YxHistoryMajorEnroll y : historyMajorEnrollList) { + notAddSet.add(y.getSchoolCode()+"_"+y.getEnrollmentCode()+"_"+y.getMajorType()+"_"+y.getCategory()); + map.put(y.getSchoolCode()+"_"+y.getEnrollmentCode()+"_"+y.getMajorType()+"_"+y.getCategory(),y); + } + List schoolMajorList = yxSchoolMajorService.list(new LambdaQueryWrapper() + .eq(YxSchoolMajor::getMajorType,"体育类")); + List schoolChildList = yxSchoolChildService.list(); + Map schoolNameMap = schoolChildList.stream().collect(Collectors.toMap(YxSchoolChild::getSchoolCode, YxSchoolChild::getSchoolName)); + String schoolName = ""; + + YxHistoryMajorEnroll yxHistoryMajorEnroll = null; + int i =0; + try { + String key = null; + for (YxSchoolMajor yxSchoolMajor : schoolMajorList) { + key = yxSchoolMajor.getSchoolCode()+"_"+yxSchoolMajor.getEnrollmentCode()+"_"+yxSchoolMajor.getMajorType()+"_"+yxSchoolMajor.getCategory(); + if (!notAddSet.contains(key)) { + yxHistoryMajorEnroll = new YxHistoryMajorEnroll(); + schoolName = schoolNameMap.getOrDefault(yxSchoolMajor.getSchoolCode(), ""); + BeanUtils.copyProperties(yxSchoolMajor,yxHistoryMajorEnroll); + yxHistoryMajorEnroll.setSchoolName(schoolName); + yxHistoryMajorEnroll.setEnrollNum(yxSchoolMajor.getPlanNum()); + yxHistoryMajorEnroll.setRulesEnrollProbability(yxSchoolMajor.getPrivateRulesEnrollProbability()); + yxHistoryMajorEnroll.setProbabilityOperator(yxSchoolMajor.getPrivateProbabilityOperator()); + }else{ + yxHistoryMajorEnroll = map.get(key); + } + if (yxSchoolMajor.getTuition()!=null) { + yxHistoryMajorEnroll.setTuition(yxSchoolMajor.getTuition().toString()); + } + if (StringUtils.isNotBlank(yxSchoolMajor.getDetail())) { + yxHistoryMajorEnroll.setDetail(yxSchoolMajor.getDetail()); + } + dataList.add(yxHistoryMajorEnroll); + i++; + } + }catch (Exception e) { + System.out.println(i); + throw new JeecgBootException("导出数据有错误,第"+i+"行出错:"+e.getMessage()); + } } //Step.2 AutoPoi 导出Excel ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/entity/YxHistoryMajorEnroll.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/entity/YxHistoryMajorEnroll.java index d4fedf8..fa613a0 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/entity/YxHistoryMajorEnroll.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/entity/YxHistoryMajorEnroll.java @@ -89,7 +89,7 @@ public class YxHistoryMajorEnroll implements Serializable { @ApiModelProperty(value = "录取方式运算符") private java.lang.String probabilityOperator; /**省控线*/ - //@Excel(name = "省控线", width = 15) + @Excel(name = "省控线", width = 15) @ApiModelProperty(value = "省控线") private java.math.BigDecimal controlLine; /**录取线*/ diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/entity/YxSchoolMajor.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/entity/YxSchoolMajor.java index f34c8c8..3de31f4 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/entity/YxSchoolMajor.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/entity/YxSchoolMajor.java @@ -137,24 +137,28 @@ public class YxSchoolMajor implements Serializable { * 文化分限制 */ @ApiModelProperty(value = "文化成绩限制") + @Excel(name = "文化成绩限制", width = 15) private BigDecimal culturalScoreLimitation; /** * 专业分限制 */ @ApiModelProperty(value = "专业成绩限制") + @Excel(name = "专业成绩限制", width = 15) private BigDecimal professionalScoreLimitation; /** * 语文分限制 */ @ApiModelProperty(value = "语文成绩限制") + @Excel(name = "语文成绩限制", width = 15) private BigDecimal chineseScoreLimitation; /** * 外语成绩限制 */ @ApiModelProperty(value = "外语成绩限制") + @Excel(name = "外语成绩限制", width = 15) private BigDecimal englishScoreLimitation; /**