xiaofei vor 1 Jahr
Ursprung
Commit
2bc8593c8c

+ 3 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ClientServiceImpl.java

@@ -757,6 +757,9 @@ public class ClientServiceImpl implements ClientService {
             if (studentList != null && studentList.size() > 0) {
                 for (Map studentMap : studentList) {
                     ClientPrintDataDto printDataDto = newClientPrintDataDto(studentMap);
+                    if (!studentMap.containsKey("attachmentId") || studentMap.get("attachmentId") == null) {
+                        throw ExceptionResultEnum.ERROR.exception("学号[" + studentMap.get("studentCode") + "]考生未生成试卷");
+                    }
                     Map<String, String> urlMap = teachcloudCommonService.filePreviewByAttachmentId(Long.valueOf(studentMap.get("attachmentId").toString()), false);
                     printDataDto.setMd5(urlMap.get("md5"));
                     printDataDto.setUrl(urlMap.get("url"));

+ 9 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailCourseServiceImpl.java

@@ -9,12 +9,14 @@ import com.qmth.distributed.print.business.bean.params.SingleExamStudentAddParam
 import com.qmth.distributed.print.business.entity.ExamDetail;
 import com.qmth.distributed.print.business.entity.ExamDetailCourse;
 import com.qmth.distributed.print.business.entity.ExamStudent;
+import com.qmth.distributed.print.business.entity.ExamTask;
 import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum;
 import com.qmth.distributed.print.business.enums.ExamStatusEnum;
 import com.qmth.distributed.print.business.mapper.ExamDetailCourseMapper;
 import com.qmth.distributed.print.business.service.ExamDetailCourseService;
 import com.qmth.distributed.print.business.service.ExamDetailService;
 import com.qmth.distributed.print.business.service.ExamStudentService;
+import com.qmth.distributed.print.business.service.ExamTaskService;
 import com.qmth.teachcloud.common.bean.result.TbTaskDetailResult;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicCourse;
@@ -52,6 +54,8 @@ public class ExamDetailCourseServiceImpl extends ServiceImpl<ExamDetailCourseMap
     private MarkStudentService markStudentService;
     @Resource
     private MarkPaperService markPaperService;
+    @Resource
+    private ExamTaskService examTaskService;
 
     @Override
     public List<Map<String, Object>> listClientByExamDetailIdAndStatus(Long examDetailId) {
@@ -156,6 +160,10 @@ public class ExamDetailCourseServiceImpl extends ServiceImpl<ExamDetailCourseMap
         if (count > 0) {
             throw ExceptionResultEnum.ERROR.exception("考号在本考场已存在");
         }
+        ExamTask examTask = examTaskService.getByCourseCodeAndPaperNumber(examDetail.getSchoolId(), examDetail.getExamId(), examDetailCourse.getCourseCode(), examDetailCourse.getPaperNumber());
+        if(examTask == null){
+            throw ExceptionResultEnum.ERROR.exception("命题任务不存在");
+        }
         MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(examDetail.getExamId(), examDetailCourse.getPaperNumber());
         if (markPaper != null && MarkPaperStatus.FINISH.equals(markPaper.getStatus())) {
             throw ExceptionResultEnum.ERROR.exception("已结束阅卷,不能新增考生");
@@ -186,7 +194,7 @@ public class ExamDetailCourseServiceImpl extends ServiceImpl<ExamDetailCourseMap
                 singleExamStudentAddParam.getStudentCode(), singleExamStudentAddParam.getStudentName(),
                 examDetail.getPackageCode(), examDetail.getExamPlace(), examDetail.getExamRoom(),
                 singleExamStudentAddParam.getCollege(), singleExamStudentAddParam.getMajorName(), singleExamStudentAddParam.getClassName(),
-                examDetail.getExamStartTime(), examDetail.getExamEndTime(), markPaper.getUserId());
+                examDetail.getExamStartTime(), examDetail.getExamEndTime(), examTask.getUserId());
         if (markStudent.getSecretNumber() == null) {
             markStudent.randomSecretNumber();
             while (markStudentService.countByExamIdAndSecretNumber(markStudent.getExamId(), markStudent.getSecretNumber()) > 0) {