Explorar o código

专业组引入的测评问题

mingfu hai 1 semana
pai
achega
c9d3a81c61

+ 16 - 5
ie-admin/src/main/java/com/ruoyi/web/service/VoluntaryService.java

@@ -154,14 +154,20 @@ public class VoluntaryService {
 
     public R<List<VoluntaryDto.AIRenderRule>> getAIRenderRules(VoluntaryDto.AIRenderRequest req) {
         Map cond = new HashMap();
-        cond.put("year", getPlanYear(SecurityUtils.getLoginUser().getUser()));
+        Integer planYear = getPlanYear(SecurityUtils.getLoginUser().getUser());
+        cond.put("year", planYear);
         Set<String> majorCodeSet = null;
+        String majorGroup = null;
         if (ArrayUtils.isNotEmpty(req.getMajorEnrollCodes()) && StringUtils.isNotBlank(req.getMajorEnrollCodes()[0])) {
             List<Long> majorEnrollCodes = Arrays.asList(req.getMajorEnrollCodes()).stream().map(t -> NumberUtils.toLong(t, 0L)).collect(Collectors.toList());
-            majorCodeSet = aMarjorPlanMapper.selectMajorCodesByIds(majorEnrollCodes.toArray(new Long[majorEnrollCodes.size()])).stream().collect(Collectors.toSet());
+            for(AMarjorPlan plan : aMarjorPlanMapper.selectMajorCodesByIds(majorEnrollCodes.toArray(new Long[majorEnrollCodes.size()]), planYear)) {
+                majorGroup = StringUtils.trimToEmpty(plan.getMajorGroup());
+                majorCodeSet = Sets.newHashSet(plan.getMajorCode());
+            }
         }
         if(CollectionUtils.isNotEmpty(majorCodeSet)) {
-            cond.put("majorCodes", majorCodeSet.toArray(new String[majorCodeSet.size()]));
+            cond.put("majorGroup", majorGroup);
+            cond.put("majorGroupCodes", majorCodeSet.toArray(new String[majorCodeSet.size()]));
         } else if (ArrayUtils.isNotEmpty(req.getMajorCodes()) && StringUtils.isNotBlank(req.getMajorCodes()[0])) {
             cond.put("majorCodes", req.getMajorCodes());
         } else if (ArrayUtils.isNotEmpty(req.getMajorTypes()) && StringUtils.isNotBlank(req.getMajorTypes()[0])) {
@@ -576,11 +582,14 @@ public class VoluntaryService {
         AMarjorSubmit lastSubmit = null;
         Boolean typeChange = false;
         VoluntaryDto.FormulaScoreStat formulaScoreStat = new VoluntaryDto.FormulaScoreStat();
+        String needGroup = StringUtils.trimToEmpty(null != currPlan && null != currPlan.getMajorGroup() ? currPlan.getMajorGroup() : "");
         String needMajor = StringUtils.trimToEmpty(null != currPlan ? currPlan.getMajorName() : (null != prof ? prof.getName() : ""));
         String needDirect = StringUtils.trimToEmpty(null != currPlan ? currPlan.getMajorDirection() : "");
         String needMajorDirect = needMajor + needDirect;
         // 判断是否政策变化情况
-        List<AEnrollUniversity> validEuList = enrollUniversityList.stream().filter(t -> t.getMajorNames().contains(needMajor)).collect(Collectors.toList());
+        List<AEnrollUniversity> validEuList = enrollUniversityList.stream()
+                .filter(t -> needGroup.equals(StringUtils.trimToEmpty(t.getMajorGroups())) && t.getMajorNames().contains(needMajor))
+                .collect(Collectors.toList());
         typeChange = CollectionUtils.isNotEmpty(validEuList) && new Integer(1).equals(validEuList.get(0).getTypeChange());
 
         Set<String> existSet = Sets.newHashSet();
@@ -605,7 +614,9 @@ public class VoluntaryService {
             List<AEnrollScore> fEnrollScoreList = Lists.newArrayList();
             String inclMajorDirection = needMajor + "(" + needDirect + ")";
             String exclMajorDirection = needMajor + "(";
-            Map<Boolean, List<AEnrollScore>> majorEnrollScoresMap = scoreList.stream().collect(Collectors.groupingBy(t -> StringUtils.isNotBlank(t.getMajorNames())));
+            Map<Boolean, List<AEnrollScore>> majorEnrollScoresMap = scoreList.stream()
+                    .filter(t -> needGroup.equals(StringUtils.trimToEmpty(t.getMajorGroups())))
+                    .collect(Collectors.groupingBy(t -> StringUtils.isNotBlank(t.getMajorNames())));
 
             List<AEnrollScore> tmpEnrollScoreList = majorEnrollScoresMap.get(Boolean.TRUE);
             AEnrollScore skillEnrollScore = null;