Browse Source

3.4.0 update

xiaofei 11 months ago
parent
commit
90565dfb5d

+ 5 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicExamStudentServiceImpl.java

@@ -293,6 +293,11 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
                     .ne(BasicExamStudent::getCourseId, basicExamStudent.getCourseId())) > 0) {
                 throw ExceptionResultEnum.ERROR.exception(String.format("试卷编号[%s]已绑定其它课程", basicExamStudent.getPaperNumber()));
             }
+            if (this.count(new QueryWrapper<BasicExamStudent>().lambda()
+                    .eq(BasicExamStudent::getExamId, basicExamStudent.getExamId()).eq(BasicExamStudent::getPaperNumber, basicExamStudent.getPaperNumber())
+                    .ne(BasicExamStudent::getExamStartTime, basicExamStudent.getExamStartTime()).ne(BasicExamStudent::getExamEndTime, basicExamStudent.getExamEndTime())) > 0) {
+                throw ExceptionResultEnum.ERROR.exception(String.format("试卷编号[%s]有不同考试时间", basicExamStudent.getPaperNumber()));
+            }
             basicExamStudent.insertInfo(requestUserId);
         }
 

+ 28 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/ImportLogicServiceImpl.java

@@ -134,6 +134,8 @@ public class ImportLogicServiceImpl implements ImportLogicService {
         boolean needPaperNumber = (basicSchool.getHasPaperNumber() != null && basicSchool.getHasPaperNumber()) || ExamModelEnum.MODEL4.equals(basicExam.getExamModel());
         // 试卷编号->课程
         Map<String, Long> paperNumberCourseIdMap = new HashMap<>();
+        // 试卷编号->考试时间
+        Map<String, String> paperNumberExamTimeMap = new HashMap<>();
         Map<String, Long> basicCourseIdMap = new HashMap<>();
         // 课程学号唯一
         List<String> courseCodeStudentCodeList = new ArrayList<>();
@@ -260,6 +262,18 @@ public class ImportLogicServiceImpl implements ImportLogicService {
                             paperNumberCourseIdMap.put(basicExamStudent.getPaperNumber(), basicExamStudent.getCourseId());
                         }
                     }
+
+                    // 同一试卷编号只能对应同一考试时间
+                    if (basicExamStudent.getExamStartTime() != null && basicExamStudent.getExamEndTime() != null) {
+                        String examTimeValue = basicExamStudent.getExamStartTime() + "-" + basicExamStudent.getExamEndTime();
+                        if (paperNumberExamTimeMap.containsKey(basicExamStudent.getPaperNumber())) {
+                            if (!paperNumberExamTimeMap.get(basicExamStudent.getPaperNumber()).equals(examTimeValue)) {
+                                stringJoiner.add("试卷编号[" + basicExamStudent.getPaperNumber() + "]只能有相同考试时间");
+                            }
+                        } else {
+                            paperNumberExamTimeMap.put(basicExamStudent.getPaperNumber(), examTimeValue);
+                        }
+                    }
                 }
 
                 // 校验课程学号唯一
@@ -508,6 +522,8 @@ public class ImportLogicServiceImpl implements ImportLogicService {
 
         // 文件中试卷编号对应多个课程代码
         Map<String, Long> paperNumberCourseIdInMap = new HashMap<>();
+        // 试卷编号->考试时间
+        Map<String, String> paperNumberExamTimeMap = new HashMap<>();
         Map<String, Long> basicCourseIdMap = new HashMap<>();
 
         // 课程管理中课程代码-课程名
@@ -676,6 +692,18 @@ public class ImportLogicServiceImpl implements ImportLogicService {
                         stringJoiner.add("试卷编号[" + basicExamStudentImport.getPaperNumber() + "]、考试日期[" + basicExamStudentImport.getExamDate() + "]、考试时间[" + basicExamStudentImport.getExamTime() + "]、考场[" + basicExamStudentImport.getExamPlace() + "]、考点[" + basicExamStudentImport.getExamRoom() + "]已有印刷任务");
                     }
                 }
+
+                // 同一试卷编号只能对应同一考试时间
+                if (basicExamStudent.getExamStartTime() != null && basicExamStudent.getExamEndTime() != null) {
+                    String examTimeValue = basicExamStudent.getExamStartTime() + "-" + basicExamStudent.getExamEndTime();
+                    if (paperNumberExamTimeMap.containsKey(basicExamStudent.getPaperNumber())) {
+                        if (!paperNumberExamTimeMap.get(basicExamStudent.getPaperNumber()).equals(examTimeValue)) {
+                            stringJoiner.add("试卷编号[" + basicExamStudent.getPaperNumber() + "]只能有相同考试时间");
+                        }
+                    } else {
+                        paperNumberExamTimeMap.put(basicExamStudent.getPaperNumber(), examTimeValue);
+                    }
+                }
             }
 
             if (stringJoiner.toString().length() > 0) {