This commit is contained in:
zhouwentao 2025-06-02 15:00:06 +08:00
parent 14173a1f08
commit 87a68e6d2e
13 changed files with 280 additions and 696 deletions

View File

@ -24,7 +24,7 @@ public class YxConstant {
/**
* 旧日期
*/
public static final List<String> oldYearList = Arrays.asList("2024", "2023", "2022", "2021");
public static final List<String> oldYearList = Arrays.asList("2024", "2023", "2022");
public static final List<String> 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");

View File

@ -50,7 +50,7 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
public class YxCalculationMajorController extends JeecgController<YxCalculationMajor, IYxCalculationMajorService> {
@Autowired
private IYxCalculationMajorService yxCalculationMajorService;
/**
* 分页列表查询
*
@ -68,11 +68,11 @@ public class YxCalculationMajorController extends JeecgController<YxCalculationM
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<YxCalculationMajor> queryWrapper = QueryGenerator.initQueryWrapper(yxCalculationMajor, req.getParameterMap());
Page<YxCalculationMajor> page = new Page<YxCalculationMajor>(pageNo, pageSize);
Page<YxCalculationMajor> page = new Page<>(pageNo, pageSize);
IPage<YxCalculationMajor> pageList = yxCalculationMajorService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 添加
*
@ -87,7 +87,7 @@ public class YxCalculationMajorController extends JeecgController<YxCalculationM
yxCalculationMajorService.save(yxCalculationMajor);
return Result.OK("添加成功!");
}
/**
* 编辑
*
@ -102,7 +102,7 @@ public class YxCalculationMajorController extends JeecgController<YxCalculationM
yxCalculationMajorService.updateById(yxCalculationMajor);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
@ -117,7 +117,7 @@ public class YxCalculationMajorController extends JeecgController<YxCalculationM
yxCalculationMajorService.removeById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
@ -132,7 +132,7 @@ public class YxCalculationMajorController extends JeecgController<YxCalculationM
this.yxCalculationMajorService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*

View File

@ -79,7 +79,7 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<YxHistoryMajorEnroll> queryWrapper = QueryGenerator.initQueryWrapper(yxHistoryMajorEnroll, req.getParameterMap());
Page<YxHistoryMajorEnroll> page = new Page<YxHistoryMajorEnroll>(pageNo, pageSize);
Page<YxHistoryMajorEnroll> page = new Page<>(pageNo, pageSize);
queryWrapper.orderByDesc("create_time", "update_time");
IPage<YxHistoryMajorEnroll> pageList = yxHistoryMajorEnrollService.page(page, queryWrapper);
return Result.OK(pageList);
@ -449,7 +449,6 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
batch = "本科提前批";
}
//省控线
//文科_本科A段_美术与设计_2023
if ("舞蹈类".equals(majorType) && Integer.parseInt(year) <= 2023) {
AssertUtils.notEmpty(mainSubjects, String.format("行[%s],未识别到舞蹈类型", index));
if (mainSubjects.contains("艺术舞蹈")) {
@ -495,7 +494,10 @@ public class YxHistoryMajorEnrollController extends JeecgController<YxHistoryMaj
schoolMajor.setMajorName(majorName);
schoolMajor.setEnrollmentCode(enrollmentCode);
// 提取学费
schoolMajor.setTuition(yxHistoryMajorEnroll.getTuition());
if (StringUtils.isNotBlank(yxHistoryMajorEnroll.getTuition())) {
schoolMajor.setTuition(yxHistoryMajorEnroll.getTuition().split(";")[0]);
}
// schoolMajor.setTuition(yxHistoryMajorEnroll.getTuition());
schoolMajor.setDetail(detail);
schoolMajor.setCategory(category);
schoolMajor.setRulesEnrollProbabilitySx(rulesEnrollProbability);

View File

@ -560,482 +560,4 @@ public class YxSchoolMajorController extends JeecgController<YxSchoolMajor, IYxS
}
return Result.error("文件导入失败!");
}
/**
* 刷新专业信息importExcel1Xz
*/
/*@RequestMapping(value = "/importExcel1Xz", method = RequestMethod.POST)
public Result<?> 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<SchoolMajorImport3> list = ExcelImportUtil.importExcel(fileInputStream, SchoolMajorImport3.class, params);
List<SchoolMajorImport3> 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<YxSchoolMajor> queryWrapper = new LambdaQueryWrapper<>();
List<YxSchoolMajor> schoolMajorList = yxSchoolMajorService.list(queryWrapper);
Map<String,YxSchoolMajor> 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<String,YxSchoolMajor> 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<YxSchoolMajor> updateSchoolMajorList = new ArrayList<>();
Map<String,String> 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<LiNianShuJuDTO> notSchoolList = new HashSet<>();
Map<String,String> benMajorNameCodeMap = new LinkedHashMap<>();
Map<String,String> zhuanMajorNameCodeMap = new LinkedHashMap<>();
List<YxMajor> yxMajorList = yxMajorService.list(new LambdaQueryWrapper<YxMajor>().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<SchoolMajorImport3> list = ExcelImportUtil.importExcel(fileInputStream, SchoolMajorImport3.class, params);
List<SchoolMajorImport3> 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<YxSchoolMajor> queryWrapper = new LambdaQueryWrapper<>();
List<YxSchoolMajor> schoolMajorList = new ArrayList<>();
StringBuilder mainSubjects = new StringBuilder();
YxSchoolMajor schoolMajor = null;
//音乐表演 专业
List<String> yybyList = Arrays.asList("表演", "音乐表演", "流行音乐", "音乐学",
"音乐制作","航空服务艺术与管理","音乐与舞蹈学类","戏曲音乐");
//音乐教育
List<String> yyjyList = Arrays.asList("音乐学", "作曲与作曲技术理论", "音乐治疗", "音乐教育", "录音艺术"
,"录音技术与艺术","钢琴调律","音像技术","艺术与科技","艺术管理","作曲技术");
List<YxSchoolChild> yxSchoolChildList = yxSchoolChildService.list();
List<String> schoolCodeList = yxSchoolChildList.stream().map(YxSchoolChild::getSchoolCode).collect(Collectors.toList());
Set<String> notSchoolCodeList = new HashSet<>();
Set<String> notSchoolNameList = new HashSet<>();
Map<String,String> 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<String,String> notSchoolNameList = new LinkedHashMap<>();
JSONObject jsonObject = JSONObject.parseObject(s);
List<YxSchool> schoolList = yxSchoolService.list();
Map<String, String> schoolNameList = schoolList.stream().collect(Collectors.toMap(YxSchool::getSchoolName, YxSchool::getId));
YxSchoolChild yxSchoolChild = null;
List<YxSchoolChild> 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();
}*/
}

View File

@ -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();

View File

@ -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);

View File

@ -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();

View File

@ -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);

View File

@ -66,7 +66,12 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
recommendMajorDTOList = yxSchoolMajorMapper.recommendMajorList(queryRecommendMajorVO); // 获取到当前专业/理科的数据
//将历史录取信息合并到专业信息里
if (CollectionUtils.isNotEmpty(recommendMajorDTOList)) {
yxHistoryMajorEnrollService.recommendMajorDTOListSetHistoryInfo(recommendMajorDTOList, ScoreUtil.getCalOldYears());
// 如果是非美术类只要24年数据
if (!"美术与设计类".equals(userScore.getProfessionalCategory())) {
yxHistoryMajorEnrollService.recommendMajorDTOListSetHistoryInfo(recommendMajorDTOList, Collections.singletonList("2024"));
}else{
yxHistoryMajorEnrollService.recommendMajorDTOListSetHistoryInfo(recommendMajorDTOList, ScoreUtil.getCalOldYears());
}
this.checkEnrollProbability(recommendMajorDTOList, userScore);
}
long endTime = new Date().getTime();
@ -122,6 +127,19 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
public ArtRecommendMajorBaseDTO recommendMajorPage(QueryRecommendMajorVO queryRecommendMajorVO) {
Integer pageNum = queryRecommendMajorVO.getPageNum();
Integer pageSize = queryRecommendMajorVO.getPageSize();
// LambdaQueryWrapper<YxHistoryMajorEnroll> lqw = new LambdaQueryWrapper<>();
// lqw.eq(YxHistoryMajorEnroll::getYear,"2024");
// lqw.eq(YxHistoryMajorEnroll::getMajorType,"体育类");
// lqw.eq(YxHistoryMajorEnroll::getBatch,"本科");
// List<YxHistoryMajorEnroll> 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<YxCalculationMajo
yxHistoryScoreControlLine.getCulturalScore(),
yxHistoryScoreControlLine.getSpecialScore(),
recommendMajorDTO.getFirstLevelDiscipline(), recommendMajorDTO.getProbabilityOperator());
if("体育类".equals(recommendMajorDTO.getMajorType()) && !"专过文排".equals(recommendMajorDTO.getRulesEnrollProbability())){
bigDecimal = bigDecimal.divide(YxConstant.bigDecimal7p5, 4, RoundingMode.HALF_UP);
if(recommendMajorDTO.getSchoolCode().equals("6506")){
System.out.println("qvq");
}
// if("体育类".equals(recommendMajorDTO.getMajorType())
// && !"文过专排".equals(recommendMajorDTO.getRulesEnrollProbability())
// && !"专过文排".equals(recommendMajorDTO.getRulesEnrollProbability())){
// bigDecimal = bigDecimal.divide(YxConstant.bigDecimal7p5, 4, RoundingMode.HALF_UP);
// }
recommendMajorDTO.setScoreLineDifference(recommendMajorDTO.getStudentScore().subtract(bigDecimal));
}
}
@ -521,10 +544,6 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
//遍历专业列表
for (RecommendMajorDTO recommendMajorDTO : recommendMajorList) {
index++;
System.out.println(recommendMajorDTO.getSchoolCode());
if ("4915".equals(recommendMajorDTO.getSchoolCode()) && recommendMajorDTO.getMajorName().equals("产品设计")) {
System.out.println("qvq");
}
//取出往年的分数信息, 算出 三年平均差值
historyMajorEnrollList = recommendMajorDTO.getHistoryMajorEnrollList();
rulesEnrollProbability = recommendMajorDTO.getPrivateRulesEnrollProbability();
@ -536,7 +555,6 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
continue;
}
//不是体育类的专业如果是文过专排并且没有录取计算运算符时文过专排是文*0+*1,专过文排是文*1+*0
if ("文过专排".equals(rulesEnrollProbability) && StringUtils.isBlank(probabilityOperator)) {
probabilityOperator = "文*0+专*1";
@ -547,6 +565,7 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
continue;
}
//判断其他录取要求
if(!ScoreUtil.otherScoreJudge(professionalScore,activeCurrentUserScore,recommendMajorDTO)){
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
@ -562,24 +581,25 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
}
}
if("6031".equals(recommendMajorDTO.getSchoolCode()) || "6175".equals(recommendMajorDTO.getSchoolCode())){
if(recommendMajorDTO.getSchoolCode().equals("6506") &&
recommendMajorDTO.getMajorName().equals("社会体育指导与管理")){
System.out.println("qvq");
}
//算分用
// 当前学生的分数折合
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), activeCurrentUserScore.getProfessionalScore(), recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
// 体育非专过文排 / 7.5
if (professionalCategory.equals("体育类") && !"专过文排".equals(rulesEnrollProbability)) {
/*if (professionalCategory.equals("体育类")
&& !"文过专排".equals(rulesEnrollProbability)
&& !"专过文排".equals(rulesEnrollProbability)) {
// 体育非专过文排 / 7.5
studentScore = studentScore.divide(YxConstant.bigDecimal7p5, 4, RoundingMode.HALF_UP);
}
}*/
recommendMajorDTO.setPrivateStudentScore(studentScore);
if (StringUtils.isNotBlank(recommendMajorDTO.getRulesEnrollProbability())) {
//recommendMajorDTO.setStudentConvertedScore(studentScore);
//计算展示用分数
recommendMajorDTO.setStudentScore(studentScore);
// recommendMajorDTO.setStudentScore(ScoreUtil.convertIntoScore(recommendMajorDTO.getRulesEnrollProbability(),
// activeCurrentUserScore.getCulturalScore(),
// activeCurrentUserScore.getProfessionalScore(), recommendMajorDTO.getFirstLevelDiscipline(), recommendMajorDTO.getProbabilityOperator()));
}
//没有往年录取分数线信息
@ -588,6 +608,12 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
continue;
}
// 如果没有24年数据则不计算
if(CollectionUtils.isEmpty(historyMajorEnrollList) && historyMajorEnrollList.stream().noneMatch(h -> "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<YxCalculationMajo
if (nowYearProvincialControlLine == null) {
continue;
}
// 体育非专过文排 / 7.5
if (professionalCategory.equals("体育类") && !"专过文排".equals(rulesEnrollProbability)) {
nowYearProvincialControlLine = nowYearProvincialControlLine.divide(YxConstant.bigDecimal7p5, 4, RoundingMode.HALF_UP);
}
//历年分差
differenceMap = ScoreUtil.computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability(rulesEnrollProbability, probabilityOperator, historyMajorEnrollList);
historyThreeYearDiff = (BigDecimal) differenceMap.get("scoreDifference");
if(professionalCategory.equals("体育类")
&& "文过专排".equals(rulesEnrollProbability)){
historyThreeYearDiff = historyThreeYearDiff.multiply(YxConstant.bigDecimal5);
}
// 体育文过专排 / 5
if (professionalCategory.equals("体育类")
&& !"文过专排".equals(rulesEnrollProbability)
&& !"专过文排".equals(rulesEnrollProbability)) {
// 体育非专过文排 / 7.5
nowYearProvincialControlLine = nowYearProvincialControlLine.divide(YxConstant.bigDecimal7p5, 4, RoundingMode.HALF_UP);
//当前年线差
studentScore = studentScore.divide(YxConstant.bigDecimal7p5, 4, RoundingMode.HALF_UP);
}
//当前年线差
nowYearDiff = studentScore.subtract(nowYearProvincialControlLine);
//艺术类高职高专 当前年线差率 (当前年线差/当前年省控线)

View File

@ -74,7 +74,6 @@ public class YxHistoryMajorEnrollServiceImpl extends ServiceImpl<YxHistoryMajorE
Set<String> schoolCodeSet = recommendMajorDtoList.stream().map(RecommendMajorDTO::getSchoolCode).collect(Collectors.toSet());
//获取历年的招生计划
LambdaQueryWrapper<YxHistoryMajorEnroll> 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<YxHistoryMajorE
historyMajorEnrollList = new ArrayList<>();
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<YxHistoryMajorE
if (StringUtils.isNotBlank(id)) {
lambdaQueryWrapper.in(YxHistoryMajorEnroll::getId, Arrays.asList(id.split(",")));
}
// lambdaQueryWrapper.eq(YxHistoryMajorEnroll::getMajorType,"体育类");
// lambdaQueryWrapper.eq(YxHistoryMajorEnroll::getBatch,"本科");
lambdaQueryWrapper.eq(YxHistoryMajorEnroll::getRulesEnrollProbability,"专过文排");
lambdaQueryWrapper.eq(YxHistoryMajorEnroll::getMajorType,"体育类");
lambdaQueryWrapper.eq(YxHistoryMajorEnroll::getBatch,"本科");
lambdaQueryWrapper.eq( YxHistoryMajorEnroll::getYear,"2024");
// lambdaQueryWrapper.eq(YxHistoryMajorEnroll::getRulesEnrollProbability,"专过文排");
//lambdaQueryWrapper.in(YxHistoryMajorEnroll::getRulesEnrollProbability,"专过文排","文过专排");
List<YxHistoryMajorEnroll> list = list(lambdaQueryWrapper);
if (CollectionUtils.isNotEmpty(list)) {
@ -242,24 +239,24 @@ public class YxHistoryMajorEnrollServiceImpl extends ServiceImpl<YxHistoryMajorE
System.out.println("11");
}*/
if (("文过专排".equals(rulesEnrollProbability)|| "文过专排主科".equals(rulesEnrollProbability)) && StringUtils.isBlank(probabilityOperator)) {
if ("体育类".equals(majorType)) {
probabilityOperator = "专*0.667";
}else{
probabilityOperator = "专*1";
}
}else if ("专过文排".equals(rulesEnrollProbability) && StringUtils.isBlank(probabilityOperator)) {
if ("体育类".equals(majorType)) {
probabilityOperator = "文*0.133";
}else{
probabilityOperator = "文*1";
}
}else if ("文+专".equals(rulesEnrollProbability) && StringUtils.isBlank(probabilityOperator)) {
probabilityOperator = "文*1+专*1";
}
if (StringUtils.isBlank(probabilityOperator)) {
System.out.println("111");
}
// if (("文过专排".equals(rulesEnrollProbability)|| "文过专排主科".equals(rulesEnrollProbability)) && StringUtils.isBlank(probabilityOperator)) {
// if ("体育类".equals(majorType)) {
// probabilityOperator = "专*0.667";
// }else{
// probabilityOperator = "专*1";
// }
// }else if ("专过文排".equals(rulesEnrollProbability) && StringUtils.isBlank(probabilityOperator)) {
// if ("体育类".equals(majorType)) {
// probabilityOperator = "文*0.133";
// }else{
// probabilityOperator = "文*1";
// }
// }else if ("文+专".equals(rulesEnrollProbability) && StringUtils.isBlank(probabilityOperator)) {
// probabilityOperator = "文*1+专*1";
// }
// if (StringUtils.isBlank(probabilityOperator)) {
// System.out.println("111");
// }
//换算分数
String[] operators = probabilityOperator.split("\\+");
for (String operator : operators) {

View File

@ -115,15 +115,6 @@ public class YxVolunteerServiceImpl extends ServiceImpl<YxVolunteerMapper, YxVol
recommendMajorDTO.setHistoryMajorEnrollList(historyMajorEnrollList);
}
}
/*//填报志愿明细信息-提前批
List<VolunteerRecordDTO> volunteerRecordEarlyAdmissionList = recordDTOList.stream().filter(r -> r.getBatch().equals("提前批")).collect(Collectors.toList());
//填报志愿明细信息-本科A段
List<VolunteerRecordDTO> volunteerRecordUndergraduateAList = recordDTOList.stream().filter(r -> r.getBatch().equals("本科A段")).collect(Collectors.toList());
//填报志愿明细信息-本科B段
List<VolunteerRecordDTO> 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<VolunteerRecordDTO> volunteerRecordUndergraduateList = recordDTOList.stream().filter(r -> YxConstant.batchList1.contains(r.getBatch())).collect(Collectors.toList());
@ -152,16 +143,6 @@ public class YxVolunteerServiceImpl extends ServiceImpl<YxVolunteerMapper, YxVol
List<VolunteerRecordDTO> recordDTOList = yxVolunteerRecordService.listDTOByVolunteerId(userScore.getId(),userScore.getCalculationTableName(),volunteer.getId());
//获取上一年的招生人数
yxHistoryMajorEnrollService.volunteerRecordDTOListSetHistoryInfo(recordDTOList);
/*//填报志愿明细信息-提前批
List<VolunteerRecordDTO> volunteerRecordEarlyAdmissionList = recordDTOList.stream().filter(r -> r.getBatch().equals("提前批")).collect(Collectors.toList());
//填报志愿明细信息-本科A段
List<VolunteerRecordDTO> volunteerRecordUndergraduateAList = recordDTOList.stream().filter(r -> r.getBatch().equals("本科A段")).collect(Collectors.toList());
//填报志愿明细信息-本科B段
List<VolunteerRecordDTO> 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<VolunteerRecordDTO> volunteerRecordUndergraduateList = recordDTOList.stream().filter(r -> YxConstant.batchList1.contains(r.getBatch())).collect(Collectors.toList());

View File

@ -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);

View File

@ -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<String> getCalOldYears(){
public static List<String> getCalOldYears() {
return YxConstant.oldYearList;
}
/**
* 用于列表上显示历年信息
*
* @return
*/
public static List<String> getShowOldYears(){
public static List<String> getShowOldYears() {
return YxConstant.showOldYearList;
}
/**
* 计算 往年分数差之和 (往年的录取线-省控线)
*
* @param historyMajorEnrollList 往年录取分数
* @return 往年分数差
*/
public static BigDecimal computeHistoryMajorEnrollScoreLineDifference(List<YxHistoryMajorEnroll> historyMajorEnrollList){
BigDecimal sum=new BigDecimal("0");
public static BigDecimal computeHistoryMajorEnrollScoreLineDifference(List<YxHistoryMajorEnroll> 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<String, Object> 包含平均分差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<String,Object> computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability_old(String rulesEnrollProbability,List<YxHistoryMajorEnroll> historyMajorEnrollList){
BigDecimal sum=new BigDecimal("0");//历年分差之和
BigDecimal nowSum=new BigDecimal("0");
Map<String,Object> data=new LinkedHashMap<>();
data.put("scoreDifference",sum);
public static Map<String, Object> computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability_old(String rulesEnrollProbability, List<YxHistoryMajorEnroll> historyMajorEnrollList) {
BigDecimal sum = new BigDecimal("0");//历年分差之和
BigDecimal nowSum = new BigDecimal("0");
Map<String, Object> 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<YxHistoryScoreControlLine> historyScoreControlLineList){
public static String conversionScoreBatch(BigDecimal culturalScore, BigDecimal professionalScore, List<YxHistoryScoreControlLine> 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<String> checkProfessionalCategoryToChildrenList(String professionalCategoryChildren){
if(StringUtils.isNotBlank(professionalCategoryChildren)){
public static List<String> 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) {