wangliang 4 lat temu
rodzic
commit
f6c4b58d6f

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

@@ -146,7 +146,7 @@ public interface TBTaskService extends IService<TBTask> {
      * 更新任务状态
      */
     @Async("taskThreadPool")
-    public void updateStatus();
+    public void updateStatus() throws IOException;
 
     /**
      * 重新生成pdf失败任务

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

@@ -35,7 +35,6 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.annotation.Resource;
 import java.io.IOException;
 import java.util.*;
-import java.util.concurrent.atomic.AtomicInteger;
 
 /**
  * <p>
@@ -315,13 +314,35 @@ public class TBTaskServiceImpl extends ServiceImpl<TBTaskMapper, TBTask> impleme
      */
     @Override
     @Transactional
-    public void updateStatus() {
-        UpdateWrapper<TBTask> tbTaskQueryWrapper = new UpdateWrapper<>();
-        tbTaskQueryWrapper.lambda().set(TBTask::getStatus, TaskStatusEnum.FINISH)
+    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);
-        this.update(tbTaskQueryWrapper);
+                .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)
+                .ne(TBTask::getStatus, TaskStatusEnum.FINISH)
+                .ne(TBTask::getResult, TaskResultEnum.SUCCESS).or().isNull(TBTask::getResult)
+                .orderByDesc(TBTask::getStatus);
+        List<TBTask> tbTasks = this.list(tbTaskQueryWrapper);
+        if (Objects.nonNull(tbTasks) && tbTasks.size() > 0) {
+            for (TBTask tbTask : tbTasks) {
+                Map<String, Object> map = new HashMap<>();
+                if (Objects.nonNull(tbTask.getRemark())) {
+                    JSONArray jsonArray = JSONArray.parseArray(tbTask.getRemark());
+                    ArraysParams arraysParams = new ArraysParams(jsonArray.toArray(new Long[jsonArray.size()]));
+                    map.computeIfAbsent("examDetailCourseIds", v -> Arrays.asList(arraysParams.getIds()));
+                }
+                map.computeIfAbsent(SystemConstant.TASK, v -> tbTask);
+                map.computeIfAbsent(SystemConstant.USER, v -> sysUserService.getById(tbTask.getCreateId()));
+                asyncCreatePdfTempleteService.createPdf(map, null);
+            }
+        }
     }
 
     /**