Jelajahi Sumber

修复三评分组仲裁问题

yin 6 bulan lalu
induk
melakukan
923b976f65

+ 16 - 5
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/Impl/MarkServiceImpl.java

@@ -818,12 +818,12 @@ public class MarkServiceImpl implements MarkService {
             }
         }
         List<Integer> arbitrateIndex = new ArrayList<>();
+        List<ExamQuestion> questionList = questionService.findByExamAndSubjectAndObjectiveAndGroupNumber(
+                group.getExamId(), group.getSubjectCode(), false, group.getNumber());
+        List<ScoreItem> scoreItemList = list.get(0).getMarkerScoreItem();
+        List<ScoreItem> scoreItemList1 = list.get(1).getMarkerScoreItem();
+        List<ScoreItem> scoreItemList2 = list.get(2).getMarkerScoreItem();
         if (ArbitrateType.QUESTION.equals(group.getArbitrateType())) {
-            List<ExamQuestion> questionList = questionService.findByExamAndSubjectAndObjectiveAndGroupNumber(
-                    group.getExamId(), group.getSubjectCode(), false, group.getNumber());
-            List<ScoreItem> scoreItemList = list.get(0).getMarkerScoreItem();
-            List<ScoreItem> scoreItemList1 = list.get(1).getMarkerScoreItem();
-            List<ScoreItem> scoreItemList2 = list.get(2).getMarkerScoreItem();
             for (int j = 0; j < questionList.size(); j++) {
                 Double arbitrateThreshold = questionList.get(j).getArbitrateThreshold();
                 if (scoreItemList.get(j).getScore() == UN_SELECTIVE_SCORE
@@ -847,6 +847,17 @@ public class MarkServiceImpl implements MarkService {
                 return buildArbitrateHistory(list.get(0), now, arbitrateIndex);
             }
         } else {
+            for (int j = 0; j < questionList.size(); j++) {
+                if (scoreItemList.get(j).getScore() == UN_SELECTIVE_SCORE
+                        && scoreItemList1.get(j).getScore() == UN_SELECTIVE_SCORE
+                        && scoreItemList2.get(j).getScore() == UN_SELECTIVE_SCORE) {
+                    continue;
+                } else if (scoreItemList.get(j).getScore() == UN_SELECTIVE_SCORE
+                        || scoreItemList1.get(j).getScore() == UN_SELECTIVE_SCORE
+                        || scoreItemList2.get(j).getScore() == UN_SELECTIVE_SCORE) {
+                    return buildArbitrateHistory(list.get(0), now, arbitrateIndex);
+                }
+            }
             int count = 0;
             for (int i = 0; i < list.size(); i++) {
                 int next = i + 1;