Răsfoiți Sursa

3.4.5 update-20250606 bug修复

xiaofei 2 săptămâni în urmă
părinte
comite
cd4aa46f12

+ 7 - 10
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkServiceImpl.java

@@ -853,27 +853,24 @@ public class MarkServiceImpl implements MarkService {
         List<MarkSubjectiveScore> list = markSubjectiveScoreService.listByStudentId(studentId);
         // list.sort(null);
         for (MarkSubjectiveScore ss : list) {
+            // -1分不参与计算
+            if (SystemConstant.AI_MARK_ERROR_SCORE.equals(ss.getScore())) {
+                aiMarkAbnormal = true;
+                continue;
+            }
             List<MarkSubjectiveScore> mainScoreList = mainScoreMap.get(ss.getMainNumber());
             if (mainScoreList == null) {
                 mainScoreList = new ArrayList<>();
             }
             mainScoreList.add(ss);
             mainScoreMap.put(ss.getMainNumber(), mainScoreList);
-            if (!SystemConstant.AI_MARK_ERROR_SCORE.equals(ss.getScore())) {
-                scoreList.add(new ScoreItem(ss));
-            } else {
-                aiMarkAbnormal = true;
-            }
+            scoreList.add(new ScoreItem(ss));
         }
         // 计算大题分
         for (Integer mainNumber : mainScoreMap.keySet()) {
             List<MarkSubjectiveScore> mainScoreList = mainScoreMap.get(mainNumber);
             BigDecimal mainScore = BigDecimal.ZERO;
             for (MarkSubjectiveScore subjectiveScore : mainScoreList) {
-                // -1分不参与计算
-                if (subjectiveScore.getScore() == SystemConstant.AI_MARK_ERROR_SCORE) {
-                    continue;
-                }
                 mainScore = mainScore.add(BigDecimal.valueOf(subjectiveScore.getScore()));
             }
             for (MarkSubjectiveScore subjectiveScore : mainScoreList) {
@@ -1182,7 +1179,7 @@ public class MarkServiceImpl implements MarkService {
             } else if (questionModel.equals(QuestionModel.MULTI)) {
                 Set<Long> questions = markUserQuestions.stream().map(MarkUserQuestion::getQuestionId).collect(Collectors.toSet());
                 List<MarkQuestion> markQuestionList = markQuestionService.listByIds(questions);
-                questions = markQuestionList.stream().filter(m->m.getPersonTask() && m.getTaskCount() > m.getMarkedCount()).map(MarkQuestion::getId).collect(Collectors.toSet());
+                questions = markQuestionList.stream().filter(m -> m.getPersonTask() && m.getTaskCount() > m.getMarkedCount()).map(MarkQuestion::getId).collect(Collectors.toSet());
                 studentIds = markStudentService.findUnMarked(new Page<>(pageNumber, 20), examId, paperNumber, questions, classNames);
                 if (studentIds.isEmpty()) {
                     break;