夏文涛 hace 2 años
padre
commit
3d39cada6c

+ 8 - 3
src/main/java/com/template/controller/SmartEvaluateStudentController2.java

@@ -191,7 +191,10 @@ public class SmartEvaluateStudentController2 implements SmartEvaluateStudentCont
         for (SmartTermTemplate stt : smartSubjectTemplate.getExamTypes()) {
         for (SmartTermTemplate stt : smartSubjectTemplate.getExamTypes()) {
             examTypes.add(stt.getId());
             examTypes.add(stt.getId());
         }
         }
-        List<SmartScore> scores = smartScoreService.querySmartScoresByex(smartSubjectTemplate.getTermId(), smartSubjectTemplate.getGradeId(), examTypes);
+
+        List<String> oldExamTypes =Arrays.asList(st.getExamType().split(","));
+
+        List<SmartScore> scores = smartScoreService.querySmartScoresByexs(smartSubjectTemplate.getTermId(), smartSubjectTemplate.getGradeId(), oldExamTypes);
         List<Integer> userIds = scores.stream().map(SmartScore::getUserId).distinct().collect(Collectors.toList());
         List<Integer> userIds = scores.stream().map(SmartScore::getUserId).distinct().collect(Collectors.toList());
         List<SmartEvaluateStudent> students = smartEvaluateStudentService.getEvaluateStudents(userIds, smartSubjectTemplate.getTermId());
         List<SmartEvaluateStudent> students = smartEvaluateStudentService.getEvaluateStudents(userIds, smartSubjectTemplate.getTermId());
         List<SmartEvaluateStudent> updateStudents = new ArrayList<>();
         List<SmartEvaluateStudent> updateStudents = new ArrayList<>();
@@ -203,8 +206,10 @@ public class SmartEvaluateStudentController2 implements SmartEvaluateStudentCont
             if (userScores != null && userScores.size() > 0) {
             if (userScores != null && userScores.size() > 0) {
                 Optional<SmartEvaluateStudent> oStudent = students.stream().filter(e -> e.getTermId().equals(smartSubjectTemplate.getTermId()) && e.getUserId().equals(userId)).findFirst();
                 Optional<SmartEvaluateStudent> oStudent = students.stream().filter(e -> e.getTermId().equals(smartSubjectTemplate.getTermId()) && e.getUserId().equals(userId)).findFirst();
                 for (SmartScore us : userScores) {
                 for (SmartScore us : userScores) {
-                    totalScoreNum = totalScoreNum.add(new BigDecimal(us.getScore()));
-                    scoreNum++;
+                    if(examTypes.contains(us.getExamType())){
+                        totalScoreNum = totalScoreNum.add(new BigDecimal(us.getScore()));
+                        scoreNum++;
+                    }
                 }
                 }
                 if (oStudent != null && oStudent.isPresent()) {
                 if (oStudent != null && oStudent.isPresent()) {
                     oStudent.get().setScoreNum(totalScoreNum.doubleValue());
                     oStudent.get().setScoreNum(totalScoreNum.doubleValue());

+ 1 - 0
src/main/java/com/template/services/SmartScoreService.java

@@ -65,4 +65,5 @@ public interface SmartScoreService extends IService<SmartScore> {
     List<SmartScore> querySmartScoreByIds(List<Integer> ids);
     List<SmartScore> querySmartScoreByIds(List<Integer> ids);
 
 
     List<SmartScore> querySmartScoresByex(Integer semesterId,Integer gradeId, List<Integer> examTypes);
     List<SmartScore> querySmartScoresByex(Integer semesterId,Integer gradeId, List<Integer> examTypes);
+    List<SmartScore> querySmartScoresByexs(Integer semesterId,Integer gradeId, List<String> examTypes);
 }
 }

+ 10 - 0
src/main/java/com/template/services/impl/SmartScoreServiceImpl.java

@@ -175,4 +175,14 @@ public class SmartScoreServiceImpl extends ServiceImpl<SmartScoreMapper, SmartSc
         return scores;
         return scores;
     }
     }
 
 
+    @Override
+    public List<SmartScore> querySmartScoresByexs(Integer semesterId, Integer gradeId, List<String> examTypes) {
+        QueryWrapper<SmartScore> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("semester_id",semesterId);
+        queryWrapper.eq("grade_id",gradeId);
+        queryWrapper.in("exam_type",examTypes);
+        List<SmartScore>  scores = smartScoreMapper.selectList(queryWrapper);
+        return scores;
+    }
+
 }
 }