parent
4085bae747
commit
c537b9f2f6
|
|
@ -55,7 +55,7 @@ public class ArtRecommendMajorController {
|
|||
@ApiOperation(value = "获取可报专业总数")
|
||||
@GetMapping("/rulesEnrollrobabilityMenuList")
|
||||
public Result<?> rulesEnrollrobabilityMenuList(QueryRecommendMajorVO queryRecommendMajorVO) {
|
||||
String key = "rulesEnrollrobabilityMenuList_professionalCategory_" + queryRecommendMajorVO.getProfessionalCategory();
|
||||
String key = "rulesEnrollrobabilityMenuList:professionalCategory_" + queryRecommendMajorVO.getProfessionalCategory();
|
||||
String json = null;
|
||||
List<Map> dataList = new ArrayList<>();
|
||||
Map<String, String> data = null;
|
||||
|
|
|
|||
|
|
@ -28,14 +28,4 @@ public class ArtRecommendMajorBaseDTO implements Serializable {
|
|||
|
||||
public ArtRecommendMajorBaseDTO() {
|
||||
}
|
||||
|
||||
public ArtRecommendMajorBaseDTO(IPage<RecommendMajorDTO> pageList,boolean vipFlag) {
|
||||
this.pageList = pageList;
|
||||
this.isVip = vipFlag?1:0;
|
||||
}
|
||||
|
||||
public ArtRecommendMajorBaseDTO(List<RecommendMajorDTO> list,boolean vipFlag) {
|
||||
this.list = list;
|
||||
this.isVip = vipFlag?1:0;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ import java.util.Set;
|
|||
@Data
|
||||
@ApiModel(value = "学院专业列表对象")
|
||||
public class RecommendMajorDTO implements Serializable {
|
||||
private String id;
|
||||
@ApiModelProperty(value = "录取概率")
|
||||
private BigDecimal enrollProbability=new BigDecimal(0);
|
||||
@ApiModelProperty(value = "学院名称")
|
||||
|
|
|
|||
|
|
@ -5,10 +5,12 @@ import io.swagger.annotations.Api;
|
|||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.modules.art.dto.ArtRecommendMajorBaseDTO;
|
||||
import org.jeecg.modules.art.vo.QueryRecommendMajorVO;
|
||||
import org.jeecg.modules.yx.entity.YxHistoryMajorEnroll;
|
||||
import org.jeecg.modules.yx.entity.YxMajor;
|
||||
import org.jeecg.modules.yx.entity.YxSchoolMajor;
|
||||
import org.jeecg.modules.yx.service.IYxCalculationMajorService;
|
||||
import org.jeecg.modules.yx.service.IYxHistoryMajorEnrollService;
|
||||
import org.jeecg.modules.yx.service.IYxMajorService;
|
||||
import org.jeecg.modules.yx.service.IYxSchoolMajorService;
|
||||
|
|
@ -36,12 +38,27 @@ public class MiniMajorController {
|
|||
@Autowired
|
||||
private IYxSchoolMajorService yxSchoolMajorService;
|
||||
@Autowired
|
||||
private IYxCalculationMajorService yxCalculationMajorService;
|
||||
@Autowired
|
||||
private IYxHistoryMajorEnrollService yxHistoryMajorEnrollService;
|
||||
|
||||
|
||||
@ApiOperation(value = "小程序端-智能推荐")
|
||||
@GetMapping("/recommendMajor/aiAuto")
|
||||
public Result<?> aiAutoRecommendMajor(QueryRecommendMajorVO queryRecommendMajorVO) {
|
||||
ArtRecommendMajorBaseDTO artRecommendMajorBaseDTO = yxCalculationMajorService.aiAutoRecommendMajor(queryRecommendMajorVO);
|
||||
return Result.OK(artRecommendMajorBaseDTO);
|
||||
}
|
||||
|
||||
@GetMapping(value = "/recommendMajor/page")
|
||||
public Result<?> recommendMajorPage(QueryRecommendMajorVO queryRecommendMajorVO){
|
||||
return Result.OK(yxCalculationMajorService.recommendMajorPage(queryRecommendMajorVO));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "获取院校当前其他推荐专业")
|
||||
@GetMapping(value = "/schoolOtherMajor")
|
||||
public Result<?> schoolOtherMajor(QueryRecommendMajorVO queryRecommendMajorVO){
|
||||
return Result.OK(yxSchoolMajorService.schoolOtherMajor(queryRecommendMajorVO));
|
||||
return Result.OK(yxCalculationMajorService.schoolOtherMajor(queryRecommendMajorVO));
|
||||
}
|
||||
@ApiOperation(value = "专业介绍")
|
||||
@GetMapping("/majorInfo")
|
||||
|
|
|
|||
|
|
@ -35,8 +35,8 @@ public class YxConstant {
|
|||
|
||||
public static List<String> cankaoYearList = Arrays.asList("2023", "2022");
|
||||
|
||||
public static String w1z1="文1专1";
|
||||
public static String w1jiaz1="文1+专1";
|
||||
public static String w1z1 = "文1专1";
|
||||
public static String w1jiaz1 = "文1+专1";
|
||||
public static BigDecimal bigDecimal0 = new BigDecimal(0);
|
||||
//100倍率
|
||||
public static BigDecimal bigDecimal100 = new BigDecimal("100");
|
||||
|
|
@ -54,17 +54,19 @@ public class YxConstant {
|
|||
public static BigDecimal bigDecimal300 = new BigDecimal(300);
|
||||
|
||||
//默认的录取方式类型
|
||||
public static String culturalControlLineGuo= "文过专排";
|
||||
public static String specialControlLineGuo= "专过文排";
|
||||
public static String culturalControlLineGuo = "文过专排";
|
||||
public static String specialControlLineGuo = "专过文排";
|
||||
//默认的录取方式类型
|
||||
public static String culturalControlLineGuo2= "文过专排主科";
|
||||
public static String culturalControlLineGuo2 = "文过专排主科";
|
||||
|
||||
|
||||
public static List<String> defaultRulesEnrollProbabilityList =Arrays.asList("文过专排","专过文排");
|
||||
public static List<String> defaultRulesEnrollProbabilityList = Arrays.asList("文过专排", "专过文排");
|
||||
|
||||
//当天最多修改成绩次数
|
||||
public static final Integer todayMaxEditScoreCount =10;
|
||||
public static final Integer todayMaxEditScoreCount = 10;
|
||||
public static BigDecimal bigDecimal1 = new BigDecimal("1");
|
||||
public static BigDecimal bigDecimal175= new BigDecimal("175");
|
||||
public static BigDecimal bigDecimal50=new BigDecimal("50");
|
||||
public static BigDecimal bigDecimal175 = new BigDecimal("175");
|
||||
public static BigDecimal bigDecimal50 = new BigDecimal("50");
|
||||
public static String oldCalculationMajorName = "yx_calculation_major";
|
||||
public static String newCalculationMajorName = "yx_calculation_major";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@ import javax.servlet.http.HttpServletResponse;
|
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.common.system.query.QueryGenerator;
|
||||
import org.jeecg.modules.yx.dto.MajorImport;
|
||||
import org.jeecg.modules.yx.entity.YxFirstLevelDisciplines;
|
||||
import org.jeecg.modules.yx.entity.YxMajor;
|
||||
import org.jeecg.modules.yx.service.IYxFirstLevelDisciplinesService;
|
||||
|
|
@ -29,7 +28,6 @@ import lombok.extern.slf4j.Slf4j;
|
|||
import org.jeecg.common.system.base.controller.JeecgController;
|
||||
import org.jeecgframework.poi.excel.ExcelImportUtil;
|
||||
import org.jeecgframework.poi.excel.entity.ImportParams;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
|
|
|||
|
|
@ -16,8 +16,10 @@ import org.jeecg.common.system.vo.LoginUser;
|
|||
import org.jeecg.common.util.AssertUtils;
|
||||
import org.jeecg.common.util.RedisUtil;
|
||||
import org.jeecg.modules.art.dto.ArtRecommendMajorBaseDTO;
|
||||
import org.jeecg.modules.art.dto.RecommendMajorDTO;
|
||||
import org.jeecg.modules.art.vo.QueryRecommendMajorVO;
|
||||
import org.jeecg.modules.yx.constant.YxConstant;
|
||||
import org.jeecg.modules.yx.dto.UserScoreDto;
|
||||
import org.jeecg.modules.yx.entity.*;
|
||||
import org.jeecg.modules.yx.service.*;
|
||||
import org.jeecg.modules.yx.util.ScoreUtil;
|
||||
|
|
@ -55,6 +57,7 @@ public class YxScoreController {
|
|||
private IYxHistoryScoreControlLineService yxHistoryScoreControlLineService;
|
||||
@Autowired
|
||||
private IYxScoreSegmentService yxScoreSegmentService;
|
||||
|
||||
@PostMapping(value = "/save")
|
||||
public Result<?> save(@NotNull @RequestBody YxUserScore yxUserScore) {
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
|
|
@ -90,46 +93,42 @@ public class YxScoreController {
|
|||
volunteerUpdateWrapper.set(YxVolunteer::getState, "0");
|
||||
yxVolunteerService.update(volunteerUpdateWrapper);
|
||||
}
|
||||
//保存新的分数信息
|
||||
yxUserScore.setType("2");//报考类型 1.普通类 2.艺术类
|
||||
yxUserScore.setRanking(0);//位次
|
||||
yxUserScore.setCreateBy(userId);
|
||||
|
||||
AssertUtils.notTrue(culturalScore.compareTo(YxConstant.bigDecimal750) > 0,"[文化成绩]最高分为750");
|
||||
AssertUtils.notTrue(culturalScore.compareTo(YxConstant.bigDecimal0) < 0,"[文化成绩]最低分为0");
|
||||
AssertUtils.notTrue(culturalScore.compareTo(YxConstant.bigDecimal750) > 0, "[文化成绩]最高分为750");
|
||||
AssertUtils.notTrue(culturalScore.compareTo(YxConstant.bigDecimal0) < 0, "[文化成绩]最低分为0");
|
||||
|
||||
if ("音乐类".equals(professionalCategory)) {
|
||||
AssertUtils.notTrue(professionalScore.compareTo(YxConstant.bigDecimal300) > 0,"[主项成绩]最高分为300");
|
||||
AssertUtils.notTrue(professionalScore.compareTo(YxConstant.bigDecimal0) < 0,"[主项成绩]最低分为0");
|
||||
}else if(!"表演类".equals(professionalCategory)){
|
||||
AssertUtils.notTrue(professionalScore.compareTo(YxConstant.bigDecimal300) > 0,"[统考成绩]最高分为300");
|
||||
AssertUtils.notTrue(professionalScore.compareTo(YxConstant.bigDecimal0) < 0,"[统考成绩]最低分为0");
|
||||
AssertUtils.notTrue(professionalScore.compareTo(YxConstant.bigDecimal300) > 0, "[主项成绩]最高分为300");
|
||||
AssertUtils.notTrue(professionalScore.compareTo(YxConstant.bigDecimal0) < 0, "[主项成绩]最低分为0");
|
||||
} else if (!"表演类".equals(professionalCategory)) {
|
||||
AssertUtils.notTrue(professionalScore.compareTo(YxConstant.bigDecimal300) > 0, "[统考成绩]最高分为300");
|
||||
AssertUtils.notTrue(professionalScore.compareTo(YxConstant.bigDecimal0) < 0, "[统考成绩]最低分为0");
|
||||
}
|
||||
if (StringUtils.isBlank(professionalCategoryChildren)) {
|
||||
if (!professionalCategoryChildren.contains("音乐表演声乐")) {
|
||||
yxUserScore.setYybysy(YxConstant.bigDecimal0);
|
||||
}else if(!professionalCategoryChildren.contains("音乐表演器乐")){
|
||||
} else if (!professionalCategoryChildren.contains("音乐表演器乐")) {
|
||||
yxUserScore.setXjysby(YxConstant.bigDecimal0);
|
||||
}else if(!professionalCategoryChildren.contains("音乐教育")){
|
||||
} else if (!professionalCategoryChildren.contains("音乐教育")) {
|
||||
yxUserScore.setYyjy(YxConstant.bigDecimal0);
|
||||
}else if(!professionalCategoryChildren.contains("服装表演")){
|
||||
} else if (!professionalCategoryChildren.contains("服装表演")) {
|
||||
yxUserScore.setXjysby(YxConstant.bigDecimal0);
|
||||
}else if(!professionalCategoryChildren.contains("戏剧影视导演")){
|
||||
} else if (!professionalCategoryChildren.contains("戏剧影视导演")) {
|
||||
yxUserScore.setXjysby(YxConstant.bigDecimal0);
|
||||
}else if(!professionalCategoryChildren.contains("戏剧影视表演")){
|
||||
} else if (!professionalCategoryChildren.contains("戏剧影视表演")) {
|
||||
yxUserScore.setXjysby(YxConstant.bigDecimal0);
|
||||
}
|
||||
}
|
||||
//==============判断 批次 start
|
||||
LambdaQueryWrapper<YxHistoryScoreControlLine> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(YxHistoryScoreControlLine::getYear,YxConstant.nowYear);//24年省控线
|
||||
lambdaQueryWrapper.eq(YxHistoryScoreControlLine::getCategory,yxUserScore.getCognitioPolyclinic());
|
||||
lambdaQueryWrapper.eq(YxHistoryScoreControlLine::getYear, YxConstant.nowYear);//24年省控线
|
||||
lambdaQueryWrapper.eq(YxHistoryScoreControlLine::getCategory, yxUserScore.getCognitioPolyclinic());
|
||||
//表演类型的方向
|
||||
if ("舞蹈类".equals(professionalCategory)) {
|
||||
//舞蹈类使用艺术舞蹈的省控线判定批次
|
||||
lambdaQueryWrapper.eq(YxHistoryScoreControlLine::getProfessionalCategory,"舞蹈类");
|
||||
}else{
|
||||
lambdaQueryWrapper.eq(YxHistoryScoreControlLine::getProfessionalCategory,professionalCategory);
|
||||
lambdaQueryWrapper.eq(YxHistoryScoreControlLine::getProfessionalCategory, "舞蹈类");
|
||||
} else {
|
||||
lambdaQueryWrapper.eq(YxHistoryScoreControlLine::getProfessionalCategory, professionalCategory);
|
||||
}
|
||||
lambdaQueryWrapper.last("ORDER BY year DESC,field(batch,'提前批','本科A段','本科B段','本科','高职高专')");
|
||||
List<YxHistoryScoreControlLine> historyScoreControlLineList = yxHistoryScoreControlLineService.list(lambdaQueryWrapper);
|
||||
|
|
@ -137,59 +136,60 @@ public class YxScoreController {
|
|||
//24年分数转换折合23年分数
|
||||
YxScoreSegment scoreSegment = null;
|
||||
if ("舞蹈类".equals(professionalCategory)) {
|
||||
scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, professionalScore, professionalCategory,null, yxUserScore.getProvince());
|
||||
scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, professionalScore, professionalCategory, null, yxUserScore.getProvince());
|
||||
professionalScore = scoreSegment.getScore();
|
||||
}else if("音乐类".equals(professionalCategory)){
|
||||
} else if ("音乐类".equals(professionalCategory)) {
|
||||
if (!professionalCategoryChildren.contains("器乐")) {
|
||||
yxUserScore.setYybyqy(YxConstant.bigDecimal0);
|
||||
}if (!professionalCategoryChildren.contains("声乐")) {
|
||||
}
|
||||
if (!professionalCategoryChildren.contains("声乐")) {
|
||||
yxUserScore.setYybysy(YxConstant.bigDecimal0);
|
||||
}if (!professionalCategoryChildren.contains("音乐教育")) {
|
||||
}
|
||||
if (!professionalCategoryChildren.contains("音乐教育")) {
|
||||
yxUserScore.setYyjy(YxConstant.bigDecimal0);
|
||||
}
|
||||
|
||||
BigDecimal yybysy = yxUserScore.getYybysy();//音乐表演声乐成绩
|
||||
BigDecimal yybyqy = yxUserScore.getYybyqy();//音乐表演器乐成绩
|
||||
BigDecimal yyjy = yxUserScore.getYyjy();//音乐教育成绩
|
||||
BigDecimal yyjy = yxUserScore.getYyjy();//音乐教育成绩
|
||||
|
||||
|
||||
|
||||
if (yybysy!=null && yybysy.compareTo(YxConstant.bigDecimal0) > 0) {
|
||||
if (yybysy != null && yybysy.compareTo(YxConstant.bigDecimal0) > 0) {
|
||||
//音乐表演声乐
|
||||
scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, yybysy, professionalCategory,"音乐表演声乐", yxUserScore.getProvince());
|
||||
scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, yybysy, professionalCategory, "音乐表演声乐", yxUserScore.getProvince());
|
||||
yybysy = scoreSegment.getScore();
|
||||
}
|
||||
if(yybyqy!=null && yybyqy.compareTo(YxConstant.bigDecimal0) > 0){
|
||||
if (yybyqy != null && yybyqy.compareTo(YxConstant.bigDecimal0) > 0) {
|
||||
//音乐表演器乐成绩
|
||||
scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, yybyqy, professionalCategory,"音乐表演器乐", yxUserScore.getProvince());
|
||||
scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, yybyqy, professionalCategory, "音乐表演器乐", yxUserScore.getProvince());
|
||||
yybyqy = scoreSegment.getScore();
|
||||
}else{
|
||||
} else {
|
||||
|
||||
}
|
||||
if(yyjy!=null && yyjy.compareTo(YxConstant.bigDecimal0) > 0){
|
||||
if (yyjy != null && yyjy.compareTo(YxConstant.bigDecimal0) > 0) {
|
||||
//音乐教育成绩
|
||||
scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, yyjy, professionalCategory,"音乐教育", yxUserScore.getProvince());
|
||||
scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, yyjy, professionalCategory, "音乐教育", yxUserScore.getProvince());
|
||||
yyjy = scoreSegment.getScore();
|
||||
}
|
||||
professionalScore = yybysy.max(yybyqy).max(yyjy);
|
||||
}else if("播音与主持类".equals(professionalCategory)){
|
||||
scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, professionalScore, professionalCategory,null, yxUserScore.getProvince());
|
||||
} else if ("播音与主持类".equals(professionalCategory)) {
|
||||
scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, professionalScore, professionalCategory, null, yxUserScore.getProvince());
|
||||
professionalScore = scoreSegment.getScore();
|
||||
}else if("表演类".equals(professionalCategory)){
|
||||
} else if ("表演类".equals(professionalCategory)) {
|
||||
BigDecimal xjysby = yxUserScore.getXjysby();//戏剧影视表演
|
||||
BigDecimal xjysdy = yxUserScore.getXjysdy();//戏剧影视导演
|
||||
BigDecimal fzby = yxUserScore.getFzby();//服装表演
|
||||
oldProfessionalScore = xjysby.max(xjysdy).max(fzby);
|
||||
if (xjysby!=null && xjysby.compareTo(YxConstant.bigDecimal0) > 0) {
|
||||
scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, xjysby, professionalCategory,"戏剧影视表演", yxUserScore.getProvince());
|
||||
if (xjysby != null && xjysby.compareTo(YxConstant.bigDecimal0) > 0) {
|
||||
scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, xjysby, professionalCategory, "戏剧影视表演", yxUserScore.getProvince());
|
||||
xjysby = scoreSegment.getScore();
|
||||
}
|
||||
if(xjysdy!=null && xjysdy.compareTo(YxConstant.bigDecimal0) > 0){
|
||||
scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, xjysdy, professionalCategory,"戏剧影视导演", yxUserScore.getProvince());
|
||||
if (xjysdy != null && xjysdy.compareTo(YxConstant.bigDecimal0) > 0) {
|
||||
scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, xjysdy, professionalCategory, "戏剧影视导演", yxUserScore.getProvince());
|
||||
xjysdy = scoreSegment.getScore();
|
||||
}
|
||||
if(fzby!=null && fzby.compareTo(YxConstant.bigDecimal0) > 0){
|
||||
scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, fzby, professionalCategory,"服装表演", yxUserScore.getProvince());
|
||||
if (fzby != null && fzby.compareTo(YxConstant.bigDecimal0) > 0) {
|
||||
scoreSegment = yxScoreSegmentService.checkOldYearScore(YxConstant.nowYear, fzby, professionalCategory, "服装表演", yxUserScore.getProvince());
|
||||
fzby = scoreSegment.getScore();
|
||||
}
|
||||
professionalScore = xjysby.max(xjysdy).max(fzby);
|
||||
|
|
@ -197,11 +197,17 @@ public class YxScoreController {
|
|||
}
|
||||
}
|
||||
String batch = "高职高专";
|
||||
if (professionalScore!=null && professionalScore.compareTo(YxConstant.bigDecimal0) > 0) {
|
||||
if (professionalScore != null && professionalScore.compareTo(YxConstant.bigDecimal0) > 0) {
|
||||
batch = ScoreUtil.conversionScoreBatch(culturalScore, professionalScore, historyScoreControlLineList);
|
||||
}
|
||||
//================批次 end
|
||||
//根据批次,判断 本科/高职高专
|
||||
|
||||
|
||||
//保存新的分数信息
|
||||
yxUserScore.setType("2");//报考类型 1.普通类 2.艺术类
|
||||
yxUserScore.setRanking(0);//位次
|
||||
yxUserScore.setCreateBy(userId);
|
||||
yxUserScore.setEducationalLevel("1");
|
||||
yxUserScore.setBatch(batch);
|
||||
/*if ("体育类".equals(professionalCategory)) {
|
||||
|
|
@ -212,31 +218,29 @@ public class YxScoreController {
|
|||
yxUserScore.setId(null);
|
||||
yxUserScore.setCreateTime(null);
|
||||
yxUserScore.setUpdateTime(null);
|
||||
yxUserScore.setCalculationTableName("yx_calculation_major");
|
||||
//保存当前用户的得分
|
||||
yxUserScoreService.save(yxUserScore);
|
||||
|
||||
//yxCalculationMajorService.calculationMajor(yxUserScore);
|
||||
|
||||
List<RecommendMajorDTO> recommendMajorDTOList = yxCalculationMajorService.calculationMajor(yxUserScore);
|
||||
|
||||
//创建新的志愿单信息
|
||||
YxVolunteer yxVolunteer = new YxVolunteer();
|
||||
SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddHHmmss");
|
||||
yxVolunteer.setVolunteerName(sdf.format(new Date())+"志愿表");
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
|
||||
yxVolunteer.setVolunteerName(sdf.format(new Date()) + "志愿表");
|
||||
yxVolunteer.setScoreId(yxUserScore.getId());
|
||||
yxVolunteer = yxVolunteerService.addNew(yxVolunteer);
|
||||
|
||||
//获取志愿单推荐数量
|
||||
ArtRecommendMajorBaseDTO artRecommendMajorBaseDTO = yxSchoolMajorService.recommendMajorCount(new QueryRecommendMajorVO());
|
||||
ArtRecommendMajorBaseDTO artRecommendMajorBaseDTO = yxCalculationMajorService.checkLevelNum(recommendMajorDTOList);
|
||||
yxUserScore.setJwtNum(artRecommendMajorBaseDTO.getJwt());
|
||||
yxUserScore.setKcjNum(artRecommendMajorBaseDTO.getKcj());
|
||||
yxUserScore.setKbdNum(artRecommendMajorBaseDTO.getKbd());
|
||||
yxUserScore.setNlqNum(artRecommendMajorBaseDTO.getNan());
|
||||
yxUserScoreService.updateById(yxUserScore);
|
||||
|
||||
|
||||
|
||||
//返回对象
|
||||
JSONObject responseBody=JSONObject.parseObject(JSONObject.toJSONString(yxUserScore));
|
||||
JSONObject responseBody = JSONObject.parseObject(JSONObject.toJSONString(yxUserScore));
|
||||
responseBody.put("volunteer",yxVolunteer);
|
||||
return Result.OK(responseBody);
|
||||
}
|
||||
|
|
@ -245,51 +249,54 @@ public class YxScoreController {
|
|||
public Result<?> getUserScoreInfo() {
|
||||
//获取分数信息
|
||||
YxUserScore activeCurrentUserScore = yxUserScoreService.getActiveCurrentUserScore();
|
||||
if (activeCurrentUserScore==null) {
|
||||
if (activeCurrentUserScore == null) {
|
||||
return Result.OK();
|
||||
}
|
||||
//获取当前成绩下的第志愿单
|
||||
LambdaQueryWrapper<YxVolunteer> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(YxVolunteer::getScoreId,activeCurrentUserScore.getId());
|
||||
lambdaQueryWrapper.eq(YxVolunteer::getState,1);
|
||||
lambdaQueryWrapper.eq(YxVolunteer::getScoreId, activeCurrentUserScore.getId());
|
||||
lambdaQueryWrapper.eq(YxVolunteer::getState, 1);
|
||||
lambdaQueryWrapper.last("limit 1");
|
||||
YxVolunteer yxVolunteer = yxVolunteerService.getOne(lambdaQueryWrapper);
|
||||
|
||||
//获取可报院校数量
|
||||
QueryRecommendMajorVO queryRecommendMajorVO = new QueryRecommendMajorVO();
|
||||
queryRecommendMajorVO.setBatch(activeCurrentUserScore.getBatch());
|
||||
ArtRecommendMajorBaseDTO artRecommendMajorBaseDTO = yxSchoolMajorService.recommendMajorCount(queryRecommendMajorVO);
|
||||
String jsonString = JSONObject.toJSONString(activeCurrentUserScore);
|
||||
JSONObject jsonObject = JSONObject.parseObject(jsonString);
|
||||
jsonObject.put("fillVolunteer",artRecommendMajorBaseDTO);
|
||||
jsonObject.put("volunteer",yxVolunteer);
|
||||
return Result.OK(jsonObject);
|
||||
ArtRecommendMajorBaseDTO artRecommendMajorBaseDTO = new ArtRecommendMajorBaseDTO();
|
||||
artRecommendMajorBaseDTO.setKbd(activeCurrentUserScore.getKbdNum());
|
||||
artRecommendMajorBaseDTO.setJwt(activeCurrentUserScore.getJwtNum());
|
||||
artRecommendMajorBaseDTO.setKcj(activeCurrentUserScore.getKcjNum());
|
||||
artRecommendMajorBaseDTO.setNan(activeCurrentUserScore.getNlqNum());
|
||||
artRecommendMajorBaseDTO.setAllNumber(activeCurrentUserScore.getKbdNum() + activeCurrentUserScore.getJwtNum() + activeCurrentUserScore.getKcjNum());
|
||||
UserScoreDto userScoreDto = new UserScoreDto();
|
||||
userScoreDto.setScoreInfo(activeCurrentUserScore);
|
||||
userScoreDto.setVolunteer(yxVolunteer);
|
||||
userScoreDto.setFillVolunteer(artRecommendMajorBaseDTO);
|
||||
return Result.OK(userScoreDto);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@ApiOperation(value = "今日编辑成绩的次数")
|
||||
@GetMapping(value = "/todayOfEditScoreCount")
|
||||
public Result<?> todayOfEditScoreCount(){
|
||||
LoginUser loginUser = (LoginUser)SecurityUtils.getSubject().getPrincipal();
|
||||
public Result<?> todayOfEditScoreCount() {
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
Date date = new Date();
|
||||
String format = YxConstant.sdf.format(date);
|
||||
String startTime = format+" 00:00:00";
|
||||
String endTime = format+" 23:59:59";
|
||||
String startTime = format + " 00:00:00";
|
||||
String endTime = format + " 23:59:59";
|
||||
LambdaQueryWrapper<YxUserScore> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.between(YxUserScore::getCreateTime,startTime,endTime);
|
||||
lambdaQueryWrapper.eq(YxUserScore::getCreateBy,loginUser.getId());
|
||||
lambdaQueryWrapper.between(YxUserScore::getCreateTime, startTime, endTime);
|
||||
lambdaQueryWrapper.eq(YxUserScore::getCreateBy, loginUser.getId());
|
||||
long useCount = yxUserScoreService.count(lambdaQueryWrapper);
|
||||
long residueCount = 0;
|
||||
if (YxConstant.todayMaxEditScoreCount>useCount) {
|
||||
if (YxConstant.todayMaxEditScoreCount > useCount) {
|
||||
//当天没有超过更改次数
|
||||
residueCount = YxConstant.todayMaxEditScoreCount - useCount;
|
||||
}
|
||||
|
||||
jsonObject.put("useCount",useCount);
|
||||
jsonObject.put("residueCount",residueCount);
|
||||
jsonObject.put("useCount", useCount);
|
||||
jsonObject.put("residueCount", residueCount);
|
||||
return Result.OK(jsonObject);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,19 +0,0 @@
|
|||
package org.jeecg.modules.yx.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description
|
||||
* @Author ZhouWenTao
|
||||
* @Date 2023/11/21 16:16
|
||||
*/
|
||||
@Data
|
||||
public class ScoreBatchDTO implements Serializable {
|
||||
private double wenScore;
|
||||
private double liScore;
|
||||
private double zhuanScore;
|
||||
private String batch;
|
||||
private String type;
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
package org.jeecg.modules.yx.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.jeecg.modules.art.dto.ArtRecommendMajorBaseDTO;
|
||||
import org.jeecg.modules.yx.entity.YxUserScore;
|
||||
import org.jeecg.modules.yx.entity.YxVolunteer;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description
|
||||
* @Author ZhouWenTao
|
||||
* @Date 2024/3/17 18:40
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value = "用户成绩信息dto")
|
||||
public class UserScoreDto implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
@ApiModelProperty(value = "用户成绩信息")
|
||||
private YxUserScore scoreInfo;
|
||||
@ApiModelProperty(value = "志愿单信息")
|
||||
private YxVolunteer volunteer;
|
||||
@ApiModelProperty(value = "推荐专业数量信息")
|
||||
private ArtRecommendMajorBaseDTO fillVolunteer;
|
||||
}
|
||||
|
|
@ -63,7 +63,7 @@ public class YxCalculationMajor implements Serializable {
|
|||
/**备注*/
|
||||
@Excel(name = "备注", width = 15)
|
||||
@ApiModelProperty(value = "备注")
|
||||
private java.lang.String detail;
|
||||
private java.lang.String detail="";
|
||||
/**科类(文科/理科)*/
|
||||
@Excel(name = "科类(文科/理科)", width = 15)
|
||||
@ApiModelProperty(value = "科类(文科/理科)")
|
||||
|
|
@ -104,29 +104,21 @@ public class YxCalculationMajor implements Serializable {
|
|||
/**二级专业类型*/
|
||||
@Excel(name = "二级专业类型", width = 15)
|
||||
@ApiModelProperty(value = "二级专业类型")
|
||||
private java.lang.String majorTypeChild;
|
||||
private java.lang.String majorTypeChild="";
|
||||
/**计划招生人数*/
|
||||
@Excel(name = "计划招生人数", width = 15)
|
||||
@ApiModelProperty(value = "计划招生人数")
|
||||
private java.lang.Integer planNum;
|
||||
/**是否使用主项成绩*/
|
||||
@Excel(name = "是否使用主项成绩", width = 15)
|
||||
@ApiModelProperty(value = "是否使用主项成绩")
|
||||
private java.lang.String checkMaster;
|
||||
/**主考科目*/
|
||||
@Excel(name = "主考科目", width = 15)
|
||||
@ApiModelProperty(value = "主考科目")
|
||||
private java.lang.String mainSubjects;
|
||||
/**学制*/
|
||||
@Excel(name = "学制", width = 15)
|
||||
@ApiModelProperty(value = "学制")
|
||||
private java.lang.String semester;
|
||||
/**院校限制*/
|
||||
@Excel(name = "院校限制", width = 15)
|
||||
@ApiModelProperty(value = "院校限制")
|
||||
private java.lang.String limitation;
|
||||
private java.lang.String limitation="";
|
||||
/**其他分数限制*/
|
||||
@Excel(name = "其他分数限制", width = 15)
|
||||
@ApiModelProperty(value = "其他分数限制")
|
||||
private java.lang.String otherScoreLimitation;
|
||||
private java.lang.String otherScoreLimitation="";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
|||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import lombok.Data;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.jeecg.modules.yx.dto.ProfessionalCategoryChildrenDTO;
|
||||
|
|
@ -137,7 +138,9 @@ public class YxUserScore implements Serializable {
|
|||
private Integer nlqNum;
|
||||
|
||||
|
||||
|
||||
@ApiModelProperty(value = "记录结果表的表名")
|
||||
@JsonIgnore
|
||||
private String calculationTableName;
|
||||
//===================
|
||||
/*是否是vip 0-不是,1-是*/
|
||||
@TableField(exist = false)
|
||||
|
|
|
|||
|
|
@ -2,16 +2,22 @@ package org.jeecg.modules.yx.mapper;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.jeecg.modules.art.dto.RecommendMajorDTO;
|
||||
import org.jeecg.modules.art.vo.QueryRecommendMajorVO;
|
||||
import org.jeecg.modules.yx.entity.YxCalculationMajor;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* @Description: 用户可报专业折合关联表
|
||||
* @Author: jeecg-boot
|
||||
* @Date: 2024-03-15
|
||||
* @Date: 2024-03-15
|
||||
* @Version: V1.0
|
||||
*/
|
||||
public interface YxCalculationMajorMapper extends BaseMapper<YxCalculationMajor> {
|
||||
List<RecommendMajorDTO> recommendMajorList(@Param(value = "tableName")String tableName,@Param("queryvo") QueryRecommendMajorVO queryRecommendMajorVO);
|
||||
|
||||
void insertBatch(@Param("tableName") String tableName,@Param("list") List<YxCalculationMajor> list);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,4 +18,6 @@ public interface YxVolunteerRecordMapper extends BaseMapper<YxVolunteerRecord> {
|
|||
List<YxVolunteerRecord> getListByCreateBy(@Param("yxVolunteerRecord") YxVolunteerRecord yxVolunteerRecord);
|
||||
|
||||
List<VolunteerRecordDTO> listDTOByVolunteerId(@Param("volunteerId") String volunteerId);
|
||||
|
||||
List<VolunteerRecordDTO> listDTOByVolunteerId2(@Param("scoreId")String scoreId, @Param("calutionTableName") String calculationTableName, @Param("volunteerId") String volunteerId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,172 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.jeecg.modules.yx.mapper.YxCalculationMajorMapper">
|
||||
<insert id="insertBatch" parameterType="java.util.List">
|
||||
INSERT INTO ${tableName} (id, score_id, school_code, major_code, major_name, enrollment_code, tuition,
|
||||
detail, category, rules_enroll_probability, batch, student_old_converted_score, student_converted_score,
|
||||
enroll_probability, probability_operator, create_time, major_type, major_type_child, plan_num, main_subjects,
|
||||
limitation, other_score_limitation)
|
||||
VALUES
|
||||
<foreach collection="list" item="item" index="index" separator=",">
|
||||
(
|
||||
#{item.id}, #{item.scoreId}, #{item.schoolCode}, #{item.majorCode}, #{item.majorName},
|
||||
#{item.enrollmentCode}, #{item.tuition}, #{item.detail}, #{item.category}, #{item.rulesEnrollProbability},
|
||||
#{item.batch}, #{item.studentOldConvertedScore}, #{item.studentConvertedScore}, #{item.enrollProbability},
|
||||
#{item.probabilityOperator}, #{item.createTime}, #{item.majorType}, #{item.majorTypeChild}, #{item.planNum},
|
||||
#{item.mainSubjects}, #{item.limitation}, #{item.otherScoreLimitation}
|
||||
)
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
</mapper>
|
||||
<select id="recommendMajorList" resultType="org.jeecg.modules.art.dto.RecommendMajorDTO">
|
||||
SELECT
|
||||
s.school_name,
|
||||
s.school_icon,
|
||||
cm.school_code,
|
||||
cm.major_code,
|
||||
cm.major_name,
|
||||
cm.enrollment_code,
|
||||
cm.tuition,
|
||||
cm.detail,
|
||||
cm.category,
|
||||
cm.batch,
|
||||
cm.student_old_converted_score as studentScore,
|
||||
cm.student_converted_score,
|
||||
cm.enroll_probability,
|
||||
cm.rules_enroll_probability,
|
||||
cm.probability_operator,
|
||||
cm.create_time,
|
||||
cm.major_type,
|
||||
cm.major_type_child,
|
||||
cm.plan_num,
|
||||
cm.main_subjects,
|
||||
cm.limitation,
|
||||
cm.other_score_limitation
|
||||
|
||||
FROM ${tableName} cm
|
||||
LEFT JOIN yx_school_child sc ON sc.school_code = cm.school_code
|
||||
LEFT JOIN yx_school s ON s.id = sc.school_id
|
||||
WHERE cm.rules_enroll_probability is not null
|
||||
<!--成绩单-->
|
||||
<if test="queryvo.scoreId!=null and queryvo.scoreId!=''">
|
||||
AND cm.score_id = #{queryvo.scoreId}
|
||||
</if>
|
||||
<!--院校名称搜索-->
|
||||
<if test="queryvo.schoolName!=null and queryvo.schoolName!=''">
|
||||
AND (s.school_name like concat('%',#{queryvo.schoolName},'%') or sc.schooL_code like
|
||||
concat('%',#{queryvo.schoolName},'%') or cm.major_name like
|
||||
concat('%',#{queryvo.schoolName},'%'))
|
||||
</if>
|
||||
<if test="queryvo.schoolCode!=null and queryvo.schoolCode!=''">
|
||||
AND cm.school_code = #{queryvo.schoolCode}
|
||||
</if>
|
||||
<!--专业编码-->
|
||||
<if test="queryvo.majorCodeList!=null and queryvo.majorCodeList.size>0">
|
||||
AND cm.major_code in
|
||||
<foreach collection="queryvo.majorCodeList" index="index" item="id" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</if>
|
||||
<!--地区-->
|
||||
<if test="queryvo.addressList!=null and queryvo.addressList.size>0">
|
||||
AND s.province in
|
||||
<foreach collection="queryvo.addressList" index="index" item="id" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</if>
|
||||
<!--文理分科-->
|
||||
<if test="queryvo.cognitioPolyclinic!=null and queryvo.cognitioPolyclinic!=''">
|
||||
AND cm.category = #{queryvo.cognitioPolyclinic}
|
||||
</if>
|
||||
<!--批次-->
|
||||
<if test="queryvo.batch!=null and queryvo.batch!=''">
|
||||
AND cm.batch = #{queryvo.batch}
|
||||
</if>
|
||||
<if test="queryvo.batchList!=null and queryvo.batchList.size>0">
|
||||
AND cm.batch in
|
||||
<foreach collection="queryvo.batchList" index="index" item="b" open="(" separator="," close=")">
|
||||
#{b}
|
||||
</foreach>
|
||||
</if>
|
||||
<!--录取方式-->
|
||||
<if test="queryvo.rulesEnrollProbability!=null and queryvo.rulesEnrollProbability!=''">
|
||||
AND cm.rules_enroll_probability = #{queryvo.rulesEnrollProbability}
|
||||
</if>
|
||||
<!--办学性质-->
|
||||
<if test="queryvo.schoolNatureList!=null and queryvo.schoolNatureList.size>0">
|
||||
AND s.school_nature in
|
||||
<foreach collection="queryvo.schoolNatureList" index="index" item="b" open="(" separator="," close=")">
|
||||
#{b}
|
||||
</foreach>
|
||||
</if>
|
||||
<!--院校标签-->
|
||||
<if test="queryvo.tagsList!=null and queryvo.tagsList.size>0">
|
||||
<choose>
|
||||
<when test="queryvo.tagsList.contains('985') and queryvo.tagsList.contains('211')">
|
||||
AND s.is985 = '1' AND s.is211 = '1'
|
||||
</when>
|
||||
<when test="queryvo.tagsList.contains('985')">
|
||||
AND s.is985 = '1'
|
||||
</when>
|
||||
<when test="queryvo.tagsList.contains('211')">
|
||||
AND s.is211 = '1'
|
||||
</when>
|
||||
<when test="queryvo.tagsList.contains('双一流')">
|
||||
AND s.sfsyl !='双一流'
|
||||
</when>
|
||||
<otherwise>
|
||||
</otherwise>
|
||||
</choose>
|
||||
</if>
|
||||
<!--专业类别-->
|
||||
<if test="queryvo.professionalCategory!=null and queryvo.professionalCategory!=''">
|
||||
<!--AND fld.disciplines_name like concat('%',#{queryvo.professionalCategory},'%')-->
|
||||
AND cm.major_type like concat('%',#{queryvo.professionalCategory},'%')
|
||||
</if>
|
||||
<!--音乐类 子项专业查询 start-->
|
||||
<if test="queryvo.professionalCategory!=null and queryvo.professionalCategory=='音乐类' and queryvo.pCategoryChildrenList!=null and queryvo.pCategoryChildrenList.size>0">
|
||||
AND(
|
||||
<choose>
|
||||
<when test="queryvo.pCategoryChildrenList.contains('音乐表演声乐')">
|
||||
cm.main_subjects like '%声乐%' AND (
|
||||
cm.major_type_child = '音乐表演'
|
||||
<if test="queryvo.pCategoryChildrenList.contains('音乐教育')">
|
||||
or cm.major_type_child = '音乐教育'
|
||||
</if>
|
||||
)
|
||||
</when>
|
||||
<when test="queryvo.pCategoryChildrenList.contains('音乐表演器乐')">
|
||||
cm.main_subjects like '%器乐%' AND (
|
||||
cm.major_type_child = '音乐表演'
|
||||
<if test="queryvo.pCategoryChildrenList.contains('音乐教育')">
|
||||
or cm.major_type_child = '音乐教育'
|
||||
</if>
|
||||
)
|
||||
</when>
|
||||
<when test="queryvo.pCategoryChildrenList.contains('音乐教育')">
|
||||
cm.major_type_child = '音乐教育'
|
||||
</when>
|
||||
</choose>
|
||||
)
|
||||
</if>
|
||||
<!--音乐类 子项专业查询 end-->
|
||||
<!--表演类 子项专业查询 start-->
|
||||
<if test="queryvo.professionalCategory!=null and queryvo.professionalCategory=='表演类' and queryvo.pCategoryChildrenList!=null and queryvo.pCategoryChildrenList.size>0">
|
||||
AND cm.main_subjects in
|
||||
<foreach collection="queryvo.pCategoryChildrenList" index="index" item="b" open="(" separator="," close=")">
|
||||
#{b}
|
||||
</foreach>
|
||||
</if>
|
||||
<!--表演类 子项专业查询 end-->
|
||||
|
||||
<!--院校类型-->
|
||||
<if test="queryvo.institutionType!=null and queryvo.institutionType!=''">
|
||||
AND s.institution_type= #{queryvo.institutionType}
|
||||
</if>
|
||||
<!--办学性质-->
|
||||
<if test="queryvo.schoolNature!=null and queryvo.schoolNature!=''">
|
||||
AND s.school_nature= #{queryvo.schoolNature}
|
||||
</if>
|
||||
ORDER BY enroll_probability desc
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -152,11 +152,11 @@
|
|||
</if>
|
||||
<!--表演类 子项专业查询 end-->
|
||||
|
||||
/*院校类型*/
|
||||
<!--院校类型-->
|
||||
<if test="queryvo.institutionType!=null and queryvo.institutionType!=''">
|
||||
AND s.institution_type= #{queryvo.institutionType}
|
||||
</if>
|
||||
/*办学性质*/
|
||||
<!--办学性质-->
|
||||
<if test="queryvo.schoolNature!=null and queryvo.schoolNature!=''">
|
||||
AND s.school_nature= #{queryvo.schoolNature}
|
||||
</if>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@
|
|||
</if>
|
||||
</select>
|
||||
|
||||
|
||||
<select id="myVolunteerList" resultType="org.jeecg.modules.art.dto.RecommendMajorDTO">
|
||||
SELECT
|
||||
sc.school_name,
|
||||
|
|
@ -79,4 +78,36 @@
|
|||
group by vr.id
|
||||
ORDER BY vr.indexs asc
|
||||
</select>
|
||||
|
||||
<select id="listDTOByVolunteerId2" resultType="org.jeecg.modules.yx.dto.VolunteerRecordDTO">
|
||||
SELECT vr.id,
|
||||
vr.indexs,
|
||||
vr.major_code,
|
||||
vr.school_code,
|
||||
vr.enrollment_code,
|
||||
vr.enroll_probability,
|
||||
vr.student_converted_score,
|
||||
vr.batch as batch,
|
||||
vr.fctj as fctj,
|
||||
sc.school_name,
|
||||
s.province as province,
|
||||
s.school_nature as propertyName,
|
||||
s.institution_type as institutionType,
|
||||
cm.major_name,
|
||||
cm.category,
|
||||
cm.rules_enroll_probability as rulesEnrollProbability,
|
||||
cm.probability_operator as probabilityOperator,
|
||||
cm.detail as majorDetail,
|
||||
m.first_level_discipline as firstLevelDiscipline,
|
||||
m.major_desc as majorRemarks,
|
||||
m.semester as studyYear
|
||||
FROM yx_volunteer_record vr
|
||||
LEFT JOIN ${calutionTableName} cm ON cm.major_code = vr.major_code AND cm.school_code = vr.school_code AND cm.enrollment_code = vr.enrollment_code AND cm.score_id = #{scoreId}
|
||||
LEFT JOIN yx_major m ON m.major_code = cm.major_code
|
||||
LEFT JOIN (SELECT school_id,school_code,school_name FROM yx_school_child group by school_code) sc ON sc.school_code = cm.school_code
|
||||
LEFT JOIN yx_school s ON s.id = sc.school_id
|
||||
WHERE vr.volunteer_id = #{volunteerId}
|
||||
group by vr.id
|
||||
ORDER BY vr.indexs asc
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -1,9 +1,14 @@
|
|||
package org.jeecg.modules.yx.service;
|
||||
|
||||
import org.jeecg.modules.art.dto.ArtRecommendMajorBaseDTO;
|
||||
import org.jeecg.modules.art.dto.RecommendMajorDTO;
|
||||
import org.jeecg.modules.art.vo.QueryRecommendMajorVO;
|
||||
import org.jeecg.modules.yx.entity.YxCalculationMajor;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.jeecg.modules.yx.entity.YxUserScore;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 用户可报专业折合关联表
|
||||
* @Author: jeecg-boot
|
||||
|
|
@ -11,5 +16,48 @@ import org.jeecg.modules.yx.entity.YxUserScore;
|
|||
* @Version: V1.0
|
||||
*/
|
||||
public interface IYxCalculationMajorService extends IService<YxCalculationMajor> {
|
||||
void calculationMajor(YxUserScore userScore);
|
||||
List<RecommendMajorDTO> calculationMajor(YxUserScore userScore);
|
||||
|
||||
/**
|
||||
* 获取推荐专业
|
||||
* @param queryRecommendMajorVO
|
||||
* @return
|
||||
*/
|
||||
ArtRecommendMajorBaseDTO recommendMajorPage(QueryRecommendMajorVO queryRecommendMajorVO);
|
||||
|
||||
/**
|
||||
* 获取院校其他专业
|
||||
* @param queryRecommendMajorVO
|
||||
* @return
|
||||
*/
|
||||
ArtRecommendMajorBaseDTO schoolOtherMajor(QueryRecommendMajorVO queryRecommendMajorVO);
|
||||
|
||||
/**
|
||||
* 从专业列表中折合出难,保,稳,冲的数量
|
||||
* @param calculationMajorList
|
||||
* @return
|
||||
*/
|
||||
ArtRecommendMajorBaseDTO checkLevelNum(List<RecommendMajorDTO> calculationMajorList);
|
||||
|
||||
/**
|
||||
* 检测表名是否存在,不存在则创建
|
||||
* @param calculationTableName 表名
|
||||
*/
|
||||
String checkCalculationTableNameOfCreate(String calculationTableName);
|
||||
|
||||
/**
|
||||
* AI一键填报
|
||||
* @param queryRecommendMajorVO
|
||||
* @return
|
||||
*/
|
||||
ArtRecommendMajorBaseDTO aiAutoRecommendMajor(QueryRecommendMajorVO queryRecommendMajorVO);
|
||||
|
||||
/**
|
||||
* 从旧表的旧成绩id数据复制到新表的新的成绩单中
|
||||
* @param oldScoreId 旧成绩单id
|
||||
* @param newScoreId 新成绩单id
|
||||
* @param oldCalculationMajorTableName 旧TableName
|
||||
* @param newCalculationMajorTableName 新TableName
|
||||
*/
|
||||
void copyNew(String oldScoreId, String newScoreId, String oldCalculationMajorTableName, String newCalculationMajorTableName);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
package org.jeecg.modules.yx.service;
|
||||
|
||||
import org.jeecg.modules.art.dto.RecommendMajorDTO;
|
||||
import org.jeecg.modules.yx.dto.VolunteerRecordDTO;
|
||||
import org.jeecg.modules.yx.entity.YxHistoryMajorEnroll;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
|
|
@ -22,4 +24,15 @@ public interface IYxHistoryMajorEnrollService extends IService<YxHistoryMajorEnr
|
|||
* @return Map<院校编码,数据>
|
||||
*/
|
||||
Map<String,YxHistoryMajorEnroll> getDataGroupBySchoolCodeAndMaxYear(List<String> schoolCodeList);
|
||||
|
||||
/**
|
||||
* 给推荐专业列表写入历年分数信息
|
||||
* @param recommendMajorDtoList 推荐专业列表
|
||||
*/
|
||||
void recommendMajorDTOListSetHistoryInfo(List<RecommendMajorDTO> recommendMajorDtoList);
|
||||
|
||||
/**
|
||||
* 给志愿单中的专业写入历年分数信息
|
||||
*/
|
||||
void volunteerRecordDTOListSetHistoryInfo(List<VolunteerRecordDTO> recordDtoList);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,4 +35,16 @@ public interface IYxUserScoreService extends IService<YxUserScore> {
|
|||
* @param id
|
||||
*/
|
||||
void setDefaultScore(String id);
|
||||
|
||||
/**
|
||||
* 关闭状态
|
||||
* @param id
|
||||
*/
|
||||
void closeStatus(String id);
|
||||
|
||||
/**
|
||||
* 根据id复制
|
||||
* @param id
|
||||
*/
|
||||
YxUserScore copyById(String id);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,6 +23,8 @@ public interface IYxVolunteerRecordService extends IService<YxVolunteerRecord> {
|
|||
|
||||
List<VolunteerRecordDTO> listDTOByVolunteerId(String volunteerId);
|
||||
|
||||
List<VolunteerRecordDTO> listDTOByVolunteerId(String scoreId,String calculationTableName, String volunteerId);
|
||||
|
||||
boolean artVolunteerSave(SaveVolunteerVO saveVolunteerVO);
|
||||
|
||||
List<YxVolunteerRecord> getListByCreateBy(YxVolunteerRecord yxVolunteerRecord);
|
||||
|
|
@ -31,4 +33,6 @@ public interface IYxVolunteerRecordService extends IService<YxVolunteerRecord> {
|
|||
* 根据volunteerId删除
|
||||
*/
|
||||
boolean deleteByVolunteerId(String volunteerId);
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,4 +49,5 @@ public interface IYxVolunteerService extends IService<YxVolunteer> {
|
|||
* 志愿单 另存
|
||||
*/
|
||||
String saveAs(SaveVolunteerVO saveVolunteerVO);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ public class BiaoyanService {
|
|||
BigDecimal enrollProbability = null;//录取率
|
||||
Map<String, Object> differenceMap = null;
|
||||
List<YxHistoryMajorEnroll> historyMajorEnrollList = null;//历年录取信息
|
||||
BigDecimal fzby= activeCurrentUserScore.getFzby();//服装表演-分数
|
||||
BigDecimal fzby = activeCurrentUserScore.getFzby();//服装表演-分数
|
||||
BigDecimal xjysdy = activeCurrentUserScore.getXjysdy();//戏剧影视导演-分数
|
||||
BigDecimal xjysby = activeCurrentUserScore.getXjysby();//戏剧影视表演-分数
|
||||
|
||||
|
|
@ -103,33 +103,23 @@ public class BiaoyanService {
|
|||
probabilityOperator = recommendMajorDTO.getProbabilityOperator();
|
||||
culturalControlLine = batchControlLineMaps.get(recommendMajorDTO.getBatch()).getCulturalScore();
|
||||
specialControlLine = batchControlLineMaps.get(recommendMajorDTO.getBatch()).getSpecialScore();
|
||||
//没有计算方式 跳过
|
||||
if (StringUtils.isBlank(rulesEnrollProbability)) {
|
||||
continue;
|
||||
}
|
||||
//没有往年录取分数线信息
|
||||
if (CollectionUtils.isEmpty(historyMajorEnrollList) || !ScoreUtil.hasComputeEnrollProbabilityPermissions(nowBatch,recommendMajorDTO.getBatch())) {
|
||||
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
|
||||
continue;
|
||||
}
|
||||
historyMajorEnrollList = historyMajorEnrollList.stream().filter(h->YxConstant.cankaoYearList.contains(h.getYear())).collect(Collectors.toList());
|
||||
|
||||
//不是体育类的专业,如果是文过专排,并且没有录取计算运算符时,文过专排是文*0+专*1,专过文排是文*1+专*0
|
||||
if ("文过专排".equals(rulesEnrollProbability) && StringUtils.isBlank(probabilityOperator)) {
|
||||
probabilityOperator = "文*0+专*1";
|
||||
} else if ("专过文排".equals(rulesEnrollProbability) && StringUtils.isBlank(probabilityOperator)) {
|
||||
probabilityOperator = "文*1+专*0";
|
||||
}
|
||||
if (StringUtils.isBlank(probabilityOperator)) {
|
||||
//没有计算方式 或 没有往年录取分数线信息 ,或者没有过该批次 时跳过
|
||||
if (StringUtils.isBlank(rulesEnrollProbability)
|
||||
|| StringUtils.isBlank(probabilityOperator)
|
||||
|| CollectionUtils.isEmpty(historyMajorEnrollList)
|
||||
|| !ScoreUtil.hasComputeEnrollProbabilityPermissions(nowBatch, recommendMajorDTO.getBatch())) {
|
||||
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
|
||||
continue;
|
||||
}
|
||||
//只获取参考的年份,23,22 这两年
|
||||
historyMajorEnrollList = historyMajorEnrollList.stream().filter(h -> YxConstant.cankaoYearList.contains(h.getYear())).collect(Collectors.toList());
|
||||
//将当期成绩按照专业录取分数方式折算
|
||||
//majorTypeChild = recommendMajorDTO.getMajorTypeChild();
|
||||
mainSubjects = recommendMajorDTO.getMainSubjects();
|
||||
|
||||
|
||||
//判断 使用什么成绩
|
||||
if ("高职高专".equals(recommendMajorDTO.getBatch()) || "兼报".equals(mainSubjects)) {
|
||||
//如果是高职/兼报,用最高分
|
||||
professionalScore2 = byMaxScoreOld;
|
||||
professionalScore3 = byMaxScore;
|
||||
} else if ("戏剧影视表演".equals(mainSubjects)) {
|
||||
|
|
@ -143,20 +133,16 @@ public class BiaoyanService {
|
|||
professionalScore3 = fzby;
|
||||
} else {
|
||||
log.error("当前专业有问题,不清楚主考科目:" + JSONObject.toJSONString(recommendMajorDTO));
|
||||
continue;
|
||||
}
|
||||
|
||||
//判断其他录取要求
|
||||
if(!ScoreUtil.otherScoreJudge(professionalScore,activeCurrentUserScore,recommendMajorDTO)){
|
||||
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
|
||||
continue;
|
||||
}
|
||||
//分数是否过省控线
|
||||
if(!ScoreUtil.crossingControlLine(rulesEnrollProbability,culturalScore,professionalScore,culturalControlLine,specialControlLine)){
|
||||
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
|
||||
continue;
|
||||
}
|
||||
|
||||
//判断其他录取要求 ,分数是否过省控线
|
||||
if (!ScoreUtil.otherScoreJudge(professionalScore, activeCurrentUserScore, recommendMajorDTO)
|
||||
|| !ScoreUtil.crossingControlLine(rulesEnrollProbability, culturalScore, professionalScore, culturalControlLine, specialControlLine)) {
|
||||
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
|
||||
continue;
|
||||
}
|
||||
//使用主考科目成绩,将当期成绩按照专业录取分数方式折算
|
||||
recommendMajorDTO.setStudentConvertedScore(ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore2, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator));
|
||||
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), professionalScore3, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
|
||||
|
|
@ -177,8 +163,8 @@ public class BiaoyanService {
|
|||
recommendMajorDTO.setEnrollProbability(enrollProbability);
|
||||
recommendMajorDTO.setRulesEnrollProbability(ScoreUtil.replaceLastZeroChar(rulesEnrollProbability));
|
||||
recommendMajorDTO.setProbabilityOperator(ScoreUtil.replaceLastZeroChar(probabilityOperator));
|
||||
}else{
|
||||
nowYearProvincialControlLine = ScoreUtil.covertIntoControlLine(rulesEnrollProbability,culturalControlLine, specialControlLine, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
|
||||
} else {
|
||||
nowYearProvincialControlLine = ScoreUtil.covertIntoControlLine(rulesEnrollProbability, culturalControlLine, specialControlLine, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
|
||||
if (nowYearProvincialControlLine == null) {
|
||||
continue;
|
||||
}
|
||||
|
|
@ -186,20 +172,20 @@ public class BiaoyanService {
|
|||
differenceMap = ScoreUtil.computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability(rulesEnrollProbability, historyMajorEnrollList);
|
||||
historyThreeYearDiff = (BigDecimal) differenceMap.get("scoreDifference");
|
||||
nowYearDiff = studentScore.subtract(nowYearProvincialControlLine);
|
||||
if(nowYearDiff.compareTo(YxConstant.bigDecimal0)==0 && (historyThreeYearDiff == null || historyThreeYearDiff.doubleValue() == 0)) {
|
||||
if (nowYearDiff.compareTo(YxConstant.bigDecimal0) == 0 && (historyThreeYearDiff == null || historyThreeYearDiff.doubleValue() == 0)) {
|
||||
//当前年分差为0,并且 前年的分差也为0
|
||||
enrollProbability = YxConstant.bigDecimal50;//录取率50
|
||||
}else if (nowYearDiff.compareTo(YxConstant.bigDecimal0)>0 && (historyThreeYearDiff == null || historyThreeYearDiff.doubleValue() == 0)) {
|
||||
} else if (nowYearDiff.compareTo(YxConstant.bigDecimal0) > 0 && (historyThreeYearDiff == null || historyThreeYearDiff.doubleValue() == 0)) {
|
||||
//当前年分差不为0,且历年分差为0
|
||||
enrollProbability = nowYearDiff.multiply(YxConstant.bigDecimal075).multiply(YxConstant.bigDecimal100);
|
||||
} else if(nowYearDiff.compareTo(YxConstant.bigDecimal0)==0 && historyThreeYearDiff.compareTo(YxConstant.bigDecimal0)>0){
|
||||
} else if (nowYearDiff.compareTo(YxConstant.bigDecimal0) == 0 && historyThreeYearDiff.compareTo(YxConstant.bigDecimal0) > 0) {
|
||||
//当前年分差为0,但是之前年分差大于零0
|
||||
enrollProbability = YxConstant.bigDecimal1.divide(historyThreeYearDiff,4,RoundingMode.HALF_UP).multiply(YxConstant.bigDecimal100);
|
||||
if (historyThreeYearDiff.compareTo(YxConstant.bigDecimal1)==0) {
|
||||
enrollProbability = YxConstant.bigDecimal1.divide(historyThreeYearDiff, 4, RoundingMode.HALF_UP).multiply(YxConstant.bigDecimal100);
|
||||
if (historyThreeYearDiff.compareTo(YxConstant.bigDecimal1) == 0) {
|
||||
//如果历年分差为1,再乘0.75
|
||||
enrollProbability = enrollProbability.multiply(YxConstant.bigDecimal075);
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
enrollProbability = nowYearDiff.divide(historyThreeYearDiff, 4, RoundingMode.HALF_UP).multiply(YxConstant.bigDecimal100);
|
||||
//录取率*0.75
|
||||
enrollProbability = enrollProbability.multiply(YxConstant.bigDecimal075);
|
||||
|
|
@ -247,7 +233,7 @@ public class BiaoyanService {
|
|||
BigDecimal divide = null;
|
||||
String mainSubjects = null;
|
||||
//=====================分数转换 start
|
||||
BigDecimal fzby= userScore.getFzby();//服装表演-分数
|
||||
BigDecimal fzby = userScore.getFzby();//服装表演-分数
|
||||
BigDecimal xjysdy = userScore.getXjysdy();//戏剧影视导演-分数
|
||||
BigDecimal xjysby = userScore.getXjysby();//戏剧影视表演-分数
|
||||
|
||||
|
|
|
|||
|
|
@ -41,10 +41,8 @@ public class MusicService {
|
|||
try {
|
||||
//专业类别
|
||||
String professionalCategory = activeCurrentUserScore.getProfessionalCategory();
|
||||
String cognitioPolyclinic = activeCurrentUserScore.getCognitioPolyclinic();
|
||||
String rulesEnrollProbability = null;
|
||||
String probabilityOperator = null;
|
||||
String majorType = null;//专业类别
|
||||
String majorTypeChild = null;
|
||||
String mainSubjects = null;
|
||||
String nowBatch = activeCurrentUserScore.getBatch();
|
||||
|
|
@ -67,6 +65,7 @@ public class MusicService {
|
|||
BigDecimal yybysy = activeCurrentUserScore.getYybysy();//音乐表演声乐-分数
|
||||
BigDecimal yybyqy = activeCurrentUserScore.getYybyqy();//音乐表演声乐-分数
|
||||
BigDecimal yyjy = activeCurrentUserScore.getYyjy();//音乐表演声乐-分数
|
||||
BigDecimal yyScore = yybysy.max(yybyqy).max(yyjy);
|
||||
//=====================分数转换 start
|
||||
if ("2024".equals(YxConstant.nowYear)) {
|
||||
YxScoreSegment scoreSegment = null;
|
||||
|
|
@ -100,15 +99,12 @@ public class MusicService {
|
|||
zxcj = scoreSegment.getScore();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
int index = 0;
|
||||
if (CollectionUtils.isNotEmpty(recommendMajorList)) {
|
||||
//遍历专业列表
|
||||
for (RecommendMajorDTO recommendMajorDTO : recommendMajorList) {
|
||||
rulesEnrollProbability = recommendMajorDTO.getRulesEnrollProbability();
|
||||
//专业类别
|
||||
//majorType = recommendMajorDTO.getMajorType();
|
||||
//取出往年的分数信息, 算出 三年平均差值
|
||||
historyMajorEnrollList = recommendMajorDTO.getHistoryMajorEnrollList();
|
||||
probabilityOperator = recommendMajorDTO.getProbabilityOperator();
|
||||
|
|
|
|||
|
|
@ -1,21 +1,24 @@
|
|||
package org.jeecg.modules.yx.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.jeecg.common.system.vo.LoginUser;
|
||||
import org.jeecg.common.util.RedisUtil;
|
||||
import org.jeecg.modules.art.dto.ArtRecommendMajorBaseDTO;
|
||||
import org.jeecg.modules.art.dto.RecommendMajorDTO;
|
||||
import org.jeecg.modules.art.vo.QueryRecommendMajorVO;
|
||||
import org.jeecg.modules.yx.constant.YxConstant;
|
||||
import org.jeecg.modules.yx.entity.YxCalculationMajor;
|
||||
import org.jeecg.modules.yx.entity.YxHistoryMajorEnroll;
|
||||
import org.jeecg.modules.yx.entity.YxHistoryScoreControlLine;
|
||||
import org.jeecg.modules.yx.entity.YxUserScore;
|
||||
import org.jeecg.modules.yx.entity.*;
|
||||
import org.jeecg.modules.yx.mapper.YxCalculationMajorMapper;
|
||||
import org.jeecg.modules.yx.mapper.YxHistoryMajorEnrollMapper;
|
||||
import org.jeecg.modules.yx.mapper.YxSchoolMajorMapper;
|
||||
import org.jeecg.modules.yx.service.IYxCalculationMajorService;
|
||||
import org.jeecg.modules.yx.service.IYxHistoryScoreControlLineService;
|
||||
import org.jeecg.modules.yx.service.IYxSchoolMajorService;
|
||||
import org.jeecg.modules.yx.mapper.YxSchoolMapper;
|
||||
import org.jeecg.modules.yx.service.*;
|
||||
import org.jeecg.modules.yx.util.ScoreUtil;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -41,6 +44,8 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
|
|||
@Resource
|
||||
private IYxHistoryScoreControlLineService yxHistoryScoreControlLineService;
|
||||
@Resource
|
||||
private IYxUserScoreService yxUserScoreService;
|
||||
@Resource
|
||||
private ZhuanService zhuanService;
|
||||
@Resource
|
||||
private MusicService musicService;
|
||||
|
|
@ -52,267 +57,511 @@ public class YxCalculationMajorServiceImpl extends ServiceImpl<YxCalculationMajo
|
|||
private WuDaoService wuDaoService;
|
||||
@Resource
|
||||
private BoYinService boYinService;
|
||||
|
||||
@Resource
|
||||
private YxHistoryMajorEnrollMapper yxHistoryMajorEnrollMapper;
|
||||
@Resource
|
||||
private IYxHistoryMajorEnrollService yxHistoryMajorEnrollService;
|
||||
@Resource
|
||||
private YxSchoolMajorMapper yxSchoolMajorMapper;
|
||||
@Resource
|
||||
private YxSchoolMapper yxSchoolMapper;
|
||||
@Resource
|
||||
private RedisUtil redisUtil;
|
||||
|
||||
@Override
|
||||
public void calculationMajor(YxUserScore userScore) {
|
||||
public List<RecommendMajorDTO> calculationMajor(YxUserScore userScore) {
|
||||
List<RecommendMajorDTO> recommendMajorDTOList = new ArrayList<>();
|
||||
if (userScore != null) {
|
||||
String batch = userScore.getBatch();
|
||||
String professionalCategory = userScore.getProfessionalCategory();
|
||||
String professionalCategoryChildren = userScore.getProfessionalCategoryChildren();
|
||||
QueryRecommendMajorVO queryRecommendMajorVO = new QueryRecommendMajorVO();
|
||||
queryRecommendMajorVO.setProfessionalCategory(professionalCategory);//专业类别
|
||||
queryRecommendMajorVO.setCognitioPolyclinic(userScore.getCognitioPolyclinic());//文理分科
|
||||
//有子级专业
|
||||
if (StringUtils.isNotBlank(professionalCategoryChildren)) {
|
||||
queryRecommendMajorVO.setPCategoryChildrenList(new ArrayList<>(Arrays.asList(professionalCategoryChildren.split(","))));
|
||||
}
|
||||
//查询专业
|
||||
long startTime = new Date().getTime();
|
||||
List<RecommendMajorDTO> recommendMajorDTOList = yxSchoolMajorMapper.recommendMajorList(queryRecommendMajorVO);
|
||||
recommendMajorDTOList = yxSchoolMajorMapper.recommendMajorList(queryRecommendMajorVO);
|
||||
//将历史录取信息合并到专业信息里
|
||||
if (CollectionUtils.isNotEmpty(recommendMajorDTOList)) {
|
||||
//获取上一年的招生人数
|
||||
List<YxHistoryMajorEnroll> historyMajorEnrollList = null;
|
||||
//获取历年的招生计划
|
||||
LambdaQueryWrapper<YxHistoryMajorEnroll> hmeWrapper = new LambdaQueryWrapper<>();
|
||||
Set<String> majorNameList = recommendMajorDTOList.stream().map(RecommendMajorDTO::getMajorName).collect(Collectors.toSet());
|
||||
hmeWrapper.in(YxHistoryMajorEnroll::getYear, YxConstant.oldYearList);
|
||||
hmeWrapper.eq(YxHistoryMajorEnroll::getCategory, queryRecommendMajorVO.getCognitioPolyclinic());//文科/理科
|
||||
hmeWrapper.isNotNull(YxHistoryMajorEnroll::getRulesEnrollProbability);
|
||||
hmeWrapper.in(YxHistoryMajorEnroll::getMajorName, majorNameList);
|
||||
hmeWrapper.orderByDesc(YxHistoryMajorEnroll::getYear);
|
||||
List<YxHistoryMajorEnroll> yxHistoryMajorEnrollList = yxHistoryMajorEnrollMapper.selectList(hmeWrapper);
|
||||
//获取院校信息
|
||||
String a_ = "_";
|
||||
String key = null;
|
||||
//将历年计划 组合成map对象
|
||||
Map<String, YxHistoryMajorEnroll> majorEnrollMap = new LinkedHashMap<>();
|
||||
for (YxHistoryMajorEnroll h : yxHistoryMajorEnrollList) {
|
||||
key = h.getYear() + a_ + h.getSchoolCode() + a_ + h.getMajorName() + a_ + h.getCategory() + a_ + h.getBatch();
|
||||
majorEnrollMap.put(key, h);
|
||||
}
|
||||
//遍历,获取历年数据 添加到专业 的历年信息中
|
||||
Map<String, YxHistoryMajorEnroll> yearMajorEnrollMap;
|
||||
YxHistoryMajorEnroll yxHistoryMajorEnroll;
|
||||
for (RecommendMajorDTO recommendMajorDTO : recommendMajorDTOList) {
|
||||
historyMajorEnrollList = new ArrayList<>();
|
||||
yearMajorEnrollMap = new LinkedHashMap<>();
|
||||
//2022年
|
||||
for (String year : YxConstant.oldYearList) {
|
||||
key = recommendMajorDTO.getSchoolCode() + a_ + recommendMajorDTO.getMajorName() + a_ + recommendMajorDTO.getCategory() + a_ + recommendMajorDTO.getBatch();
|
||||
yxHistoryMajorEnroll = majorEnrollMap.get(year + a_ + key);
|
||||
if (yxHistoryMajorEnroll != null) {
|
||||
yearMajorEnrollMap.put(yxHistoryMajorEnroll.getYear(), yxHistoryMajorEnroll);
|
||||
historyMajorEnrollList.add(yxHistoryMajorEnroll);
|
||||
}
|
||||
}
|
||||
|
||||
recommendMajorDTO.setHistoryMajorEnrollMap(yearMajorEnrollMap);
|
||||
recommendMajorDTO.setHistoryMajorEnrollList(historyMajorEnrollList);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
checkEnrollProbability(recommendMajorDTOList, userScore);
|
||||
//计算录取率
|
||||
////计算录取概率
|
||||
if ("高职高专".equals(queryRecommendMajorVO.getBatch())) {
|
||||
zhuanService.zhuanRecommendMajorListSetEnrollProbability(recommendMajorDTOList, userScore);
|
||||
} else {
|
||||
if (YxConstant.betaMajorTypeList.contains(professionalCategory)) {
|
||||
//如果当前专业是(美术设计类,书法类,体育类)
|
||||
//不需要换算为往年分数
|
||||
betaRecommendMajorListSetEnrollProbability(recommendMajorDTOList, userScore);
|
||||
} else {
|
||||
if ("音乐类".equals(professionalCategory)) {
|
||||
//音乐类的
|
||||
musicService.musicRecommendMajorListSetEnrollProbability(recommendMajorDTOList, userScore);
|
||||
} else if ("表演类".equals(professionalCategory)) {
|
||||
biaoyanService.biaoyanRecommendMajorListSetEnrollProbability(recommendMajorDTOList, userScore);
|
||||
} else if ("舞蹈类".equals(professionalCategory)) {
|
||||
wuDaoService.wudaoRecommendMajorListSetEnrollProbability(recommendMajorDTOList, userScore);
|
||||
} else if ("播音与主持类".equals(professionalCategory)) {
|
||||
boYinService.boYinRecommendMajorListSetEnrollProbability(recommendMajorDTOList, userScore);
|
||||
}
|
||||
}
|
||||
yxHistoryMajorEnrollService.recommendMajorDTOListSetHistoryInfo(recommendMajorDTOList);
|
||||
this.checkEnrollProbability(recommendMajorDTOList, userScore);
|
||||
}
|
||||
long endTime = new Date().getTime();
|
||||
log.warn("耗费时长:" + (endTime - startTime));
|
||||
log.warn("测算专业录取率-耗费时长:" + (endTime - startTime));
|
||||
//保存结果到用户的专业结果表
|
||||
YxCalculationMajor yxCalculationMajor = null;
|
||||
List<YxCalculationMajor> calculationMajorList = new ArrayList<>();
|
||||
StringBuilder otherScoreLimitation = null;
|
||||
for (RecommendMajorDTO recommendMajorDTO : recommendMajorDTOList) {
|
||||
otherScoreLimitation = new StringBuilder();
|
||||
yxCalculationMajor = new YxCalculationMajor();
|
||||
BeanUtils.copyProperties(recommendMajorDTO, yxCalculationMajor);
|
||||
yxCalculationMajor.setScoreId(userScore.getId());
|
||||
yxCalculationMajor.setStudentOldConvertedScore(recommendMajorDTO.getStudentScore());
|
||||
//其他分数要求
|
||||
if(true){
|
||||
//语文成绩
|
||||
if (recommendMajorDTO.getChineseScoreLimitation()!=null && recommendMajorDTO.getChineseScoreLimitation().compareTo(YxConstant.bigDecimal0)>0) {
|
||||
otherScoreLimitation.append("语文成绩不低于").append(recommendMajorDTO.getChineseScoreLimitation()).append("分,");
|
||||
}
|
||||
//外语成绩
|
||||
if (recommendMajorDTO.getEnglishScoreLimitation()!=null && recommendMajorDTO.getEnglishScoreLimitation().compareTo(YxConstant.bigDecimal0)>0) {
|
||||
otherScoreLimitation.append("外语成绩不低于").append(recommendMajorDTO.getEnglishScoreLimitation()).append("分,");
|
||||
}
|
||||
//文化成绩
|
||||
if (recommendMajorDTO.getCulturalScoreLimitation()!=null && recommendMajorDTO.getCulturalScoreLimitation().compareTo(YxConstant.bigDecimal0)>0) {
|
||||
otherScoreLimitation.append("文化成绩不低于").append(recommendMajorDTO.getCulturalScoreLimitation()).append("分,");
|
||||
}
|
||||
//专业成绩
|
||||
if (recommendMajorDTO.getProfessionalScoreLimitation()!=null && recommendMajorDTO.getProfessionalScoreLimitation().compareTo(YxConstant.bigDecimal0)>0) {
|
||||
otherScoreLimitation.append("语文成绩不低于").append(recommendMajorDTO.getProfessionalScoreLimitation()).append("分,");
|
||||
}
|
||||
if (otherScoreLimitation.length()>0) {
|
||||
yxCalculationMajor.setOtherScoreLimitation(otherScoreLimitation.substring(0,otherScoreLimitation.length()-2));
|
||||
}
|
||||
}
|
||||
calculationMajorList.add(yxCalculationMajor);
|
||||
}
|
||||
long saveStartTime = new Date().getTime();
|
||||
super.saveBatch(calculationMajorList);
|
||||
baseMapper.insertBatch(userScore.getCalculationTableName(),calculationMajorList);
|
||||
//super.saveBatch(calculationMajorList,500);
|
||||
long saveEndTime = new Date().getTime();
|
||||
log.warn("插入数据耗费时长:" + (saveEndTime - saveStartTime));
|
||||
}
|
||||
return recommendMajorDTOList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArtRecommendMajorBaseDTO recommendMajorPage(QueryRecommendMajorVO queryRecommendMajorVO) {
|
||||
Integer pageNum = queryRecommendMajorVO.getPageNum();
|
||||
Integer pageSize = queryRecommendMajorVO.getPageSize();
|
||||
if (pageNum == null) {
|
||||
pageNum = 1;
|
||||
}
|
||||
if (pageSize == null) {
|
||||
pageSize = 5;
|
||||
}
|
||||
//获取当前分数
|
||||
YxUserScore activeCurrentUserScore = null;
|
||||
if (StringUtils.isNotBlank(queryRecommendMajorVO.getScoreId())) {
|
||||
//是根据成绩单来的
|
||||
activeCurrentUserScore = yxUserScoreService.findById(queryRecommendMajorVO.getScoreId());
|
||||
} else {
|
||||
//直接获取当前使用中的成绩单
|
||||
activeCurrentUserScore = yxUserScoreService.getActiveCurrentUserScore();
|
||||
}
|
||||
queryRecommendMajorVO.setScoreId(activeCurrentUserScore.getId());
|
||||
//文理分科
|
||||
queryRecommendMajorVO.setCognitioPolyclinic(activeCurrentUserScore.getCognitioPolyclinic());
|
||||
//专业类别
|
||||
queryRecommendMajorVO.setProfessionalCategory(activeCurrentUserScore.getProfessionalCategory());
|
||||
//有子级专业
|
||||
if (StringUtils.isNotBlank(activeCurrentUserScore.getProfessionalCategoryChildren()) && !"高职高专".equals(queryRecommendMajorVO.getBatch())) {
|
||||
queryRecommendMajorVO.setPCategoryChildrenList(new ArrayList<>(Arrays.asList(activeCurrentUserScore.getProfessionalCategoryChildren().split(","))));
|
||||
if("表演类".equals(activeCurrentUserScore.getProfessionalCategory())){
|
||||
queryRecommendMajorVO.getPCategoryChildrenList().add("兼报");
|
||||
}
|
||||
}
|
||||
//标签类别
|
||||
if (StringUtils.isNotBlank(queryRecommendMajorVO.getTagsStrs())) {
|
||||
queryRecommendMajorVO.setTagsList(Arrays.asList(queryRecommendMajorVO.getTagsStrs().split(",")));
|
||||
}
|
||||
//院校类型
|
||||
if (StringUtils.isNotBlank(queryRecommendMajorVO.getSchoolNatureStrs())) {
|
||||
queryRecommendMajorVO.setSchoolNatureList(Arrays.asList(queryRecommendMajorVO.getSchoolNatureStrs().split(",")));
|
||||
}
|
||||
//院校地区
|
||||
if (StringUtils.isNotBlank(queryRecommendMajorVO.getProvince())) {
|
||||
queryRecommendMajorVO.setAddressList(Arrays.asList(queryRecommendMajorVO.getProvince().split(",")));
|
||||
}
|
||||
|
||||
//获取推荐志愿信息service
|
||||
List<RecommendMajorDTO> recommendMajorList = baseMapper.recommendMajorList(activeCurrentUserScore.getCalculationTableName(),queryRecommendMajorVO);
|
||||
ArtRecommendMajorBaseDTO artRecommendMajorBaseDTO = this.checkLevelNum(recommendMajorList);
|
||||
//当前选中的录取率页面
|
||||
String paneName = queryRecommendMajorVO.getPaneName();
|
||||
//判断 paneName
|
||||
if (StringUtils.isNotBlank(paneName) && !paneName.equals("全部")) {
|
||||
BigDecimal bigDecimal93 = new BigDecimal("93");
|
||||
BigDecimal bigDecimal92 = new BigDecimal("92");
|
||||
BigDecimal bigDecimal74 = new BigDecimal("74");
|
||||
BigDecimal bigDecimal73 = new BigDecimal("73");
|
||||
BigDecimal bigDecimal60 = new BigDecimal("60");
|
||||
switch (paneName) {
|
||||
case "可保底":
|
||||
recommendMajorList = recommendMajorList.stream().filter(r -> r.getEnrollProbability().compareTo(bigDecimal93) >= 0).collect(Collectors.toList());
|
||||
break;
|
||||
case "较稳妥":
|
||||
recommendMajorList = recommendMajorList.stream().filter(r -> r.getEnrollProbability().compareTo(bigDecimal92) < 0 && r.getEnrollProbability().compareTo(bigDecimal74) >= 0).collect(Collectors.toList());
|
||||
break;
|
||||
case "可冲击":
|
||||
recommendMajorList = recommendMajorList.stream().filter(r -> r.getEnrollProbability().compareTo(bigDecimal73) < 0 && r.getEnrollProbability().compareTo(bigDecimal60) >= 0).collect(Collectors.toList());
|
||||
break;
|
||||
case "难录取":
|
||||
recommendMajorList = recommendMajorList.stream().filter(r -> r.getEnrollProbability().compareTo(bigDecimal60) < 0).collect(Collectors.toList());
|
||||
break;
|
||||
}
|
||||
}
|
||||
//插入 院校标签
|
||||
this.setSchoolTagsList(recommendMajorList);
|
||||
List<RecommendMajorDTO> recommendMajorDTOList = recommendMajorList.stream().skip((long) (pageNum - 1) * pageSize).limit(pageSize)
|
||||
.collect(Collectors.toList());
|
||||
//包装历年信息
|
||||
yxHistoryMajorEnrollService.recommendMajorDTOListSetHistoryInfo(recommendMajorDTOList);
|
||||
//组装返回对象
|
||||
int total = recommendMajorList.size();
|
||||
IPage<RecommendMajorDTO> pageList = new Page<>();
|
||||
pageList.setTotal(total);//总记录数
|
||||
pageList.setCurrent(pageNum);
|
||||
pageList.setSize(pageSize);
|
||||
pageList.setRecords(recommendMajorDTOList);
|
||||
artRecommendMajorBaseDTO.setPageList(pageList);
|
||||
return artRecommendMajorBaseDTO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArtRecommendMajorBaseDTO schoolOtherMajor(QueryRecommendMajorVO queryRecommendMajorVO) {
|
||||
//获取当前分数
|
||||
YxUserScore activeCurrentUserScore = null;
|
||||
if (StringUtils.isNotBlank(queryRecommendMajorVO.getScoreId())) {
|
||||
//是根据成绩单来的
|
||||
activeCurrentUserScore = yxUserScoreService.findById(queryRecommendMajorVO.getScoreId());
|
||||
} else {
|
||||
//直接获取当前使用中的成绩单
|
||||
activeCurrentUserScore = yxUserScoreService.getActiveCurrentUserScore();
|
||||
}
|
||||
queryRecommendMajorVO.setScoreId(activeCurrentUserScore.getId());
|
||||
//文理分科
|
||||
queryRecommendMajorVO.setCognitioPolyclinic(activeCurrentUserScore.getCognitioPolyclinic());
|
||||
//专业类别
|
||||
queryRecommendMajorVO.setProfessionalCategory(activeCurrentUserScore.getProfessionalCategory());
|
||||
queryRecommendMajorVO.setScoreId(activeCurrentUserScore.getId());
|
||||
//文理分科
|
||||
queryRecommendMajorVO.setCognitioPolyclinic(activeCurrentUserScore.getCognitioPolyclinic());
|
||||
//专业类别
|
||||
queryRecommendMajorVO.setProfessionalCategory(activeCurrentUserScore.getProfessionalCategory());
|
||||
//有子级专业
|
||||
if (StringUtils.isNotBlank(activeCurrentUserScore.getProfessionalCategoryChildren()) && !"高职高专".equals(queryRecommendMajorVO.getBatch())) {
|
||||
queryRecommendMajorVO.setPCategoryChildrenList(new ArrayList<>(Arrays.asList(activeCurrentUserScore.getProfessionalCategoryChildren().split(","))));
|
||||
if("表演类".equals(activeCurrentUserScore.getProfessionalCategory())){
|
||||
queryRecommendMajorVO.getPCategoryChildrenList().add("兼报");
|
||||
}
|
||||
}
|
||||
//获取推荐志愿信息service
|
||||
List<RecommendMajorDTO> recommendMajorList = baseMapper.recommendMajorList(activeCurrentUserScore.getCalculationTableName(),queryRecommendMajorVO);
|
||||
yxHistoryMajorEnrollService.recommendMajorDTOListSetHistoryInfo(recommendMajorList);
|
||||
ArtRecommendMajorBaseDTO artRecommendMajorBaseDTO = new ArtRecommendMajorBaseDTO();
|
||||
artRecommendMajorBaseDTO.setList(recommendMajorList);
|
||||
return artRecommendMajorBaseDTO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArtRecommendMajorBaseDTO checkLevelNum(List<RecommendMajorDTO> recommendMajorList) {
|
||||
int number = 0;
|
||||
int kbd=0,jwt=0,kcj=0,nan=0;
|
||||
double enrollProbabilityDouble = 0;
|
||||
for (RecommendMajorDTO recommendMajorDTO : recommendMajorList) {
|
||||
number++;
|
||||
enrollProbabilityDouble = recommendMajorDTO.getEnrollProbability().doubleValue();
|
||||
//保底
|
||||
if (enrollProbabilityDouble >= 93) {
|
||||
kbd++;
|
||||
} else if (enrollProbabilityDouble < 92 && enrollProbabilityDouble >= 74) {
|
||||
//较稳妥
|
||||
jwt++;
|
||||
} else if (enrollProbabilityDouble < 73 && enrollProbabilityDouble >= 60) {
|
||||
//可冲击
|
||||
kcj++;
|
||||
} else {
|
||||
//难
|
||||
nan++;
|
||||
}
|
||||
}
|
||||
ArtRecommendMajorBaseDTO artRecommendMajorBaseDTO = new ArtRecommendMajorBaseDTO();
|
||||
artRecommendMajorBaseDTO.setKcj(kcj);
|
||||
artRecommendMajorBaseDTO.setJwt(jwt);
|
||||
artRecommendMajorBaseDTO.setKbd(kbd);
|
||||
artRecommendMajorBaseDTO.setNan(nan);
|
||||
artRecommendMajorBaseDTO.setAllNumber(number);
|
||||
return artRecommendMajorBaseDTO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String checkCalculationTableNameOfCreate(String calculationTableName) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArtRecommendMajorBaseDTO aiAutoRecommendMajor(QueryRecommendMajorVO queryRecommendMajorVO) {
|
||||
String batch = queryRecommendMajorVO.getBatch();
|
||||
int pageNum = 1;
|
||||
int pageSize = 12;
|
||||
if ("提前批".equals(batch)) {
|
||||
pageSize = 2;
|
||||
}
|
||||
YxUserScore activeCurrentUserScore = null;
|
||||
if (StringUtils.isNotBlank(queryRecommendMajorVO.getScoreId())) {
|
||||
activeCurrentUserScore = yxUserScoreService.findById(queryRecommendMajorVO.getScoreId());
|
||||
} else {
|
||||
activeCurrentUserScore = yxUserScoreService.getActiveCurrentUserScore();
|
||||
}
|
||||
|
||||
String cognitioPolyclinic = activeCurrentUserScore.getCognitioPolyclinic();
|
||||
String professionalCategory = activeCurrentUserScore.getProfessionalCategory();//专业类别
|
||||
queryRecommendMajorVO.setProfessionalCategory(professionalCategory);
|
||||
queryRecommendMajorVO.setCognitioPolyclinic(cognitioPolyclinic);
|
||||
|
||||
//有子级专业
|
||||
if (StringUtils.isNotBlank(activeCurrentUserScore.getProfessionalCategoryChildren()) && !"高职高专".equals(queryRecommendMajorVO.getBatch())) {
|
||||
queryRecommendMajorVO.setPCategoryChildrenList(new ArrayList<>(Arrays.asList(activeCurrentUserScore.getProfessionalCategoryChildren().split(","))));
|
||||
if("表演类".equals(activeCurrentUserScore.getProfessionalCategory())){
|
||||
queryRecommendMajorVO.getPCategoryChildrenList().add("兼报");
|
||||
}
|
||||
}
|
||||
if (StringUtils.isNotBlank(queryRecommendMajorVO.getMajorCode())) {
|
||||
queryRecommendMajorVO.setMajorCodeList(Arrays.asList(queryRecommendMajorVO.getMajorCode().split(",")));
|
||||
}
|
||||
if (StringUtils.isNotBlank(queryRecommendMajorVO.getSchoolNatureStrs())) {
|
||||
queryRecommendMajorVO.setSchoolNatureList(Arrays.asList(queryRecommendMajorVO.getSchoolNatureStrs().split(",")));
|
||||
}
|
||||
if (StringUtils.isNotBlank(queryRecommendMajorVO.getProvince())) {
|
||||
queryRecommendMajorVO.setAddressList(Arrays.asList(queryRecommendMajorVO.getProvince().split(",")));
|
||||
}
|
||||
queryRecommendMajorVO.setScoreId(activeCurrentUserScore.getId());
|
||||
List<RecommendMajorDTO> recommendMajorList = baseMapper.recommendMajorList(activeCurrentUserScore.getCalculationTableName(),queryRecommendMajorVO);
|
||||
|
||||
yxHistoryMajorEnrollService.recommendMajorDTOListSetHistoryInfo(recommendMajorList);
|
||||
|
||||
//插入 院校标签
|
||||
this.setSchoolTagsList(recommendMajorList);
|
||||
int total = recommendMajorList.size();
|
||||
List<RecommendMajorDTO> recommendMajorDTOList = recommendMajorList.stream().skip(0).limit(pageSize).collect(Collectors.toList());
|
||||
ArtRecommendMajorBaseDTO artRecommendMajorBaseDTO = new ArtRecommendMajorBaseDTO();
|
||||
IPage<RecommendMajorDTO> pageList = new Page<>();
|
||||
pageList.setTotal(total);//总记录数
|
||||
pageList.setCurrent(pageNum);
|
||||
pageList.setSize(pageSize);
|
||||
pageList.setRecords(recommendMajorDTOList);
|
||||
artRecommendMajorBaseDTO.setPageList(pageList);
|
||||
return artRecommendMajorBaseDTO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void copyNew(String oldScoreId, String newScoreId, String oldCalculationMajorTableName, String newCalculationMajorTableName) {
|
||||
LambdaQueryWrapper<YxCalculationMajor> yxCalculationMajorLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
yxCalculationMajorLambdaQueryWrapper.eq(YxCalculationMajor::getScoreId,oldScoreId);
|
||||
List<YxCalculationMajor> list = this.list(yxCalculationMajorLambdaQueryWrapper);
|
||||
for (YxCalculationMajor yxCalculationMajor : list) {
|
||||
yxCalculationMajor.setId(null);
|
||||
yxCalculationMajor.setScoreId(newScoreId);
|
||||
}
|
||||
baseMapper.insertBatch(newCalculationMajorTableName,list);
|
||||
}
|
||||
|
||||
private void setSchoolTagsList(List<RecommendMajorDTO> recommendMajorList) {
|
||||
if (CollectionUtils.isNotEmpty(recommendMajorList)) {
|
||||
Set<String> schoolIdSet = recommendMajorList.stream().map(RecommendMajorDTO::getSchoolId).collect(Collectors.toSet());
|
||||
List<YxSchool> schoolList = yxSchoolMapper.selectBatchIds(schoolIdSet);
|
||||
if (CollectionUtils.isNotEmpty(schoolList)) {
|
||||
Map<String, YxSchool> yxSchoolMap = schoolList.stream().collect(Collectors.toMap(YxSchool::getId, s -> s));
|
||||
YxSchool school = null;
|
||||
Set<String> tagsList;
|
||||
for (RecommendMajorDTO recommendMajorDTO : recommendMajorList) {
|
||||
school = yxSchoolMap.get(recommendMajorDTO.getSchoolId());
|
||||
if (school == null) {
|
||||
continue;
|
||||
}
|
||||
tagsList = new HashSet<>();
|
||||
if (org.apache.commons.lang3.StringUtils.isNotBlank(school.getSchoolType())) {
|
||||
tagsList.add(school.getSchoolType());//学校层次
|
||||
}
|
||||
if (org.apache.commons.lang3.StringUtils.isNotBlank(school.getSchoolNature())) {
|
||||
tagsList.add(school.getSchoolNature());//办学性质
|
||||
}
|
||||
if (org.apache.commons.lang3.StringUtils.isNotBlank(school.getInstitutionType())) {
|
||||
String[] split = school.getInstitutionType().split(" ");
|
||||
for (String s : split) {
|
||||
tagsList.add(s + "类");//院校类型
|
||||
}
|
||||
}
|
||||
|
||||
//判断 是否是 985,211
|
||||
if (1 == school.getIs211()) {
|
||||
tagsList.add("211");
|
||||
}
|
||||
if (1 == school.getIs985()) {
|
||||
tagsList.add("985");
|
||||
}
|
||||
if ("双一流".equals(school.getSfsyl())) {
|
||||
tagsList.add("双一流");
|
||||
}
|
||||
if (org.apache.commons.lang3.StringUtils.isNotBlank(school.getGzsz())) {
|
||||
tagsList.add(school.getGzsz());
|
||||
}
|
||||
recommendMajorDTO.setTagsList(tagsList);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 统一测算录取率方法
|
||||
*
|
||||
* @param recommendMajorDTOList
|
||||
* @param userScore
|
||||
*/
|
||||
private void checkEnrollProbability(List<RecommendMajorDTO> recommendMajorDTOList, YxUserScore userScore) {
|
||||
String professionalCategory = null;
|
||||
for (RecommendMajorDTO recommendMajorDTO : recommendMajorDTOList) {
|
||||
professionalCategory = recommendMajorDTO.getMajorType();
|
||||
if ("高职高专".equals(recommendMajorDTO.getBatch())) {
|
||||
zhuanService.calculateEnrollProbability(recommendMajorDTO,userScore);
|
||||
} else {
|
||||
//判断 专业类别
|
||||
if (YxConstant.betaMajorTypeList.contains(professionalCategory)) {
|
||||
//如果当前专业是(美术设计类,书法类,体育类)
|
||||
//不需要换算为往年分数
|
||||
betaRecommendMajorListSetEnrollProbability(recommendMajorDTOList, userScore);
|
||||
} else if ("音乐类".equals(professionalCategory)) {
|
||||
//音乐类的
|
||||
musicService.musicRecommendMajorListSetEnrollProbability(recommendMajorDTOList, userScore);
|
||||
} else if ("表演类".equals(professionalCategory)) {
|
||||
biaoyanService.biaoyanRecommendMajorListSetEnrollProbability(recommendMajorDTOList, userScore);
|
||||
} else if ("舞蹈类".equals(professionalCategory)) {
|
||||
wuDaoService.wudaoRecommendMajorListSetEnrollProbability(recommendMajorDTOList, userScore);
|
||||
} else if ("播音与主持类".equals(professionalCategory)) {
|
||||
boYinService.boYinRecommendMajorListSetEnrollProbability(recommendMajorDTOList, userScore);
|
||||
}
|
||||
}
|
||||
String professionalCategory = userScore.getProfessionalCategory();
|
||||
if ("表演类".equals(professionalCategory)) {
|
||||
biaoyanService.biaoyanRecommendMajorListSetEnrollProbability(recommendMajorDTOList, userScore);
|
||||
} else if ("音乐类".equals(professionalCategory)) {
|
||||
//音乐类的
|
||||
musicService.musicRecommendMajorListSetEnrollProbability(recommendMajorDTOList, userScore);
|
||||
} else if ("舞蹈类".equals(professionalCategory)) {
|
||||
wuDaoService.wudaoRecommendMajorListSetEnrollProbability(recommendMajorDTOList, userScore);
|
||||
} else if ("播音与主持类".equals(professionalCategory)) {
|
||||
boYinService.boYinRecommendMajorListSetEnrollProbability(recommendMajorDTOList, userScore);
|
||||
} else {
|
||||
betaRecommendMajorListSetEnrollProbability(recommendMajorDTOList, userScore);
|
||||
}
|
||||
//zhuanService.zhuanRecommendMajorListSetEnrollProbability(recommendMajorDTOList,userScore);
|
||||
/*if ("高职高专".equals(batch)) {
|
||||
|
||||
} else {
|
||||
//判断 专业类别
|
||||
if (YxConstant.betaMajorTypeList.contains(professionalCategory)) {
|
||||
//如果当前专业是(美术设计类,书法类,体育类)
|
||||
//不需要换算为往年分数
|
||||
betaRecommendMajorListSetEnrollProbability(recommendMajorDTOList, userScore);
|
||||
} else if ("音乐类".equals(professionalCategory)) {
|
||||
//音乐类的
|
||||
musicService.musicRecommendMajorListSetEnrollProbability(recommendMajorDTOList, userScore);
|
||||
} else if ("表演类".equals(professionalCategory)) {
|
||||
biaoyanService.biaoyanRecommendMajorListSetEnrollProbability(recommendMajorDTOList, userScore);
|
||||
} else if ("舞蹈类".equals(professionalCategory)) {
|
||||
wuDaoService.wudaoRecommendMajorListSetEnrollProbability(recommendMajorDTOList, userScore);
|
||||
} else if ("播音与主持类".equals(professionalCategory)) {
|
||||
boYinService.boYinRecommendMajorListSetEnrollProbability(recommendMajorDTOList, userScore);
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
/**
|
||||
* 美术与设计类,书法类,体育类 按这个走 获取录取率
|
||||
*/
|
||||
private void betaRecommendMajorListSetEnrollProbability(List<RecommendMajorDTO> recommendMajorList, YxUserScore activeCurrentUserScore) {
|
||||
try {
|
||||
long startTime = new Date().getTime();
|
||||
//专业类别
|
||||
String professionalCategory = activeCurrentUserScore.getProfessionalCategory();
|
||||
String cognitioPolyclinic = activeCurrentUserScore.getCognitioPolyclinic();
|
||||
String rulesEnrollProbability = null;
|
||||
String probabilityOperator = null;
|
||||
String majorType = null;//专业类别
|
||||
String majorTypeChild = null;//专业类别子项
|
||||
String mainSubjects = null;//主考科目
|
||||
String nowBatch = activeCurrentUserScore.getBatch();
|
||||
BigDecimal studentScore = null;//学生折合分
|
||||
BigDecimal culturalScore = activeCurrentUserScore.getCulturalScore();//学生的文化分
|
||||
BigDecimal professionalScore = activeCurrentUserScore.getProfessionalScore();//学生的专业分
|
||||
BigDecimal professionalScore2 = null;
|
||||
BigDecimal nowYearDiff = null;//当前年分差
|
||||
YxHistoryScoreControlLine yxHistoryScoreControlLine = yxHistoryScoreControlLineService.getByProfessionalCategoryOfYear(Integer.parseInt(YxConstant.historyControlLineYear), professionalCategory, activeCurrentUserScore.getCognitioPolyclinic(), activeCurrentUserScore.getBatch());
|
||||
BigDecimal culturalControlLine = yxHistoryScoreControlLine.getCulturalScore();//文化分省控线
|
||||
BigDecimal specialControlLine = yxHistoryScoreControlLine.getSpecialScore();//专业分省控线
|
||||
BigDecimal nowYearProvincialControlLine = null;//当前年省控线
|
||||
BigDecimal historyThreeYearDiff = null;//近三年平均差值
|
||||
BigDecimal enrollProbability = null;//录取率
|
||||
Map<String, Object> differenceMap = null;
|
||||
List<YxHistoryMajorEnroll> historyMajorEnrollList = null;//历年录取信息
|
||||
|
||||
int index = 0;
|
||||
if (CollectionUtils.isNotEmpty(recommendMajorList)) {
|
||||
//遍历专业列表
|
||||
for (RecommendMajorDTO recommendMajorDTO : recommendMajorList) {
|
||||
rulesEnrollProbability = recommendMajorDTO.getRulesEnrollProbability();
|
||||
//专业类别
|
||||
//majorType = recommendMajorDTO.getMajorType();
|
||||
//取出往年的分数信息, 算出 三年平均差值
|
||||
historyMajorEnrollList = recommendMajorDTO.getHistoryMajorEnrollList();
|
||||
probabilityOperator = recommendMajorDTO.getProbabilityOperator();
|
||||
//没有计算方式 跳过
|
||||
if (StringUtils.isBlank(rulesEnrollProbability)) {
|
||||
continue;
|
||||
}
|
||||
//没有往年录取分数线信息
|
||||
if (CollectionUtils.isEmpty(historyMajorEnrollList) || !(ScoreUtil.hasComputeEnrollProbabilityPermissions(nowBatch, recommendMajorDTO.getBatch()))) {
|
||||
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
|
||||
continue;
|
||||
}
|
||||
|
||||
//不是体育类的专业,如果是文过专排,并且没有录取计算运算符时,文过专排是文*0+专*1,专过文排是文*1+专*0
|
||||
if ("文过专排".equals(rulesEnrollProbability) && StringUtils.isBlank(probabilityOperator)) {
|
||||
probabilityOperator = "文*0+专*1";
|
||||
} else if ("专过文排".equals(rulesEnrollProbability) && StringUtils.isBlank(probabilityOperator)) {
|
||||
probabilityOperator = "文*1+专*0";
|
||||
}
|
||||
if (StringUtils.isBlank(probabilityOperator)) {
|
||||
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
|
||||
continue;
|
||||
}
|
||||
//判断其他录取要求
|
||||
if (!ScoreUtil.otherScoreJudge(professionalScore, activeCurrentUserScore, recommendMajorDTO)) {
|
||||
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
|
||||
continue;
|
||||
}
|
||||
//判断录取方式,分数是否过省控线
|
||||
if (!ScoreUtil.crossingControlLine(rulesEnrollProbability, culturalScore, professionalScore, culturalControlLine, specialControlLine)) {
|
||||
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
|
||||
continue;
|
||||
}
|
||||
|
||||
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), activeCurrentUserScore.getProfessionalScore(), recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
|
||||
recommendMajorDTO.setStudentConvertedScore(studentScore);
|
||||
recommendMajorDTO.setStudentScore(studentScore);
|
||||
|
||||
|
||||
//录取方式计算
|
||||
if ("文过专排主科".equals(rulesEnrollProbability)) {
|
||||
if (CollectionUtils.isEmpty(historyMajorEnrollList)) {
|
||||
/**
|
||||
* 美术与设计类,书法类,体育类 按这个走 获取录取率
|
||||
*/
|
||||
private void betaRecommendMajorListSetEnrollProbability(List<RecommendMajorDTO> recommendMajorList, YxUserScore activeCurrentUserScore) {
|
||||
try {
|
||||
long startTime = new Date().getTime();
|
||||
//专业类别
|
||||
String professionalCategory = activeCurrentUserScore.getProfessionalCategory();
|
||||
String rulesEnrollProbability = null;
|
||||
String probabilityOperator = null;
|
||||
String nowBatch = activeCurrentUserScore.getBatch();
|
||||
BigDecimal studentScore = null;//学生折合分
|
||||
BigDecimal culturalScore = activeCurrentUserScore.getCulturalScore();//学生的文化分
|
||||
BigDecimal professionalScore = activeCurrentUserScore.getProfessionalScore();//学生的专业分
|
||||
BigDecimal professionalScore2 = null;
|
||||
BigDecimal nowYearDiff = null;//当前年分差
|
||||
Map<String, YxHistoryScoreControlLine> historyScoreControlLineMap = yxHistoryScoreControlLineService.mapsBatchByProfessionalCategoryOfYear(Integer.parseInt(YxConstant.historyControlLineYear), professionalCategory, activeCurrentUserScore.getCognitioPolyclinic());
|
||||
BigDecimal culturalControlLine = null;//文化分省控线
|
||||
BigDecimal specialControlLine = null;//专业分省控线
|
||||
BigDecimal nowYearProvincialControlLine = null;//当前年省控线
|
||||
BigDecimal historyThreeYearDiff = null;//近三年平均差值
|
||||
BigDecimal enrollProbability = null;//录取率
|
||||
Map<String, Object> differenceMap = null;
|
||||
List<YxHistoryMajorEnroll> historyMajorEnrollList = null;//历年录取信息
|
||||
int index = 0;
|
||||
if (CollectionUtils.isNotEmpty(recommendMajorList)) {
|
||||
//遍历专业列表
|
||||
for (RecommendMajorDTO recommendMajorDTO : recommendMajorList) {
|
||||
rulesEnrollProbability = recommendMajorDTO.getRulesEnrollProbability();
|
||||
//取出往年的分数信息, 算出 三年平均差值
|
||||
historyMajorEnrollList = recommendMajorDTO.getHistoryMajorEnrollList();
|
||||
probabilityOperator = recommendMajorDTO.getProbabilityOperator();
|
||||
culturalControlLine = historyScoreControlLineMap.get(recommendMajorDTO.getBatch()).getCulturalScore();
|
||||
specialControlLine = historyScoreControlLineMap.get(recommendMajorDTO.getBatch()).getSpecialScore();
|
||||
//没有计算方式 跳过
|
||||
if (StringUtils.isBlank(rulesEnrollProbability)) {
|
||||
continue;
|
||||
}
|
||||
//没有往年录取分数线信息
|
||||
if (CollectionUtils.isEmpty(historyMajorEnrollList) || ! (ScoreUtil.hasComputeEnrollProbabilityPermissions(nowBatch, recommendMajorDTO.getBatch()))) {
|
||||
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
|
||||
continue;
|
||||
} else {
|
||||
YxHistoryMajorEnroll yxHistoryMajorEnroll = historyMajorEnrollList.get(0);
|
||||
BigDecimal admissionLine = yxHistoryMajorEnroll.getAdmissionLine();
|
||||
enrollProbability = studentScore.multiply(admissionLine).multiply(YxConstant.bigDecimal075);
|
||||
if (studentScore.compareTo(admissionLine) < 0) {
|
||||
//如果当前主项成绩<近一年的录取分数,录取概率*0.5
|
||||
enrollProbability = enrollProbability.multiply(YxConstant.bigDecimal05);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
nowYearProvincialControlLine = ScoreUtil.covertIntoControlLine(rulesEnrollProbability, culturalControlLine, specialControlLine, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
|
||||
if (nowYearProvincialControlLine == null) {
|
||||
continue;
|
||||
}
|
||||
differenceMap = ScoreUtil.computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability(rulesEnrollProbability, historyMajorEnrollList);
|
||||
historyThreeYearDiff = (BigDecimal) differenceMap.get("scoreDifference");
|
||||
//historyThreeYearDiff = sum.divide(new BigDecimal(size), 4, RoundingMode.HALF_UP);
|
||||
nowYearDiff = studentScore.subtract(nowYearProvincialControlLine);
|
||||
if (historyThreeYearDiff == null || historyThreeYearDiff.doubleValue() == 0) {
|
||||
continue;
|
||||
}
|
||||
enrollProbability = nowYearDiff.divide(historyThreeYearDiff, 4, RoundingMode.HALF_UP).multiply(YxConstant.bigDecimal100);
|
||||
}
|
||||
|
||||
//录取率*0.75
|
||||
enrollProbability = enrollProbability.multiply(YxConstant.bigDecimal075);
|
||||
if (enrollProbability.compareTo(YxConstant.bigDecimal150) > 0) {
|
||||
enrollProbability = YxConstant.bigDecimal95x;
|
||||
} else if (enrollProbability.compareTo(YxConstant.bigDecimal100) > 0) {
|
||||
enrollProbability = YxConstant.bigDecimal85x;
|
||||
} else if (enrollProbability.compareTo(YxConstant.bigDecimal0) <= 0) {
|
||||
enrollProbability = YxConstant.bigDecimal0;
|
||||
//不是体育类的专业,如果是文过专排,并且没有录取计算运算符时,文过专排是文*0+专*1,专过文排是文*1+专*0
|
||||
if ("文过专排".equals(rulesEnrollProbability) && StringUtils.isBlank(probabilityOperator)) {
|
||||
probabilityOperator = "文*0+专*1";
|
||||
} else if ("专过文排".equals(rulesEnrollProbability) && StringUtils.isBlank(probabilityOperator)) {
|
||||
probabilityOperator = "文*1+专*0";
|
||||
}
|
||||
if (StringUtils.isBlank(probabilityOperator)) {
|
||||
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
|
||||
continue;
|
||||
}
|
||||
//判断其他录取要求
|
||||
if(!ScoreUtil.otherScoreJudge(professionalScore,activeCurrentUserScore,recommendMajorDTO)){
|
||||
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
|
||||
continue;
|
||||
}
|
||||
//判断录取方式,分数是否过省控线
|
||||
if (!ScoreUtil.crossingControlLine(rulesEnrollProbability, culturalScore, professionalScore, culturalControlLine, specialControlLine)) {
|
||||
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
|
||||
continue;
|
||||
}
|
||||
|
||||
studentScore = ScoreUtil.convertIntoScore(rulesEnrollProbability, activeCurrentUserScore.getCulturalScore(), activeCurrentUserScore.getProfessionalScore(), recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
|
||||
recommendMajorDTO.setStudentConvertedScore(studentScore);
|
||||
recommendMajorDTO.setStudentScore(studentScore);
|
||||
|
||||
|
||||
//录取方式计算
|
||||
if (rulesEnrollProbability.equals("文过专排主科")) {
|
||||
if (CollectionUtils.isEmpty(historyMajorEnrollList)) {
|
||||
recommendMajorDTO.setEnrollProbability(YxConstant.bigDecimal0);
|
||||
continue;
|
||||
} else {
|
||||
YxHistoryMajorEnroll yxHistoryMajorEnroll = historyMajorEnrollList.get(0);
|
||||
BigDecimal admissionLine = yxHistoryMajorEnroll.getAdmissionLine();
|
||||
enrollProbability = studentScore.multiply(admissionLine).multiply(YxConstant.bigDecimal075);
|
||||
if (studentScore.compareTo(admissionLine) < 0) {
|
||||
//如果当前主项成绩<近一年的录取分数,录取概率*0.5
|
||||
enrollProbability = enrollProbability.multiply(YxConstant.bigDecimal05);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
nowYearProvincialControlLine = ScoreUtil.covertIntoControlLine(rulesEnrollProbability, culturalControlLine, specialControlLine, recommendMajorDTO.getFirstLevelDiscipline(), probabilityOperator);
|
||||
if (nowYearProvincialControlLine == null) {
|
||||
continue;
|
||||
}
|
||||
differenceMap = ScoreUtil.computeHistoryMajorEnrollScoreLineDifferenceWithRulesEnrollProbability(rulesEnrollProbability, historyMajorEnrollList);
|
||||
historyThreeYearDiff = (BigDecimal) differenceMap.get("scoreDifference");
|
||||
//historyThreeYearDiff = sum.divide(new BigDecimal(size), 4, RoundingMode.HALF_UP);
|
||||
nowYearDiff = studentScore.subtract(nowYearProvincialControlLine);
|
||||
if (historyThreeYearDiff == null || historyThreeYearDiff.doubleValue() == 0) {
|
||||
continue;
|
||||
}
|
||||
enrollProbability = nowYearDiff.divide(historyThreeYearDiff, 4, RoundingMode.HALF_UP).multiply(YxConstant.bigDecimal100);
|
||||
}
|
||||
|
||||
//录取率*0.75
|
||||
enrollProbability = enrollProbability.multiply(YxConstant.bigDecimal075);
|
||||
if (enrollProbability.compareTo(YxConstant.bigDecimal150) > 0) {
|
||||
enrollProbability = YxConstant.bigDecimal95x;
|
||||
} else if (enrollProbability.compareTo(YxConstant.bigDecimal100) > 0) {
|
||||
enrollProbability = YxConstant.bigDecimal85x;
|
||||
} else if (enrollProbability.compareTo(YxConstant.bigDecimal0) <= 0) {
|
||||
enrollProbability = YxConstant.bigDecimal0;
|
||||
}
|
||||
recommendMajorDTO.setEnrollProbability(enrollProbability);
|
||||
recommendMajorDTO.setRulesEnrollProbability(ScoreUtil.replaceLastZeroChar(rulesEnrollProbability));
|
||||
recommendMajorDTO.setProbabilityOperator(ScoreUtil.replaceLastZeroChar(probabilityOperator));
|
||||
//==============================================
|
||||
}
|
||||
recommendMajorDTO.setEnrollProbability(enrollProbability);
|
||||
recommendMajorDTO.setRulesEnrollProbability(ScoreUtil.replaceLastZeroChar(rulesEnrollProbability));
|
||||
recommendMajorDTO.setProbabilityOperator(ScoreUtil.replaceLastZeroChar(probabilityOperator));
|
||||
//==============================================
|
||||
}
|
||||
long endTime = new Date().getTime();
|
||||
log.warn("用时:"+(endTime-startTime)+"毫秒");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
long endTime = new Date().getTime();
|
||||
log.warn("用时:" + (endTime - startTime) + "毫秒");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,12 @@
|
|||
package org.jeecg.modules.yx.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.jeecg.modules.art.dto.ArtRecommendMajorBaseDTO;
|
||||
import org.jeecg.modules.art.dto.RecommendMajorDTO;
|
||||
import org.jeecg.modules.yx.constant.YxConstant;
|
||||
import org.jeecg.modules.yx.dto.VolunteerRecordDTO;
|
||||
import org.jeecg.modules.yx.entity.YxHistoryMajorEnroll;
|
||||
import org.jeecg.modules.yx.mapper.YxHistoryMajorEnrollMapper;
|
||||
import org.jeecg.modules.yx.service.IYxHistoryMajorEnrollService;
|
||||
|
|
@ -9,9 +14,8 @@ import org.springframework.stereotype.Service;
|
|||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Description: 历年录取数据表
|
||||
|
|
@ -53,4 +57,103 @@ public class YxHistoryMajorEnrollServiceImpl extends ServiceImpl<YxHistoryMajorE
|
|||
}
|
||||
return dataMaps;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void recommendMajorDTOListSetHistoryInfo(List<RecommendMajorDTO> recommendMajorDtoList){
|
||||
if (CollectionUtils.isNotEmpty(recommendMajorDtoList)) {
|
||||
String majorType = recommendMajorDtoList.get(0).getMajorType();
|
||||
String category = recommendMajorDtoList.get(0).getCategory();
|
||||
Set<String> majorNameSet = recommendMajorDtoList.stream().map(RecommendMajorDTO::getMajorName).collect(Collectors.toSet());
|
||||
Set<String> schoolCodeSet = recommendMajorDtoList.stream().map(RecommendMajorDTO::getSchoolCode).collect(Collectors.toSet());
|
||||
//获取历年的招生计划
|
||||
LambdaQueryWrapper<YxHistoryMajorEnroll> hmeWrapper = new LambdaQueryWrapper<>();
|
||||
hmeWrapper.in(YxHistoryMajorEnroll::getYear, YxConstant.oldYearList);
|
||||
hmeWrapper.in(YxHistoryMajorEnroll::getMajorName, majorNameSet);
|
||||
hmeWrapper.in(YxHistoryMajorEnroll::getSchoolCode,schoolCodeSet);
|
||||
hmeWrapper.eq(YxHistoryMajorEnroll::getCategory, category);//文科/理科
|
||||
hmeWrapper.eq(YxHistoryMajorEnroll::getMajorType,majorType);
|
||||
hmeWrapper.ne(YxHistoryMajorEnroll::getAdmissionLine,0);
|
||||
hmeWrapper.isNotNull(YxHistoryMajorEnroll::getRulesEnrollProbability);
|
||||
hmeWrapper.orderByDesc(YxHistoryMajorEnroll::getYear);
|
||||
List<YxHistoryMajorEnroll> yxHistoryMajorEnrollList = this.list(hmeWrapper);
|
||||
//获取院校信息
|
||||
String a_ = "_";
|
||||
String key = null;
|
||||
//将历年计划 组合成map对象
|
||||
Map<String, YxHistoryMajorEnroll> majorEnrollMap = new LinkedHashMap<>();
|
||||
for (YxHistoryMajorEnroll h : yxHistoryMajorEnrollList) {
|
||||
key = h.getYear() + a_ + h.getSchoolCode() + a_ + h.getMajorName() + a_ + h.getCategory() + a_ + h.getBatch();
|
||||
majorEnrollMap.put(key, h);
|
||||
}
|
||||
//遍历,获取历年数据 添加到专业 的历年信息中
|
||||
Map<String, YxHistoryMajorEnroll> yearMajorEnrollMap;
|
||||
YxHistoryMajorEnroll yxHistoryMajorEnroll;
|
||||
List<YxHistoryMajorEnroll> historyMajorEnrollList=null;
|
||||
for (RecommendMajorDTO recommendMajorDTO : recommendMajorDtoList) {
|
||||
historyMajorEnrollList = new ArrayList<>();
|
||||
yearMajorEnrollMap = new LinkedHashMap<>();
|
||||
//2022年
|
||||
for (String year : YxConstant.oldYearList) {
|
||||
key = recommendMajorDTO.getSchoolCode() + a_ + recommendMajorDTO.getMajorName() + a_ + recommendMajorDTO.getCategory() + a_ + recommendMajorDTO.getBatch();
|
||||
yxHistoryMajorEnroll = majorEnrollMap.get(year + a_ + key);
|
||||
if (yxHistoryMajorEnroll != null) {
|
||||
yearMajorEnrollMap.put(yxHistoryMajorEnroll.getYear(), yxHistoryMajorEnroll);
|
||||
historyMajorEnrollList.add(yxHistoryMajorEnroll);
|
||||
}
|
||||
}
|
||||
recommendMajorDTO.setHistoryMajorEnrollMap(yearMajorEnrollMap);
|
||||
recommendMajorDTO.setHistoryMajorEnrollList(historyMajorEnrollList);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void volunteerRecordDTOListSetHistoryInfo(List<VolunteerRecordDTO> recordDtoList) {
|
||||
if (CollectionUtils.isNotEmpty(recordDtoList)) {
|
||||
String majorType = recordDtoList.get(0).getMajorType();
|
||||
String category = recordDtoList.get(0).getCategory();
|
||||
Set<String> majorNameSet = recordDtoList.stream().map(RecommendMajorDTO::getMajorName).collect(Collectors.toSet());
|
||||
Set<String> schoolCodeSet = recordDtoList.stream().map(RecommendMajorDTO::getSchoolCode).collect(Collectors.toSet());
|
||||
//获取历年的招生计划
|
||||
LambdaQueryWrapper<YxHistoryMajorEnroll> hmeWrapper = new LambdaQueryWrapper<>();
|
||||
hmeWrapper.in(YxHistoryMajorEnroll::getYear, YxConstant.oldYearList);
|
||||
hmeWrapper.in(YxHistoryMajorEnroll::getMajorName, majorNameSet);
|
||||
hmeWrapper.in(YxHistoryMajorEnroll::getSchoolCode,schoolCodeSet);
|
||||
hmeWrapper.eq(YxHistoryMajorEnroll::getCategory, category);//文科/理科
|
||||
hmeWrapper.eq(YxHistoryMajorEnroll::getMajorType,majorType);
|
||||
hmeWrapper.ne(YxHistoryMajorEnroll::getAdmissionLine,0);
|
||||
hmeWrapper.isNotNull(YxHistoryMajorEnroll::getRulesEnrollProbability);
|
||||
hmeWrapper.orderByDesc(YxHistoryMajorEnroll::getYear);
|
||||
List<YxHistoryMajorEnroll> yxHistoryMajorEnrollList = this.list(hmeWrapper);
|
||||
//获取院校信息
|
||||
String a_ = "_";
|
||||
String key = null;
|
||||
//将历年计划 组合成map对象
|
||||
Map<String, YxHistoryMajorEnroll> majorEnrollMap = new LinkedHashMap<>();
|
||||
for (YxHistoryMajorEnroll h : yxHistoryMajorEnrollList) {
|
||||
key = h.getYear() + a_ + h.getSchoolCode() + a_ + h.getMajorName() + a_ + h.getCategory() + a_ + h.getBatch();
|
||||
majorEnrollMap.put(key, h);
|
||||
}
|
||||
//遍历,获取历年数据 添加到专业 的历年信息中
|
||||
Map<String, YxHistoryMajorEnroll> yearMajorEnrollMap;
|
||||
YxHistoryMajorEnroll yxHistoryMajorEnroll;
|
||||
List<YxHistoryMajorEnroll> historyMajorEnrollList=null;
|
||||
for (VolunteerRecordDTO recommendMajorDTO : recordDtoList) {
|
||||
historyMajorEnrollList = new ArrayList<>();
|
||||
yearMajorEnrollMap = new LinkedHashMap<>();
|
||||
//2022年
|
||||
for (String year : YxConstant.oldYearList) {
|
||||
key = recommendMajorDTO.getSchoolCode() + a_ + recommendMajorDTO.getMajorName() + a_ + recommendMajorDTO.getCategory() + a_ + recommendMajorDTO.getBatch();
|
||||
yxHistoryMajorEnroll = majorEnrollMap.get(year + a_ + key);
|
||||
if (yxHistoryMajorEnroll != null) {
|
||||
yearMajorEnrollMap.put(yxHistoryMajorEnroll.getYear(), yxHistoryMajorEnroll);
|
||||
historyMajorEnrollList.add(yxHistoryMajorEnroll);
|
||||
}
|
||||
}
|
||||
recommendMajorDTO.setHistoryMajorEnrollMap(yearMajorEnrollMap);
|
||||
recommendMajorDTO.setHistoryMajorEnrollList(historyMajorEnrollList);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -175,7 +175,6 @@ public class YxSchoolMajorServiceImpl extends ServiceImpl<YxSchoolMajorMapper, Y
|
|||
historyMajorEnrollList.add(yxHistoryMajorEnroll);
|
||||
}
|
||||
}
|
||||
|
||||
recommendMajorDTO.setHistoryMajorEnrollMap(yearMajorEnrollMap);
|
||||
recommendMajorDTO.setHistoryMajorEnrollList(historyMajorEnrollList);
|
||||
|
||||
|
|
@ -264,22 +263,26 @@ public class YxSchoolMajorServiceImpl extends ServiceImpl<YxSchoolMajorMapper, Y
|
|||
String paneName = queryRecommendMajorVO.getPaneName();
|
||||
|
||||
////计算录取概率
|
||||
if (YxConstant.betaMajorTypeList.contains(professionalCategory)) {
|
||||
if ("音乐类".equals(professionalCategory)) {
|
||||
//音乐类的
|
||||
musicService.musicRecommendMajorListSetEnrollProbability(recommendMajorList, activeCurrentUserScore);
|
||||
} else if ("表演类".equals(professionalCategory)) {
|
||||
biaoyanService.biaoyanRecommendMajorListSetEnrollProbability(recommendMajorList, activeCurrentUserScore);
|
||||
} else if ("舞蹈类".equals(professionalCategory)) {
|
||||
wuDaoService.wudaoRecommendMajorListSetEnrollProbability(recommendMajorList, activeCurrentUserScore);
|
||||
} else if ("播音与主持类".equals(professionalCategory)) {
|
||||
boYinService.boYinRecommendMajorListSetEnrollProbability(recommendMajorList, activeCurrentUserScore);
|
||||
}else{
|
||||
//如果当前专业是(美术设计类,书法类,体育类)
|
||||
betaRecommendMajorListSetEnrollProbability(recommendMajorList, activeCurrentUserScore);
|
||||
}
|
||||
|
||||
/*if (YxConstant.betaMajorTypeList.contains(professionalCategory)) {
|
||||
//如果当前专业是(美术设计类,书法类,体育类)
|
||||
//不需要换算为往年分数
|
||||
betaRecommendMajorListSetEnrollProbability(recommendMajorList, activeCurrentUserScore);
|
||||
} else {
|
||||
if ("音乐类".equals(professionalCategory)) {
|
||||
//音乐类的
|
||||
musicService.musicRecommendMajorListSetEnrollProbability(recommendMajorList, activeCurrentUserScore);
|
||||
} else if ("表演类".equals(professionalCategory)) {
|
||||
biaoyanService.biaoyanRecommendMajorListSetEnrollProbability(recommendMajorList, activeCurrentUserScore);
|
||||
} else if ("舞蹈类".equals(professionalCategory)) {
|
||||
wuDaoService.wudaoRecommendMajorListSetEnrollProbability(recommendMajorList, activeCurrentUserScore);
|
||||
} else if ("播音与主持类".equals(professionalCategory)) {
|
||||
boYinService.boYinRecommendMajorListSetEnrollProbability(recommendMajorList, activeCurrentUserScore);
|
||||
}
|
||||
}
|
||||
|
||||
}*/
|
||||
|
||||
/*if ("高职高专".equals(queryRecommendMajorVO.getBatch())) {
|
||||
zhuanService.zhuanRecommendMajorListSetEnrollProbability(recommendMajorList, activeCurrentUserScore);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package org.jeecg.modules.yx.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
|
|
@ -130,4 +131,24 @@ public class YxUserScoreServiceImpl extends ServiceImpl<YxUserScoreMapper, YxUse
|
|||
//创建一个志愿
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void closeStatus(String id) {
|
||||
LambdaUpdateWrapper<YxUserScore> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
|
||||
lambdaUpdateWrapper.eq(YxUserScore::getId,id);
|
||||
lambdaUpdateWrapper.set(YxUserScore::getState,"0");
|
||||
this.update(lambdaUpdateWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public YxUserScore copyById(String id) {
|
||||
YxUserScore userScore = getById(id);
|
||||
if (userScore==null) {
|
||||
return null;
|
||||
}
|
||||
userScore.setId(null);
|
||||
userScore.setState("1");
|
||||
this.save(userScore);
|
||||
return userScore;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,6 +45,11 @@ public class YxVolunteerRecordServiceImpl extends ServiceImpl<YxVolunteerRecordM
|
|||
return baseMapper.listDTOByVolunteerId(volunteerId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<VolunteerRecordDTO> listDTOByVolunteerId(String scoreId,String calculationTableName, String volunteerId) {
|
||||
return baseMapper.listDTOByVolunteerId2(scoreId,calculationTableName,volunteerId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean artVolunteerSave(SaveVolunteerVO saveVolunteerVO) {
|
||||
YxVolunteerRecord yxVolunteerRecord=new YxVolunteerRecord();
|
||||
|
|
@ -55,7 +60,7 @@ public class YxVolunteerRecordServiceImpl extends ServiceImpl<YxVolunteerRecordM
|
|||
String enrollmentCode = yxVolunteerRecord.getEnrollmentCode();//招生代码
|
||||
Integer indexs = yxVolunteerRecord.getIndexs();
|
||||
//获取专业的批次 (根据学校代码+专业代码+招生代码)
|
||||
LambdaQueryWrapper<YxSchoolMajor> smQueryWrapper = new LambdaQueryWrapper<YxSchoolMajor>();
|
||||
LambdaQueryWrapper<YxSchoolMajor> smQueryWrapper = new LambdaQueryWrapper<>();
|
||||
smQueryWrapper.eq(YxSchoolMajor::getSchoolCode, schoolCode);
|
||||
smQueryWrapper.eq(YxSchoolMajor::getMajorCode, majorCode);
|
||||
smQueryWrapper.eq(YxSchoolMajor::getEnrollmentCode,enrollmentCode);
|
||||
|
|
|
|||
|
|
@ -45,6 +45,8 @@ public class YxVolunteerServiceImpl extends ServiceImpl<YxVolunteerMapper, YxVol
|
|||
@Resource
|
||||
private IYxUserScoreService yxUserScoreService;
|
||||
@Resource
|
||||
private IYxCalculationMajorService yxCalculationMajorService;
|
||||
@Resource
|
||||
private IYxVolunteerRecordService yxVolunteerRecordService;
|
||||
@Resource
|
||||
private IYxHistoryMajorEnrollService yxHistoryMajorEnrollService;
|
||||
|
|
@ -73,8 +75,7 @@ public class YxVolunteerServiceImpl extends ServiceImpl<YxVolunteerMapper, YxVol
|
|||
BigDecimal culturalScore = userScore.getCulturalScore();//文化成绩
|
||||
BigDecimal professionalScore = userScore.getProfessionalScore();//专业成绩
|
||||
//获取已填报的志愿单
|
||||
List<VolunteerRecordDTO> recordDTOList = yxVolunteerRecordService.listDTOByVolunteerId(volunteer.getId());
|
||||
|
||||
List<VolunteerRecordDTO> recordDTOList = yxVolunteerRecordService.listDTOByVolunteerId(userScore.getId(),userScore.getCalculationTableName(),volunteer.getId());
|
||||
//临时变量
|
||||
String schoolCode;
|
||||
String majorName;
|
||||
|
|
@ -156,49 +157,9 @@ public class YxVolunteerServiceImpl extends ServiceImpl<YxVolunteerMapper, YxVol
|
|||
volunteerDTO.setUserScoreInfo(userScore);
|
||||
String cognitioPolyclinic = userScore.getCognitioPolyclinic();
|
||||
//获取已填报的志愿单
|
||||
List<VolunteerRecordDTO> recordDTOList = yxVolunteerRecordService.listDTOByVolunteerId(volunteer.getId());
|
||||
List<VolunteerRecordDTO> recordDTOList = yxVolunteerRecordService.listDTOByVolunteerId(userScore.getId(),userScore.getCalculationTableName(),volunteer.getId());
|
||||
//获取上一年的招生人数
|
||||
List<YxHistoryMajorEnroll> historyMajorEnrollList = null;
|
||||
//获取历年的招生计划
|
||||
LambdaQueryWrapper<YxHistoryMajorEnroll> hmeWrapper = new LambdaQueryWrapper<>();
|
||||
Set<String> majorNameList = recordDTOList.stream().map(VolunteerRecordDTO::getMajorName).collect(Collectors.toSet());
|
||||
Set<String> schoolCodeList = recordDTOList.stream().map(VolunteerRecordDTO::getSchoolCode).collect(Collectors.toSet());
|
||||
if (CollectionUtils.isNotEmpty(majorNameList)) {
|
||||
hmeWrapper.in(YxHistoryMajorEnroll::getYear, YxConstant.oldYearList);
|
||||
hmeWrapper.eq(YxHistoryMajorEnroll::getCategory, cognitioPolyclinic);//文科/理科
|
||||
hmeWrapper.in(YxHistoryMajorEnroll::getMajorName, majorNameList);
|
||||
hmeWrapper.in(YxHistoryMajorEnroll::getSchoolCode, schoolCodeList);
|
||||
hmeWrapper.orderByDesc(YxHistoryMajorEnroll::getYear);
|
||||
List<YxHistoryMajorEnroll> yxHistoryMajorEnrollList = yxHistoryMajorEnrollService.list(hmeWrapper);
|
||||
//将历年计划 组合成map对象
|
||||
String a_ = "_";
|
||||
String key = null;
|
||||
Map<String, YxHistoryMajorEnroll> majorEnrollMap = new LinkedHashMap<>();
|
||||
for (YxHistoryMajorEnroll h : yxHistoryMajorEnrollList) {
|
||||
key = h.getYear() + a_ + h.getSchoolCode() + a_ + h.getMajorName() + a_ + h.getCategory() + a_ + h.getBatch();
|
||||
majorEnrollMap.put(key, h);
|
||||
}
|
||||
//遍历,获取历年数据 添加到专业 的历年信息中
|
||||
Map<String, YxHistoryMajorEnroll> yearMajorEnrollMap;
|
||||
YxHistoryMajorEnroll yxHistoryMajorEnroll;
|
||||
for (RecommendMajorDTO recommendMajorDTO : recordDTOList) {
|
||||
historyMajorEnrollList = new ArrayList<>();
|
||||
yearMajorEnrollMap = new LinkedHashMap<>();
|
||||
key = recommendMajorDTO.getSchoolCode() + a_ + recommendMajorDTO.getMajorName() + a_ + recommendMajorDTO.getCategory() + a_ + recommendMajorDTO.getBatch();
|
||||
//2022~2020年
|
||||
for (String year : historyYearList) {
|
||||
yxHistoryMajorEnroll = majorEnrollMap.get(year + a_ + key);
|
||||
if (yxHistoryMajorEnroll != null) {
|
||||
yearMajorEnrollMap.put(yxHistoryMajorEnroll.getYear(), yxHistoryMajorEnroll);
|
||||
historyMajorEnrollList.add(yxHistoryMajorEnroll);
|
||||
}
|
||||
}
|
||||
recommendMajorDTO.setHistoryMajorEnrollMap(yearMajorEnrollMap);
|
||||
recommendMajorDTO.setHistoryMajorEnrollList(historyMajorEnrollList);
|
||||
}
|
||||
}
|
||||
//计算录取概率
|
||||
//YxSchoolMajorServiceImpl.volunteerRecordListSetEnrollProbability(recordDTOList, userScore);
|
||||
yxHistoryMajorEnrollService.volunteerRecordDTOListSetHistoryInfo(recordDTOList);
|
||||
//填报志愿明细信息-提前批
|
||||
List<VolunteerRecordDTO> volunteerRecordEarlyAdmissionList = recordDTOList.stream().filter(r -> r.getBatch().equals("提前批")).collect(Collectors.toList());
|
||||
//填报志愿明细信息-本科A段
|
||||
|
|
@ -375,7 +336,6 @@ public class YxVolunteerServiceImpl extends ServiceImpl<YxVolunteerMapper, YxVol
|
|||
@Override
|
||||
public String saveAs(SaveVolunteerVO saveVolunteerVO) {
|
||||
List<SaveVolunteerRecordVO> volunteerRecordList = saveVolunteerVO.getVolunteerRecordList();
|
||||
|
||||
//先保存一个志愿单
|
||||
String volunteerName = saveVolunteerVO.getVolunteerName();
|
||||
long count = count(new LambdaQueryWrapper<YxVolunteer>().eq(YxVolunteer::getVolunteerName, volunteerName).eq(YxVolunteer::getCreateBy, saveVolunteerVO.getCreateBy()));
|
||||
|
|
@ -383,14 +343,25 @@ public class YxVolunteerServiceImpl extends ServiceImpl<YxVolunteerMapper, YxVol
|
|||
throw new JeecgBootException("志愿单名称已存在!请更换");
|
||||
}
|
||||
AssertUtils.notNull(volunteerName, "请输入志愿单名称");
|
||||
String scoreId = saveVolunteerVO.getScoreId();
|
||||
|
||||
//将之前的成绩单状态改为0,再复制一份新的成绩单
|
||||
yxUserScoreService.closeStatus(saveVolunteerVO.getScoreId());
|
||||
YxUserScore newUserScore = yxUserScoreService.copyById(saveVolunteerVO.getScoreId());
|
||||
String scoreId = newUserScore.getId();
|
||||
//复制新的专业结果
|
||||
yxCalculationMajorService.copyNew(saveVolunteerVO.getScoreId(),scoreId, YxConstant.oldCalculationMajorName,YxConstant.newCalculationMajorName);
|
||||
//将之前的志愿单状态改为0
|
||||
LambdaUpdateWrapper<YxVolunteer> yxVolunteerLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
|
||||
yxVolunteerLambdaUpdateWrapper.eq(YxVolunteer::getScoreId,saveVolunteerVO.getScoreId());
|
||||
yxVolunteerLambdaUpdateWrapper.set(YxVolunteer::getState,"0");
|
||||
this.update(yxVolunteerLambdaUpdateWrapper);
|
||||
//创建新的志愿单
|
||||
YxVolunteer yxVolunteer = new YxVolunteer();
|
||||
yxVolunteer.setVolunteerName(volunteerName);
|
||||
yxVolunteer.setScoreId(scoreId);
|
||||
yxVolunteer.setState("1");
|
||||
yxVolunteer.setCreateType("2");//类型 自动生成
|
||||
yxVolunteer.setCreateBy(saveVolunteerVO.getCreateBy());
|
||||
save(yxVolunteer);
|
||||
this.save(yxVolunteer);
|
||||
String volunteerId = yxVolunteer.getId();
|
||||
int tqpIndex = 0, bkaIndex = 0, bkbIndex = 0, bkIndex = 0, gzgzIndex = 0;
|
||||
List<YxVolunteerRecord> yxVolunteerRecordList = new ArrayList<>();
|
||||
|
|
@ -415,19 +386,9 @@ public class YxVolunteerServiceImpl extends ServiceImpl<YxVolunteerMapper, YxVol
|
|||
gzgzIndex++;
|
||||
yxVolunteerRecord.setIndexs(gzgzIndex);
|
||||
}
|
||||
/*yxVolunteerRecord.setBatch(v.getBatch());
|
||||
yxVolunteerRecord.setVolunteerId(volunteerId);
|
||||
yxVolunteerRecord.setCategory(saveVolunteerVO.getCategory());*/
|
||||
yxVolunteerRecordList.add(yxVolunteerRecord);
|
||||
}
|
||||
yxVolunteerRecordService.saveBatch(yxVolunteerRecordList);
|
||||
//获取各批次的明细
|
||||
//List<SaveVolunteerRecordVO> tqpList = volunteerRecordList.stream().filter(v -> "提前批".equals(v.getBatch())).collect(Collectors.toList());
|
||||
//List<SaveVolunteerRecordVO> bkaList = volunteerRecordList.stream().filter(v -> "本科A段".equals(v.getBatch())).collect(Collectors.toList());
|
||||
//List<SaveVolunteerRecordVO> bkbList = volunteerRecordList.stream().filter(v -> "本科B段".equals(v.getBatch())).collect(Collectors.toList());
|
||||
//List<SaveVolunteerRecordVO> bkList = volunteerRecordList.stream().filter(v -> "本科".equals(v.getBatch())).collect(Collectors.toList());
|
||||
//List<SaveVolunteerRecordVO> gzgzList = volunteerRecordList.stream().filter(v -> "高职高专".equals(v.getBatch())).collect(Collectors.toList());
|
||||
|
||||
return volunteerId;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,14 +1,10 @@
|
|||
package org.jeecg.modules.yx.util;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.jeecg.modules.art.dto.RecommendMajorDTO;
|
||||
import org.jeecg.modules.yx.constant.YxConstant;
|
||||
import org.jeecg.modules.yx.dto.ScoreBatchDTO;
|
||||
import org.jeecg.modules.yx.entity.YxHistoryMajorEnroll;
|
||||
import org.jeecg.modules.yx.entity.YxHistoryScoreBatch;
|
||||
import org.jeecg.modules.yx.entity.YxHistoryScoreControlLine;
|
||||
import org.jeecg.modules.yx.entity.YxUserScore;
|
||||
|
||||
|
|
@ -473,19 +469,19 @@ public class ScoreUtil {
|
|||
public static boolean otherScoreJudge(BigDecimal professionalScore, YxUserScore activeCurrentUserScore, RecommendMajorDTO recommendMajorDTO) {
|
||||
if (recommendMajorDTO!=null) {
|
||||
//语文成绩判断
|
||||
if (recommendMajorDTO.getChineseScoreLimitation()!=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().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().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().compareTo(recommendMajorDTO.getProfessionalScoreLimitation())<0) {
|
||||
if (recommendMajorDTO.getProfessionalScoreLimitation()!=null && (activeCurrentUserScore.getProfessionalScore()==null ||activeCurrentUserScore.getProfessionalScore().compareTo(recommendMajorDTO.getProfessionalScoreLimitation())<0)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue