xiaofei 1 an în urmă
părinte
comite
9d10884089

+ 20 - 17
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailCourseServiceImpl.java

@@ -147,6 +147,11 @@ public class ExamDetailCourseServiceImpl extends ServiceImpl<ExamDetailCourseMap
         if (examDetail == null) {
             throw ExceptionResultEnum.ERROR.exception("考场数据不存在");
         }
+        // 打印完成,才可以新增
+        if (!ExamDetailStatusEnum.FINISH.equals(examDetail.getStatus())) {
+            throw ExceptionResultEnum.ERROR.exception("考场还未印刷,不能新增考生");
+        }
+
         int count = examStudentService.countByExamDetailCourseIdAndStudentCode(examDetailCourse.getId(), singleExamStudentAddParam.getStudentCode());
         if (count > 0) {
             throw ExceptionResultEnum.ERROR.exception("考号在本考场已存在");
@@ -174,25 +179,23 @@ public class ExamDetailCourseServiceImpl extends ServiceImpl<ExamDetailCourseMap
         examStudent.setCanDelete(true);
         examStudentService.save(examStudent);
 
-        // 打印完成,则推送到阅卷考生库
-        if (ExamDetailStatusEnum.FINISH.equals(examDetail.getStatus())) {
-            // 保存mark_student
-            MarkStudent markStudent = new MarkStudent(id, examDetail.getExamId(), examDetailCourse.getCourseCode(),
-                    examDetailCourse.getCourseName(), examDetailCourse.getPaperNumber(),
-                    examDetailCourse.getCoursePaperId(), singleExamStudentAddParam.getPaperType(),
-                    singleExamStudentAddParam.getStudentCode(), singleExamStudentAddParam.getStudentName(),
-                    examDetail.getPackageCode(), examDetail.getExamPlace(), examDetail.getExamRoom(),
-                    singleExamStudentAddParam.getCollege(), singleExamStudentAddParam.getMajorName(), singleExamStudentAddParam.getClassName(),
-                    examDetail.getExamStartTime(), examDetail.getExamEndTime(), markPaper.getUserId());
-            if (markStudent.getSecretNumber() == null) {
+        // 保存mark_student
+        MarkStudent markStudent = new MarkStudent(id, examDetail.getExamId(), examDetailCourse.getCourseCode(),
+                examDetailCourse.getCourseName(), examDetailCourse.getPaperNumber(),
+                examDetailCourse.getCoursePaperId(), singleExamStudentAddParam.getPaperType(),
+                singleExamStudentAddParam.getStudentCode(), singleExamStudentAddParam.getStudentName(),
+                examDetail.getPackageCode(), examDetail.getExamPlace(), examDetail.getExamRoom(),
+                singleExamStudentAddParam.getCollege(), singleExamStudentAddParam.getMajorName(), singleExamStudentAddParam.getClassName(),
+                examDetail.getExamStartTime(), examDetail.getExamEndTime(), markPaper.getUserId());
+        if (markStudent.getSecretNumber() == null) {
+            markStudent.randomSecretNumber();
+            while (markStudentService.countByExamIdAndSecretNumber(markStudent.getExamId(), markStudent.getSecretNumber()) > 0) {
                 markStudent.randomSecretNumber();
-                while (markStudentService.countByExamIdAndSecretNumber(markStudent.getExamId(), markStudent.getSecretNumber()) > 0) {
-                    markStudent.randomSecretNumber();
-                }
             }
-            markStudentService.save(markStudent);
-            markPaperService.updateStudentCountByExamIdAndPaperNumberAndPaperType(markPaper.getExamId(), markPaper.getPaperNumber(), markPaper.getPaperType());
         }
+        markStudentService.save(markStudent);
+        markPaperService.updateStudentCountByExamIdAndPaperNumberAndPaperType(markPaper.getExamId(), markPaper.getPaperNumber(), markPaper.getPaperType());
+
         return true;
     }
 
@@ -212,7 +215,7 @@ public class ExamDetailCourseServiceImpl extends ServiceImpl<ExamDetailCourseMap
             throw ExceptionResultEnum.ERROR.exception("考生不能删除");
         }
         MarkStudent markStudent = markStudentService.getById(id);
-        if (markStudent.getUpload()) {
+        if (markStudent.getUpload() != null && markStudent.getUpload()) {
             throw ExceptionResultEnum.ERROR.exception("考生题卡已扫描,不能删除");
         }
         examStudentService.removeById(id);