Bladeren bron

修复大题名称不一致验证

ting.yin 4 jaren geleden
bovenliggende
commit
69135b74c4

+ 15 - 12
stmms-web/src/main/java/cn/com/qmth/stmms/admin/dto/SubjectQuestionDTO.java

@@ -85,11 +85,10 @@ public class SubjectQuestionDTO {
         return groups;
     }
 
-    public boolean validate(List<String> error) {
+    public boolean validate(List<String> error, Map<Integer, String> titleMap) {
         if (list.size() > 0) {
             Set<String> numberSet = new HashSet<String>();
-            Map<Integer, String> titleMap = new HashMap<Integer, String>();
-            //Map<Integer, Integer> groupNumberMap = new HashMap<Integer, Integer>();
+            // Map<Integer, Integer> groupNumberMap = new HashMap<>();
             try {
                 // 基本字段合法性校验
                 for (ExamQuestion question : list) {
@@ -126,14 +125,18 @@ public class SubjectQuestionDTO {
                         titleMap.put(question.getMainNumber(), question.getMainTitle());
                     }
 
-                    //不再限制一个大题只能属于一个评卷分组
-                    //                    Integer groupNumber = groupNumberMap.get(question.getMainNumber());
-                    //                    if (groupNumber != null && !groupNumber.equals(question.getGroupNumber())) {
-                    //                        error.add("[" + subjectCode + "] 大题号" + question.getMainNumber() + "有评卷分组不一致的记录");
-                    //                        return false;
-                    //                    } else {
-                    //                        groupNumberMap.put(question.getMainNumber(), question.getGroupNumber());
-                    //                    }
+                    // 不再限制一个大题只能属于一个评卷分组
+                    // Integer groupNumber =
+                    // groupNumberMap.get(question.getMainNumber());
+                    // if (groupNumber != null &&
+                    // !groupNumber.equals(question.getGroupNumber())) {
+                    // error.add("[" + subjectCode + "] 大题号" +
+                    // question.getMainNumber() + "有评卷分组不一致的记录");
+                    // return false;
+                    // } else {
+                    // groupNumberMap.put(question.getMainNumber(),
+                    // question.getGroupNumber());
+                    // }
 
                     String number = question.getQuestionNumber();
                     if (objective) {
@@ -177,7 +180,7 @@ public class SubjectQuestionDTO {
             } finally {
                 numberSet.clear();
                 titleMap.clear();
-                //groupNumberMap.clear();
+                // groupNumberMap.clear();
             }
         } else {
             return false;

+ 7 - 1
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/PaperController.java

@@ -208,7 +208,13 @@ public class PaperController extends BaseExamController {
                 examService.updateObjectiveStatus(examId, ObjectiveStatus.WAITING);
                 ExamSubject subject = subjectService.find(examId, dto.getSubjectCode());
                 if (subject != null) {
-                    if (dto.validate(error)) {
+                    Map<Integer, String> titleMap = new HashMap<>();
+                    List<ExamQuestion> current = questionService.findByExamAndSubjectAndObjective(examId,
+                            subject.getCode(), false);
+                    for (ExamQuestion question : current) {
+                        titleMap.put(question.getMainNumber(), question.getMainTitle());
+                    }
+                    if (dto.validate(error, titleMap)) {
                         if (objective) {
                             questionService.deleteByExamAndSubjectAndObjective(examId, dto.getSubjectCode(), objective);
                             for (ExamQuestion question : dto.getQuestionList()) {