Selaa lähdekoodia

单选题空选和多选题空选统一改为客观题空选

yin 1 vuosi sitten
vanhempi
commit
22b28631be

+ 4 - 2
teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/scan/ConditionType.java

@@ -6,8 +6,10 @@ public enum ConditionType {
     // ABSENT_FILL("缺考已填涂"),
     // BREACH_FILL("违纪已填涂"),
     QUESTION_SINGLE_EXCEED("单选题多填涂", false),
-    QUESTION_SINGLE_BLANK("单选题空选题数大于", true),
-    QUESTION_MULTI_BLANK("多选题空选题数大于", true),
+//    QUESTION_SINGLE_BLANK("单选题空选题数大于", true),
+//    QUESTION_MULTI_BLANK("多选题空选题数大于", true),
+
+    QUESTION_BLANK("客观题空选", false),
 //    SELECTIVE_EXCEED("选做题填涂超过", true),
 //    SELECTIVE_BLANK("选做题空选题数大于", true),
 //    PAPER_TYPE_EXCEED("卷型多填涂", false),

+ 69 - 55
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/ScanOmrTaskServiceImpl.java

@@ -143,6 +143,20 @@ public class ScanOmrTaskServiceImpl extends ServiceImpl<ScanOmrTaskMapper, ScanO
                     }
                     pageDto.setItems(items);
                 }
+                if (ConditionType.QUESTION_BLANK.equals(c)) {
+                    for (int i = 0; pageEntity.getQuestion() != null && pageEntity.getQuestion().getResult() != null
+                            && i < pageEntity.getQuestion().getResult().size(); i++) {
+                        String result = pageEntity.getQuestion().getResult().get(i);
+                        if (result != null && result.contains(OMR_BLANK)) {
+                            OmrTaskItem item = new OmrTaskItem();
+                            item.setIndex(i + 1);
+                            item.setField(OmrField.QUESTION);
+                            item.setOmrResult(result);
+                            items.add(item);
+                        }
+                    }
+                    pageDto.setItems(items);
+                }
                 // 卷型空选
                 // if (ConditionType.PAPER_TYPE_BLANK.equals(c)) {
                 // if (pageEntity.getPaperType() != null
@@ -166,61 +180,61 @@ public class ScanOmrTaskServiceImpl extends ServiceImpl<ScanOmrTaskMapper, ScanO
                 // items.add(item);
                 // }
                 // }
-                if (ConditionType.QUESTION_MULTI_BLANK.equals(c) && ScanStatus.SCANNED.equals(student.getScanStatus())) {
-                    List<MarkQuestion> questiongList = questionService
-                            .listByExamIdAndPaperNumberAndPaperIndexAndPageIndex(student.getExamId(),
-                                    student.getPaperNumber(), spe.getPaperIndex(), pageEntity.getPageIndex(),true);
-                    if (pageEntity.getQuestion() == null || pageEntity.getQuestion().getResult() == null
-                            || questiongList.isEmpty()) {
-                        continue;
-                    }
-                    int size = pageEntity.getQuestion().getResult().size() > questiongList.size() ? questiongList.size()
-                            : pageEntity.getQuestion().getResult().size();
-                    for (int i = 0; i < size; i++) {
-                        String result = pageEntity.getQuestion().getResult().get(i);
-                        MarkQuestion question = questiongList.get(i);
-                        if (question.getQuestionType().equals(QuestionType.MULTIPLE.getValue()) && result != null
-                                && result.contains(OMR_BLANK)) {
-                            OmrTaskItem item = new OmrTaskItem();
-                            item.setIndex(i + 1);
-                            item.setField(OmrField.QUESTION);
-                            item.setOmrResult(result);
-                            pageDto.getPageMultiBlankItems().add(item);
-                            multi_blank_count++;
-                            if (multi_blank_count > 0) {
-                                multi_blank = true;
-                            }
-                        }
-                    }
-                }
-                if (ConditionType.QUESTION_SINGLE_BLANK.equals(c) && ScanStatus.SCANNED.equals(student.getScanStatus())) {
-                    List<MarkQuestion> questiongList = questionService
-                            .listByExamIdAndPaperNumberAndPaperIndexAndPageIndex(student.getExamId(),
-                                    student.getPaperNumber(), spe.getPaperIndex(), pageEntity.getPageIndex(),true);
-                    if (pageEntity.getQuestion() == null || pageEntity.getQuestion().getResult() == null
-                            || questiongList.isEmpty()) {
-                        continue;
-                    }
-                    int size = pageEntity.getQuestion().getResult().size() > questiongList.size() ? questiongList.size()
-                            : pageEntity.getQuestion().getResult().size();
-                    for (int i = 0; i < size; i++) {
-                        String result = pageEntity.getQuestion().getResult().get(i);
-                        MarkQuestion question = questiongList.get(i);
-                        if ((question.getQuestionType().equals(QuestionType.SINGLE.getValue())||question.getQuestionType().equals(QuestionType.TRUE_OR_FALSE.getValue()))
-                                && result != null
-                                && result.contains(OMR_BLANK)) {
-                            OmrTaskItem item = new OmrTaskItem();
-                            item.setIndex(i + 1);
-                            item.setField(OmrField.QUESTION);
-                            item.setOmrResult(result);
-                            pageDto.getPageSingleBlankItems().add(item);
-                            single_blank_count++;
-                            if (single_blank_count > 0) {
-                                single_blank = true;
-                            }
-                        }
-                    }
-                }
+//                if (ConditionType.QUESTION_MULTI_BLANK.equals(c) && ScanStatus.SCANNED.equals(student.getScanStatus())) {
+//                    List<MarkQuestion> questiongList = questionService
+//                            .listByExamIdAndPaperNumberAndPaperIndexAndPageIndex(student.getExamId(),
+//                                    student.getPaperNumber(), spe.getPaperIndex(), pageEntity.getPageIndex(),true);
+//                    if (pageEntity.getQuestion() == null || pageEntity.getQuestion().getResult() == null
+//                            || questiongList.isEmpty()) {
+//                        continue;
+//                    }
+//                    int size = pageEntity.getQuestion().getResult().size() > questiongList.size() ? questiongList.size()
+//                            : pageEntity.getQuestion().getResult().size();
+//                    for (int i = 0; i < size; i++) {
+//                        String result = pageEntity.getQuestion().getResult().get(i);
+//                        MarkQuestion question = questiongList.get(i);
+//                        if (question.getQuestionType().equals(QuestionType.MULTIPLE.getValue()) && result != null
+//                                && result.contains(OMR_BLANK)) {
+//                            OmrTaskItem item = new OmrTaskItem();
+//                            item.setIndex(i + 1);
+//                            item.setField(OmrField.QUESTION);
+//                            item.setOmrResult(result);
+//                            pageDto.getPageMultiBlankItems().add(item);
+//                            multi_blank_count++;
+//                            if (multi_blank_count > 0) {
+//                                multi_blank = true;
+//                            }
+//                        }
+//                    }
+//                }
+//                if (ConditionType.QUESTION_SINGLE_BLANK.equals(c) && ScanStatus.SCANNED.equals(student.getScanStatus())) {
+//                    List<MarkQuestion> questiongList = questionService
+//                            .listByExamIdAndPaperNumberAndPaperIndexAndPageIndex(student.getExamId(),
+//                                    student.getPaperNumber(), spe.getPaperIndex(), pageEntity.getPageIndex(),true);
+//                    if (pageEntity.getQuestion() == null || pageEntity.getQuestion().getResult() == null
+//                            || questiongList.isEmpty()) {
+//                        continue;
+//                    }
+//                    int size = pageEntity.getQuestion().getResult().size() > questiongList.size() ? questiongList.size()
+//                            : pageEntity.getQuestion().getResult().size();
+//                    for (int i = 0; i < size; i++) {
+//                        String result = pageEntity.getQuestion().getResult().get(i);
+//                        MarkQuestion question = questiongList.get(i);
+//                        if ((question.getQuestionType().equals(QuestionType.SINGLE.getValue())||question.getQuestionType().equals(QuestionType.TRUE_OR_FALSE.getValue()))
+//                                && result != null
+//                                && result.contains(OMR_BLANK)) {
+//                            OmrTaskItem item = new OmrTaskItem();
+//                            item.setIndex(i + 1);
+//                            item.setField(OmrField.QUESTION);
+//                            item.setOmrResult(result);
+//                            pageDto.getPageSingleBlankItems().add(item);
+//                            single_blank_count++;
+//                            if (single_blank_count > 0) {
+//                                single_blank = true;
+//                            }
+//                        }
+//                    }
+//                }
                 if (ConditionType.QUESTION_SINGLE_EXCEED.equals(c) && ScanStatus.SCANNED.equals(student.getScanStatus())) {
                     List<MarkQuestion> questiongList = questionService
                             .listByExamIdAndPaperNumberAndPaperIndexAndPageIndex(student.getExamId(),