ソースを参照

3.3.0 识别对照按卡格式与内容的最小数量来生成

ting.yin 1 年間 前
コミット
7244837f01

+ 21 - 6
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/ScanOmrTaskServiceImpl.java

@@ -164,8 +164,13 @@ public class ScanOmrTaskServiceImpl extends ServiceImpl<ScanOmrTaskMapper, ScanO
 					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++) {
+					if (pageEntity.getQuestion() == null || pageEntity.getQuestion().getResult() == null
+							|| questiongList.isEmpty()) {
+						return null;
+					}
+					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
@@ -187,8 +192,13 @@ public class ScanOmrTaskServiceImpl extends ServiceImpl<ScanOmrTaskMapper, ScanO
 					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++) {
+					if (pageEntity.getQuestion() == null || pageEntity.getQuestion().getResult() == null
+							|| questiongList.isEmpty()) {
+						return null;
+					}
+					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()) && result != null
@@ -211,8 +221,13 @@ public class ScanOmrTaskServiceImpl extends ServiceImpl<ScanOmrTaskMapper, ScanO
                 	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++) {
+                	if (pageEntity.getQuestion() == null || pageEntity.getQuestion().getResult() == null
+							|| questiongList.isEmpty()) {
+						return null;
+					}
+					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()) && result != null && result.length() > 1) {