diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/art/vo/QueryRecommendMajorVO.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/art/vo/QueryRecommendMajorVO.java index 76edd52..3e47a3f 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/art/vo/QueryRecommendMajorVO.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/art/vo/QueryRecommendMajorVO.java @@ -51,6 +51,9 @@ public class QueryRecommendMajorVO extends ArtBaseDTO { @ApiModelProperty(value = "录取方式") private String rulesEnrollProbability; + + @ApiModelProperty(value = "成绩id") + private String scoreId; /*public void setBatch(String batch) { if (StringUtils.isNotBlank(batch)) { if ("本科".equals(batch)) { diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/art/vo/SaveVolunteerVO.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/art/vo/SaveVolunteerVO.java index 3ec1f73..fbded3b 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/art/vo/SaveVolunteerVO.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/art/vo/SaveVolunteerVO.java @@ -24,6 +24,12 @@ public class SaveVolunteerVO implements Serializable { @Excel(name = "学校编码", width = 15) @ApiModelProperty(value = "学校编码") private java.lang.String schoolCode; + + /**招生代码*/ + @Excel(name = "招生代码", width = 15) + @ApiModelProperty(value = "招生代码") + private String enrollmentCode; + /**志愿顺序*/ @Excel(name = "志愿顺序", width = 15) @ApiModelProperty(value = "志愿顺序") @@ -34,6 +40,11 @@ public class SaveVolunteerVO implements Serializable { @ApiModelProperty(value = "志愿批次") private java.lang.String batch; + /**文理分科*/ + @Excel(name = "文理分科", width = 15) + @ApiModelProperty(value = "文理分科") + private java.lang.String category; + /**创建人*/ @ApiModelProperty(value = "创建人") private java.lang.String createBy; diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/ThirdLoginController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/ThirdLoginController.java index 22ee91a..3b882b7 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/ThirdLoginController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/ThirdLoginController.java @@ -1,6 +1,5 @@ package org.jeecg.modules.system.controller; -import cn.hutool.core.util.RandomUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.xkcoding.justauth.AuthRequestFactory; @@ -66,6 +65,13 @@ public class ThirdLoginController { @Autowired private ThirdAppDingtalkServiceImpl thirdAppDingtalkService; + + + @RequestMapping("/wechat/login") + public void wechatLogin(){ + + } + @RequestMapping("/render/{source}") public void render(@PathVariable("source") String source, HttpServletResponse response) throws IOException { log.info("第三方登录进入render:" + source); @@ -238,7 +244,7 @@ public class ThirdLoginController { //update-end-author:wangshuai date:20201118 for:如果真实姓名和头像不存在就取第三方登录的 JSONObject obj = new JSONObject(); //TODO 第三方登确定登录租户和部门逻辑 - + //用户登录信息 obj.put("userInfo", sysUser); //获取字典缓存【解决 #jeecg-boot/issues/3998】 @@ -424,4 +430,4 @@ public class ThirdLoginController { } } -} \ No newline at end of file +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/controller/YxHistoryScoreControlLineController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/controller/YxHistoryScoreControlLineController.java index feecfd1..79cdd83 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/controller/YxHistoryScoreControlLineController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/controller/YxHistoryScoreControlLineController.java @@ -50,7 +50,7 @@ import org.apache.shiro.authz.annotation.RequiresPermissions; public class YxHistoryScoreControlLineController extends JeecgController { @Autowired private IYxHistoryScoreControlLineService yxHistoryScoreControlLineService; - + /** * 分页列表查询 * @@ -67,12 +67,11 @@ public class YxHistoryScoreControlLineController extends JeecgController queryWrapper = QueryGenerator.initQueryWrapper(yxHistoryScoreControlLine, req.getParameterMap()); Page page = new Page(pageNo, pageSize); - IPage pageList = yxHistoryScoreControlLineService.page(page, queryWrapper); + IPage pageList = yxHistoryScoreControlLineService.pageList(page,yxHistoryScoreControlLine); return Result.OK(pageList); } - + /** * 添加 * @@ -87,7 +86,7 @@ public class YxHistoryScoreControlLineController extends JeecgController { + IPage pageList(@Param("page") Page page,@Param("queryvo") YxHistoryScoreControlLine yxHistoryScoreControlLine); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxHistoryScoreControlLineMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxHistoryScoreControlLineMapper.xml index 2b74d12..8d4d145 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxHistoryScoreControlLineMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/mapper/xml/YxHistoryScoreControlLineMapper.xml @@ -2,4 +2,24 @@ - \ No newline at end of file + + diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/IYxHistoryScoreControlLineService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/IYxHistoryScoreControlLineService.java index 1ccb804..fe73178 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/IYxHistoryScoreControlLineService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/IYxHistoryScoreControlLineService.java @@ -1,5 +1,7 @@ package org.jeecg.modules.yx.service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.modules.yx.entity.YxHistoryScoreControlLine; import com.baomidou.mybatisplus.extension.service.IService; @@ -11,4 +13,5 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface IYxHistoryScoreControlLineService extends IService { + IPage pageList(Page page, YxHistoryScoreControlLine yxHistoryScoreControlLine); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/IYxVolunteerRecordService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/IYxVolunteerRecordService.java index fc4f809..c42b71f 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/IYxVolunteerRecordService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/IYxVolunteerRecordService.java @@ -1,5 +1,6 @@ package org.jeecg.modules.yx.service; +import org.jeecg.modules.art.vo.SaveVolunteerVO; import org.jeecg.modules.yx.dto.VolunteerRecordDTO; import org.jeecg.modules.yx.entity.YxVolunteerRecord; import com.baomidou.mybatisplus.extension.service.IService; @@ -22,7 +23,7 @@ public interface IYxVolunteerRecordService extends IService { List listDTOByVolunteerId(String volunteerId,String cognitioPolyclinic); - boolean artVolunteerSave(YxVolunteerRecord yxVolunteerRecord); + boolean artVolunteerSave(SaveVolunteerVO saveVolunteerVO); List getListByCreateBy(YxVolunteerRecord yxVolunteerRecord); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxHistoryScoreControlLineServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxHistoryScoreControlLineServiceImpl.java index 96260f1..5f638e8 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxHistoryScoreControlLineServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxHistoryScoreControlLineServiceImpl.java @@ -1,5 +1,7 @@ package org.jeecg.modules.yx.service.impl; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.modules.yx.entity.YxHistoryScoreControlLine; import org.jeecg.modules.yx.mapper.YxHistoryScoreControlLineMapper; import org.jeecg.modules.yx.service.IYxHistoryScoreControlLineService; @@ -16,4 +18,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @Service public class YxHistoryScoreControlLineServiceImpl extends ServiceImpl implements IYxHistoryScoreControlLineService { + @Override + public IPage pageList(Page page, YxHistoryScoreControlLine yxHistoryScoreControlLine) { + return baseMapper.pageList(page,yxHistoryScoreControlLine); + } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxSchoolMajorServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxSchoolMajorServiceImpl.java index c454cb8..1f648db 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxSchoolMajorServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxSchoolMajorServiceImpl.java @@ -49,6 +49,8 @@ public class YxSchoolMajorServiceImpl extends ServiceImplr.getEnrollProbability().compareTo(bigDecimal50)<0 && r.getEnrollProbability().compareTo(bigDecimal30)>=0).collect(Collectors.toList()); break; + case "难录取": + recommendMajorList = recommendMajorList.stream().filter(r->r.getEnrollProbability().compareTo(bigDecimal50)<0 && r.getEnrollProbability().compareTo(bigDecimal30)<=0).collect(Collectors.toList()); + break; } } int total = recommendMajorList.size(); @@ -318,9 +329,6 @@ public class YxSchoolMajorServiceImpl extends ServiceImpl historyMajorEnrollList = recommendMajorDTO.getHistoryMajorEnrollList(); @@ -348,9 +356,9 @@ public class YxSchoolMajorServiceImpl extends ServiceImpl 0) { - enrollProbability = bigDecimal99x; + //enrollProbability = bigDecimal99x; }else if(enrollProbability.compareTo(bigDecimal0)<=0){ enrollProbability = bigDecimal0; } - recommendMajorDTO.setEnrollProbability(enrollProbability); + recommendMajorDTO.setEnrollProbability(enrollProbability.multiply(bigDecimal075)); } @@ -418,9 +426,9 @@ public class YxSchoolMajorServiceImpl extends ServiceImpl smQueryWrapper = new LambdaQueryWrapper(); - smQueryWrapper.eq(YxSchoolMajor::getSchoolCode, schoolCode).eq(YxSchoolMajor::getMajorCode, majorCode); + smQueryWrapper.eq(YxSchoolMajor::getSchoolCode, schoolCode); + smQueryWrapper.eq(YxSchoolMajor::getMajorCode, majorCode); + smQueryWrapper.eq(YxSchoolMajor::getEnrollmentCode,enrollmentCode); smQueryWrapper.eq(YxSchoolMajor::getCategory,yxVolunteerRecord.getCategory()); YxSchoolMajor schoolMajor = yxSchoolMajorService.getOne(smQueryWrapper); String batch = schoolMajor.getBatch(); @@ -66,9 +72,9 @@ public class YxVolunteerRecordServiceImpl extends ServiceImpl !(l.getMajorCode()+l.getSchoolCode()).equals(majorCode_schoolCode)).count(); + long count = list.stream().filter(l -> !(l.getMajorCode()+l.getSchoolCode()+l.getEnrollmentCode()).equals(key)).count(); if ("提前批".equals(batch)) { AssertUtils.notTrue(count>=2,"提前批仅可以填报两个志愿"); }else{ @@ -77,7 +83,10 @@ public class YxVolunteerRecordServiceImpl extends ServiceImpl removeWrapper = new LambdaQueryWrapper<>(); removeWrapper.eq(YxVolunteerRecord::getVolunteerId,volunteerId); - removeWrapper.eq(YxVolunteerRecord::getMajorCode,majorCode); removeWrapper.eq(YxVolunteerRecord::getSchoolCode,schoolCode); + removeWrapper.eq(YxVolunteerRecord::getMajorCode,majorCode); + removeWrapper.eq(YxVolunteerRecord::getEnrollmentCode,enrollmentCode); this.remove(removeWrapper); if (indexs!=null && indexs>=0) { //如果入参里有志愿顺序,则覆盖原志愿顺序 diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxVolunteerServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxVolunteerServiceImpl.java index 0688b68..e030d5a 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxVolunteerServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/yx/service/impl/YxVolunteerServiceImpl.java @@ -43,107 +43,90 @@ public class YxVolunteerServiceImpl extends ServiceImpl queryWrapper= new LambdaQueryWrapper(); + VolunteerDTO volunteerDTO=new VolunteerDTO(); + LambdaQueryWrapper queryWrapper= new LambdaQueryWrapper<>(); queryWrapper.eq(YxVolunteer::getCreateBy,createBy); queryWrapper.eq(YxVolunteer::getState,"1"); queryWrapper.last("limit 1"); - YxVolunteer yxVolunteer = this.getOne(queryWrapper); - if (yxVolunteer==null) { - return null; + YxVolunteer volunteer = this.getOne(queryWrapper); + YxUserScore userScore = yxUserScoreService.getActiveCurrentUserScore(); + if (userScore==null) { + return volunteerDTO; } - YxUserScore activeCurrentUserScore = yxUserScoreService.getActiveCurrentUserScore(); - String batch = activeCurrentUserScore.getBatch(); - String cognitioPolyclinic = activeCurrentUserScore.getCognitioPolyclinic(); - VolunteerDTO volunteerDTO=new VolunteerDTO(); - BeanUtils.copyProperties(yxVolunteer,volunteerDTO); - LambdaQueryWrapper recordQueryWrapper=new LambdaQueryWrapper<>(); - recordQueryWrapper.eq(YxVolunteerRecord::getVolunteerId,volunteerDTO.getId()); - recordQueryWrapper.orderByAsc(YxVolunteerRecord::getIndexs); - List recordDTOList = yxVolunteerRecordService.listDTOByVolunteerId(volunteerDTO.getId(),cognitioPolyclinic); - //获取上一年的招生人数 - List historyMajorEnrollList=null; - LambdaQueryWrapper hmeWrapper=new LambdaQueryWrapper<>(); - YxHistoryMajorEnroll yxHistoryMajorEnroll=null; - //文化成绩 - BigDecimal culturalScore = activeCurrentUserScore.getCulturalScore(); - //专业成绩 - BigDecimal professionalScore = activeCurrentUserScore.getProfessionalScore(); - //100倍率 - BigDecimal bigDecimal100 = new BigDecimal(100); - //计算录取概率 + if (volunteer==null) { + volunteerDTO.setUserScoreInfo(userScore); + return volunteerDTO; + } + BeanUtils.copyProperties(volunteer,volunteerDTO); + volunteerDTO.setUserScoreInfo(userScore); + String cognitioPolyclinic = userScore.getCognitioPolyclinic(); + BigDecimal culturalScore = userScore.getCulturalScore();//文化成绩 + BigDecimal professionalScore = userScore.getProfessionalScore();//专业成绩 BigDecimal studentScore = culturalScore.add(professionalScore);//学员的总分数成绩 + //获取已填报的志愿单 + List recordDTOList = yxVolunteerRecordService.listDTOByVolunteerId(volunteer.getId(), cognitioPolyclinic); //临时变量 - int size = 0; - BigDecimal sum = new BigDecimal("0"); - BigDecimal historyThreeYearDiff = null;//三年平均差值 - BigDecimal nowYearProvincialControlLine = null; - BigDecimal enrollProbability = null; - int i =0; - - Map yearMajorEnrollMap; - for (VolunteerRecordDTO volunteerRecordDTO : recordDTOList) { - hmeWrapper.clear(); - hmeWrapper.eq(YxHistoryMajorEnroll::getSchoolCode,volunteerRecordDTO.getSchoolCode());//学校编码 - hmeWrapper.eq(YxHistoryMajorEnroll::getMajorCode,volunteerRecordDTO.getMajorCode());//专业编码 + String schoolCode; + String majorName; + String sm; + //获取上一年的招生人数 + List historyMajorEnrollList=null; + //获取历年的招生计划 + LambdaQueryWrapper hmeWrapper = new LambdaQueryWrapper<>(); + List majorNameList = recordDTOList.stream().map(VolunteerRecordDTO::getMajorName).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(majorNameList)) { + hmeWrapper.in(YxHistoryMajorEnroll::getYear,"2022","2021","2020"); hmeWrapper.eq(YxHistoryMajorEnroll::getCategory,cognitioPolyclinic);//文科/理科 + hmeWrapper.in(YxHistoryMajorEnroll::getMajorName,majorNameList); hmeWrapper.orderByDesc(YxHistoryMajorEnroll::getYear); - hmeWrapper.lt(YxHistoryMajorEnroll::getYear,"2023"); - hmeWrapper.last("limit 3"); - historyMajorEnrollList = yxHistoryMajorEnrollService.list(hmeWrapper); - yearMajorEnrollMap = new LinkedHashMap<>(); - if (CollectionUtils.isNotEmpty(historyMajorEnrollList)) { - for (YxHistoryMajorEnroll historyMajorEnroll : historyMajorEnrollList) { - yearMajorEnrollMap.put(historyMajorEnroll.getYear(),historyMajorEnroll); - } + List yxHistoryMajorEnrollList = yxHistoryMajorEnrollService.list(hmeWrapper); + //将历年计划 组合成map对象 + String a_="_"; + Map majorEnrollMap = new LinkedHashMap<>(); + for (YxHistoryMajorEnroll h : yxHistoryMajorEnrollList) { + majorEnrollMap.put(h.getSchoolCode() + a_ + h.getMajorName() + a_ + h.getYear(),h); } - volunteerRecordDTO.setHistoryMajorEnrollMap(yearMajorEnrollMap); + //遍历,获取历年数据 添加到专业 的历年信息中 + Map yearMajorEnrollMap; + YxHistoryMajorEnroll yxHistoryMajorEnroll; + for (RecommendMajorDTO recommendMajorDTO : recordDTOList) { + historyMajorEnrollList = new ArrayList<>(); + schoolCode = recommendMajorDTO.getSchoolCode(); + majorName = recommendMajorDTO.getMajorName(); + yearMajorEnrollMap = new LinkedHashMap<>(); + sm = schoolCode+a_+majorName; + //2022年 + yxHistoryMajorEnroll = majorEnrollMap.get(sm + a_ + "2022"); + if (yxHistoryMajorEnroll != null) { + yearMajorEnrollMap.put(yxHistoryMajorEnroll.getYear(),yxHistoryMajorEnroll); + historyMajorEnrollList.add(yxHistoryMajorEnroll); + } + //2021年 + yxHistoryMajorEnroll = majorEnrollMap.get(sm + a_ + "2021"); + if (yxHistoryMajorEnroll != null) { + yearMajorEnrollMap.put(yxHistoryMajorEnroll.getYear(),yxHistoryMajorEnroll); + historyMajorEnrollList.add(yxHistoryMajorEnroll); + } - volunteerRecordDTO.setHistoryMajorEnrollList(historyMajorEnrollList); - //获取 录取概率 - String rulesEnrollProbability = volunteerRecordDTO.getRulesEnrollProbability(); - //取出往年的分数信息, 算出 三年平均差值 - if (CollectionUtils.isNotEmpty(historyMajorEnrollList)) { - //折合分数 - if (rulesEnrollProbability != null) { - studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, culturalScore, professionalScore,volunteerRecordDTO.getFirstLevelDiscipline(),volunteerRecordDTO.getProbabilityOperator()); - //文过专排/专过文排 - if ("文过专排".equals(rulesEnrollProbability)) { - if (culturalScore.compareTo(volunteerRecordDTO.getCulturalControlLine())==-1) { - //学生 文化分小于 专业 文化省控分 - continue; - } - }else if ("专过文排".equals(rulesEnrollProbability)) { - if (professionalScore.compareTo(volunteerRecordDTO.getSpecialControlLine())==-1) { - //学生 专业分小于 专业省控分 - continue; - } - } - nowYearProvincialControlLine = ScoreUtil.covertIntoControlLine(rulesEnrollProbability,volunteerRecordDTO.getCulturalControlLine(),volunteerRecordDTO.getSpecialControlLine(),volunteerRecordDTO.getFirstLevelDiscipline(),volunteerRecordDTO.getProbabilityOperator()); - }else{ - //获取今年的分差 - nowYearProvincialControlLine = volunteerRecordDTO.getCulturalControlLine(); + //2020年 + yxHistoryMajorEnroll = majorEnrollMap.get(sm + a_ + "2020"); + if (yxHistoryMajorEnroll != null) { + yearMajorEnrollMap.put(yxHistoryMajorEnroll.getYear(),yxHistoryMajorEnroll); + historyMajorEnrollList.add(yxHistoryMajorEnroll); } - size = historyMajorEnrollList.size(); - sum = ScoreUtil.computeHistoryMajorEnrollScoreLineDifference(historyMajorEnrollList); - historyThreeYearDiff = sum.divide(new BigDecimal(size), 4, RoundingMode.HALF_UP); - if (nowYearProvincialControlLine == null) { - continue; - } - BigDecimal nowYearDiff = studentScore.subtract(nowYearProvincialControlLine); - if (historyThreeYearDiff == null || historyThreeYearDiff.doubleValue() == 0) { - continue; - } - //获取录取率 - enrollProbability = nowYearDiff.divide(historyThreeYearDiff, 4, RoundingMode.HALF_UP); - volunteerRecordDTO.setEnrollProbability(enrollProbability.multiply(bigDecimal100)); + + recommendMajorDTO.setHistoryMajorEnrollMap(yearMajorEnrollMap); + recommendMajorDTO.setHistoryMajorEnrollList(historyMajorEnrollList); } } //计算录取概率 + YxSchoolMajorServiceImpl.volunteerRecordListSetEnrollProbability(recordDTOList,userScore); //填报志愿明细信息-提前批 List volunteerRecordEarlyAdmissionList = recordDTOList.stream().filter(r -> r.getBatch().equals("提前批")).collect(Collectors.toList()); //填报志愿明细信息-本科A段 @@ -177,70 +160,62 @@ public class YxVolunteerServiceImpl extends ServiceImpl recordDTOList = yxVolunteerRecordService.listDTOByVolunteerId(volunteer.getId(), cognitioPolyclinic); //临时变量 - int size = 0; - BigDecimal sum =null; - BigDecimal historyThreeYearDiff = null;//三年平均差值 - BigDecimal nowYearProvincialControlLine = null; - BigDecimal enrollProbability = null; String schoolCode=null; String majorName=null; String sm=null; - int i =0; //获取上一年的招生人数 List historyMajorEnrollList=null; //获取历年的招生计划 LambdaQueryWrapper hmeWrapper = new LambdaQueryWrapper<>(); List majorNameList = recordDTOList.stream().map(VolunteerRecordDTO::getMajorName).collect(Collectors.toList()); - hmeWrapper.in(YxHistoryMajorEnroll::getYear,"2022","2021","2020"); - hmeWrapper.eq(YxHistoryMajorEnroll::getCategory,cognitioPolyclinic);//文科/理科 - hmeWrapper.in(YxHistoryMajorEnroll::getMajorName,majorNameList); - hmeWrapper.orderByDesc(YxHistoryMajorEnroll::getYear); - List yxHistoryMajorEnrollList = yxHistoryMajorEnrollService.list(hmeWrapper); - //将历年计划 组合成map对象 - String a_="_"; - Map majorEnrollMap = new LinkedHashMap<>(); - for (YxHistoryMajorEnroll h : yxHistoryMajorEnrollList) { - majorEnrollMap.put(h.getSchoolCode() + a_ + h.getMajorName() + a_ + h.getYear(),h); - } - //遍历,获取历年数据 添加到专业 的历年信息中 - Map yearMajorEnrollMap; - YxHistoryMajorEnroll yxHistoryMajorEnroll; - for (RecommendMajorDTO recommendMajorDTO : recordDTOList) { - historyMajorEnrollList = new ArrayList<>(); - schoolCode = recommendMajorDTO.getSchoolCode(); - majorName = recommendMajorDTO.getMajorName(); - yearMajorEnrollMap = new LinkedHashMap<>(); - sm = schoolCode+a_+majorName; - //2022年 - yxHistoryMajorEnroll = majorEnrollMap.get(sm + a_ + "2022"); - if (yxHistoryMajorEnroll != null) { - yearMajorEnrollMap.put(yxHistoryMajorEnroll.getYear(),yxHistoryMajorEnroll); - historyMajorEnrollList.add(yxHistoryMajorEnroll); - } - //2021年 - yxHistoryMajorEnroll = majorEnrollMap.get(sm + a_ + "2021"); - if (yxHistoryMajorEnroll != null) { - yearMajorEnrollMap.put(yxHistoryMajorEnroll.getYear(),yxHistoryMajorEnroll); - historyMajorEnrollList.add(yxHistoryMajorEnroll); + if (CollectionUtils.isNotEmpty(majorNameList)) { + hmeWrapper.in(YxHistoryMajorEnroll::getYear,"2022","2021","2020"); + hmeWrapper.eq(YxHistoryMajorEnroll::getCategory,cognitioPolyclinic);//文科/理科 + hmeWrapper.in(YxHistoryMajorEnroll::getMajorName,majorNameList); + hmeWrapper.orderByDesc(YxHistoryMajorEnroll::getYear); + List yxHistoryMajorEnrollList = yxHistoryMajorEnrollService.list(hmeWrapper); + //将历年计划 组合成map对象 + String a_="_"; + Map majorEnrollMap = new LinkedHashMap<>(); + for (YxHistoryMajorEnroll h : yxHistoryMajorEnrollList) { + majorEnrollMap.put(h.getSchoolCode() + a_ + h.getMajorName() + a_ + h.getYear(),h); } + //遍历,获取历年数据 添加到专业 的历年信息中 + Map yearMajorEnrollMap; + YxHistoryMajorEnroll yxHistoryMajorEnroll; + for (RecommendMajorDTO recommendMajorDTO : recordDTOList) { + historyMajorEnrollList = new ArrayList<>(); + schoolCode = recommendMajorDTO.getSchoolCode(); + majorName = recommendMajorDTO.getMajorName(); + yearMajorEnrollMap = new LinkedHashMap<>(); + sm = schoolCode+a_+majorName; + //2022年 + yxHistoryMajorEnroll = majorEnrollMap.get(sm + a_ + "2022"); + if (yxHistoryMajorEnroll != null) { + yearMajorEnrollMap.put(yxHistoryMajorEnroll.getYear(),yxHistoryMajorEnroll); + historyMajorEnrollList.add(yxHistoryMajorEnroll); + } + //2021年 + yxHistoryMajorEnroll = majorEnrollMap.get(sm + a_ + "2021"); + if (yxHistoryMajorEnroll != null) { + yearMajorEnrollMap.put(yxHistoryMajorEnroll.getYear(),yxHistoryMajorEnroll); + historyMajorEnrollList.add(yxHistoryMajorEnroll); + } - //2020年 - yxHistoryMajorEnroll = majorEnrollMap.get(sm + a_ + "2020"); - if (yxHistoryMajorEnroll != null) { - yearMajorEnrollMap.put(yxHistoryMajorEnroll.getYear(),yxHistoryMajorEnroll); - historyMajorEnrollList.add(yxHistoryMajorEnroll); - } + //2020年 + yxHistoryMajorEnroll = majorEnrollMap.get(sm + a_ + "2020"); + if (yxHistoryMajorEnroll != null) { + yearMajorEnrollMap.put(yxHistoryMajorEnroll.getYear(),yxHistoryMajorEnroll); + historyMajorEnrollList.add(yxHistoryMajorEnroll); + } - recommendMajorDTO.setHistoryMajorEnrollMap(yearMajorEnrollMap); - recommendMajorDTO.setHistoryMajorEnrollList(historyMajorEnrollList); + recommendMajorDTO.setHistoryMajorEnrollMap(yearMajorEnrollMap); + recommendMajorDTO.setHistoryMajorEnrollList(historyMajorEnrollList); + } } //计算录取概率 @@ -266,31 +241,36 @@ public class YxVolunteerServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(YxVolunteer::getCreateBy,sysUser.getId()); - queryWrapper.orderByDesc(YxVolunteer::getCreateTime,YxVolunteer::getUpdateTime); + queryWrapper.orderByDesc(YxVolunteer::getCreateTime); List volunteerList = this.list(queryWrapper); List list=new ArrayList<>(); VolunteerDTO volunteerDTO=null; @@ -328,7 +308,7 @@ public class YxVolunteerServiceImpl extends ServiceImpl historyMajorEnrollList){ + BigDecimal sum=new BigDecimal("0"); + if (CollectionUtils.isEmpty(historyMajorEnrollList)) { + return sum; + } + int yearNum=0; + BigDecimal controlLine = null;//文科-省控线 + BigDecimal admissionLine = null;//文科-录取线 + for (YxHistoryMajorEnroll yxHistoryMajorEnroll : historyMajorEnrollList) { + if (yxHistoryMajorEnroll.getRulesEnrollProbability().equals(rulesEnrollProbability)) { + controlLine = yxHistoryMajorEnroll.getControlLine(); + admissionLine = yxHistoryMajorEnroll.getAdmissionLine(); + sum=sum.add(admissionLine.subtract(controlLine));//录取线-省控线 + yearNum++; + } + } + return sum.divide(new BigDecimal(yearNum),4,RoundingMode.HALF_UP); + /*if (wenFlag) { + //文科生 + }else{ + //理科生 + BigDecimal scienceControlLine=null;//理科-省控线 + BigDecimal scienceAdmissionLine=null;//理科-录取线 + for (YxHistoryMajorEnroll yxHistoryMajorEnroll : historyMajorEnrollList) { + scienceControlLine = yxHistoryMajorEnroll.getScienceControlLine(); + scienceAdmissionLine = yxHistoryMajorEnroll.getScienceAdmissionLine(); + sum=sum.add(scienceAdmissionLine.subtract(scienceControlLine));//录取线-省控线 + yearNum++; + } + }*/ + //return sum; + } + public static BigDecimal decimal004=new BigDecimal("0.04"); public static BigDecimal decimal0067=new BigDecimal("0.067"); public static BigDecimal decimal0093=new BigDecimal("0.093"); diff --git a/jeecg-module-system/jeecg-system-start/src/main/resources/application.yml b/jeecg-module-system/jeecg-system-start/src/main/resources/application.yml index 67562f1..5b9455d 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/resources/application.yml +++ b/jeecg-module-system/jeecg-system-start/src/main/resources/application.yml @@ -2,4 +2,8 @@ spring: application: name: jeecg-system profiles: - active: '@profile.name@' \ No newline at end of file + active: '@profile.name@' + +wx: + appId: wxb9cf28f42ffa35e5 + appSecret: ed3fd9089dcfbd1d886eddeca69c07bd