瀏覽代碼

3.4.5 20250612 bug修复(填空题评卷区合并问题)

xiaofei 1 周之前
父節點
當前提交
281fa18d7f

+ 4 - 3
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/TaskServiceImpl.java

@@ -221,7 +221,7 @@ public class TaskServiceImpl implements TaskService {
         task.setPaperType(student.getPaperType());
         task.setPaperType(student.getPaperType());
         task.setSheetUrls(teachcloudCommonService.fileMarkPreview(student.getSheetPathList()));
-        task.setSliceConfig(buildPic(markTaskList));
+        task.setSliceConfig(buildPic(student.getExamId(), student.getPaperNumber(), markTaskList));
         MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(student.getExamId(), student.getPaperNumber());
         task.setObjectiveScore(markPaper.getShowObjectScore() ? student.getObjectiveScore() : null);
         // 题目数据
@@ -240,12 +240,13 @@ public class TaskServiceImpl implements TaskService {
         return questionList.stream().filter(m -> m.getMarkerScore() != null && MarkTaskStatus.MARKED.equals(m.getStatus())).mapToDouble(m -> m.getMarkerScore()).sum();
     }
 
-    private List<MarkConfigItem> buildPic(List<MarkTask> markTaskList) {
+    private List<MarkConfigItem> buildPic(Long examId, String paperNumber, List<MarkTask> markTaskList) {
+        MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(examId, paperNumber);
         List<MarkConfigItem> markConfigItems = new ArrayList<>();
         Integer mainNumber = null;
         for (MarkTask t : markTaskList) {
             MarkQuestion markQuestion = markQuestionService.getById(t.getQuestionId());
-            if (markQuestion.getQuestionType() == 4) {
+            if (markQuestion.getQuestionType() == 4 && markPaper.getMergeMarker()) {
                 // 填空题,只显示一次
                 if (mainNumber == null || !markQuestion.getMainNumber().equals(mainNumber)) {
                     markConfigItems.addAll(markQuestion.getPictureConfigList());