Bladeren bron

Merge remote-tracking branch 'origin/dev' into dev

wangliang 4 jaren geleden
bovenliggende
commit
917e4bca32
22 gewijzigde bestanden met toevoegingen van 262 en 160 verwijderingen
  1. 18 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/ClientExamTaskDto.java
  2. 9 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/ClientPrintBackupDataDto.java
  3. 9 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/ClientPrintDataDto.java
  4. 5 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamDetailMapper.java
  5. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamPrintPlanMapper.java
  6. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamTaskMapper.java
  7. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ClientService.java
  8. 9 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/CommonService.java
  9. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamDetailService.java
  10. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamTaskDetailService.java
  11. 82 66
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ClientServiceImpl.java
  12. 35 32
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/CommonServiceImpl.java
  13. 7 5
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailServiceImpl.java
  14. 8 5
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPrintPlanServiceImpl.java
  15. 3 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskDetailServiceImpl.java
  16. 5 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java
  17. 11 10
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/TaskLogicServiceImpl.java
  18. 1 1
      distributed-print-business/src/main/resources/mapper/ExamDetailCourseMapper.xml
  19. 17 1
      distributed-print-business/src/main/resources/mapper/ExamDetailMapper.xml
  20. 21 9
      distributed-print-business/src/main/resources/mapper/ExamPrintPlanMapper.xml
  21. 10 8
      distributed-print-business/src/main/resources/mapper/ExamTaskMapper.xml
  22. 4 4
      distributed-print/src/main/java/com/qmth/distributed/print/api/ClientController.java

+ 18 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/ClientExamTaskDto.java

@@ -6,6 +6,8 @@ package com.qmth.distributed.print.business.bean.dto;
 public class ClientExamTaskDto {
 public class ClientExamTaskDto {
 
 
     private String examTaskId;
     private String examTaskId;
+    private String schoolId;
+    private String printPlanId;
     private String printPlanName;
     private String printPlanName;
     private String paperNumber;
     private String paperNumber;
     private String courseCode;
     private String courseCode;
@@ -17,7 +19,6 @@ public class ClientExamTaskDto {
     private Boolean isPass;
     private Boolean isPass;
     private Long tryTime;
     private Long tryTime;
 
 
-
     public String getExamTaskId() {
     public String getExamTaskId() {
         return examTaskId;
         return examTaskId;
     }
     }
@@ -26,6 +27,22 @@ public class ClientExamTaskDto {
         this.examTaskId = examTaskId;
         this.examTaskId = examTaskId;
     }
     }
 
 
+    public String getSchoolId() {
+        return schoolId;
+    }
+
+    public void setSchoolId(String schoolId) {
+        this.schoolId = schoolId;
+    }
+
+    public String getPrintPlanId() {
+        return printPlanId;
+    }
+
+    public void setPrintPlanId(String printPlanId) {
+        this.printPlanId = printPlanId;
+    }
+
     public String getPrintPlanName() {
     public String getPrintPlanName() {
         return printPlanName;
         return printPlanName;
     }
     }

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

@@ -9,6 +9,7 @@ public class ClientPrintBackupDataDto {
     private String courseName;
     private String courseName;
     private String paperNumber;
     private String paperNumber;
     private String paperType;
     private String paperType;
+    private String md5;
     private String url;
     private String url;
 
 
     public String getCourseCode() {
     public String getCourseCode() {
@@ -43,6 +44,14 @@ public class ClientPrintBackupDataDto {
         this.paperType = paperType;
         this.paperType = paperType;
     }
     }
 
 
+    public String getMd5() {
+        return md5;
+    }
+
+    public void setMd5(String md5) {
+        this.md5 = md5;
+    }
+
     public String getUrl() {
     public String getUrl() {
         return url;
         return url;
     }
     }

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

@@ -11,6 +11,7 @@ public class ClientPrintDataDto {
     private String studentName;
     private String studentName;
     private String studentCode;
     private String studentCode;
     private String paperType;
     private String paperType;
+    private String md5;
     private String url;
     private String url;
 
 
     public String getCourseCode() {
     public String getCourseCode() {
@@ -61,6 +62,14 @@ public class ClientPrintDataDto {
         this.paperType = paperType;
         this.paperType = paperType;
     }
     }
 
 
+    public String getMd5() {
+        return md5;
+    }
+
+    public void setMd5(String md5) {
+        this.md5 = md5;
+    }
+
     public String getUrl() {
     public String getUrl() {
         return url;
         return url;
     }
     }

+ 5 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamDetailMapper.java

@@ -32,7 +32,8 @@ public interface ExamDetailMapper extends BaseMapper<ExamDetail> {
                                            @Param("paperNumber") String paperNumber,
                                            @Param("paperNumber") String paperNumber,
                                            @Param("examPlace") String examPlace,
                                            @Param("examPlace") String examPlace,
                                            @Param("examRoom") String examRoom,
                                            @Param("examRoom") String examRoom,
-                                           @Param("packageCode") String packageCode);
+                                           @Param("packageCode") String packageCode,
+                                           @Param("orgIds") Set<Long> orgIds);
 
 
     IPage<ExaminationDetailResult> findDetailPage(@Param("page") Page<ExaminationDetailResult> page,
     IPage<ExaminationDetailResult> findDetailPage(@Param("page") Page<ExaminationDetailResult> page,
                                                   @Param("schoolId") Long schoolId,
                                                   @Param("schoolId") Long schoolId,
@@ -41,7 +42,8 @@ public interface ExamDetailMapper extends BaseMapper<ExamDetail> {
                                                   @Param("paperNumber") String paperNumber,
                                                   @Param("paperNumber") String paperNumber,
                                                   @Param("examPlace") String examPlace,
                                                   @Param("examPlace") String examPlace,
                                                   @Param("examRoom") String examRoom,
                                                   @Param("examRoom") String examRoom,
-                                                  @Param("studentParams") String studentParams);
+                                                  @Param("studentParams") String studentParams,
+                                                  @Param("orgIds") Set<Long> orgIds);
 
 
     IPage<ExaminationDetailResult> findDetailPageById(@Param("page") Page<ExaminationDetailResult> page,
     IPage<ExaminationDetailResult> findDetailPageById(@Param("page") Page<ExaminationDetailResult> page,
                                                   @Param("examDetailId") Long examDetailId);
                                                   @Param("examDetailId") Long examDetailId);
@@ -50,7 +52,7 @@ public interface ExamDetailMapper extends BaseMapper<ExamDetail> {
 
 
     IPage<ClientExamStudentDto> listClientExamStudentPage(Page<ClientExamStudentDto> page, @Param("schoolId") Long schoolId, @Param("examDetailId") Long examDetailId, @Param("ticketNumber") String ticketNumber, @Param("studentName") String studentName, @Param("courseCode") String courseCode);
     IPage<ClientExamStudentDto> listClientExamStudentPage(Page<ClientExamStudentDto> page, @Param("schoolId") Long schoolId, @Param("examDetailId") Long examDetailId, @Param("ticketNumber") String ticketNumber, @Param("studentName") String studentName, @Param("courseCode") String courseCode);
 
 
-    List<Map<String, String>> listStudentByExamDetailId(@Param("schoolId") Long schoolId, @Param("examDetailId") Long examDetailId, @Param("ticketNumber") String ticketNumber, @Param("type") String type);
+    List<Map> listStudentByExamDetailId(@Param("schoolId") Long schoolId, @Param("examDetailId") Long examDetailId, @Param("ticketNumber") String ticketNumber, @Param("type") String type);
 
 
     Integer selectPaperCount(@Param("schoolId") Long schoolId, @Param("printPlanId") Long printPlanId, @Param("status") String status, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("examPlace") String examPlace, @Param("examRoom") String examRoom, @Param("examStartTime") Long examStartTime, @Param("examEndTime") Long examEndTime, @Param("orgIds") Set<Long> orgIds);
     Integer selectPaperCount(@Param("schoolId") Long schoolId, @Param("printPlanId") Long printPlanId, @Param("status") String status, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("examPlace") String examPlace, @Param("examRoom") String examRoom, @Param("examStartTime") Long examStartTime, @Param("examEndTime") Long examEndTime, @Param("orgIds") Set<Long> orgIds);
 }
 }

+ 2 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamPrintPlanMapper.java

@@ -32,7 +32,7 @@ public interface ExamPrintPlanMapper extends BaseMapper<ExamPrintPlan> {
 
 
     List<PrintPlanBrief> list(@Param("schoolId") Long schoolId, @Param("orgIds") Set<Long> orgIds);
     List<PrintPlanBrief> list(@Param("schoolId") Long schoolId, @Param("orgIds") Set<Long> orgIds);
 
 
-    IPage<ClientPrintTaskDto> listClientPrintTask(Page<ClientPrintTaskDto> page, @Param("schoolId") Long schoolId, @Param("machineCode") Long machineCode, @Param("printPlanId") String printPlanId, @Param("status") String status, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("examPlace") String examPlace, @Param("examRoom") String examRoom, @Param("examStartTime") Long examStartTime, @Param("examEndTime") Long examEndTime, @Param("isDownload") Boolean isDownload, @Param("validate") Boolean validate, @Param("orgIds") Set<Long> orgIds);
+    IPage<ClientPrintTaskDto> listClientPrintTask(Page<ClientPrintTaskDto> page, @Param("schoolId") Long schoolId, @Param("machineCode") Long machineCode, @Param("printPlanId") String printPlanId, @Param("status") String status, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("examPlace") String examPlace, @Param("examRoom") String examRoom, @Param("examStartTime") Long examStartTime, @Param("examEndTime") Long examEndTime, @Param("isDownload") Boolean isDownload, @Param("validate") Boolean validate, @Param("orgIds") Set<Long> orgIds, @Param("examDetailStatus") String[] examDetailStatus);
 
 
-    List<ClientPrintTaskDto> listClientPrintTask(@Param("schoolId") Long schoolId, @Param("machineCode") Long machineCode, @Param("printPlanId") String printPlanId, @Param("status") String status, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("examPlace") String examPlace, @Param("examRoom") String examRoom, @Param("examStartTime") Long examStartTime, @Param("examEndTime") Long examEndTime, @Param("isDownload") Boolean isDownload, @Param("validate") Boolean validate, @Param("orgIds") Set<Long> orgIds);
+    List<ClientPrintTaskDto> listClientPrintTask(@Param("schoolId") Long schoolId, @Param("machineCode") Long machineCode, @Param("printPlanId") String printPlanId, @Param("status") String status, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("examPlace") String examPlace, @Param("examRoom") String examRoom, @Param("examStartTime") Long examStartTime, @Param("examEndTime") Long examEndTime, @Param("isDownload") Boolean isDownload, @Param("validate") Boolean validate, @Param("orgIds") Set<Long> orgIds, @Param("examDetailStatus") String[] examDetailStatus);
 }
 }

+ 2 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamTaskMapper.java

@@ -72,9 +72,9 @@ public interface ExamTaskMapper extends BaseMapper<ExamTask> {
                                           @Param("schoolId") Long schoolId,
                                           @Param("schoolId") Long schoolId,
                                           @Param("status") String...status);
                                           @Param("status") String...status);
 
 
-    IPage<ClientExamTaskDto> listClientExamTaskPage(Page<ClientExamTaskDto> page, @Param("schoolId") Long schoolId, @Param("machineCode") String machineCode, @Param("printPlanId") Long printPlanId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("isTry") Boolean isTry, @Param("isPass") Boolean isPass, @Param("orgIds") Set<Long> orgIds);
+    IPage<ClientExamTaskDto> listClientExamTaskPage(Page<ClientExamTaskDto> page, @Param("schoolId") Long schoolId, @Param("machineCode") String machineCode, @Param("printPlanId") Long printPlanId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("isTry") Boolean isTry, @Param("isPass") Boolean isPass, @Param("orgIds") Set<Long> orgIds, @Param("printPlanStatus") String printPlanStatus, @Param("examDetailStatus") String examDetailStatus);
 
 
-    List<ClientExamTaskDto> listClientExamTaskPage(@Param("schoolId") Long schoolId, @Param("machineCode") String machineCode, @Param("printPlanId") Long printPlanId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("isTry") Boolean isTry, @Param("isPass") Boolean isPass, @Param("orgIds") Set<Long> orgIds);
+    List<ClientExamTaskDto> listClientExamTaskPage(@Param("schoolId") Long schoolId, @Param("machineCode") String machineCode, @Param("printPlanId") Long printPlanId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("isTry") Boolean isTry, @Param("isPass") Boolean isPass, @Param("orgIds") Set<Long> orgIds, @Param("printPlanStatus") String printPlanStatus, @Param("examDetailStatus") String examDetailStatus);
 
 
     List<ExamTask> listExamTaskByCardId(Long cardId);
     List<ExamTask> listExamTaskByCardId(Long cardId);
 }
 }

+ 2 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ClientService.java

@@ -15,7 +15,7 @@ import java.util.Map;
 public interface ClientService {
 public interface ClientService {
     IPage<ClientExamTaskDto> listTryTask(Long schoolId, String machineCode, Long orgId, Long printPlanId, String courseCode, String paperNumber, Boolean isTry, Boolean isPass, Integer pageNumber, Integer pageSize);
     IPage<ClientExamTaskDto> listTryTask(Long schoolId, String machineCode, Long orgId, Long printPlanId, String courseCode, String paperNumber, Boolean isTry, Boolean isPass, Integer pageNumber, Integer pageSize);
 
 
-    String getUrl(Long schoolId, Long examTaskId);
+    Map<String, String>  getUrl(Long schoolId, Long examTaskId);
 
 
     Boolean tagPass(Long schoolId, String courseCode, String courseName, String paperNumber, String machineCode, Boolean isPass, Long userId);
     Boolean tagPass(Long schoolId, String courseCode, String courseName, String paperNumber, String machineCode, Boolean isPass, Long userId);
 
 
@@ -31,7 +31,7 @@ public interface ClientService {
 
 
     List<Map<String, Object>> getPrintDataBatch(Long schoolId, Long machineCode, String orgId, String printPlanId, String status, String courseCode, String paperNumber, String examPlace, String examRoom, Long examStartTime, Long examEndTime, Boolean isDownload, Boolean validate);
     List<Map<String, Object>> getPrintDataBatch(Long schoolId, Long machineCode, String orgId, String printPlanId, String status, String courseCode, String paperNumber, String examPlace, String examRoom, Long examStartTime, Long examEndTime, Boolean isDownload, Boolean validate);
 
 
-    String getUrlByExamDetailId(Long schoolId, Long examDetailId);
+    Map<String, String> getUrlByExamDetailId(Long schoolId, Long examDetailId);
 
 
     Boolean updateDownload(Long schoolId, Long examDetailId, String machineCode, Boolean isDownload);
     Boolean updateDownload(Long schoolId, Long examDetailId, String machineCode, Boolean isDownload);
 
 

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

@@ -99,13 +99,21 @@ public interface CommonService {
      */
      */
     public String filePreview(String path);
     public String filePreview(String path);
 
 
+    /**
+     * 文件预览
+     *
+     * @param path
+     * @return
+     */
+    public String filePreviewByPath(String path, Boolean isExpire);
+
     /**
     /**
      * 文件预览
      * 文件预览
      *
      *
      * @param attachmentId
      * @param attachmentId
      * @return
      * @return
      */
      */
-    public Map<String, String> filePreview(String attachmentId, Boolean isExpire);
+    public Map<String, String> filePreviewByAttachmentId(Long attachmentId, Boolean isExpire);
 
 
     /**
     /**
      * 题卡html文件上传,读取文件内容
      * 题卡html文件上传,读取文件内容

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

@@ -171,5 +171,5 @@ public interface ExamDetailService extends IService<ExamDetail> {
 
 
     IPage<ClientExamStudentDto> listStudent(Long schoolId, Long examDetailId, String ticketNumber, String studentName, String courseCode, Integer pageNumber, Integer pageSize);
     IPage<ClientExamStudentDto> listStudent(Long schoolId, Long examDetailId, String ticketNumber, String studentName, String courseCode, Integer pageNumber, Integer pageSize);
 
 
-    List<Map<String, String>> listStudentByExamDetailId(Long schoolId, Long examDetailId, String ticketNumber, String type);
+    List<Map> listStudentByExamDetailId(Long schoolId, Long examDetailId, String ticketNumber, String type);
 }
 }

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

@@ -34,6 +34,6 @@ public interface ExamTaskDetailService extends IService<ExamTaskDetail> {
 
 
     List<ExamTaskDetail> listByTemplateId(Long templateId);
     List<ExamTaskDetail> listByTemplateId(Long templateId);
 
 
-    String getUrl(Long schoolId, Long examTaskId);
+    Map<String, String>  getUrl(Long schoolId, Long examTaskId);
 
 
 }
 }

+ 82 - 66
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ClientServiceImpl.java

@@ -2,6 +2,7 @@ package com.qmth.distributed.print.business.service.impl;
 
 
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.distributed.print.business.bean.dto.*;
 import com.qmth.distributed.print.business.bean.dto.*;
@@ -56,7 +57,7 @@ public class ClientServiceImpl implements ClientService {
     }
     }
 
 
     @Override
     @Override
-    public String getUrl(Long schoolId, Long examTaskId) {
+    public Map<String, String>  getUrl(Long schoolId, Long examTaskId) {
         return examTaskDetailService.getUrl(schoolId, examTaskId);
         return examTaskDetailService.getUrl(schoolId, examTaskId);
     }
     }
 
 
@@ -81,18 +82,18 @@ public class ClientServiceImpl implements ClientService {
         Map<String, Object> finalMap = new HashMap<>();
         Map<String, Object> finalMap = new HashMap<>();
         // 取试卷
         // 取试卷
         List<Map<String, String>> examDetailCourses = examDetailCourseService.listByExamDetailId(examDetailId);
         List<Map<String, String>> examDetailCourses = examDetailCourseService.listByExamDetailId(examDetailId);
-        Map<String, String> map = mapCourseUrl(examDetailCourses);
+        Map<String, Map<String, String>> map = mapCourseUrl(examDetailCourses);
         // 取考生
         // 取考生
-        List<Map<String, String>> studentList = examDetailService.listStudentByExamDetailId(schoolId, examDetailId, ticketNumber, type);
+        List<Map> studentList = examDetailService.listStudentByExamDetailId(schoolId, examDetailId, ticketNumber, type);
         // 生成试卷List
         // 生成试卷List
         List<ClientPrintDataDto> paperList = studentList.stream().map(m -> {
         List<ClientPrintDataDto> paperList = studentList.stream().map(m -> {
             ClientPrintDataDto printDataDto = new ClientPrintDataDto();
             ClientPrintDataDto printDataDto = new ClientPrintDataDto();
-            String courseCode = m.get("courseCode");
-            String courseName = m.get("courseName");
-            String paperNumber = m.get("paperNumber");
-            String studentName = m.get("studentName");
-            String studentCode = m.get("studentCode");
-            String paperType = m.get("paperType");
+            String courseCode = m.get("courseCode").toString();
+            String courseName = m.get("courseName").toString();
+            String paperNumber = m.get("paperNumber").toString();
+            String studentName = m.get("studentName").toString();
+            String studentCode = m.get("studentCode").toString();
+            String paperType = m.get("paperType").toString();
             printDataDto.setCourseCode(courseCode);
             printDataDto.setCourseCode(courseCode);
             printDataDto.setCourseName(courseName);
             printDataDto.setCourseName(courseName);
             printDataDto.setStudentName(studentName);
             printDataDto.setStudentName(studentName);
@@ -101,26 +102,28 @@ public class ClientServiceImpl implements ClientService {
 
 
             StringJoiner sj = new StringJoiner(SystemConstant.DELIMITER);
             StringJoiner sj = new StringJoiner(SystemConstant.DELIMITER);
             String key = sj.add(courseCode).add(paperNumber).add(paperType).toString();
             String key = sj.add(courseCode).add(paperNumber).add(paperType).toString();
-            printDataDto.setUrl(map.get(key));
+            printDataDto.setMd5(map.get(key).get("md5"));
+            printDataDto.setUrl(map.get(key).get("url"));
             return printDataDto;
             return printDataDto;
         }).collect(Collectors.toList());
         }).collect(Collectors.toList());
         finalMap.put("paper", paperList);
         finalMap.put("paper", paperList);
         // 生成题卡List
         // 生成题卡List
         List<ClientPrintDataDto> cardList = studentList.stream().map(m -> {
         List<ClientPrintDataDto> cardList = studentList.stream().map(m -> {
             ClientPrintDataDto printDataDto = new ClientPrintDataDto();
             ClientPrintDataDto printDataDto = new ClientPrintDataDto();
-            String courseCode = m.get("courseCode");
-            String courseName = m.get("courseName");
-            String studentName = m.get("studentName");
-            String studentCode = m.get("studentCode");
-            String paperType = m.get("paperType");
-            String attachmentId = m.get("attachmentId");
+            String courseCode = m.get("courseCode").toString();
+            String courseName = m.get("courseName").toString();
+            String studentName = m.get("studentName").toString();
+            String studentCode = m.get("studentCode").toString();
+            String paperType = m.get("paperType").toString();
+            String attachmentId = m.get("attachmentId").toString();
             printDataDto.setCourseCode(courseCode);
             printDataDto.setCourseCode(courseCode);
             printDataDto.setCourseName(courseName);
             printDataDto.setCourseName(courseName);
             printDataDto.setStudentName(studentName);
             printDataDto.setStudentName(studentName);
             printDataDto.setStudentCode(studentCode);
             printDataDto.setStudentCode(studentCode);
             printDataDto.setPaperType(paperType);
             printDataDto.setPaperType(paperType);
-            Map<String, String> urlMap = commonService.filePreview(attachmentId, false);
-            printDataDto.setUrl(urlMap.get("pathUrl"));
+            Map<String, String> urlMap = commonService.filePreviewByAttachmentId(Long.valueOf(attachmentId), false);
+            printDataDto.setMd5(urlMap.get("md5"));
+            printDataDto.setUrl(urlMap.get("url"));
             return printDataDto;
             return printDataDto;
         }).collect(Collectors.toList());
         }).collect(Collectors.toList());
         finalMap.put("card", cardList);
         finalMap.put("card", cardList);
@@ -134,18 +137,20 @@ public class ClientServiceImpl implements ClientService {
         for (Map variable : variableList) {
         for (Map variable : variableList) {
             Map vMap = new HashMap();
             Map vMap = new HashMap();
             vMap.put("type", variable.get("type"));
             vMap.put("type", variable.get("type"));
-            Map<String, String> urlMap = commonService.filePreview(variable.get("attachmentId").toString(), false);
+            // todo
+            /*Map<String, String> urlMap = commonService.filePreview(variable.get("attachmentId").toString(), false);
             vMap.put("htmlUrl", urlMap.get("htmlUrl"));
             vMap.put("htmlUrl", urlMap.get("htmlUrl"));
-            vMap.put("pdfUrl", urlMap.get("pdfUrl"));
+            vMap.put("pdfUrl", urlMap.get("pdfUrl"));*/
             otherList.add(vMap);
             otherList.add(vMap);
         }
         }
         List<Map> ordinaryList = JSONObject.parseArray(ordinaryContent, Map.class);
         List<Map> ordinaryList = JSONObject.parseArray(ordinaryContent, Map.class);
         for (Map ordinary : ordinaryList) {
         for (Map ordinary : ordinaryList) {
             Map vMap = new HashMap();
             Map vMap = new HashMap();
             vMap.put("type", ordinary.get("type"));
             vMap.put("type", ordinary.get("type"));
-            Map<String, String> urlMap = commonService.filePreview(ordinary.get("attachmentId").toString(), false);
+            // todo
+            /*Map<String, String> urlMap = commonService.filePreview(ordinary.get("attachmentId").toString(), false);
             vMap.put("htmlUrl", urlMap.get("htmlUrl"));
             vMap.put("htmlUrl", urlMap.get("htmlUrl"));
-            vMap.put("pdfUrl", urlMap.get("pdfUrl"));
+            vMap.put("pdfUrl", urlMap.get("pdfUrl"));*/
             otherList.add(vMap);
             otherList.add(vMap);
         }
         }
         finalMap.put("other", otherList);
         finalMap.put("other", otherList);
@@ -175,9 +180,8 @@ public class ClientServiceImpl implements ClientService {
             throw ExceptionResultEnum.ERROR.exception("考场pdf文件记录异常");
             throw ExceptionResultEnum.ERROR.exception("考场pdf文件记录异常");
         }
         }
 
 
-        Map<String, String> attachMap = commonService.filePreview(examDetail.getAttachmentId().toString(), false);
-        String totalPathUrl = attachMap.get("pathUrl");
-        if (StringUtils.isNotBlank(totalPathUrl)) {
+        Map<String, String> totalPathUrl = commonService.filePreviewByAttachmentId(examDetail.getAttachmentId(), false);
+        if (StringUtils.isBlank(totalPathUrl.get("url"))) {
             throw ExceptionResultEnum.ERROR.exception("考场pdf文件丢失");
             throw ExceptionResultEnum.ERROR.exception("考场pdf文件丢失");
         }
         }
 
 
@@ -186,18 +190,18 @@ public class ClientServiceImpl implements ClientService {
         // 3.取学生试卷、题卡、备用试卷、题卡,印品
         // 3.取学生试卷、题卡、备用试卷、题卡,印品
         Map<String, Object> detailMap = new HashMap<>();
         Map<String, Object> detailMap = new HashMap<>();
         // 3.1取试卷
         // 3.1取试卷
-        Map<String, String> map = mapCourseUrl(examDetailCourses);
+        Map<String, Map<String, String>> map = mapCourseUrl(examDetailCourses);
         // 3.2取考生
         // 3.2取考生
-        List<Map<String, String>> studentList = examDetailService.listStudentByExamDetailId(schoolId, examDetailId, "1", "1");
+        List<Map> studentList = examDetailService.listStudentByExamDetailId(schoolId, examDetailId, "1", "1");
         // 3.3生成试卷List
         // 3.3生成试卷List
         List<ClientPrintDataDto> paperList = studentList.stream().map(m -> {
         List<ClientPrintDataDto> paperList = studentList.stream().map(m -> {
             ClientPrintDataDto printDataDto = new ClientPrintDataDto();
             ClientPrintDataDto printDataDto = new ClientPrintDataDto();
-            String courseCode = m.get("courseCode");
-            String courseName = m.get("courseName");
-            String paperNumber = m.get("paperNumber");
-            String studentName = m.get("studentName");
-            String studentCode = m.get("studentCode");
-            String paperType = m.get("paperType");
+            String courseCode = m.get("courseCode").toString();
+            String courseName = m.get("courseName").toString();
+            String paperNumber = m.get("paperNumber").toString();
+            String studentName = m.get("studentName").toString();
+            String studentCode = m.get("studentCode").toString();
+            String paperType = m.get("paperType").toString();
             printDataDto.setCourseCode(courseCode);
             printDataDto.setCourseCode(courseCode);
             printDataDto.setCourseName(courseName);
             printDataDto.setCourseName(courseName);
             printDataDto.setStudentName(studentName);
             printDataDto.setStudentName(studentName);
@@ -206,26 +210,28 @@ public class ClientServiceImpl implements ClientService {
 
 
             StringJoiner sj = new StringJoiner(SystemConstant.DELIMITER);
             StringJoiner sj = new StringJoiner(SystemConstant.DELIMITER);
             String key = sj.add(courseCode).add(paperNumber).add(paperType).toString();
             String key = sj.add(courseCode).add(paperNumber).add(paperType).toString();
-            printDataDto.setUrl(map.get(key));
+            printDataDto.setMd5(map.get(key).get("md5"));
+            printDataDto.setUrl(map.get(key).get("url"));
             return printDataDto;
             return printDataDto;
         }).collect(Collectors.toList());
         }).collect(Collectors.toList());
         detailMap.put("paper", paperList);
         detailMap.put("paper", paperList);
         // 3.4生成题卡List
         // 3.4生成题卡List
         List<ClientPrintDataDto> cardList = studentList.stream().map(m -> {
         List<ClientPrintDataDto> cardList = studentList.stream().map(m -> {
             ClientPrintDataDto printDataDto = new ClientPrintDataDto();
             ClientPrintDataDto printDataDto = new ClientPrintDataDto();
-            String courseCode = m.get("courseCode");
-            String courseName = m.get("courseName");
-            String studentName = m.get("studentName");
-            String studentCode = m.get("studentCode");
-            String paperType = m.get("paperType");
-            String attachmentId = m.get("attachmentId");
+            String courseCode = m.get("courseCode").toString();
+            String courseName = m.get("courseName").toString();
+            String studentName = m.get("studentName").toString();
+            String studentCode = m.get("studentCode").toString();
+            String paperType = m.get("paperType").toString();
+            String attachmentId = m.get("attachmentId").toString();
             printDataDto.setCourseCode(courseCode);
             printDataDto.setCourseCode(courseCode);
             printDataDto.setCourseName(courseName);
             printDataDto.setCourseName(courseName);
             printDataDto.setStudentName(studentName);
             printDataDto.setStudentName(studentName);
             printDataDto.setStudentCode(studentCode);
             printDataDto.setStudentCode(studentCode);
             printDataDto.setPaperType(paperType);
             printDataDto.setPaperType(paperType);
-            Map<String, String> urlMap = commonService.filePreview(attachmentId, false);
-            printDataDto.setUrl(urlMap.get("pathUrl"));
+            Map<String, String> urlMap = commonService.filePreviewByAttachmentId(Long.valueOf(attachmentId), false);
+            printDataDto.setMd5(urlMap.get("md5"));
+            printDataDto.setUrl(urlMap.get("url"));
             return printDataDto;
             return printDataDto;
         }).collect(Collectors.toList());
         }).collect(Collectors.toList());
         detailMap.put("card", cardList);
         detailMap.put("card", cardList);
@@ -237,10 +243,10 @@ public class ClientServiceImpl implements ClientService {
         //试卷
         //试卷
         List<Map<String, String>> keyMaps = studentList.stream().map(m -> {
         List<Map<String, String>> keyMaps = studentList.stream().map(m -> {
             Map<String, String> stringMap = new HashMap<>();
             Map<String, String> stringMap = new HashMap<>();
-            stringMap.put("courseCode", m.get("courseCode"));
-            stringMap.put("courseName", m.get("courseName"));
-            stringMap.put("paperNumber", m.get("paperNumber"));
-            stringMap.put("paperType", m.get("paperType"));
+            stringMap.put("courseCode", m.get("courseCode").toString());
+            stringMap.put("courseName", m.get("courseName").toString());
+            stringMap.put("paperNumber", m.get("paperNumber").toString());
+            stringMap.put("paperType", m.get("paperType").toString());
             return stringMap;
             return stringMap;
         }).distinct().collect(Collectors.toList());
         }).distinct().collect(Collectors.toList());
         List<ClientPrintBackupDataDto> paperBackupList = new ArrayList<>();
         List<ClientPrintBackupDataDto> paperBackupList = new ArrayList<>();
@@ -253,7 +259,8 @@ public class ClientServiceImpl implements ClientService {
                 clientPrintBackupDataDto.setPaperType(keyMap.get("paperType"));
                 clientPrintBackupDataDto.setPaperType(keyMap.get("paperType"));
                 StringJoiner sj = new StringJoiner(SystemConstant.DELIMITER);
                 StringJoiner sj = new StringJoiner(SystemConstant.DELIMITER);
                 String key = sj.add(keyMap.get("courseCode")).add(keyMap.get("paperNumber")).add(keyMap.get("paperType")).toString();
                 String key = sj.add(keyMap.get("courseCode")).add(keyMap.get("paperNumber")).add(keyMap.get("paperType")).toString();
-                clientPrintBackupDataDto.setUrl(map.get(key));
+                clientPrintBackupDataDto.setMd5(map.get(key).get("md5"));
+                clientPrintBackupDataDto.setUrl(map.get(key).get("url"));
                 paperBackupList.add(clientPrintBackupDataDto);
                 paperBackupList.add(clientPrintBackupDataDto);
             }
             }
         }
         }
@@ -268,16 +275,19 @@ public class ClientServiceImpl implements ClientService {
             List<Map> backupCards = JSONObject.parseArray(JSONObject.toJSONString(jsonObject.get("card")), Map.class);
             List<Map> backupCards = JSONObject.parseArray(JSONObject.toJSONString(jsonObject.get("card")), Map.class);
             for (Map backupCard : backupCards) {
             for (Map backupCard : backupCards) {
                 ClientPrintBackupDataDto clientPrintBackupDataDto = new ClientPrintBackupDataDto();
                 ClientPrintBackupDataDto clientPrintBackupDataDto = new ClientPrintBackupDataDto();
-                clientPrintBackupDataDto.setCourseCode(backupCard.get("courseCode").toString());
-                clientPrintBackupDataDto.setCourseName(backupCard.get("courseName").toString());
-                clientPrintBackupDataDto.setPaperNumber(backupCard.get("paperNumber").toString());
+                clientPrintBackupDataDto.setCourseCode(examDetailCours.get("courseCode"));
+                clientPrintBackupDataDto.setCourseName(examDetailCours.get("courseName"));
+                clientPrintBackupDataDto.setPaperNumber(examDetailCours.get("paperNumber"));
                 clientPrintBackupDataDto.setPaperType(backupCard.get("name").toString());
                 clientPrintBackupDataDto.setPaperType(backupCard.get("name").toString());
-                Map<String, String> urlMap = commonService.filePreview(backupCard.get("attachmentId").toString(), false);
-                clientPrintBackupDataDto.setUrl(urlMap.get("pathUrl"));
+                Map<String, String> urlMap = commonService.filePreviewByAttachmentId(Long.valueOf(backupCard.get("attachmentId").toString()), false);
+                clientPrintBackupDataDto.setMd5(urlMap.get("md5"));
+                clientPrintBackupDataDto.setUrl(urlMap.get("url"));
                 cardBackupList.add(clientPrintBackupDataDto);
                 cardBackupList.add(clientPrintBackupDataDto);
             }
             }
         }
         }
         backupMap.put("card", cardBackupList);
         backupMap.put("card", cardBackupList);
+        detailMap.put("backup", backupMap);
+        finalMap.put("detail", detailMap);
 
 
         //3.5
         //3.5
         String variableContent = examPrintPlan.getVariableContent();
         String variableContent = examPrintPlan.getVariableContent();
@@ -289,9 +299,10 @@ public class ClientServiceImpl implements ClientService {
             for (int i = 0; i < count; i++) {
             for (int i = 0; i < count; i++) {
                 Map vMap = new HashMap();
                 Map vMap = new HashMap();
                 vMap.put("type", variable.get("type"));
                 vMap.put("type", variable.get("type"));
-                Map<String, String> urlMap = commonService.filePreview(variable.get("attachmentId").toString(), false);
+                // todo
+                /*Map<String, String> urlMap = commonService.filePreview(variable.get("attachmentId").toString(), false);
                 vMap.put("htmlUrl", urlMap.get("htmlUrl"));
                 vMap.put("htmlUrl", urlMap.get("htmlUrl"));
-                vMap.put("pdfUrl", urlMap.get("pdfUrl"));
+                vMap.put("pdfUrl", urlMap.get("pdfUrl"));*/
                 otherList.add(vMap);
                 otherList.add(vMap);
             }
             }
         }
         }
@@ -301,9 +312,10 @@ public class ClientServiceImpl implements ClientService {
             for (int i = 0; i < count; i++) {
             for (int i = 0; i < count; i++) {
                 Map vMap = new HashMap();
                 Map vMap = new HashMap();
                 vMap.put("type", ordinary.get("type"));
                 vMap.put("type", ordinary.get("type"));
-                Map<String, String> urlMap = commonService.filePreview(ordinary.get("attachmentId").toString(), false);
+                // todo
+                /*Map<String, String> urlMap = commonService.filePreview(ordinary.get("attachmentId").toString(), false);
                 vMap.put("htmlUrl", urlMap.get("htmlUrl"));
                 vMap.put("htmlUrl", urlMap.get("htmlUrl"));
-                vMap.put("pdfUrl", urlMap.get("pdfUrl"));
+                vMap.put("pdfUrl", urlMap.get("pdfUrl"));*/
                 otherList.add(vMap);
                 otherList.add(vMap);
             }
             }
 
 
@@ -326,10 +338,10 @@ public class ClientServiceImpl implements ClientService {
     }
     }
 
 
     @Override
     @Override
-    public String getUrlByExamDetailId(Long schoolId, Long examDetailId) {
+    public Map<String, String> getUrlByExamDetailId(Long schoolId, Long examDetailId) {
         ExamDetail examDetail = examDetailService.getById(examDetailId);
         ExamDetail examDetail = examDetailService.getById(examDetailId);
         BasicAttachment attachment = basicAttachmentService.getById(examDetail.getAttachmentId());
         BasicAttachment attachment = basicAttachmentService.getById(examDetail.getAttachmentId());
-        return attachment == null ? null : commonService.filePreview(attachment.getPath());
+        return attachment == null ? null : commonService.filePreviewByAttachmentId(attachment.getId(), false);
     }
     }
 
 
     @Override
     @Override
@@ -416,10 +428,14 @@ public class ClientServiceImpl implements ClientService {
         }
         }
 
 
         String lastCodeSub = lastCode.substring(0, lastCode.length() - 2);
         String lastCodeSub = lastCode.substring(0, lastCode.length() - 2);
-        if (packageCode.equals(lastCodeSub)) {
+        if (!packageCode.equals(lastCodeSub)) {
             throw ExceptionResultEnum.ERROR.exception("最后一张备卡条码与试卷编号不一致");
             throw ExceptionResultEnum.ERROR.exception("最后一张备卡条码与试卷编号不一致");
         }
         }
-        return true;
+
+        UpdateWrapper<ExamDetail> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.lambda().set(ExamDetail::getValidate, true).eq(ExamDetail::getId, examDetailId);
+
+        return examDetailService.update(updateWrapper);
     }
     }
 
 
     @Override
     @Override
@@ -431,8 +447,8 @@ public class ClientServiceImpl implements ClientService {
             map.put("courseCode", clientExamTaskDto.getCourseCode());
             map.put("courseCode", clientExamTaskDto.getCourseCode());
             map.put("courseName", clientExamTaskDto.getCourseName());
             map.put("courseName", clientExamTaskDto.getCourseName());
             map.put("paperNumber", clientExamTaskDto.getPaperNumber());
             map.put("paperNumber", clientExamTaskDto.getPaperNumber());
-            String url = examTaskDetailService.getUrl(schoolId, Long.valueOf(clientExamTaskDto.getExamTaskId()));
-            map.put("url", url);
+            Map<String, String> stringMap = examTaskDetailService.getUrl(schoolId, Long.valueOf(clientExamTaskDto.getExamTaskId()));
+            map.putAll(stringMap);
             list.add(map);
             list.add(map);
         }
         }
         return list;
         return list;
@@ -451,8 +467,8 @@ public class ClientServiceImpl implements ClientService {
      *
      *
      * @return
      * @return
      */
      */
-    public Map<String, String> mapCourseUrl(List<Map<String, String>> mapList) {
-        Map<String, String> map = new HashMap<>();
+    public Map<String, Map<String, String>> mapCourseUrl(List<Map<String, String>> mapList) {
+        Map<String, Map<String, String>> map = new HashMap<>();
         for (Map<String, String> taskDetail : mapList) {
         for (Map<String, String> taskDetail : mapList) {
             String courseCode = taskDetail.get("courseCode");
             String courseCode = taskDetail.get("courseCode");
             String paperNumber = taskDetail.get("paperNumber");
             String paperNumber = taskDetail.get("paperNumber");
@@ -462,10 +478,10 @@ public class ClientServiceImpl implements ClientService {
                 String name = attaMap.get("name").toString();
                 String name = attaMap.get("name").toString();
                 String attachmentId = attaMap.get("attachmentId").toString();
                 String attachmentId = attaMap.get("attachmentId").toString();
                 BasicAttachment attachment = basicAttachmentService.getById(attachmentId);
                 BasicAttachment attachment = basicAttachmentService.getById(attachmentId);
-                String url = commonService.filePreview(attachment.getPath());
+                Map<String, String> stringMap = commonService.filePreviewByAttachmentId(Long.valueOf(attachmentId), false);
                 StringJoiner sj = new StringJoiner(SystemConstant.DELIMITER);
                 StringJoiner sj = new StringJoiner(SystemConstant.DELIMITER);
                 String key = sj.add(courseCode).add(paperNumber).add(name).toString();
                 String key = sj.add(courseCode).add(paperNumber).add(name).toString();
-                map.put(key, url);
+                map.put(key, stringMap);
             }
             }
         }
         }
         return map;
         return map;

+ 35 - 32
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/CommonServiceImpl.java

@@ -354,12 +354,42 @@ public class CommonServiceImpl implements CommonService {
     /**
     /**
      * 文件预览
      * 文件预览
      *
      *
-     * @param attachmentId 附件ID
+     * @param path 附件路径
      * @param isExpire     url是否带过期时间
      * @param isExpire     url是否带过期时间
      * @return
      * @return
      */
      */
     @Override
     @Override
-    public Map<String, String> filePreview(String attachmentId, Boolean isExpire) {
+    public String filePreviewByPath(String path, Boolean isExpire) {
+        if (StringUtils.isBlank(path)) {
+            return null;
+        }
+
+        String pathUrl;
+        JSONObject jsonObject = JSONObject.parseObject(path);
+        String attachmentType = (String) jsonObject.get(SystemConstant.TYPE);
+        String filePath = (String) jsonObject.get(SystemConstant.PATH);
+        if (Objects.equals(attachmentType, SystemConstant.LOCAL)) {
+            pathUrl = SystemConstant.HTTP + dictionaryConfig.sysDomain().getFileHost() + File.separator + filePath;
+        } else {
+            if (isExpire) {
+                pathUrl = ossUtil.getPrivateUrl(filePath);
+            } else {
+                pathUrl = dictionaryConfig.aliYunOssDomain().getUrl() + File.separator + filePath;
+            }
+
+        }
+        return pathUrl;
+    }
+
+    /**
+     * 文件预览
+     *
+     * @param attachmentId 附件路径
+     * @param isExpire     url是否带过期时间
+     * @return
+     */
+    @Override
+    public Map<String, String> filePreviewByAttachmentId(Long attachmentId, Boolean isExpire) {
         BasicAttachment attachment = basicAttachmentService.getById(attachmentId);
         BasicAttachment attachment = basicAttachmentService.getById(attachmentId);
         if (attachment == null) {
         if (attachment == null) {
             return null;
             return null;
@@ -367,49 +397,22 @@ public class CommonServiceImpl implements CommonService {
 
 
         Map<String, String> map = new HashMap<>();
         Map<String, String> map = new HashMap<>();
 
 
-        String pathUrl, htmlPath = null, htmlUrl = null, pdfPath = null, pdfUrl = null;
+        String pathUrl;
         JSONObject jsonObject = JSONObject.parseObject(attachment.getPath());
         JSONObject jsonObject = JSONObject.parseObject(attachment.getPath());
         String attachmentType = (String) jsonObject.get(SystemConstant.TYPE);
         String attachmentType = (String) jsonObject.get(SystemConstant.TYPE);
         String filePath = (String) jsonObject.get(SystemConstant.PATH);
         String filePath = (String) jsonObject.get(SystemConstant.PATH);
-        // 有htmlPath
-        if (jsonObject.containsKey(SystemConstant.HTML_PATH)) {
-            htmlPath = (String) jsonObject.get(SystemConstant.HTML_PATH);
-        }
-        // 有pdfPath
-        if (jsonObject.containsKey(SystemConstant.PDF_PATH)) {
-            pdfPath = (String) jsonObject.get(SystemConstant.PDF_PATH);
-        }
         if (Objects.equals(attachmentType, SystemConstant.LOCAL)) {
         if (Objects.equals(attachmentType, SystemConstant.LOCAL)) {
             pathUrl = SystemConstant.HTTP + dictionaryConfig.sysDomain().getFileHost() + File.separator + filePath;
             pathUrl = SystemConstant.HTTP + dictionaryConfig.sysDomain().getFileHost() + File.separator + filePath;
-            if (StringUtils.isNotBlank(htmlPath)) {
-                htmlUrl = SystemConstant.HTTP + dictionaryConfig.sysDomain().getFileHost() + File.separator + htmlPath;
-            }
-            if (StringUtils.isNotBlank(pdfPath)) {
-                pdfUrl = SystemConstant.HTTP + dictionaryConfig.sysDomain().getFileHost() + File.separator + pdfPath;
-            }
         } else {
         } else {
             if (isExpire) {
             if (isExpire) {
                 pathUrl = ossUtil.getPrivateUrl(filePath);
                 pathUrl = ossUtil.getPrivateUrl(filePath);
-                if (StringUtils.isNotBlank(htmlPath)) {
-                    htmlUrl = ossUtil.getPrivateUrl(htmlPath);
-                }
-                if (StringUtils.isNotBlank(pdfPath)) {
-                    pdfUrl = ossUtil.getPrivateUrl(pdfPath);
-                }
             } else {
             } else {
                 pathUrl = dictionaryConfig.aliYunOssDomain().getUrl() + File.separator + filePath;
                 pathUrl = dictionaryConfig.aliYunOssDomain().getUrl() + File.separator + filePath;
-                if (StringUtils.isNotBlank(htmlPath)) {
-                    htmlUrl = dictionaryConfig.aliYunOssDomain().getUrl() + File.separator + htmlPath;
-                }
-                if (StringUtils.isNotBlank(pdfPath)) {
-                    pdfUrl = dictionaryConfig.aliYunOssDomain().getUrl() + File.separator + pdfPath;
-                }
             }
             }
 
 
         }
         }
-        map.put("pathUrl", pathUrl);
-        map.put("htmlUrl", htmlUrl);
-        map.put("pdfUrl", pdfUrl);
+        map.put("url", pathUrl);
+        map.put("md5", attachment.getMd5());
         return map;
         return map;
     }
     }
 
 

+ 7 - 5
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailServiceImpl.java

@@ -209,7 +209,8 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     @Override
     @Override
     public IPage<ExaminationResult> findExaminationBriefPage(Long schoolId, Long printPlanId, String courseCode, String paperNumber, String examPlace, String examRoom, String packageCode, int pageNumber, int pageSize) {
     public IPage<ExaminationResult> findExaminationBriefPage(Long schoolId, Long printPlanId, String courseCode, String paperNumber, String examPlace, String examRoom, String packageCode, int pageNumber, int pageSize) {
-        IPage<ExaminationResult> page = examDetailMapper.findBriefPage(new Page<>(pageNumber, pageSize), schoolId, printPlanId, courseCode, paperNumber, examPlace, examRoom, packageCode);
+        Set<Long> orgIds = commonService.listSubOrgIds(null);
+        IPage<ExaminationResult> page = examDetailMapper.findBriefPage(new Page<>(pageNumber, pageSize), schoolId, printPlanId, courseCode, paperNumber, examPlace, examRoom, packageCode,orgIds);
         List<ExaminationResult> list = page.getRecords();
         List<ExaminationResult> list = page.getRecords();
         for (ExaminationResult examinationResult : list) {
         for (ExaminationResult examinationResult : list) {
             String examDetailCourseIds = examinationResult.getExamDetailCourseIds();
             String examDetailCourseIds = examinationResult.getExamDetailCourseIds();
@@ -267,7 +268,8 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     @Override
     @Override
     public IPage<ExaminationDetailResult> findExaminationDetail(Long schoolId, Long printPlanId, String courseCode, String paperNumber, String examPlace, String examRoom, String studentParams, int pageNumber, int pageSize) {
     public IPage<ExaminationDetailResult> findExaminationDetail(Long schoolId, Long printPlanId, String courseCode, String paperNumber, String examPlace, String examRoom, String studentParams, int pageNumber, int pageSize) {
-        return examDetailMapper.findDetailPage(new Page<>(pageNumber, pageSize), schoolId, printPlanId, courseCode, paperNumber, examPlace, examRoom, studentParams);
+        Set<Long> orgIds = commonService.listSubOrgIds(null);
+        return examDetailMapper.findDetailPage(new Page<>(pageNumber, pageSize), schoolId, printPlanId, courseCode, paperNumber, examPlace, examRoom, studentParams,orgIds);
     }
     }
 
 
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
@@ -303,8 +305,8 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
 
 
         // 印刷计划必须为就绪才可提交印刷
         // 印刷计划必须为就绪才可提交印刷
         ExamPrintPlan examPrintPlan = examPrintPlanService.getById(detail.getPrintPlanId());
         ExamPrintPlan examPrintPlan = examPrintPlanService.getById(detail.getPrintPlanId());
-        if (!PrintPlanStatusEnum.READY.equals(examPrintPlan.getStatus())) {
-            throw ExceptionResultEnum.ERROR.exception("印刷计划就绪状态才可提交印刷");
+        if (!PrintPlanStatusEnum.READY.equals(examPrintPlan.getStatus()) && !PrintPlanStatusEnum.PRINTING.equals(examPrintPlan.getStatus())) {
+            throw ExceptionResultEnum.ERROR.exception("印刷计划就绪、印刷中状态才可提交印刷");
         }
         }
 
 
         // 只有就绪状态并且附件生成才可提交
         // 只有就绪状态并且附件生成才可提交
@@ -638,7 +640,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
     }
     }
 
 
     @Override
     @Override
-    public List<Map<String, String>> listStudentByExamDetailId(Long schoolId, Long examDetailId, String ticketNumber, String type) {
+    public List<Map> listStudentByExamDetailId(Long schoolId, Long examDetailId, String ticketNumber, String type) {
         return this.baseMapper.listStudentByExamDetailId(schoolId, examDetailId, ticketNumber, type);
         return this.baseMapper.listStudentByExamDetailId(schoolId, examDetailId, ticketNumber, type);
     }
     }
 
 

+ 8 - 5
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPrintPlanServiceImpl.java

@@ -277,13 +277,17 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
 
 
     @Override
     @Override
     public IPage<ClientPrintTaskDto> listClientPrintTask(Page<ClientPrintTaskDto> page, Long schoolId, Long machineCode, String printPlanId, String status, String courseCode, String paperNumber, String examPlace, String examRoom, Long examStartTime, Long examEndTime, Boolean isDownload, Boolean validate, Set<Long> orgIds) {
     public IPage<ClientPrintTaskDto> listClientPrintTask(Page<ClientPrintTaskDto> page, Long schoolId, Long machineCode, String printPlanId, String status, String courseCode, String paperNumber, String examPlace, String examRoom, Long examStartTime, Long examEndTime, Boolean isDownload, Boolean validate, Set<Long> orgIds) {
-        return this.baseMapper.listClientPrintTask(page, schoolId, machineCode, printPlanId, status, courseCode, paperNumber, examPlace, examRoom, examStartTime, examEndTime, isDownload, validate, orgIds);
+        // 以下状态考场状态不可查询
+        String[] examDetailStatus = new String[]{ExamDetailStatusEnum.NEW.name(),PrintPlanStatusEnum.READY.name()};
+        return this.baseMapper.listClientPrintTask(page, schoolId, machineCode, printPlanId, status, courseCode, paperNumber, examPlace, examRoom, examStartTime, examEndTime, isDownload, validate, orgIds, examDetailStatus);
     }
     }
 
 
 
 
     @Override
     @Override
     public List<ClientPrintTaskDto> listClientPrintTask(Long schoolId, Long machineCode, String printPlanId, String status, String courseCode, String paperNumber, String examPlace, String examRoom, Long examStartTime, Long examEndTime, Boolean isDownload, Boolean validate, Set<Long> orgIds) {
     public List<ClientPrintTaskDto> listClientPrintTask(Long schoolId, Long machineCode, String printPlanId, String status, String courseCode, String paperNumber, String examPlace, String examRoom, Long examStartTime, Long examEndTime, Boolean isDownload, Boolean validate, Set<Long> orgIds) {
-        return this.baseMapper.listClientPrintTask(schoolId, machineCode, printPlanId, status, courseCode, paperNumber, examPlace, examRoom, examStartTime, examEndTime, isDownload, validate, orgIds);
+        // 以下状态考场状态不可查询
+        String[] examDetailStatus = new String[]{ExamDetailStatusEnum.NEW.name(),PrintPlanStatusEnum.READY.name()};
+        return this.baseMapper.listClientPrintTask(schoolId, machineCode, printPlanId, status, courseCode, paperNumber, examPlace, examRoom, examStartTime, examEndTime, isDownload, validate, orgIds, examDetailStatus);
     }
     }
 
 
 
 
@@ -318,9 +322,8 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
             fMap.put("utl", null);
             fMap.put("utl", null);
         } else if (attachment.getType().equals(".pdf")) {
         } else if (attachment.getType().equals(".pdf")) {
             fMap.put("content", null);
             fMap.put("content", null);
-
-            Map<String, String> urlMap = commonService.filePreview(attachmentId, false);
-            fMap.put("url", urlMap.get("pathUrl"));
+            Map<String, String> stringMap = commonService.filePreviewByAttachmentId(Long.valueOf(attachmentId), false);
+            fMap.putAll(stringMap);
         } else {
         } else {
             throw ExceptionResultEnum.ERROR.exception("不支持的类型");
             throw ExceptionResultEnum.ERROR.exception("不支持的类型");
         }
         }

+ 3 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskDetailServiceImpl.java

@@ -141,10 +141,10 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
     }
     }
 
 
     @Override
     @Override
-    public String getUrl(Long schoolId, Long examTaskId) {
+    public Map<String, String> getUrl(Long schoolId, Long examTaskId) {
         QueryWrapper<ExamTaskDetail> examTaskDetailQueryWrapper = new QueryWrapper<>();
         QueryWrapper<ExamTaskDetail> examTaskDetailQueryWrapper = new QueryWrapper<>();
         examTaskDetailQueryWrapper.lambda().eq(ExamTaskDetail::getExamTaskId, examTaskId);
         examTaskDetailQueryWrapper.lambda().eq(ExamTaskDetail::getExamTaskId, examTaskId);
-        ExamTaskDetail examTaskDetail = this.getById(examTaskDetailQueryWrapper);
+        ExamTaskDetail examTaskDetail = this.getOne(examTaskDetailQueryWrapper);
         if(examTaskDetail != null){
         if(examTaskDetail != null){
             String relatePaperType = examTaskDetail.getRelatePaperType();
             String relatePaperType = examTaskDetail.getRelatePaperType();
             if(StringUtils.isNotBlank(relatePaperType)){
             if(StringUtils.isNotBlank(relatePaperType)){
@@ -158,8 +158,7 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
                     }
                     }
                 }
                 }
                 if(StringUtils.isNotBlank(attachmentId)){
                 if(StringUtils.isNotBlank(attachmentId)){
-                    BasicAttachment attachment = basicAttachmentService.getById(attachmentId);
-                    return attachment == null ? null : commonService.filePreview(attachment.getPath());
+                    return commonService.filePreviewByAttachmentId(Long.valueOf(attachmentId), false);
                 }
                 }
             }
             }
         }
         }

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

@@ -578,6 +578,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             taskReviewLog.setOperateId(sysUser.getId());
             taskReviewLog.setOperateId(sysUser.getId());
             taskReviewLog.setOperateTime(System.currentTimeMillis());
             taskReviewLog.setOperateTime(System.currentTimeMillis());
             taskReviewLog.setExamTaskId(examTaskId);
             taskReviewLog.setExamTaskId(examTaskId);
+            taskReviewLog.setId(SystemConstant.getDbUuid());
             examTaskReviewLogService.save(taskReviewLog);
             examTaskReviewLogService.save(taskReviewLog);
 
 
             // 更新命题任务状态
             // 更新命题任务状态
@@ -858,14 +859,16 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
     public IPage<ClientExamTaskDto> listTryTask(Long schoolId, String machineCode, Long orgId, Long printPlanId, String courseCode, String paperNumber, Boolean isTry, Boolean isPass, Integer pageNumber, Integer pageSize) {
     public IPage<ClientExamTaskDto> listTryTask(Long schoolId, String machineCode, Long orgId, Long printPlanId, String courseCode, String paperNumber, Boolean isTry, Boolean isPass, Integer pageNumber, Integer pageSize) {
         Set<Long> orgIds = commonService.listSubOrgIds(orgId);
         Set<Long> orgIds = commonService.listSubOrgIds(orgId);
         Page<ClientExamTaskDto> page = new Page<>(pageNumber, pageSize);
         Page<ClientExamTaskDto> page = new Page<>(pageNumber, pageSize);
-        IPage<ClientExamTaskDto> examTaskDtoIPage = this.baseMapper.listClientExamTaskPage(page, schoolId, machineCode, printPlanId, courseCode, paperNumber, isTry, isPass, orgIds);
+        // 印刷任务状态为印刷中(PRINTING),考场状态为待打印(WAITING)
+        IPage<ClientExamTaskDto> examTaskDtoIPage = this.baseMapper.listClientExamTaskPage(page, schoolId, machineCode, printPlanId, courseCode, paperNumber, isTry, isPass, orgIds, PrintPlanStatusEnum.PRINTING.name(), ExamDetailStatusEnum.WAITING.name());
         return examTaskDtoIPage;
         return examTaskDtoIPage;
     }
     }
 
 
     @Override
     @Override
     public List<ClientExamTaskDto> listTryTask(Long schoolId, String machineCode, Long orgId, Long printPlanId, String courseCode, String paperNumber, Boolean isTry, Boolean isPass) {
     public List<ClientExamTaskDto> listTryTask(Long schoolId, String machineCode, Long orgId, Long printPlanId, String courseCode, String paperNumber, Boolean isTry, Boolean isPass) {
         Set<Long> orgIds = commonService.listSubOrgIds(orgId);
         Set<Long> orgIds = commonService.listSubOrgIds(orgId);
-        List<ClientExamTaskDto> examTaskDtoIPage = this.baseMapper.listClientExamTaskPage(schoolId, machineCode, printPlanId, courseCode, paperNumber, isTry, isPass, orgIds);
+        // 印刷任务状态为印刷中(PRINTING),考场状态为待打印(WAITING)
+        List<ClientExamTaskDto> examTaskDtoIPage = this.baseMapper.listClientExamTaskPage(schoolId, machineCode, printPlanId, courseCode, paperNumber, isTry, isPass, orgIds, PrintPlanStatusEnum.PRINTING.name(), ExamDetailStatusEnum.WAITING.name());
         return examTaskDtoIPage;
         return examTaskDtoIPage;
     }
     }
 
 

+ 11 - 10
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/TaskLogicServiceImpl.java

@@ -662,17 +662,19 @@ public class TaskLogicServiceImpl implements TaskLogicService {
 
 
             // 处理试卷样品
             // 处理试卷样品
             List<Map> paperInfo = JSONObject.parseArray(examTaskDetail.getPaperAttachmentIds(), Map.class);
             List<Map> paperInfo = JSONObject.parseArray(examTaskDetail.getPaperAttachmentIds(), Map.class);
+            if (Objects.isNull(paperInfo)){
+                throw ExceptionResultEnum.ERROR.exception("试卷信息不存在");
+            }
             System.out.println("paperInfo = " + JSON.toJSONString(paperInfo));
             System.out.println("paperInfo = " + JSON.toJSONString(paperInfo));
             Set<Long> attPaperIds = new HashSet<>();
             Set<Long> attPaperIds = new HashSet<>();
             for (Map paperMap : paperInfo) {
             for (Map paperMap : paperInfo) {
-                if (Objects.isNull(paperMap.get("attachmentId"))) {
-                    throw ExceptionResultEnum.ERROR.exception("未找到附件id");
+                if (Objects.nonNull(paperMap.get("attachmentId")) && String.valueOf(paperMap.get("attachmentId")).length() > 0 && !String.valueOf(paperMap.get("attachmentId")).equals("null")) {
+                    Long attachmentId = Long.valueOf(String.valueOf(paperMap.get("attachmentId")));
+                    attPaperIds.add(attachmentId);
                 }
                 }
-                Long attachmentId = Long.valueOf(String.valueOf(paperMap.get("attachmentId")));
-                attPaperIds.add(attachmentId);
             }
             }
-            List<BasicAttachment> paperAttachmentList = basicAttachmentService.listByIds(attPaperIds);
-            if (Objects.nonNull(paperAttachmentList)) {
+            if (attPaperIds.size() > 0) {
+                List<BasicAttachment> paperAttachmentList = basicAttachmentService.listByIds(attPaperIds);
                 for (BasicAttachment paperAttachment : paperAttachmentList) {
                 for (BasicAttachment paperAttachment : paperAttachmentList) {
                     JSONObject jsonObject = JSONObject.parseObject(paperAttachment.getPath());
                     JSONObject jsonObject = JSONObject.parseObject(paperAttachment.getPath());
                     String paperPath = firstPath + File.separator + "试卷" + File.separator + paperAttachment.getName() + paperAttachment.getType();
                     String paperPath = firstPath + File.separator + "试卷" + File.separator + paperAttachment.getName() + paperAttachment.getType();
@@ -692,8 +694,8 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                 Long attachmentId = Long.valueOf(String.valueOf(confirmMap.get("attachmentId")));
                 Long attachmentId = Long.valueOf(String.valueOf(confirmMap.get("attachmentId")));
                 attConfirmIds.add(attachmentId);
                 attConfirmIds.add(attachmentId);
             }
             }
-            List<BasicAttachment> confirmAttachmentList = basicAttachmentService.listByIds(attConfirmIds);
-            if (Objects.nonNull(confirmAttachmentList)) {
+            if (attConfirmIds.size() > 0) {
+                List<BasicAttachment> confirmAttachmentList = basicAttachmentService.listByIds(attConfirmIds);
                 for (BasicAttachment confirmAttachment : confirmAttachmentList) {
                 for (BasicAttachment confirmAttachment : confirmAttachmentList) {
                     JSONObject jsonObject = JSONObject.parseObject(confirmAttachment.getPath());
                     JSONObject jsonObject = JSONObject.parseObject(confirmAttachment.getPath());
                     String confirmPath = firstPath + File.separator + "审核样本" + File.separator + confirmAttachment.getName() + confirmAttachment.getType();
                     String confirmPath = firstPath + File.separator + "审核样本" + File.separator + confirmAttachment.getName() + confirmAttachment.getType();
@@ -729,7 +731,6 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                 JSONObject jsonObject = JSONObject.parseObject(cardAttachment.getPath());
                 JSONObject jsonObject = JSONObject.parseObject(cardAttachment.getPath());
                 String cardPath = firstPath + File.separator + "题卡" + File.separator + cardAttachment.getName() + cardAttachment.getType();
                 String cardPath = firstPath + File.separator + "题卡" + File.separator + cardAttachment.getName() + cardAttachment.getType();
                 ossUtil.ossDownload((String) jsonObject.get(SystemConstant.PATH), cardPath);
                 ossUtil.ossDownload((String) jsonObject.get(SystemConstant.PATH), cardPath);
-                count++;
             } else {
             } else {
                 List<ExamCardDetail> examCardDetailList = examCardDetailService.list(new QueryWrapper<ExamCardDetail>().lambda().eq(ExamCardDetail::getCardId, cardId));
                 List<ExamCardDetail> examCardDetailList = examCardDetailService.list(new QueryWrapper<ExamCardDetail>().lambda().eq(ExamCardDetail::getCardId, cardId));
                 if (examCardDetailList.size() != 1) {
                 if (examCardDetailList.size() != 1) {
@@ -744,8 +745,8 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                     localFile.getParentFile().mkdirs();
                     localFile.getParentFile().mkdirs();
                 }
                 }
                 FileCopyUtils.copy(bytes, localFile);
                 FileCopyUtils.copy(bytes, localFile);
-                count++;
             }
             }
+            count ++;
         }
         }
         ZipUtil.zip(zipLocalRootPath, zipFile.getPath(), true);
         ZipUtil.zip(zipLocalRootPath, zipFile.getPath(), true);
         ossUtil.ossUpload(dirNameTmp, zipFile, BinaryUtil.toBase64String(HexUtils.decodeHex(DigestUtils.md5Hex(new FileInputStream(zipFile)))));
         ossUtil.ossUpload(dirNameTmp, zipFile, BinaryUtil.toBase64String(HexUtils.decodeHex(DigestUtils.md5Hex(new FileInputStream(zipFile)))));

+ 1 - 1
distributed-print-business/src/main/resources/mapper/ExamDetailCourseMapper.xml

@@ -22,7 +22,7 @@
             a.course_code courseCode,
             a.course_code courseCode,
             a.course_name courseName,
             a.course_name courseName,
             a.paper_number paperNumber,
             a.paper_number paperNumber,
-            b.paper_attachment_ids paperAttachmentIds,
+            c.paper_attachment_ids paperAttachmentIds,
             d.attachment_id attachmentIds
             d.attachment_id attachmentIds
         FROM
         FROM
             exam_detail_course a
             exam_detail_course a

+ 17 - 1
distributed-print-business/src/main/resources/mapper/ExamDetailMapper.xml

@@ -117,6 +117,8 @@
         INNER JOIN
         INNER JOIN
         exam_detail_course cou ON det.id = cou.exam_detail_id
         exam_detail_course cou ON det.id = cou.exam_detail_id
         AND det.school_id = cou.school_id
         AND det.school_id = cou.school_id
+        LEFT JOIN
+        sys_user b on det.create_id = b.id
         <where>
         <where>
             <if test="schoolId != null and schoolId > 0">
             <if test="schoolId != null and schoolId > 0">
                 AND det.school_id = #{schoolId}
                 AND det.school_id = #{schoolId}
@@ -133,6 +135,12 @@
             <if test="packageCode != null and packageCode.length > 0">
             <if test="packageCode != null and packageCode.length > 0">
                 AND det.package_code = #{packageCode}
                 AND det.package_code = #{packageCode}
             </if>
             </if>
+            <if test="orgIds != null">
+                AND b.org_id IN
+                <foreach collection="orgIds" item="item" index="index" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
         </where>
         </where>
         GROUP BY det.id
         GROUP BY det.id
         <trim prefix="having" suffixOverrides="and">
         <trim prefix="having" suffixOverrides="and">
@@ -174,6 +182,8 @@
                 INNER JOIN
                 INNER JOIN
             exam_detail det ON cou.exam_detail_id = det.id
             exam_detail det ON cou.exam_detail_id = det.id
                 AND stu.school_id = det.school_id
                 AND stu.school_id = det.school_id
+                LEFT JOIN
+            sys_user b on det.create_id = b.id
         <where>
         <where>
             <if test="schoolId != null and schoolId > 0">
             <if test="schoolId != null and schoolId > 0">
                 AND det.school_id = #{schoolId}
                 AND det.school_id = #{schoolId}
@@ -196,6 +206,12 @@
             <if test="studentParams != null and studentParams.length > 0">
             <if test="studentParams != null and studentParams.length > 0">
                 AND (stu.ticket_number LIKE CONCAT('%',#{studentParams},'%') OR stu.student_code LIKE CONCAT('%',#{studentParams},'%') OR stu.student_name LIKE CONCAT('%',#{studentParams},'%'))
                 AND (stu.ticket_number LIKE CONCAT('%',#{studentParams},'%') OR stu.student_code LIKE CONCAT('%',#{studentParams},'%') OR stu.student_name LIKE CONCAT('%',#{studentParams},'%'))
             </if>
             </if>
+            <if test="orgIds != null">
+                AND b.org_id IN
+                <foreach collection="orgIds" item="item" index="index" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
         </where>
         </where>
     </select>
     </select>
     <select id="findDetailPageById"
     <select id="findDetailPageById"
@@ -328,7 +344,7 @@
             and c.ticket_number = #{ticketNumber}
             and c.ticket_number = #{ticketNumber}
         </if>
         </if>
         <if test="type == 'MORE'">
         <if test="type == 'MORE'">
-            and c.ticket_number > 0+cast(#{ticketNumber} as char)
+            and c.ticket_number > #{ticketNumber}
         </if>
         </if>
     </select>
     </select>
     <select id="selectPaperCount" resultType="java.lang.Integer">
     <select id="selectPaperCount" resultType="java.lang.Integer">

+ 21 - 9
distributed-print-business/src/main/resources/mapper/ExamPrintPlanMapper.xml

@@ -114,12 +114,14 @@
             IFNULL(b.pages_a4, 0) pagesA4,
             IFNULL(b.pages_a4, 0) pagesA4,
             c.singlePagesA3,
             c.singlePagesA3,
             b.status,
             b.status,
-            b.validate,
-            c.isDownload,
+            ifnull(b.validate, false) validate,
+            case c.isDownload when 0 then true else false end isDownload,
             b.print_user printUser,
             b.print_user printUser,
             e.real_name printUserName,
             e.real_name printUserName,
             b.print_start_time printStartTime,
             b.print_start_time printStartTime,
-            b.print_end_time printEndTime
+            b.print_end_time printEndTime,
+            case c.isTry when 0 then true else false end isTry,
+            case c.isPass when 0 then true else false end isPass
         FROM
         FROM
             exam_print_plan a
             exam_print_plan a
                 JOIN
                 JOIN
@@ -131,18 +133,24 @@
                     GROUP_CONCAT(a.paper_number) paperNumber,
                     GROUP_CONCAT(a.paper_number) paperNumber,
                     GROUP_CONCAT(IFNULL(a.paper_pages_a3, 0) + IFNULL(a.card_pages_a3, 0)) singlePagesA3,
                     GROUP_CONCAT(IFNULL(a.paper_pages_a3, 0) + IFNULL(a.card_pages_a3, 0)) singlePagesA3,
                     SUM(CASE b.is_download
                     SUM(CASE b.is_download
-                        WHEN FALSE THEN 1
-                        ELSE 0
-                    END) isDownload
+                        WHEN true THEN 0
+                        ELSE 1
+                    END) isDownload,
+                    SUM(CASE b.is_try
+                        WHEN true THEN 0
+                        ELSE 1
+                    END) isTry,
+                    SUM(CASE b.is_pass
+                        WHEN true THEN 0
+                        ELSE 1
+                    END) isPass
             FROM
             FROM
                 exam_detail_course a
                 exam_detail_course a
             LEFT JOIN client_status b ON a.school_id = b.school_id
             LEFT JOIN client_status b ON a.school_id = b.school_id
                 AND a.course_code = b.course_code
                 AND a.course_code = b.course_code
                 AND a.paper_number = b.paper_number
                 AND a.paper_number = b.paper_number
+                AND b.machine_code = #{machineCode}
             <where>
             <where>
-                <if test="machineCode != null and machineCode != ''">
-                    and b.machine_code = #{machineCode}
-                </if>
                 <if test="courseCode != null and courseCode != ''">
                 <if test="courseCode != null and courseCode != ''">
                     and a.course_code = #{courseCode}
                     and a.course_code = #{courseCode}
                 </if>
                 </if>
@@ -157,6 +165,10 @@
             sys_user d ON a.create_id = d.id
             sys_user d ON a.create_id = d.id
         <where>
         <where>
             and a.school_id = #{schoolId}
             and a.school_id = #{schoolId}
+            AND b.status not IN
+            <foreach collection="examDetailStatus" item="item" index="index" open="(" separator="," close=")">
+                #{item}
+            </foreach>
             <if test="printPlanId != null and printPlanId != ''">
             <if test="printPlanId != null and printPlanId != ''">
                 and a.id = #{printPlanId}
                 and a.id = #{printPlanId}
             </if>
             </if>

+ 10 - 8
distributed-print-business/src/main/resources/mapper/ExamTaskMapper.xml

@@ -116,7 +116,7 @@
             a.specialty,
             a.specialty,
             a.paper_number paperNumber,
             a.paper_number paperNumber,
             a.card_rule_id cardRuleId,
             a.card_rule_id cardRuleId,
-            b.name cardRuleName,
+            case a.card_rule_id when -1 then '全部通卡' else b.name end cardRuleName,
             a.user_id userId,
             a.user_id userId,
             c.real_name userName,
             c.real_name userName,
             a.start_time startTime,
             a.start_time startTime,
@@ -186,7 +186,7 @@
             a.specialty,
             a.specialty,
             a.paper_number paperNumber,
             a.paper_number paperNumber,
             a.card_rule_id cardRuleId,
             a.card_rule_id cardRuleId,
-            b.name cardRuleName,
+            case a.card_rule_id when -1 then '全部通卡' else b.name end cardRuleName,
             a.user_id userId,
             a.user_id userId,
             c.real_name userName,
             c.real_name userName,
             d.real_name createName,
             d.real_name createName,
@@ -254,7 +254,7 @@
             a.specialty,
             a.specialty,
             a.paper_number paperNumber,
             a.paper_number paperNumber,
             a.card_rule_id cardRuleId,
             a.card_rule_id cardRuleId,
-            b.name cardRuleName,
+            case a.card_rule_id when -1 then '全部通卡' else b.name end cardRuleName,
             a.user_id userId,
             a.user_id userId,
             c.real_name userName,
             c.real_name userName,
             d.real_name createName,
             d.real_name createName,
@@ -442,8 +442,8 @@
             d.specialty,
             d.specialty,
             d.user_id userId,
             d.user_id userId,
             f.real_name userName,
             f.real_name userName,
-            e.is_try isTry,
-            e.is_pass isPass,
+            ifnull(e.is_try, false) isTry,
+            ifnull(e.is_pass, false) isPass,
             e.try_time tryTime
             e.try_time tryTime
         FROM
         FROM
             exam_print_plan a
             exam_print_plan a
@@ -457,14 +457,16 @@
                 AND d.paper_number = c.paper_number
                 AND d.paper_number = c.paper_number
                 LEFT JOIN
                 LEFT JOIN
             client_status e ON e.school_id = d.school_id
             client_status e ON e.school_id = d.school_id
-                AND e.exam_task_id = d.id
+                AND e.course_code = d.course_code
+                AND e.paper_number = d.paper_number
+                and e.machine_code = #{machineCode}
                 LEFT JOIN
                 LEFT JOIN
             sys_user f ON d.user_id = f.id
             sys_user f ON d.user_id = f.id
                 LEFT JOIN
                 LEFT JOIN
             sys_user g ON a.create_id = g.id
             sys_user g ON a.create_id = g.id
         <where>
         <where>
-            and a.status = 'READY'
-            and e.machine_code = #{machineCode}
+            and a.status = #{printPlanStatus}
+            and b.status = #{examDetailStatus}
             <if test="printPlanId != null and printPlanId != ''">
             <if test="printPlanId != null and printPlanId != ''">
                 and a.id = #{printPlanId}
                 and a.id = #{printPlanId}
             </if>
             </if>

+ 4 - 4
distributed-print/src/main/java/com/qmth/distributed/print/api/ClientController.java

@@ -133,8 +133,8 @@ public class ClientController {
     @RequestMapping(value = "/paper_try/print", method = RequestMethod.POST)
     @RequestMapping(value = "/paper_try/print", method = RequestMethod.POST)
     public Result paperTryPrint(@RequestParam("schoolId") Long schoolId,
     public Result paperTryPrint(@RequestParam("schoolId") Long schoolId,
                                 @RequestParam("examTaskId") Long examTaskId) {
                                 @RequestParam("examTaskId") Long examTaskId) {
-        String url = clientService.getUrl(schoolId, examTaskId);
-        return ResultUtil.ok(url, "");
+        Map<String, String>  map = clientService.getUrl(schoolId, examTaskId);
+        return ResultUtil.ok(map);
     }
     }
 
 
     /**
     /**
@@ -315,8 +315,8 @@ public class ClientController {
     @RequestMapping(value = "/print/preview", method = RequestMethod.POST)
     @RequestMapping(value = "/print/preview", method = RequestMethod.POST)
     public Result printPreview(@RequestParam("schoolId") Long schoolId,
     public Result printPreview(@RequestParam("schoolId") Long schoolId,
                                @RequestParam("examDetailId") Long examDetailId) {
                                @RequestParam("examDetailId") Long examDetailId) {
-        String url = clientService.getUrlByExamDetailId(schoolId, examDetailId);
-        return ResultUtil.ok(url, "");
+        Map<String, String> map = clientService.getUrlByExamDetailId(schoolId, examDetailId);
+        return ResultUtil.ok(map);
     }
     }
 
 
     /**
     /**