wangliang 4 жил өмнө
parent
commit
5eac3f0e8a

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

@@ -316,13 +316,13 @@ public class TBTaskServiceImpl extends ServiceImpl<TBTaskMapper, TBTask> impleme
     @Transactional
     public void updateStatus() throws IOException {
         //不是自动生成pdf的全部改为失败
-        UpdateWrapper<TBTask> tbTaskUpdateWrapper = new UpdateWrapper<>();
-        tbTaskUpdateWrapper.lambda().set(TBTask::getStatus, TaskStatusEnum.FINISH)
-                .set(TBTask::getSummary, "系统提交:网络异常或程序异常中断!")
-                .set(TBTask::getResult, TaskResultEnum.ERROR)
-                .isNotNull(TBTask::getStatus).ne(TBTask::getStatus, TaskStatusEnum.FINISH)
-                .ne(TBTask::getType, TaskTypeEnum.CREATE_PDF);
-        this.update(tbTaskUpdateWrapper);
+//        UpdateWrapper<TBTask> tbTaskUpdateWrapper = new UpdateWrapper<>();
+//        tbTaskUpdateWrapper.lambda().set(TBTask::getStatus, TaskStatusEnum.FINISH)
+//                .set(TBTask::getSummary, "系统提交:网络异常或程序异常中断!")
+//                .set(TBTask::getResult, TaskResultEnum.ERROR)
+//                .isNotNull(TBTask::getStatus).ne(TBTask::getStatus, TaskStatusEnum.FINISH)
+//                .ne(TBTask::getType, TaskTypeEnum.CREATE_PDF);
+//        this.update(tbTaskUpdateWrapper);
 
         QueryWrapper<TBTask> tbTaskQueryWrapper = new QueryWrapper<>();
         tbTaskQueryWrapper.lambda().eq(TBTask::getType, TaskTypeEnum.CREATE_PDF)

+ 5 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncCreatePdfTempleteService.java

@@ -50,8 +50,12 @@ public class AsyncCreatePdfTempleteService extends AsyncCreateTaskTemplete {
     public Result createPdf(Map<String, Object> map, CallbackCreatePdf callbackCreatePdf) throws IOException {
         TBTask tbTask = (TBTask) map.get(SystemConstant.TASK);
         StringJoiner stringJoinerSummary = new StringJoiner("\n").add(MessageFormat.format("{0}{1}{2}", DateUtil.format(new Date(), SystemConstant.DEFAULT_DATE_PATTERN), BEGIN_TITLE, OBJ_TITLE));
-        tbTask.setStatus(TaskStatusEnum.RUNNING);
         TBTaskService tbTaskService = SpringContextHolder.getBean(TBTaskService.class);
+        TBTask dbTask = tbTaskService.getById(tbTask.getId());
+        if (dbTask.getStatus() == TaskStatusEnum.FINISH && Objects.nonNull(dbTask.getResult())) {//无需重新生成pdf
+            return ResultUtil.ok();
+        }
+        tbTask.setStatus(TaskStatusEnum.RUNNING);
         tbTaskService.updateById(tbTask);
         try {
             TaskLogicService taskLogicService = SpringContextHolder.getBean(TaskLogicService.class);

+ 8 - 6
distributed-print-business/src/main/resources/mapper/ExamPrintPlanMapper.xml

@@ -139,8 +139,8 @@
             exam_detail b ON a.id = b.print_plan_id
                 JOIN
             (SELECT
-                    b.exam_detail_id,
-                    b.print_plan_id,
+                    a.exam_detail_id,
+                    c.print_plan_id,
                     GROUP_CONCAT(CONCAT(a.course_name, '(', a.course_code, ')')) courseNameCode,
                     GROUP_CONCAT(a.paper_number) paperNumber,
                     GROUP_CONCAT(IFNULL(a.paper_pages_a3, 0) + IFNULL(a.card_pages_a3, 0)) singlePagesA3,
@@ -158,12 +158,13 @@
                     END) isPass
             FROM
                 exam_detail_course a
+            LEFT JOIN exam_detail c ON a.exam_detail_id = c.id
             LEFT JOIN client_status b ON a.school_id = b.school_id
                 AND a.exam_detail_id = b.exam_detail_id
                 AND a.course_code = b.course_code
                 AND a.paper_number = b.paper_number
                 AND b.machine_code = #{machineCode}
-            GROUP BY b.exam_detail_id, b.print_plan_id) c ON a.id = c.print_plan_id and b.id = c.exam_detail_id
+            GROUP BY a.exam_detail_id , c.print_plan_id) c ON a.id = c.print_plan_id and b.id = c.exam_detail_id
                 LEFT JOIN
             sys_user e ON b.print_user = e.login_name
                 LEFT JOIN
@@ -231,8 +232,8 @@
             exam_detail b ON a.id = b.print_plan_id
         JOIN
             (SELECT
-                b.exam_detail_id,
-                b.print_plan_id,
+                a.exam_detail_id,
+                c.print_plan_id,
                 GROUP_CONCAT(CONCAT(a.course_name, '(', a.course_code, ')')) courseNameCode,
                 GROUP_CONCAT(a.paper_number) paperNumber,
                 GROUP_CONCAT(IFNULL(a.paper_pages_a3, 0) + IFNULL(a.card_pages_a3, 0)) singlePagesA3,
@@ -250,12 +251,13 @@
                     END) isPass
         FROM
             exam_detail_course a
+                LEFT JOIN exam_detail c ON a.exam_detail_id = c.id
                 LEFT JOIN client_status b ON a.school_id = b.school_id
                 AND a.exam_detail_id = b.exam_detail_id
                 AND a.course_code = b.course_code
                 AND a.paper_number = b.paper_number
                 AND b.machine_code = #{machineCode}
-        GROUP BY b.exam_detail_id, b.print_plan_id) c ON a.id = c.print_plan_id and b.id = c.exam_detail_id
+        GROUP BY a.exam_detail_id , c.print_plan_id) c ON a.id = c.print_plan_id and b.id = c.exam_detail_id
             LEFT JOIN
         sys_user e ON b.print_user = e.login_name
             LEFT JOIN

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/start/StartRunning.java

@@ -43,7 +43,7 @@ public class StartRunning implements CommandLineRunner {
         SystemConstant.initTempFiles();
         orgCenterDataDisposeService.updateSchoolInfo();
 
-//        taskService.updateStatus();
+        taskService.updateStatus();
 
         log.info("增加学校信息同步定时任务 start");
         Map schoolJobMap = new HashMap();