Procházet zdrojové kódy

3.3.0 识别对照新增单选题多选

ting.yin před 1 rokem
rodič
revize
0651b2f9fb

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

@@ -8,10 +8,11 @@ public enum ConditionType {
     QUESTION_SINGLE_EXCEED("单选题多填涂", false),
     QUESTION_SINGLE_BLANK("单选题空选题数大于", true),
     QUESTION_MULTI_BLANK("多选题空选题数大于", true),
-    SELECTIVE_EXCEED("选做题填涂超过", true),
-    SELECTIVE_BLANK("选做题空选题数大于", true),
-    PAPER_TYPE_EXCEED("卷型多填涂", false),
-    PAPER_TYPE_BLANK("卷型空选", false);
+//    SELECTIVE_EXCEED("选做题填涂超过", true),
+//    SELECTIVE_BLANK("选做题空选题数大于", true),
+//    PAPER_TYPE_EXCEED("卷型多填涂", false),
+//    PAPER_TYPE_BLANK("卷型空选", false),
+    ;
 
     private String name;
 

+ 23 - 29
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/ScanOmrTaskServiceImpl.java

@@ -201,23 +201,24 @@ public class ScanOmrTaskServiceImpl extends ServiceImpl<ScanOmrTaskMapper, ScanO
 						}
 					}
 				}
-//                if (ConditionType.QUESTION_SINGLE_EXCEED.equals(c)
-//                        && ScanStatus.SCANNED.equals(student.getStatus()) && !allObjectiveBlank) {
-//                    for (int i = 0; pageEntity.getQuestion() != null && pageEntity.getQuestion().getResult() != null
-//                            && i < pageEntity.getQuestion().getResult().size(); i++) {
-//                        String result = pageEntity.getQuestion().getResult().get(i);
-//                        PaperStructure question = structureService.getPaperStructure(paper.getExamId(),
-//                                paper.getCardNumber(), spe.getPaperNumber(), pageEntity.getPageIndex(), i + 1,
-//                                OmrField.QUESTION);
-//                        if (question.getSingle() && result != null && result.length() > 1) {
-//                            OmrTaskItem item = new OmrTaskItem();
-//                            item.setIndex(i + 1);
-//                            item.setField(OmrField.QUESTION);
-//                            item.setOmrResult(result);
-//                            items.add(item);
-//                        }
-//                    }
-//                }
+                if (ConditionType.QUESTION_SINGLE_EXCEED.equals(c)
+                        && ScanStatus.SCANNED.equals(student.getScanStatus()) && !allObjectiveBlank) {
+                	List<MarkQuestion> questiongList = questionService
+							.listByExamIdAndPaperNumberAndPaperIndexAndPageIndex(student.getExamId(),
+									student.getPaperNumber(), spe.getPaperIndex(), pageEntity.getPageIndex());
+                    for (int i = 0; pageEntity.getQuestion() != null && pageEntity.getQuestion().getResult() != null
+                            && i < pageEntity.getQuestion().getResult().size(); i++) {
+                    	String result = pageEntity.getQuestion().getResult().get(i);
+						MarkQuestion question = questiongList.get(i);
+                        if (question.getQuestionType().equals(QuestionType.SINGLE.getValue()) && result != null && result.length() > 1) {
+                            OmrTaskItem item = new OmrTaskItem();
+                            item.setIndex(i + 1);
+                            item.setField(OmrField.QUESTION);
+                            item.setOmrResult(result);
+                            items.add(item);
+                        }
+                    }
+                }
 			}
 		}
 		if (retList.size() == 0) {
@@ -588,21 +589,14 @@ public class ScanOmrTaskServiceImpl extends ServiceImpl<ScanOmrTaskMapper, ScanO
 	@Override
 	public void saveTask(Long studentId) {
 		List<ScanOmrTask> omrTaskList = new ArrayList<ScanOmrTask>();
-		ScanOmrTask omrTask = this.buildTask(ConditionType.FILL_SUSPECT, studentId);
-		if (omrTask != null) {
-			omrTaskList.add(omrTask);
-		}
-		omrTask = this.buildTask(ConditionType.QUESTION_MULTI_BLANK, studentId);
-		if (omrTask != null) {
-			omrTaskList.add(omrTask);
-		}
-		omrTask = this.buildTask(ConditionType.QUESTION_SINGLE_BLANK, studentId);
-		if (omrTask != null) {
-			omrTaskList.add(omrTask);
+		for (ConditionType c : ConditionType.values()) {
+			ScanOmrTask omrTask = this.buildTask(c, studentId);
+			if (omrTask != null) {
+				omrTaskList.add(omrTask);
+			}
 		}
 		if (!omrTaskList.isEmpty()) {
 			this.saveBatch(omrTaskList);
 		}
-
 	}
 }