xiaof 4 anni fa
parent
commit
36145e5c97

+ 9 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/ExamTaskDetailDto.java

@@ -26,6 +26,7 @@ public class ExamTaskDetailDto {
     private String exposedPaperType;
     private String unexposedPaperType;
     private Integer totalSubjects;
+    private String examDetailCourseIds;
 
     public String getId() {
         return id;
@@ -194,4 +195,12 @@ public class ExamTaskDetailDto {
     public void setPaperType(String paperType) {
         this.paperType = paperType;
     }
+
+    public String getExamDetailCourseIds() {
+        return examDetailCourseIds;
+    }
+
+    public void setExamDetailCourseIds(String examDetailCourseIds) {
+        this.examDetailCourseIds = examDetailCourseIds;
+    }
 }

+ 9 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/RelatePaperParam.java

@@ -11,6 +11,7 @@ public class RelatePaperParam extends BasePage {
     private Long examTaskId;
     private String paperNumber;
     private String relatePaperType;
+    private String examDetailCourseIds;
 
     public Long getPrintPlanId() {
         return printPlanId;
@@ -43,4 +44,12 @@ public class RelatePaperParam extends BasePage {
     public void setRelatePaperType(String relatePaperType) {
         this.relatePaperType = relatePaperType;
     }
+
+    public String getExamDetailCourseIds() {
+        return examDetailCourseIds;
+    }
+
+    public void setExamDetailCourseIds(String examDetailCourseIds) {
+        this.examDetailCourseIds = examDetailCourseIds;
+    }
 }

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamDetailCourseService.java

@@ -26,7 +26,7 @@ public interface ExamDetailCourseService extends IService<ExamDetailCourse> {
 
     List<Map<String, Object>> listByExamDetailId(Long examDetailId);
 
-    void updatePaperNumber(List<ExamDetailCourse> examDetailCourses, String paperNumber, String relatePaperType);
+    void updatePaperNumber(List<Long> examDetailCourseIds, String paperNumber, String relatePaperType);
 
     List<ExamDetailCourse> listByExamDetailIdAndStatus(Long examDetailId);
 

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamStudentService.java

@@ -17,7 +17,7 @@ import java.util.Map;
  */
 public interface ExamStudentService extends IService<ExamStudent> {
 
-    void updatePaperType(List<ExamDetailCourse> examDetailCourses, String relatePaperType);
+    void updatePaperType(List<Long> examDetailCourseIds, String relatePaperType);
 
     List<String> listByExamDetailCourseId(String examDetailCourseId);
 

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

@@ -39,8 +39,7 @@ public class ExamDetailCourseServiceImpl extends ServiceImpl<ExamDetailCourseMap
     }
 
     @Override
-    public void updatePaperNumber(List<ExamDetailCourse> examDetailCourses, String paperNumber, String relatePaperType) {
-        List<Long> examDetailCourseIds = examDetailCourses.stream().map(m->m.getId()).collect(Collectors.toList());
+    public void updatePaperNumber(List<Long> examDetailCourseIds, String paperNumber, String relatePaperType) {
         UpdateWrapper<ExamDetailCourse> updateWrapper = new UpdateWrapper<>();
         updateWrapper.lambda().set(ExamDetailCourse::getPaperNumber, paperNumber)
                 .set(ExamDetailCourse::getPaperType, relatePaperType)

+ 1 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamStudentServiceImpl.java

@@ -28,8 +28,7 @@ import java.util.stream.Collectors;
 public class ExamStudentServiceImpl extends ServiceImpl<ExamStudentMapper, ExamStudent> implements ExamStudentService {
 
     @Override
-    public void updatePaperType(List<ExamDetailCourse> examDetailCourses, String relatePaperType) {
-        List<Long> examDetailCourseIds = examDetailCourses.stream().map(m->m.getId()).collect(Collectors.toList());
+    public void updatePaperType(List<Long> examDetailCourseIds, String relatePaperType) {
         UpdateWrapper<ExamStudent> updateWrapper = new UpdateWrapper<>();
         updateWrapper.lambda().set(ExamStudent::getPaperType, relatePaperType).in(ExamStudent::getExamDetailCourseId, examDetailCourseIds);
         this.update(updateWrapper);

+ 13 - 12
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskDetailServiceImpl.java

@@ -94,17 +94,17 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
                             .set(ExamDetail::getAttachmentId, null)
                             .set(ExamDetail::getAttachmentPath, null)
                             .set(ExamDetail::getPagesA3, null)
-                            .set(ExamDetail::getPagesA4,null)
+                            .set(ExamDetail::getPagesA4, null)
                             .in(ExamDetail::getId, examDetailIds);
                     examDetailService.update(examDetailUpdateWrapper);
                     // 更新绑定关系
                     List<ExamDetailCourse> examDetailCourses = examDetailCourseService.listByPrintPlanIdAndCourseCodeAndPaperNumber(examTask.getSchoolId(), listEntry.getKey(), examTask.getCourseCode(), examTask.getPaperNumber());
-                    List<Long> examDetailCourseIds = examDetailCourses.stream().map(m->m.getId()).collect(Collectors.toList());
+                    List<Long> examDetailCourseIds = examDetailCourses.stream().map(m -> m.getId()).collect(Collectors.toList());
                     UpdateWrapper<ExamDetailCourse> examDetailCourseUpdateWrapper = new UpdateWrapper<>();
                     examDetailCourseUpdateWrapper.lambda()
                             .set(ExamDetailCourse::getPaperType, null)
                             .set(ExamDetailCourse::getPaperPagesA3, null)
-                            .set(ExamDetailCourse::getCardPagesA3,null)
+                            .set(ExamDetailCourse::getCardPagesA3, null)
                             .in(ExamDetailCourse::getId, examDetailCourseIds);
                     examDetailCourseService.update(examDetailCourseUpdateWrapper);
 
@@ -151,23 +151,24 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
         this.update(updateWrapper);
 
         // 更新试卷编号
-        List<ExamDetailCourse> examDetailCourses = examDetailCourseService.listByPrintPlanIdAndCourseCodeAndPaperNumber(examTask.getSchoolId(), paperParam.getPrintPlanId(), examTask.getCourseCode(), examTask.getPaperNumber());
-        examDetailCourseService.updatePaperNumber(examDetailCourses, paperParam.getPaperNumber(), paperParam.getRelatePaperType());
+        String examDetailCourseIdStr = paperParam.getExamDetailCourseIds();
+        List<Long> examDetailCourseIds = Arrays.asList(examDetailCourseIdStr.split(",")).stream().map(m -> Long.valueOf(m)).collect(Collectors.toList());
+//        List<ExamDetailCourse> examDetailCourses = examDetailCourseService.listByPrintPlanIdAndCourseCodeAndPaperNumber(examTask.getSchoolId(), paperParam.getPrintPlanId(), examTask.getCourseCode(), examTask.getPaperNumber());
+        examDetailCourseService.updatePaperNumber(examDetailCourseIds, paperParam.getPaperNumber(), paperParam.getRelatePaperType());
 
         // 更新考生关联类型
-        examStudentService.updatePaperType(examDetailCourses, paperParam.getRelatePaperType());
+        examStudentService.updatePaperType(examDetailCourseIds, paperParam.getRelatePaperType());
 
         // 重新生成pdf
-//        List<Long> examDetailCourseIds = examDetailCourses.stream().map(m -> m.getId()).collect(Collectors.toList());
-        for (ExamDetailCourse examDetailCours : examDetailCourses) {
+        List<ExamDetailCourse> examDetailCourses = examDetailCourseService.listByIds(examDetailCourseIds);
+        Map<Long, List<Long>> examDetailIdMap = examDetailCourses.stream().collect(Collectors.groupingBy(ExamDetailCourse::getExamDetailId, Collectors.mapping(ExamDetailCourse::getId, Collectors.toList())));
+        for (Map.Entry<Long, List<Long>> listEntry : examDetailIdMap.entrySet()) {
             SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-            Map<String, Object> map = tbTaskService.saveTask(TaskTypeEnum.CREATE_PDF, paperParam.getPrintPlanId(), sysUser, null);
-            map.computeIfAbsent("examDetailIds", v -> Arrays.asList(examDetailCours.getExamDetailId()));
-            map.computeIfAbsent("examDetailCourseIds", v -> Arrays.asList(examDetailCours.getId()));
+            Map<String, Object> map = tbTaskService.saveTask(TaskTypeEnum.CREATE_PDF, paperParam.getPrintPlanId(), sysUser, listEntry.getKey());
+            map.computeIfAbsent("examDetailCourseIds", v -> listEntry.getValue());
             map.computeIfAbsent("paperType", v -> paperParam.getRelatePaperType());
             asyncCreatePdfTempleteService.createPdf(map, null);
         }
-
         return true;
     }
 

+ 0 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -822,8 +822,6 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         ExamTask examTask = this.getById(examTaskDetail.getExamTaskId());
         if (examTaskDetail.getOperateType().equals(ExamStatusEnum.SUBMIT.name()) && !examTask.getReview()) {
             examTask.setStatus(ExamStatusEnum.FINISH);
-            // 校验是否可以提交打印状态
-            commonService.checkData(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber(), (SysUser) ServletUtil.getRequestUser());
         } else {
             examTask.setStatus(ExamStatusEnum.valueOf(examTaskDetail.getOperateType()));
         }

+ 4 - 2
distributed-print-business/src/main/resources/mapper/ExamTaskDetailMapper.xml

@@ -40,7 +40,8 @@
             d.exposed_paper_type exposedPaperType,
             d.unexposed_paper_type unexposedPaperType,
             a.paper_type relatePaperType,
-            a.total_subjects totalSubjects
+            a.total_subjects totalSubjects,
+            a.exam_detail_course_ids examDetailCourseIds
         FROM
         (SELECT
             a.school_id,
@@ -50,7 +51,8 @@
             b.course_code,
             b.course_name,
             b.paper_type,
-            SUM(b.total_subjects) total_subjects
+            SUM(b.total_subjects) total_subjects,
+            group_concat(b.id) exam_detail_course_ids
         FROM
             exam_detail a
             LEFT JOIN exam_detail_course b ON a.id = b.exam_detail_id

+ 6 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskController.java

@@ -11,6 +11,7 @@ import com.qmth.distributed.print.business.bean.params.ArraysParams;
 import com.qmth.distributed.print.business.bean.params.PrintPlanParams;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.distributed.print.business.entity.*;
+import com.qmth.distributed.print.business.enums.ExamStatusEnum;
 import com.qmth.distributed.print.business.enums.ReviewStatusEnum;
 import com.qmth.distributed.print.business.enums.TaskTypeEnum;
 import com.qmth.distributed.print.business.enums.UploadFileEnum;
@@ -281,6 +282,11 @@ public class ExamTaskController {
     @RequestMapping(value = "/apply_save", method = RequestMethod.POST)
     public Result taskApplySave(@RequestBody ExamTaskDetail examTaskDetail) throws IOException {
         boolean isSuccess = examTaskService.saveExamTaskDetail(examTaskDetail);
+        ExamTask examTask = examTaskService.getById(examTaskDetail.getExamTaskId());
+        if (examTaskDetail.getOperateType().equals(ExamStatusEnum.SUBMIT.name()) && !examTask.getReview()) {
+            // 校验是否可以提交打印状态
+            commonService.checkData(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber(), (SysUser) ServletUtil.getRequestUser());
+        }
         return ResultUtil.ok(isSuccess);
     }