瀏覽代碼

客户端bug修改

xiaof 4 年之前
父節點
當前提交
da186dafb0

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

@@ -155,6 +155,9 @@ public class BasicAttachmentServiceImpl extends ServiceImpl<BasicAttachmentMappe
                 ossUtil.ossUpload(pdfDirName, pdfFile, BinaryUtil.toBase64String(HexUtils.decodeHex(fileMd5)));
 //                localHtmlFile.delete();
                 jsonObject.put(SystemConstant.PDF_PATH, pdfDirName);
+                // htmlMd5
+                jsonObject.put("htmlMd5", DigestUtils.md5Hex(new FileInputStream(localHtmlFile)));
+                jsonObject.put("pdfMd5", fileMd5);
             } else {//上传至服务器
                 File finalFile = new File(stringJoiner.toString());
                 if (!finalFile.exists()) {
@@ -169,6 +172,8 @@ public class BasicAttachmentServiceImpl extends ServiceImpl<BasicAttachmentMappe
                 HtmlToPdfUtil.convert(finalFile.getPath(), destUrl, PageSizeEnum.A3);
 //                File pdfFile = asposePdfUtil.documentToPdf(finalFile.getPath(), destUrl, PaperSize.A3);
                 jsonObject.put(SystemConstant.PDF_PATH, destUrl);
+                jsonObject.put("htmlMd5", DigestUtils.md5Hex(new FileInputStream(finalFile)));
+                jsonObject.put("pdfMd5", fileMd5);
             }
             jsonObject.put(SystemConstant.UPLOAD_TYPE, new UploadFileEnum[]{
                     UploadFileEnum.HTML, UploadFileEnum.PDF

+ 6 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/CommonServiceImpl.java

@@ -415,7 +415,12 @@ public class CommonServiceImpl implements CommonService {
 
         }
         map.put("url", pathUrl);
-        map.put("md5", attachment.getMd5());
+        if(attachment.getType().equals(".html")) {
+            String htmlMd5 = (String) jsonObject.get("htmlMd5");
+            map.put("md5", htmlMd5);
+        } else {
+            map.put("md5", attachment.getMd5());
+        }
         return map;
     }
 

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

@@ -376,8 +376,8 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
         List<ExamDetailCourse> examDetailCourses = examDetailCourseService.list(examDetailCourseQueryWrapper);
         for (ExamDetailCourse examDetailCours : examDetailCourses) {
             List<ExamDetail> examDetailList = this.listByPrintPlanIdAndCourseCodeAndPaperNumber(detail.getSchoolId(), detail.getPrintPlanId(), examDetailCours.getCourseCode(), examDetailCours.getPaperNumber());
-            long count = examDetailList.stream().filter(m->!m.getStatus().name().equals(ExamDetailStatusEnum.NEW.name()) && !m.getStatus().name().equals(ExamDetailStatusEnum.READY.name())).count();
-            if(count == 0){
+            long count = examDetailList.stream().filter(m -> !m.getStatus().name().equals(ExamDetailStatusEnum.NEW.name()) && !m.getStatus().name().equals(ExamDetailStatusEnum.READY.name())).count();
+            if (count == 0) {
                 UpdateWrapper<ClientStatus> clientStatusUpdateWrapper = new UpdateWrapper<>();
                 clientStatusUpdateWrapper.lambda().eq(ClientStatus::getSchoolId, detail.getSchoolId())
                         .eq(ClientStatus::getPrintPlanId, detail.getPrintPlanId())
@@ -665,8 +665,8 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
 
         ExamDetail examDetail = this.getById(examDetailId);
         // 撤回提示
-        if(ExamDetailStatusEnum.NEW.name().equals(examDetail.getStatus())
-                || ExamDetailStatusEnum.READY.name().equals(examDetail.getStatus())){
+        if (ExamDetailStatusEnum.NEW.name().equals(examDetail.getStatus())
+                || ExamDetailStatusEnum.READY.name().equals(examDetail.getStatus())) {
             throw ExceptionResultEnum.ERROR.exception("该任务已被撤回");
         }
 
@@ -676,6 +676,16 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
             updateWrapper.lambda().set(ExamDetail::getPrintProgress, printProgress).set(ExamDetail::getPrintEndTime, System.currentTimeMillis()).set(ExamDetail::getStatus, ExamDetailStatusEnum.FINISH).eq(ExamDetail::getId, examDetailId);
             this.update(updateWrapper);
 
+            // 所有考场打印完成,更新印刷计划状态
+            QueryWrapper<ExamDetail> examDetailQueryWrapper = new QueryWrapper<>();
+            examDetailQueryWrapper.lambda().eq(ExamDetail::getPrintPlanId, examDetail.getPrintPlanId()).ne(ExamDetail::getStatus, ExamDetailStatusEnum.FINISH);
+            int count = this.count(examDetailQueryWrapper);
+            if (count == 0) {
+                UpdateWrapper<ExamPrintPlan> examPrintPlanUpdateWrapper = new UpdateWrapper<>();
+                examPrintPlanUpdateWrapper.lambda().set(ExamPrintPlan::getStatus, PrintPlanStatusEnum.PRINT_FINISH).eq(ExamPrintPlan::getId, examDetail.getPrintPlanId());
+                examPrintPlanService.update(examPrintPlanUpdateWrapper);
+            }
+
             // 记录机器打印数量
             SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
             ClientPrintData clientPrintData = new ClientPrintData();
@@ -701,8 +711,8 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
     public IPage<ClientExamStudentDto> listStudent(Long schoolId, Long examDetailId, String ticketNumber, String studentName, String courseCode, Integer pageNumber, Integer pageSize) {
         // 撤回提示
         ExamDetail examDetail = this.getById(examDetailId);
-        if(ExamDetailStatusEnum.NEW.name().equals(examDetail.getStatus())
-                || ExamDetailStatusEnum.READY.name().equals(examDetail.getStatus())){
+        if (ExamDetailStatusEnum.NEW.name().equals(examDetail.getStatus())
+                || ExamDetailStatusEnum.READY.name().equals(examDetail.getStatus())) {
             throw ExceptionResultEnum.ERROR.exception("该任务已被撤回");
         }
         Page<ClientExamStudentDto> page = new Page<>(pageNumber, pageSize);
@@ -718,7 +728,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
     @Override
     public List<ExamDetail> listByCourseCodeAndPaperNumberAndPaperTypeIsNull(Long schoolId, String courseCode, String paperNumber) {
         List<ExamDetailCourse> examDetailCourses = examDetailCourseService.listByCourseCodeAndPaperNumber(schoolId, courseCode, paperNumber);
-        examDetailCourses = examDetailCourses.stream().filter(m->StringUtils.isBlank(m.getPaperType())).collect(Collectors.toList());
+        examDetailCourses = examDetailCourses.stream().filter(m -> StringUtils.isBlank(m.getPaperType())).collect(Collectors.toList());
         if (examDetailCourses != null && examDetailCourses.size() > 0) {
             Set<Long> examDetailIds = examDetailCourses.stream().map(m -> m.getExamDetailId()).collect(Collectors.toSet());
             List<ExamDetail> examDetails = this.listByIds(examDetailIds);

+ 1 - 1
distributed-print-business/src/main/resources/db/init-table.sql

@@ -366,7 +366,7 @@ CREATE TABLE `exam_print_plan`  (
   `draw_rule` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'ONE-只抽一次,CIRCLE-可循环抽取',
   `variable_content` text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '[\n  	{\n  		\"type\": \"SIGN\",\n  		\"usedId\": 1,\n  		\"backupMethod\": \"ROOM\",\n  		\"backupCount\": 3\n  	},\n  	{\n  		\"type\": \"PACKAG\",\n  		\"usedId\": 3,\n  		\"backupMethod\": \"STUDENT\",\n  		\"backupCount\": 5\n  	}\n  ]',
   `ordinary_content` text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '[\n  	{\n  		\"type\": \"CHECK_IN\",\n  		\"usedId\": 1,\n  		\"backupMethod\": \"ROOM\",\n  		\"backupCount\": 3\n  	}\n  ]',
-  `status` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+  `status` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
   `create_id` bigint(20) NULL DEFAULT NULL,
   `create_time` bigint(20) NULL DEFAULT NULL,
   `update_id` bigint(20) NULL DEFAULT NULL,

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

@@ -173,6 +173,7 @@
             sys_user d ON a.create_id = d.id
         <where>
             and a.school_id = #{schoolId}
+            AND a.status != 'END'
             AND b.status not IN
             <foreach collection="examDetailStatus" item="item" index="index" open="(" separator="," close=")">
                 #{item}