diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/constant/YxConstant.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/constant/YxConstant.java index 7d922a6..c0efab0 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/constant/YxConstant.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/constant/YxConstant.java @@ -24,7 +24,7 @@ public class YxConstant { /** * 旧日期 */ - public static final List oldYearList = Arrays.asList("2024", "2023", "2022", "2021"); + public static final List oldYearList = Arrays.asList("2024", "2023", "2022"); public static final List showOldYearList = Arrays.asList("2024", "2023", "2022", "2021"); @@ -47,6 +47,8 @@ public class YxConstant { public static BigDecimal bigDecimal85x = new BigDecimal("85"); public static BigDecimal bigDecimal80x = new BigDecimal("80"); public static BigDecimal bigDecimal05 = new BigDecimal("0.5"); + + public static BigDecimal bigDecimal5 = new BigDecimal("5"); public static BigDecimal bigDecimal075 = new BigDecimal("0.75"); public static BigDecimal bigDecimal2 = new BigDecimal("2"); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/controller/YxCalculationMajorController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/controller/YxCalculationMajorController.java index f3ee568..fc13b6d 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/controller/YxCalculationMajorController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/controller/YxCalculationMajorController.java @@ -50,7 +50,7 @@ import org.apache.shiro.authz.annotation.RequiresPermissions; public class YxCalculationMajorController extends JeecgController { @Autowired private IYxCalculationMajorService yxCalculationMajorService; - + /** * 分页列表查询 * @@ -68,11 +68,11 @@ public class YxCalculationMajorController extends JeecgController queryWrapper = QueryGenerator.initQueryWrapper(yxCalculationMajor, req.getParameterMap()); - Page page = new Page(pageNo, pageSize); + Page page = new Page<>(pageNo, pageSize); IPage pageList = yxCalculationMajorService.page(page, queryWrapper); return Result.OK(pageList); } - + /** * 添加 * @@ -87,7 +87,7 @@ public class YxCalculationMajorController extends JeecgController queryWrapper = QueryGenerator.initQueryWrapper(yxHistoryMajorEnroll, req.getParameterMap()); - Page page = new Page(pageNo, pageSize); + Page page = new Page<>(pageNo, pageSize); queryWrapper.orderByDesc("create_time", "update_time"); IPage pageList = yxHistoryMajorEnrollService.page(page, queryWrapper); return Result.OK(pageList); @@ -449,7 +449,6 @@ public class YxHistoryMajorEnrollController extends JeecgController importExcel1Xz(HttpServletRequest request, HttpServletResponse response) { - // 获取上传文件对象 - File file = new File("C:\\Users\\Denim\\Desktop\\艺体志愿宝数据\\招录限制.xlsx"); - FileInputStream fileInputStream = null; - ImportParams params = new ImportParams(); - params.setTitleRows(0); - params.setNeedSave(true); - int index = 0; - String type = null; - try { - fileInputStream = new FileInputStream(file); - List list = ExcelImportUtil.importExcel(fileInputStream, SchoolMajorImport3.class, params); - List notlist = new ArrayList<>(); - String zspc = null;//招生批次 - String yxmc = null;//院校名称 - String yxdm = null;//院校代码 - String zymc = null; - String majorName = ""; - String majorCode = ""; - String zydm = null; - String jhs = null; - String xz = null; - String xf = null; - String zybz = null; - String whcj = null; - String ywcj = null; - String wycj = null; - String yycj = null; - Integer level = 1; - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - List schoolMajorList = yxSchoolMajorService.list(queryWrapper); - Map schoolMajorMap=new LinkedHashMap<>(); - String key = null; - for (YxSchoolMajor yxSchoolMajor : schoolMajorList) { - key = yxSchoolMajor.getSchoolCode()+"_"+ yxSchoolMajor.getBatch()+"_"+yxSchoolMajor.getMajorName()+"_"+yxSchoolMajor.getEnrollmentCode()+"_"+yxSchoolMajor.getCategory()+"_"+yxSchoolMajor.getMajorType(); - schoolMajorMap.put(key,yxSchoolMajor); - } - Map schoolMajorMap1=new LinkedHashMap<>(); - for (YxSchoolMajor yxSchoolMajor : schoolMajorList) { - if (yxSchoolMajor.getSchoolCode().equals("9907")) { - key = yxSchoolMajor.getSchoolCode()+"_"+ yxSchoolMajor.getBatch()+"_"+yxSchoolMajor.getMajorName()+"_"+yxSchoolMajor.getEnrollmentCode()+"_"+yxSchoolMajor.getCategory()+"_"+yxSchoolMajor.getMajorType(); - schoolMajorMap1.put(key,yxSchoolMajor); - } - } - StringBuilder mainSubjects = new StringBuilder(); - YxSchoolMajor schoolMajor = null; - YxSchoolMajor schoolMajorUpdate = null; - List updateSchoolMajorList = new ArrayList<>(); - Map notSchoolCodeMap = new LinkedHashMap<>(); - for (SchoolMajorImport3 schoolMajorImport3 : list) { - schoolMajor =new YxSchoolMajor(); - index++; - if (index == 899) { - //index++; - System.out.println(index); - } - zspc = schoolMajorImport3.getZspc(); - yxmc = schoolMajorImport3.getYxmc(); - yxdm = schoolMajorImport3.getYxdm(); - zymc = schoolMajorImport3.getZymc(); - zydm = schoolMajorImport3.getZydm(); - jhs = schoolMajorImport3.getJhs(); - xz = schoolMajorImport3.getXz(); - xf = schoolMajorImport3.getXf(); - zybz = schoolMajorImport3.getZybz(); - whcj = schoolMajorImport3.getWhcj(); - ywcj = schoolMajorImport3.getYwcj(); - wycj = schoolMajorImport3.getWycj(); - yycj = schoolMajorImport3.getYycj(); - - if (zspc.contains("音乐类")) { - schoolMajor.setMajorType("音乐类"); - } - else if (zspc.contains("美术类")) { - schoolMajor.setMajorType("美术与设计类"); - } - else if (zspc.contains("舞蹈类")) { - schoolMajor.setMajorType("舞蹈类"); - if (zspc.contains("艺术舞蹈")) { - schoolMajor.setMainSubjects("艺术舞蹈"); - } else if (zspc.contains("国际标准")) { - schoolMajor.setMainSubjects("国际标准舞"); - } else { - notlist.add(schoolMajorImport3); - continue; - } - } - else if (zspc.contains("播音")) { - schoolMajor.setMajorType("播音与主持类"); - } - else if (zspc.contains("表演类")) { - schoolMajor.setMajorType("表演类"); - } - else if (zspc.contains("体育类")) { - schoolMajor.setMajorType("体育类"); - }else if (zspc.contains("书法类")) { - schoolMajor.setMajorType("书法类"); - }else{ - //美术 - schoolMajor.setMajorType("美术与设计类"); - //notlist.add(schoolMajorImport3); - //continue; - } - - //文理分科 - if(zspc.contains("文理综合")){ - //notlist.add(schoolMajorImport3); - continue; - } - else if(zspc.contains("文科")){ - schoolMajor.setCategory("文科"); - } - else if(zspc.contains("理科")){ - schoolMajor.setCategory("理科"); - } - else{ - notlist.add(schoolMajorImport3); - } - - //批次 - if (zspc.contains("提前批")) { - schoolMajor.setBatch("提前批"); - } - else if(zspc.contains("本科A段")){ - schoolMajor.setBatch("本科A段"); - } - else if(zspc.contains("本科B段")){ - schoolMajor.setBatch("本科B段"); - } - else if(zspc.contains("本科") && zspc.contains("体育")){ - schoolMajor.setBatch("本科"); - } - else if(zspc.contains("高职高专")){ - level = 2; - schoolMajor.setBatch("高职高专"); - } - else{ - notlist.add(schoolMajorImport3); - } - - zymc = zymc.replace("(","(").replace(")",")"); - majorName = zymc; - int i2 = zymc.indexOf("("); - if (i2!=-1) { - majorName = zymc.substring(0,i2); - } - schoolMajor.setSchoolCode(yxdm); - schoolMajor.setMajorName(zymc); - schoolMajor.setMajorCode(majorCode); - schoolMajor.setEnrollmentCode(zydm); - schoolMajor.setPlanNum(StringUtils.isNotBlank(jhs)?Integer.valueOf(jhs):0);//计划数 - schoolMajor.setSemester(xz);//学制 - - if (zybz.contains("(专业组61)(中外合作办学)(中日合作)(30000元/年;办学地点延安路校区;合作方日本文化学园大学)")) { - System.out.printf("111"); - } - key = schoolMajor.getSchoolCode()+"_"+ schoolMajor.getBatch()+"_"+schoolMajor.getMajorName()+"_"+schoolMajor.getEnrollmentCode()+"_"+schoolMajor.getCategory()+"_"+schoolMajor.getMajorType(); - schoolMajorList.stream().filter(s->s.getSchoolCode().equals("9907")).collect(Collectors.toList()); - if (schoolMajorMap.containsKey(key)) { - schoolMajorUpdate = new YxSchoolMajor(); - BeanUtils.copyProperties(schoolMajorMap.get(key),schoolMajorUpdate); - if (StringUtils.isNotBlank(whcj)) { - schoolMajorUpdate.setCulturalScoreLimitation(new BigDecimal(whcj)); - } - if (StringUtils.isNotBlank(ywcj)) { - schoolMajorUpdate.setChineseScoreLimitation(new BigDecimal(ywcj)); - } - if (StringUtils.isNotBlank(wycj)) { - schoolMajorUpdate.setEnglishScoreLimitation(new BigDecimal(wycj)); - } - if (StringUtils.isNotBlank(yycj)) { - schoolMajorUpdate.setProfessionalScoreLimitation(new BigDecimal(yycj)); - } - if (StringUtils.isNotBlank(whcj)||StringUtils.isNotBlank(ywcj)||StringUtils.isNotBlank(wycj)||StringUtils.isNotBlank(yycj)) { - updateSchoolMajorList.add(schoolMajorUpdate); - } - }else{ - notlist.add(schoolMajorImport3); - } - } - JSONObject.toJSONString(notSchoolCodeMap); - System.out.println("不存在的专业信息:"); - System.out.println(notlist.size()); - yxSchoolMajorService.updateBatchById(updateSchoolMajorList); - //System.out.println(JSONArray.toJSONString(notlist)); - } catch (FileNotFoundException fileNotFoundException) { - log.error("文件不存在," + file.getAbsolutePath()); - throw new RuntimeException(fileNotFoundException); - } catch (StringIndexOutOfBoundsException e) { - } catch (Exception e) { - System.out.println(index); - throw new RuntimeException(e); - } - return Result.ok("文件导入成功!"); - } - - - - *//** - * 刷新专业信息 - *//* - @RequestMapping(value = "/importExcel1", method = RequestMethod.POST) - public Result importExcel1(HttpServletRequest request, HttpServletResponse response) { - // 获取上传文件对象 - File file = new File("C:\\Users\\Denim\\Desktop\\数据信息\\2023河南招生计划统计.xlsx"); - FileInputStream fileInputStream = null; - ImportParams params = new ImportParams(); - params.setTitleRows(0); - params.setNeedSave(true); - int index = 0; - String type = null; - Set notSchoolList = new HashSet<>(); - Map benMajorNameCodeMap = new LinkedHashMap<>(); - Map zhuanMajorNameCodeMap = new LinkedHashMap<>(); - List yxMajorList = yxMajorService.list(new LambdaQueryWrapper().groupBy(YxMajor::getMajorCode)); - for (YxMajor yxMajor : yxMajorList) { - if ("1".equals(yxMajor.getEducationalLevel())) { - benMajorNameCodeMap.put(yxMajor.getMajorName(),yxMajor.getMajorCode()); - }else{ - zhuanMajorNameCodeMap.put(yxMajor.getMajorName(),yxMajor.getMajorCode()); - } - } - try { - fileInputStream = new FileInputStream(file); - List list = ExcelImportUtil.importExcel(fileInputStream, SchoolMajorImport3.class, params); - List notlist = new ArrayList<>(); - String zspc = null;//招生批次 - String yxmc = null;//院校名称 - String yxdm = null;//院校代码 - String zymc = null; - String majorName = ""; - String majorCode = ""; - String zydm = null; - String jhs = null; - String xz = null; - String xf = null; - String zybz = null; - Integer level = 1; - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - List schoolMajorList = new ArrayList<>(); - StringBuilder mainSubjects = new StringBuilder(); - YxSchoolMajor schoolMajor = null; - //音乐表演 专业 - List yybyList = Arrays.asList("表演", "音乐表演", "流行音乐", "音乐学", - "音乐制作","航空服务艺术与管理","音乐与舞蹈学类","戏曲音乐"); - //音乐教育 - List yyjyList = Arrays.asList("音乐学", "作曲与作曲技术理论", "音乐治疗", "音乐教育", "录音艺术" - ,"录音技术与艺术","钢琴调律","音像技术","艺术与科技","艺术管理","作曲技术"); - - List yxSchoolChildList = yxSchoolChildService.list(); - List schoolCodeList = yxSchoolChildList.stream().map(YxSchoolChild::getSchoolCode).collect(Collectors.toList()); - Set notSchoolCodeList = new HashSet<>(); - Set notSchoolNameList = new HashSet<>(); - Map notSchoolCodeMap = new LinkedHashMap<>(); - for (SchoolMajorImport3 schoolMajorImport3 : list) { - level = 1; - schoolMajor = new YxSchoolMajor(); - index++; - if (index == 899) { - //index++; - System.out.println(index); - } - zspc = schoolMajorImport3.getZspc(); - yxmc = schoolMajorImport3.getYxmc(); - yxdm = schoolMajorImport3.getYxdm(); - zymc = schoolMajorImport3.getZymc(); - zydm = schoolMajorImport3.getZydm(); - jhs = schoolMajorImport3.getJhs(); - xz = schoolMajorImport3.getXz(); - xf = schoolMajorImport3.getXf(); - zybz = schoolMajorImport3.getZybz(); - - if (zspc.contains("音乐类")) { - mainSubjects = new StringBuilder(); - schoolMajor.setMajorType("音乐类"); - if (zspc.contains("器乐")) { - mainSubjects.append("器乐").append(","); - } - if (zspc.contains("声乐")) { - mainSubjects.append("声乐").append(","); - } - if (StringUtils.isNotBlank(mainSubjects)) { - schoolMajor.setMainSubjects(mainSubjects.substring(0, mainSubjects.length() - 1)); - ; - } - // - for (String s : yybyList) { - if (zymc.contains(s)) { - schoolMajor.setMajorTypeChild("音乐表演"); - break; - } - } - for (String s : yyjyList) { - if (zymc.contains(s)) { - schoolMajor.setMajorTypeChild("音乐教育"); - break; - } - } - - if (StringUtils.isBlank(schoolMajor.getMajorTypeChild())) { - notlist.add(schoolMajorImport3); - continue; - } - } - else if (zspc.contains("美术类")) { - schoolMajor.setMajorType("美术与设计类"); - } - else if (zspc.contains("舞蹈类")) { - schoolMajor.setMajorType("舞蹈类"); - if (zspc.contains("艺术舞蹈")) { - schoolMajor.setMainSubjects("艺术舞蹈"); - } else if (zspc.contains("国际标准")) { - schoolMajor.setMainSubjects("国际标准舞"); - } else { - notlist.add(schoolMajorImport3); - continue; - } - } - else if (zspc.contains("播音")) { - schoolMajor.setMajorType("播音与主持类"); - } - else if (zspc.contains("表演类")) { - schoolMajor.setMajorType("表演类"); - } - else if (zspc.contains("体育类")) { - schoolMajor.setMajorType("体育类"); - }else if (zspc.contains("书法类")) { - schoolMajor.setMajorType("书法类"); - }else{ - //美术 - schoolMajor.setMajorType("美术与设计类"); - //notlist.add(schoolMajorImport3); - //continue; - } - - //文理分科 - if(zspc.contains("文理综合")){ - notlist.add(schoolMajorImport3); - continue; - } - else if(zspc.contains("文科")){ - schoolMajor.setCategory("文科"); - } - else if(zspc.contains("理科")){ - schoolMajor.setCategory("理科"); - } - else{ - notlist.add(schoolMajorImport3); - } - - //批次 - if (zspc.contains("提前批")) { - schoolMajor.setBatch("提前批"); - } - else if(zspc.contains("本科A段")){ - schoolMajor.setBatch("本科A段"); - } - else if(zspc.contains("本科B段")){ - schoolMajor.setBatch("本科B段"); - } - else if(zspc.contains("本科") && zspc.contains("体育")){ - schoolMajor.setBatch("本科"); - } - else if(zspc.contains("高职高专")){ - level = 2; - schoolMajor.setBatch("高职高专"); - } - else{ - notlist.add(schoolMajorImport3); - } - - if (!schoolCodeList.contains(yxdm)) { - notSchoolCodeList.add(yxdm); - yxmc = yxmc.replace("(","(").replace(")",")"); - //yxmc = yxmc.replace("民办",""); - notSchoolNameList.add(yxmc); - notSchoolCodeMap.put(yxdm,yxmc); - } - - zymc = zymc.replace("(","(").replace(")",")"); - majorName = zymc; - int i2 = zymc.indexOf("("); - if (i2!=-1) { - majorName = zymc.substring(0,i2); - } - - if (level ==1) { - majorCode = benMajorNameCodeMap.get(majorName); - }else{ - majorCode = zhuanMajorNameCodeMap.get(majorName); - } - if (StringUtils.isBlank(majorCode)) { - notlist.add(schoolMajorImport3); - } - schoolMajor.setSchoolCode(yxdm); - schoolMajor.setMajorName(zymc); - schoolMajor.setMajorCode(majorCode); - schoolMajor.setEnrollmentCode(zydm); - schoolMajor.setPlanNum(StringUtils.isNotBlank(jhs)?Integer.valueOf(jhs):0);//计划数 - schoolMajor.setSemester(xz);//学制 - //学费 - if (StringUtils.isBlank(xf)||xf.contains("待定")) { - schoolMajor.setTuition(new BigDecimal(0)); - }else{ - schoolMajor.setTuition(new BigDecimal(xf)); - } - schoolMajor.setDetail(zybz); - schoolMajorList.add(schoolMajor); - } - yxSchoolMajorService.saveBatch(schoolMajorList); - JSONObject.toJSONString(notSchoolCodeMap); - System.out.println("不存在的专业信息:"); - notSchoolNameList.stream().collect(Collectors.joining("','")); - System.out.println(notlist.size()); - //System.out.println(JSONArray.toJSONString(notlist)); - } catch (FileNotFoundException fileNotFoundException) { - log.error("文件不存在," + file.getAbsolutePath()); - throw new RuntimeException(fileNotFoundException); - } catch (StringIndexOutOfBoundsException e) { - } catch (Exception e) { - System.out.println(index); - throw new RuntimeException(e); - } - return Result.ok("文件导入成功!"); - } - - - @RequestMapping(value = "/importExcel2", method = RequestMethod.POST) - public Result importExcel2(HttpServletRequest request, HttpServletResponse response) { - String s = "{\"1966\":\"深圳技术大学\",\"4445\":\"菏泽学院\",\"5710\":\"吉林工商学院\",\"6001\":\"郑州大学河南音乐学院\",\"6049\":\"周口师范学院\",\"6198\":\"郑州美术学院(原郑州轻工业大学易斯顿美术学院)(民办)\",\"6312\":\"平顶山文化艺术职业学院(民办)\",\"6324\":\"郑州轻工业大学(与河南轻工职业学院联办)\",\"6390\":\"郑州黄河护理职业学院(民办)\",\"6402\":\"洛阳师范学院\",\"6405\":\"南阳师范学院\",\"6408\":\"商丘师范学院\",\"6409\":\"周口师范学院\",\"6411\":\"河南师范大学\",\"6412\":\"信阳师范大学\",\"6702\":\"南昌应用技术师范学院(原江西科技师范大学理工学院)(民办)\",\"6806\":\"黑龙江财经学院(民办)\",\"6808\":\"黑龙江外国语学院(民办)\",\"6809\":\"哈尔滨剑桥学院(民办)\",\"6810\":\"黑龙江工程学院昆仑旅游学院(独立学院)\",\"6841\":\"荆州学院(原长江大学工程技术学院)(民办)\",\"6951\":\"南京理工大学泰州科技学院(独立学院)\",\"6971\":\"华南农业大学珠江学院(独立学院)\",\"7333\":\"和田师范高职高专学校\",\"7406\":\"泉州幼儿师范高等高职高专学校\",\"7727\":\"唐山幼儿师范高等高职高专学校\",\"8226\":\"广西城市职业大学(民办)\",\"8513\":\"江苏电子信息职业学院\",\"8616\":\"湖北体育职业学院\",\"8675\":\"四川科技职业学院(民办)\",\"8728\":\"四川长江职业学院(民办)\",\"8731\":\"宿迁泽达职业技术学院(民办)\",\"8747\":\"泉州轻工职业学院(民办)\",\"8972\":\"阳江职业技术学院\",\"9041\":\"云南理工职业学院(民办)\",\"9043\":\"喀什职业技术学院\",\"9097\":\"重庆建筑科技职业学院(民办)\",\"9137\":\"民办四川天一学院(民办)\",\"9155\":\"四川电子机械职业技术学院(民办)\",\"9411\":\"北京京北职业技术学院\",\"9541\":\"江西科技职业学院(民办)\",\"9621\":\"德阳城市轨道交通职业学院(民办)\",\"9634\":\"铁门关职业技术学院\",\"9662\":\"潍坊环境工程职业学院(民办)\",\"9691\":\"重庆智能工程职业学院(民办)\",\"9694\":\"南充电影工业职业学院(民办)\",\"9695\":\"绵阳飞行职业学院(民办)\",\"9697\":\"德阳农业科技职业学院(民办)\",\"9720\":\"建东职业技术学院(民办)\",\"9902\":\"中央美术学院\",\"1100\":\"中南民族大学\",\"1310\":\"同济大学\",\"2415\":\"浙江工业大学\",\"3060\":\"中国民用航空飞行学院\",\"3910\":\"盐城师范学院\",\"5565\":\"福建技术师范学院\",\"6604\":\"重庆人文科技学院(民办)\",\"6859\":\"湖北工程学院新技术学院(独立学院)\",\"7304\":\"甘肃民族师范学院\",\"9548\":\"山东海事职业学院(民办)\",\"9876\":\"吉安职业技术学院\",\"9906\":\"北京舞蹈学院\",\"9910\":\"天津美术学院\",\"9915\":\"鲁迅美术学院\",\"9930\":\"湖北美术学院\",\"9935\":\"广州美术学院\",\"9940\":\"四川美术学院\"}"; - Map notSchoolNameList = new LinkedHashMap<>(); - JSONObject jsonObject = JSONObject.parseObject(s); - List schoolList = yxSchoolService.list(); - - Map schoolNameList = schoolList.stream().collect(Collectors.toMap(YxSchool::getSchoolName, YxSchool::getId)); - - YxSchoolChild yxSchoolChild = null; - List yxSchoolChildList = new ArrayList<>(); - for (String schoolCode : jsonObject.keySet()) { - String schoolName = jsonObject.getString(schoolCode); - - int i = schoolName.indexOf("("); - if (i!=-1.) { - schoolName = schoolName.substring(0,i); - } - String schoolId = schoolNameList.get(schoolName); - - if (StringUtils.isBlank(schoolId)) { - notSchoolNameList.put(schoolCode,schoolName); - }else{ - yxSchoolChild = new YxSchoolChild(); - yxSchoolChild.setSchoolCode(schoolCode); - yxSchoolChild.setSchoolId(schoolId); - yxSchoolChild.setSchoolName(schoolName); - //yxSchoolChildService.save(yxSchoolChild); - } - } - System.out.println("qqqqq:"); - System.out.println(notSchoolNameList.size()); - return Result.OK(); - } - - - @RequestMapping(value = "/importExcel3",method = RequestMethod.POST) - public Result importExcel3(){ - //service.updateRulesEnrollProbabilityByOldLastYearData(); - service.updateRulesEnrollProbabilityByOldLastYearData2(); - return Result.OK(); - }*/ - - - } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/BiaoyanService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/BiaoyanService.java index 71555b2..a3ed8de 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/BiaoyanService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/BiaoyanService.java @@ -144,7 +144,14 @@ public class BiaoyanService { recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0); continue; } - //只获取参考的年份,23,22 这两年 + + // 如果没有24年数据,则不计算 + if(CollectionUtils.isEmpty(historyMajorEnrollList) && historyMajorEnrollList.stream().noneMatch(h -> "2024".equals(h.getYear()))){ + recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0); + continue; + } + + //只获取参考的年份两年 historyMajorEnrollList = historyMajorEnrollList.stream().filter(h -> YxConstant.cankaoYearList.contains(h.getYear())).collect(Collectors.toList()); //将当期成绩按照专业录取分数方式折算 //majorTypeChild = recommendMajorDTO.getMajorTypeChild(); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/BoYinService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/BoYinService.java index 8e7c403..fb0ef14 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/BoYinService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/BoYinService.java @@ -110,6 +110,12 @@ public class BoYinService { continue; } + // 如果没有24年数据,则不计算 + if(CollectionUtils.isEmpty(historyMajorEnrollList) && historyMajorEnrollList.stream().noneMatch(h -> "2024".equals(h.getYear()))){ + recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0); + continue; + } + if ("高职高专".equals(recommendMajorDTO.getBatch())) { studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), activeCurrentUserScore.getProfessionalScore(), recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator); recommendMajorDTO.setPrivateStudentScore(studentScore); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/MusicService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/MusicService.java index 4af7485..7e516fc 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/MusicService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/MusicService.java @@ -166,6 +166,12 @@ public class MusicService { continue; } + // 如果没有24年数据,则不计算 + if(CollectionUtils.isEmpty(historyMajorEnrollList) && historyMajorEnrollList.stream().noneMatch(h -> "2024".equals(h.getYear()))){ + recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0); + continue; + } + if (!"高职高专".equals(recommendMajorDTO.getBatch())) { if (recommendMajorDTO.getPrivateRulesEnrollProbability().equals("文过专排主科")) { professionalScore2 = activeCurrentUserScore.getProfessionalScore(); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/WuDaoService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/WuDaoService.java index fed5a10..495def1 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/WuDaoService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/WuDaoService.java @@ -125,6 +125,12 @@ public class WuDaoService { continue; } + // 如果没有24年数据,则不计算 + if(CollectionUtils.isEmpty(historyMajorEnrollList) && historyMajorEnrollList.stream().noneMatch(h -> "2024".equals(h.getYear()))){ + recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0); + continue; + } + if ("高职高专".equals(recommendMajorDTO.getBatch())) { studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), activeCurrentUserScore.getProfessionalScore(), recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator); recommendMajorDTO.setPrivateStudentScore(studentScore); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxCalculationMajorServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxCalculationMajorServiceImpl.java index d5a4ca5..d714535 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxCalculationMajorServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxCalculationMajorServiceImpl.java @@ -66,7 +66,12 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl lqw = new LambdaQueryWrapper<>(); +// lqw.eq(YxHistoryMajorEnroll::getYear,"2024"); +// lqw.eq(YxHistoryMajorEnroll::getMajorType,"体育类"); +// lqw.eq(YxHistoryMajorEnroll::getBatch,"本科"); +// List list = yxHistoryMajorEnrollService.list(lqw); +// for (YxHistoryMajorEnroll yxHistoryMajorEnroll : list) { +// if ("理科".equals(yxHistoryMajorEnroll.getCategory())) { +// +// }else{ +// +// } +// } + if (pageNum == null) { pageNum = 1; } @@ -208,9 +226,14 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl "2024".equals(h.getYear()))){ + recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0); + continue; + } + //录取方式计算 if (rulesEnrollProbability.equals("文过专排主科")) { if (CollectionUtils.isEmpty(historyMajorEnrollList)) { @@ -608,14 +634,24 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl schoolCodeSet = recommendMajorDtoList.stream().map(RecommendMajorDTO::getSchoolCode).collect(Collectors.toSet()); //获取历年的招生计划 LambdaQueryWrapper hmeWrapper = new LambdaQueryWrapper<>(); - hmeWrapper.in(YxHistoryMajorEnroll::getYear, historyYearsList); hmeWrapper.in(YxHistoryMajorEnroll::getMajorName, majorNameSet); hmeWrapper.in(YxHistoryMajorEnroll::getSchoolCode,schoolCodeSet); hmeWrapper.eq(YxHistoryMajorEnroll::getCategory, category);//文科/理科 @@ -100,9 +99,6 @@ public class YxHistoryMajorEnrollServiceImpl extends ServiceImpl(); yearMajorEnrollMap = new LinkedHashMap<>(); - if("6031".equals(recommendMajorDTO.getSchoolCode())){ - System.out.println("qqvqvq"); - } //2022年 for (String year : historyYearsList) { key = recommendMajorDTO.getSchoolCode() + a_ + recommendMajorDTO.getMajorName() + a_ + recommendMajorDTO.getCategory() + a_ + recommendMajorDTO.getBatch(); @@ -178,9 +174,10 @@ public class YxHistoryMajorEnrollServiceImpl extends ServiceImpl list = list(lambdaQueryWrapper); if (CollectionUtils.isNotEmpty(list)) { @@ -242,24 +239,24 @@ public class YxHistoryMajorEnrollServiceImpl extends ServiceImpl volunteerRecordEarlyAdmissionList = recordDTOList.stream().filter(r -> r.getBatch().equals("提前批")).collect(Collectors.toList()); - //填报志愿明细信息-本科A段 - List volunteerRecordUndergraduateAList = recordDTOList.stream().filter(r -> r.getBatch().equals("本科A段")).collect(Collectors.toList()); - //填报志愿明细信息-本科B段 - List volunteerRecordUndergraduateBList = recordDTOList.stream().filter(r -> r.getBatch().equals("本科B段")).collect(Collectors.toList()); - volunteerDTO.setVolunteerRecordEarlyAdmissionList(volunteerRecordEarlyAdmissionList); - volunteerDTO.setVolunteerRecordUndergraduateAList(volunteerRecordUndergraduateAList); - volunteerDTO.setVolunteerRecordUndergraduateBList(volunteerRecordUndergraduateBList);*/ volunteerDTO.setVolunteerRecordEarlyAdmissionList(new ArrayList<>()); //填报志愿明细信息-本科 List volunteerRecordUndergraduateList = recordDTOList.stream().filter(r -> YxConstant.batchList1.contains(r.getBatch())).collect(Collectors.toList()); @@ -152,16 +143,6 @@ public class YxVolunteerServiceImpl extends ServiceImpl recordDTOList = yxVolunteerRecordService.listDTOByVolunteerId(userScore.getId(),userScore.getCalculationTableName(),volunteer.getId()); //获取上一年的招生人数 yxHistoryMajorEnrollService.volunteerRecordDTOListSetHistoryInfo(recordDTOList); - - /*//填报志愿明细信息-提前批 - List volunteerRecordEarlyAdmissionList = recordDTOList.stream().filter(r -> r.getBatch().equals("提前批")).collect(Collectors.toList()); - //填报志愿明细信息-本科A段 - List volunteerRecordUndergraduateAList = recordDTOList.stream().filter(r -> r.getBatch().equals("本科A段")).collect(Collectors.toList()); - //填报志愿明细信息-本科B段 - List volunteerRecordUndergraduateBList = recordDTOList.stream().filter(r -> r.getBatch().equals("本科B段")).collect(Collectors.toList()); - volunteerDTO.setVolunteerRecordEarlyAdmissionList(volunteerRecordEarlyAdmissionList); - volunteerDTO.setVolunteerRecordUndergraduateAList(volunteerRecordUndergraduateAList); - volunteerDTO.setVolunteerRecordUndergraduateBList(volunteerRecordUndergraduateBList);*/ volunteerDTO.setVolunteerRecordEarlyAdmissionList(new ArrayList<>()); //填报志愿明细信息-本科 List volunteerRecordUndergraduateList = recordDTOList.stream().filter(r -> YxConstant.batchList1.contains(r.getBatch())).collect(Collectors.toList()); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/ZhuanService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/ZhuanService.java index 73ef15a..d2532fc 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/ZhuanService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/ZhuanService.java @@ -121,6 +121,12 @@ public class ZhuanService { continue; } + // 如果没有24年数据,则不计算 + if(CollectionUtils.isEmpty(historyMajorEnrollList) && historyMajorEnrollList.stream().noneMatch(h -> "2024".equals(h.getYear()))){ + recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0); + continue; + } + //使用主考科目成绩,将当期成绩按照专业录取分数方式折算 studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore3, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator); recommendMajorDTO.setStudentConvertedScore(studentScore); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/util/ScoreUtil.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/util/ScoreUtil.java index 8e13f6f..6ca3891 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/util/ScoreUtil.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/util/ScoreUtil.java @@ -18,44 +18,47 @@ import java.util.*; * @Date 2023/11/9 13:30 */ public class ScoreUtil { - public static String getNowYear(){ + public static String getNowYear() { // 获取当前年 return YxConstant.nowYear; } /** * 用于计算成绩时用到的历年时间 + * * @return */ - public static List getCalOldYears(){ + public static List getCalOldYears() { return YxConstant.oldYearList; } /** * 用于列表上显示历年信息 + * * @return */ - public static List getShowOldYears(){ + public static List getShowOldYears() { return YxConstant.showOldYearList; } /** * 计算 往年分数差之和 (往年的录取线-省控线) + * * @param historyMajorEnrollList 往年录取分数 * @return 往年分数差 */ - public static BigDecimal computeHistoryMajorEnrollScoreLineDifference(List historyMajorEnrollList){ - BigDecimal sum=new BigDecimal("0"); + public static BigDecimal computeHistoryMajorEnrollScoreLineDifference(List historyMajorEnrollList) { + BigDecimal sum = new BigDecimal("0"); if (CollectionUtils.isEmpty(historyMajorEnrollList)) { return sum; } - int yearNum=0; + int yearNum = 0; BigDecimal controlLine = null;//文科-省控线 BigDecimal admissionLine = null;//文科-录取线 for (YxHistoryMajorEnroll yxHistoryMajorEnroll : historyMajorEnrollList) { controlLine = yxHistoryMajorEnroll.getControlLine(); admissionLine = yxHistoryMajorEnroll.getAdmissionLine(); - sum=sum.add(admissionLine.subtract(controlLine));//录取线-省控线 + sum = sum.add(admissionLine.subtract(controlLine));//录取线-省控线 yearNum++; } /*if (wenFlag) { @@ -76,6 +79,7 @@ public class ScoreUtil { /** * 计算历年录取分差(录取线 - 省控线),并返回平均分差 + * * @param rulesEnrollProbability 当前录取方式(如"文过专排") * @param historyMajorEnrollList 历年录取数据 * @return Map 包含平均分差(scoreDifference) @@ -105,6 +109,10 @@ public class ScoreUtil { boolean isSportsMajor = "体育类".equals(enrollData.getMajorType()); if (isVocationalCollege && !isSportsMajor) { currentDiff = currentDiff.divide(controlLine, 6, RoundingMode.HALF_UP); + }else if(isSportsMajor && rulesEnrollProbability.equals(enrollData.getRulesEnrollProbability())){ + sum = sum.add(currentDiff); + validYearCount++; + continue; } // 6. 非高职高专 or 体育类:检查录取方式是否一致 validYearCount >= 1 && // !rulesEnrollProbability.equals(enrollData.getRulesEnrollProbability()) && @@ -128,41 +136,41 @@ public class ScoreUtil { /** * 根据 当前年一致的录取方式,计算 往年分数差之和 (往年的录取线-省控线) */ - public static Map computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability_old(String rulesEnrollProbability,List historyMajorEnrollList){ - BigDecimal sum=new BigDecimal("0");//历年分差之和 - BigDecimal nowSum=new BigDecimal("0"); - Map data=new LinkedHashMap<>(); - data.put("scoreDifference",sum); + public static Map computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability_old(String rulesEnrollProbability, List historyMajorEnrollList) { + BigDecimal sum = new BigDecimal("0");//历年分差之和 + BigDecimal nowSum = new BigDecimal("0"); + Map data = new LinkedHashMap<>(); + data.put("scoreDifference", sum); if (CollectionUtils.isEmpty(historyMajorEnrollList)) { return data; } - int yearNum=0; + int yearNum = 0; BigDecimal controlLine = null;//文科-省控线 BigDecimal admissionLine = null;//文科-录取线 for (YxHistoryMajorEnroll yxHistoryMajorEnroll : historyMajorEnrollList) { controlLine = yxHistoryMajorEnroll.getControlLine(); admissionLine = yxHistoryMajorEnroll.getAdmissionLine(); // 如果录取分数线(admissionLine)小于等于0,就直接跳过当前循环,处理下一条数据 - if (admissionLine.compareTo(YxConstant.bigDecimal0) <=0) { + if (admissionLine.compareTo(YxConstant.bigDecimal0) <= 0) { continue; } nowSum = admissionLine.subtract(controlLine); if (!"高职高专".equals(yxHistoryMajorEnroll.getBatch()) || "体育类".equals(yxHistoryMajorEnroll.getMajorType())) { - if (yearNum>=1&& !yxHistoryMajorEnroll.getRulesEnrollProbability().equals(rulesEnrollProbability)) { + if (yearNum >= 1 && !yxHistoryMajorEnroll.getRulesEnrollProbability().equals(rulesEnrollProbability)) { //如果仅两年的录取原则一样,后面的不一样,不使用较旧的分数 continue; } - }else{ + } else { //体育之外的,如果是高职高专 //将 分差/省控线 - nowSum = nowSum.divide(yxHistoryMajorEnroll.getControlLine(),6,RoundingMode.HALF_UP); + nowSum = nowSum.divide(yxHistoryMajorEnroll.getControlLine(), 6, RoundingMode.HALF_UP); } - sum=sum.add(nowSum);//录取线-省控线 + sum = sum.add(nowSum);//录取线-省控线 yearNum++; } - if (yearNum!=0) { + if (yearNum != 0) { BigDecimal divide = sum.divide(new BigDecimal(yearNum), 4, RoundingMode.HALF_UP); - data.put("scoreDifference",divide); + data.put("scoreDifference", divide); } return data; } @@ -170,73 +178,70 @@ public class ScoreUtil { /** * 判断批次是否有权限计算 - * @param nowBatch 当前成绩批次 + * + * @param nowBatch 当前成绩批次 * @param majorBatch 专业批次 */ - public static boolean hasComputeEnrollProbabilityPermissions(String nowBatch,String majorBatch){ + public static boolean hasComputeEnrollProbabilityPermissions(String nowBatch, String majorBatch) { if (StringUtils.isBlank(nowBatch) || StringUtils.isBlank(majorBatch)) { return false; } return true; - //将两个批次设置为数字等级,数字越小 权限越多 1st. -// int nowLevel = "本科A段".equals(nowBatch) ? 1 : "本科B段".equals(nowBatch) ? 1 : "本科".equals(nowBatch) ? 3 : 4; -// int majorLevel = "提前批".equals(majorBatch)?1: "本科A段".equals(majorBatch) ? 1 : "本科B段".equals(majorBatch) ? 2 : "本科".equals(majorBatch) ? 3 : 4; -// return nowLevel<=majorLevel; } /** * 删除末尾的0 + * * @param input 文*0.05756700+专*0.1254200 * @return 文*0.057567+专*0.12542 */ - public static String replaceLastZeroChar(String input){ + public static String replaceLastZeroChar(String input) { if (StringUtils.isBlank(input)) { return null; } input = input.replaceAll("(\\d+\\.\\d*?)0+(\\D|$)", "$1$2"); - input = input.replace("1.","1").replace("文0.+",""); - if (YxConstant.w1z1.equals(input)||YxConstant.w1jiaz1.equals(input)) { + input = input.replace("1.", "1").replace("文0.+", ""); + if (YxConstant.w1z1.equals(input) || YxConstant.w1jiaz1.equals(input)) { return "文+专"; } return input; } - public static BigDecimal decimal004=new BigDecimal("0.04"); - public static BigDecimal decimal0067=new BigDecimal("0.067"); - public static BigDecimal decimal0093=new BigDecimal("0.093"); - public static BigDecimal decimal0133=new BigDecimal("0.133"); - public static BigDecimal decimal02=new BigDecimal("0.2"); - public static BigDecimal decimal03=new BigDecimal("0.3"); - public static BigDecimal decimal0333=new BigDecimal("0.333"); + public static BigDecimal decimal004 = new BigDecimal("0.04"); + public static BigDecimal decimal0067 = new BigDecimal("0.067"); + public static BigDecimal decimal0093 = new BigDecimal("0.093"); + public static BigDecimal decimal0133 = new BigDecimal("0.133"); + public static BigDecimal decimal02 = new BigDecimal("0.2"); + public static BigDecimal decimal03 = new BigDecimal("0.3"); + public static BigDecimal decimal0333 = new BigDecimal("0.333"); - public static BigDecimal decimal04=new BigDecimal("0.4"); - public static BigDecimal decimal0467=new BigDecimal("0.467"); - public static BigDecimal decimal05=new BigDecimal("0.5"); + public static BigDecimal decimal04 = new BigDecimal("0.4"); + public static BigDecimal decimal0467 = new BigDecimal("0.467"); + public static BigDecimal decimal05 = new BigDecimal("0.5"); - public static BigDecimal decimal06=new BigDecimal("0.6"); - public static BigDecimal decimal0667=new BigDecimal("0.667"); + public static BigDecimal decimal06 = new BigDecimal("0.6"); + public static BigDecimal decimal0667 = new BigDecimal("0.667"); + public static BigDecimal decimal07 = new BigDecimal("0.7"); - - public static BigDecimal decimal07=new BigDecimal("0.7"); - - public static BigDecimal decimal1=new BigDecimal("1"); + public static BigDecimal decimal1 = new BigDecimal("1"); /** * 折合 分数成绩 旧版 + * * @param rulesEnrollProbability 分数折合方式(专过文排/文过专排/文+专/专7文3/专5文5/专3文7) - * @param culturalScore 文化成绩 - * @param professionalScore 专业成绩 + * @param culturalScore 文化成绩 + * @param professionalScore 专业成绩 * @return 折合成绩 */ - public static BigDecimal convertIntoScore(String rulesEnrollProbability,BigDecimal culturalScore,BigDecimal professionalScore){ - BigDecimal score=new BigDecimal(0); - if (rulesEnrollProbability==null || culturalScore==null || professionalScore==null) { + public static BigDecimal convertIntoScore(String rulesEnrollProbability, BigDecimal culturalScore, BigDecimal professionalScore) { + BigDecimal score = new BigDecimal(0); + if (rulesEnrollProbability == null || culturalScore == null || professionalScore == null) { return score; } - switch (rulesEnrollProbability){ + switch (rulesEnrollProbability) { case "专过文排": score = culturalScore.multiply(decimal0133); break; @@ -258,7 +263,7 @@ public class ScoreUtil { score = culturalScore.add(professionalScore); break; } - score = score.divide(decimal1,4, RoundingMode.HALF_UP); + score = score.divide(decimal1, 4, RoundingMode.HALF_UP); return score; } @@ -268,14 +273,14 @@ public class ScoreUtil { * 如果需要使用专业子项成绩时,则返回对应需要的分数 * 如果需要主项成绩,则使用主项成绩分数 */ - public static BigDecimal convertProfessionalCategoryMaster(YxUserScore activeCurrentUserScore,String operator,String professionalCategoryChildren){ + public static BigDecimal convertProfessionalCategoryMaster(YxUserScore activeCurrentUserScore, String operator, String professionalCategoryChildren) { String professionalCategory = activeCurrentUserScore.getProfessionalCategory(); if (StringUtils.isNotBlank(professionalCategoryChildren)) { //当前有子项专业 if ("音乐".equals(professionalCategory)) { if ("器乐".contains(professionalCategoryChildren)) { - }else if("声乐".contains(professionalCategoryChildren)){ + } else if ("声乐".contains(professionalCategoryChildren)) { } } @@ -284,13 +289,13 @@ public class ScoreUtil { return activeCurrentUserScore.getProfessionalScore(); } - public static BigDecimal convertIntoScore(String rulesEnrollProbability,BigDecimal culturalScore,BigDecimal professionalScore,String operator){ - BigDecimal score=new BigDecimal(0); - if (rulesEnrollProbability==null || culturalScore==null || professionalScore==null) { + public static BigDecimal convertIntoScore(String rulesEnrollProbability, BigDecimal culturalScore, BigDecimal professionalScore, String operator) { + BigDecimal score = new BigDecimal(0); + if (rulesEnrollProbability == null || culturalScore == null || professionalScore == null) { return score; } - if(StringUtils.isNotBlank(operator)) { + if (StringUtils.isNotBlank(operator)) { score = new BigDecimal("0"); String[] operators = operator.split("\\+"); for (String d : operators) { @@ -302,47 +307,49 @@ public class ScoreUtil { } } } - score = score.divide(decimal1,4, RoundingMode.HALF_UP); + score = score.divide(decimal1, 4, RoundingMode.HALF_UP); return score; } + /** * 折合 分数成绩 + * * @param rulesEnrollProbability 分数折合方式(专过文排/文过专排/文+专/专7文3/专5文5/专3文7) - * @param firstLevelDiscipline 一级学科 - * @param culturalScore 文化成绩 - * @param professionalScore 专业成绩 - * @param operator 运算符 + * @param firstLevelDiscipline 一级学科 + * @param culturalScore 文化成绩 + * @param professionalScore 专业成绩 + * @param operator 运算符 * @return 折合成绩 */ - public static BigDecimal convertIntoScore(String rulesEnrollProbability,BigDecimal culturalScore,BigDecimal professionalScore,String firstLevelDiscipline,String operator){ - BigDecimal score=new BigDecimal(0); - if (rulesEnrollProbability==null || culturalScore==null || professionalScore==null) { + public static BigDecimal convertIntoScore(String rulesEnrollProbability, BigDecimal culturalScore, BigDecimal professionalScore, String firstLevelDiscipline, String operator) { + BigDecimal score = new BigDecimal(0); + if (rulesEnrollProbability == null || culturalScore == null || professionalScore == null) { return score; } - if(StringUtils.isNotBlank(operator)){ + if (StringUtils.isNotBlank(operator)) { score = new BigDecimal("0"); String[] operators = operator.split("\\+"); for (String d : operators) { String[] split = d.split("\\*"); if (split[0].contains("文")) { score = score.add(culturalScore.multiply(new BigDecimal(split[1]))); - }else{ + } else { score = score.add(professionalScore.multiply(new BigDecimal(split[1]))); } } - }else{ - switch (rulesEnrollProbability){ + } else { + switch (rulesEnrollProbability) { case "专过文排": - score = "1722224567122784257".equals(firstLevelDiscipline)?culturalScore.multiply(decimal0133):culturalScore; + score = "1722224567122784257".equals(firstLevelDiscipline) ? culturalScore.multiply(decimal0133) : culturalScore; break; case "文过专排": - score = "1722224567122784257".equals(firstLevelDiscipline)?professionalScore.multiply(decimal0667):professionalScore; + score = "1722224567122784257".equals(firstLevelDiscipline) ? professionalScore.multiply(decimal0667) : professionalScore; break; case "专7文3": if ("1722224567122784257".equals(firstLevelDiscipline)) { score = culturalScore.multiply(decimal004).add(professionalScore.multiply(decimal0467)); - }else{ + } else { score = culturalScore.multiply(decimal07).add(professionalScore.multiply(decimal03)); } break; @@ -350,21 +357,21 @@ public class ScoreUtil { case "专5文5": if ("1722224567122784257".equals(firstLevelDiscipline)) { score = culturalScore.multiply(decimal0067).add(professionalScore.multiply(decimal0333)); - }else{ + } else { score = culturalScore.multiply(decimal05).add(professionalScore.multiply(decimal05)); } break; case "专3文7": if ("1722224567122784257".equals(firstLevelDiscipline)) { score = culturalScore.multiply(decimal0093).add(professionalScore.multiply(decimal02)); - }else{ + } else { score = culturalScore.multiply(decimal07).add(professionalScore.multiply(decimal03)); } break; case "专6文4": if ("1722224567122784257".equals(firstLevelDiscipline)) { score = culturalScore.multiply(decimal0093).add(professionalScore.multiply(decimal02)); - }else{ + } else { score = culturalScore.multiply(decimal04).add(professionalScore.multiply(decimal06)); } break; @@ -376,9 +383,9 @@ public class ScoreUtil { score = professionalScore.multiply(decimal05); break; default: - if (operator==null) { + if (operator == null) { score = culturalScore.add(professionalScore); - }else{ + } else { //System.out.println(operator); score = new BigDecimal("0"); String[] operators = operator.split("\\+"); @@ -386,7 +393,7 @@ public class ScoreUtil { String[] split = d.split("\\*"); if (split[0].contains("文")) { score = score.add(culturalScore.multiply(new BigDecimal(split[1]))); - }else{ + } else { score = score.add(professionalScore.multiply(new BigDecimal(split[1]))); } } @@ -394,19 +401,21 @@ public class ScoreUtil { break; } } - score = score.divide(decimal1,4, RoundingMode.HALF_UP); + score = score.divide(decimal1, 4, RoundingMode.HALF_UP); return score; } + /** * 折合 专业省控线 + * * @param rulesEnrollProbability 分数折合方式(专过文排/文过专排/文+专/专7文3/专5文5/专3文7) - * @param controlLine 原省控线 - * @param specialControlLine 原专业分 - * @param operator 运算符 + * @param controlLine 原省控线 + * @param specialControlLine 原专业分 + * @param operator 运算符 * @return 折合省控线 */ - public static BigDecimal covertIntoControlLine(String rulesEnrollProbability,BigDecimal controlLine,BigDecimal specialControlLine,String firstLevelDiscipline,String operator){ - BigDecimal provincialControlLine=null; + public static BigDecimal covertIntoControlLine(String rulesEnrollProbability, BigDecimal controlLine, BigDecimal specialControlLine, String firstLevelDiscipline, String operator) { + BigDecimal provincialControlLine = null; if (StringUtils.isNotBlank(operator)) { provincialControlLine = new BigDecimal("0"); String[] operators = operator.split("\\+"); @@ -414,23 +423,23 @@ public class ScoreUtil { String[] split = d.split("\\*"); if (split[0].contains("文")) { provincialControlLine = provincialControlLine.add(controlLine.multiply(new BigDecimal(split[1]))); - }else{ + } else { provincialControlLine = provincialControlLine.add(specialControlLine.multiply(new BigDecimal(split[1]))); } } - }else{ - switch (rulesEnrollProbability){ + } else { + switch (rulesEnrollProbability) { case "专过文排": provincialControlLine = controlLine.multiply(decimal0133); - provincialControlLine = "1722224567122784257".equals(firstLevelDiscipline)?controlLine.multiply(decimal0133):controlLine; + provincialControlLine = "1722224567122784257".equals(firstLevelDiscipline) ? controlLine.multiply(decimal0133) : controlLine; break; case "文过专排": - provincialControlLine = "1722224567122784257".equals(firstLevelDiscipline)?specialControlLine.multiply(decimal0667):specialControlLine; + provincialControlLine = "1722224567122784257".equals(firstLevelDiscipline) ? specialControlLine.multiply(decimal0667) : specialControlLine; break; case "专7文3": if ("1722224567122784257".equals(firstLevelDiscipline)) { provincialControlLine = controlLine.multiply(decimal004).add(specialControlLine.multiply(decimal0467)); - }else{ + } else { provincialControlLine = controlLine.multiply(decimal07).add(specialControlLine.multiply(decimal03)); } break; @@ -438,21 +447,21 @@ public class ScoreUtil { case "专5文5": if ("1722224567122784257".equals(firstLevelDiscipline)) { provincialControlLine = controlLine.multiply(decimal0067).add(specialControlLine.multiply(decimal0333)); - }else{ + } else { provincialControlLine = controlLine.multiply(decimal05).add(specialControlLine.multiply(decimal05)); } break; case "专3文7": if ("1722224567122784257".equals(firstLevelDiscipline)) { provincialControlLine = controlLine.multiply(decimal0093).add(specialControlLine.multiply(decimal02)); - }else{ + } else { provincialControlLine = controlLine.multiply(decimal07).add(specialControlLine.multiply(decimal03)); } break; case "专6文4": if ("1722224567122784257".equals(firstLevelDiscipline)) { provincialControlLine = controlLine.multiply(decimal0093).add(specialControlLine.multiply(decimal02)); - }else{ + } else { provincialControlLine = controlLine.multiply(decimal04).add(specialControlLine.multiply(decimal06)); } break; @@ -460,40 +469,41 @@ public class ScoreUtil { provincialControlLine = controlLine.add(specialControlLine); break; default: - if (operator==null) { + if (operator == null) { provincialControlLine = controlLine.add(specialControlLine); - }else{ + } else { provincialControlLine = new BigDecimal("0"); String[] operators = operator.split("\\+"); for (String d : operators) { String[] split = d.split("\\*"); if (split[0].contains("文")) { provincialControlLine = provincialControlLine.add(controlLine.multiply(new BigDecimal(split[1]))); - }else{ + } else { provincialControlLine = provincialControlLine.add(specialControlLine.multiply(new BigDecimal(split[1]))); } } } } } - provincialControlLine = provincialControlLine.divide(decimal1,4, RoundingMode.HALF_UP); + provincialControlLine = provincialControlLine.divide(decimal1, 4, RoundingMode.HALF_UP); return provincialControlLine; } /** * 转换成绩为分数批次段 - * @param culturalScore 文化成绩 + * + * @param culturalScore 文化成绩 * @param professionalScore 专业成绩 * @return */ - public static String conversionScoreBatch(BigDecimal culturalScore, BigDecimal professionalScore, List historyScoreControlLineList){ + public static String conversionScoreBatch(BigDecimal culturalScore, BigDecimal professionalScore, List historyScoreControlLineList) { double wenScore = culturalScore.doubleValue(); double zhuanScore = professionalScore.doubleValue(); - String batch="高职高专"; + String batch = "高职高专"; if (CollectionUtils.isNotEmpty(historyScoreControlLineList)) { for (YxHistoryScoreControlLine yxHistoryScoreControlLine : historyScoreControlLineList) { - if(culturalScore.compareTo(yxHistoryScoreControlLine.getCulturalScore())>=0 &&professionalScore.compareTo(yxHistoryScoreControlLine.getSpecialScore())>=0){ + if (culturalScore.compareTo(yxHistoryScoreControlLine.getCulturalScore()) >= 0 && professionalScore.compareTo(yxHistoryScoreControlLine.getSpecialScore()) >= 0) { batch = yxHistoryScoreControlLine.getBatch(); break; } @@ -505,30 +515,31 @@ public class ScoreUtil { /** * 判断是否过省控线 + * * @param rulesEnrollProbability 录取方式 - * @param culturalScore 当前文化分 - * @param professionalScore 当前专业分 - * @param culturalControlLine 当前文化省控线 - * @param specialControlLine 当前专业省控线 + * @param culturalScore 当前文化分 + * @param professionalScore 当前专业分 + * @param culturalControlLine 当前文化省控线 + * @param specialControlLine 当前专业省控线 * @return true/false 过/没过 */ - public static boolean crossingControlLine(String rulesEnrollProbability,BigDecimal culturalScore,BigDecimal professionalScore,BigDecimal culturalControlLine,BigDecimal specialControlLine){ + public static boolean crossingControlLine(String rulesEnrollProbability, BigDecimal culturalScore, BigDecimal professionalScore, BigDecimal culturalControlLine, BigDecimal specialControlLine) { if (YxConstant.culturalControlLineGuo.equals(rulesEnrollProbability)) { - return culturalScore.compareTo(culturalControlLine)>=0; - }else if(YxConstant.specialControlLineGuo.equals(rulesEnrollProbability)){ - return professionalScore.compareTo(specialControlLine)>=0; - }else if(YxConstant.culturalControlLineGuo2.equals(rulesEnrollProbability)){ - return culturalScore.compareTo(specialControlLine)>=0; + return culturalScore.compareTo(culturalControlLine) >= 0; + } else if (YxConstant.specialControlLineGuo.equals(rulesEnrollProbability)) { + return professionalScore.compareTo(specialControlLine) >= 0; + } else if (YxConstant.culturalControlLineGuo2.equals(rulesEnrollProbability)) { + return culturalScore.compareTo(specialControlLine) >= 0; } - //return culturalScore.compareTo(culturalControlLine)>=0 && professionalScore.compareTo(specialControlLine)>=0; - return true; + return culturalScore.compareTo(culturalControlLine) >= 0 && professionalScore.compareTo(specialControlLine) >= 0; +// return true; } /** - * 将专业类别转为 子类别 + * 将专业类别转为 子类别 */ - public static List checkProfessionalCategoryToChildrenList(String professionalCategoryChildren){ - if(StringUtils.isNotBlank(professionalCategoryChildren)){ + public static List checkProfessionalCategoryToChildrenList(String professionalCategoryChildren) { + if (StringUtils.isNotBlank(professionalCategoryChildren)) { return Arrays.asList(professionalCategoryChildren.split(",")); } return null; @@ -536,27 +547,28 @@ public class ScoreUtil { /** * 其他录取要求 + * * @param professionalScore * @param activeCurrentUserScore * @param recommendMajorDTO * @return */ public static boolean otherScoreJudge(BigDecimal professionalScore, YxUserScore activeCurrentUserScore, RecommendMajorDTO recommendMajorDTO) { - if (recommendMajorDTO!=null) { + if (recommendMajorDTO != null) { //语文成绩判断 - if (recommendMajorDTO.getChineseScoreLimitation()!=null && (activeCurrentUserScore.getChineseScore()==null || activeCurrentUserScore.getChineseScore().compareTo(recommendMajorDTO.getChineseScoreLimitation())<0)) { + if (recommendMajorDTO.getChineseScoreLimitation() != null && (activeCurrentUserScore.getChineseScore() == null || activeCurrentUserScore.getChineseScore().compareTo(recommendMajorDTO.getChineseScoreLimitation()) < 0)) { return false; } //外语成绩判断 - if (recommendMajorDTO.getEnglishScoreLimitation()!=null && (activeCurrentUserScore.getEnglishScore()==null ||activeCurrentUserScore.getEnglishScore().compareTo(recommendMajorDTO.getEnglishScoreLimitation())<0)) { + if (recommendMajorDTO.getEnglishScoreLimitation() != null && (activeCurrentUserScore.getEnglishScore() == null || activeCurrentUserScore.getEnglishScore().compareTo(recommendMajorDTO.getEnglishScoreLimitation()) < 0)) { return false; } //文化成绩判断 - if (recommendMajorDTO.getCulturalScoreLimitation()!=null && (activeCurrentUserScore.getCulturalScore()==null || activeCurrentUserScore.getCulturalScore().compareTo(recommendMajorDTO.getCulturalScoreLimitation())<0)) { + if (recommendMajorDTO.getCulturalScoreLimitation() != null && (activeCurrentUserScore.getCulturalScore() == null || activeCurrentUserScore.getCulturalScore().compareTo(recommendMajorDTO.getCulturalScoreLimitation()) < 0)) { return false; } //统考成绩判断 - if (recommendMajorDTO.getProfessionalScoreLimitation()!=null && (activeCurrentUserScore.getProfessionalScore()==null ||activeCurrentUserScore.getProfessionalScore().compareTo(recommendMajorDTO.getProfessionalScoreLimitation())<0)) { + if (recommendMajorDTO.getProfessionalScoreLimitation() != null && (activeCurrentUserScore.getProfessionalScore() == null || activeCurrentUserScore.getProfessionalScore().compareTo(recommendMajorDTO.getProfessionalScoreLimitation()) < 0)) { return false; } } @@ -565,31 +577,32 @@ public class ScoreUtil { /** * 统一计算录取率方法 - * @param nowYearDiff 当前年分差 - * @param historyThreeYearDiff 去年分差 + * + * @param nowYearDiff 当前年分差 + * @param historyThreeYearDiff 去年分差 * @return 录取率 */ public static BigDecimal commonCheckEnrollProbability(BigDecimal nowYearDiff, BigDecimal historyThreeYearDiff) { - BigDecimal enrollProbability = null; - if(nowYearDiff.compareTo(YxConstant.bigDecimal0) == 0 && historyThreeYearDiff.compareTo(YxConstant.bigDecimal0)>0){ - //当前年的分差为0,去年分差不为0: 75/去年的线差 - enrollProbability = YxConstant.bigDecimal75.divide(historyThreeYearDiff,4,RoundingMode.HALF_UP); - }else if(nowYearDiff.compareTo(YxConstant.bigDecimal0) == 0 && historyThreeYearDiff.compareTo(YxConstant.bigDecimal0)<=0){ - //当前年分差为0,去年分差为0 - enrollProbability = YxConstant.bigDecimal50;//录取率50 - }else if(nowYearDiff.compareTo(YxConstant.bigDecimal0) > 0 && historyThreeYearDiff.compareTo(YxConstant.bigDecimal0)<=0){ - //当前年分差不为0,去年分差为0:默认去年的分差为1 .multiply(YxConstant.bigDecimal075) - enrollProbability = nowYearDiff.multiply(YxConstant.bigDecimal100).multiply(YxConstant.bigDecimal075); - }else if(nowYearDiff.compareTo(YxConstant.bigDecimal0) < 0 && historyThreeYearDiff.compareTo(YxConstant.bigDecimal0)<=0){ - enrollProbability = YxConstant.bigDecimal0; - } else { - //当前年分差不为0,去年分差也不为0:(当前年分差/去年分差)*0.75 - enrollProbability = nowYearDiff.divide(historyThreeYearDiff, 4, RoundingMode.HALF_UP).multiply(YxConstant.bigDecimal100); - //录取率*0.75 - enrollProbability = enrollProbability.multiply(YxConstant.bigDecimal075); - } - return enrollProbability; + BigDecimal enrollProbability = null; + if (nowYearDiff.compareTo(YxConstant.bigDecimal0) == 0 && historyThreeYearDiff.compareTo(YxConstant.bigDecimal0) > 0) { + //当前年的分差为0,去年分差不为0: 75/去年的线差 + enrollProbability = YxConstant.bigDecimal75.divide(historyThreeYearDiff, 4, RoundingMode.HALF_UP); + } else if (nowYearDiff.compareTo(YxConstant.bigDecimal0) == 0 && historyThreeYearDiff.compareTo(YxConstant.bigDecimal0) <= 0) { + //当前年分差为0,去年分差为0 + enrollProbability = YxConstant.bigDecimal50;//录取率50 + } else if (nowYearDiff.compareTo(YxConstant.bigDecimal0) > 0 && historyThreeYearDiff.compareTo(YxConstant.bigDecimal0) <= 0) { + //当前年分差不为0,去年分差为0:默认去年的分差为1 .multiply(YxConstant.bigDecimal075) + enrollProbability = nowYearDiff.multiply(YxConstant.bigDecimal100).multiply(YxConstant.bigDecimal075); + } else if (nowYearDiff.compareTo(YxConstant.bigDecimal0) < 0 && historyThreeYearDiff.compareTo(YxConstant.bigDecimal0) <= 0) { + enrollProbability = YxConstant.bigDecimal0; + } else { + //当前年分差不为0,去年分差也不为0:(当前年分差/去年分差)*0.75 + enrollProbability = nowYearDiff.divide(historyThreeYearDiff, 4, RoundingMode.HALF_UP).multiply(YxConstant.bigDecimal100); + //录取率*0.75 + enrollProbability = enrollProbability.multiply(YxConstant.bigDecimal075); } + return enrollProbability; + } public static BigDecimal commonCheckEnrollProbabilityBeilv(BigDecimal enrollProbability) { if (enrollProbability.compareTo(YxConstant.bigDecimal150) > 0) {