wangliang 4 年 前
コミット
85b614bdb8

+ 4 - 9
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncCreatePdfTempleteService.java

@@ -1,17 +1,12 @@
 package com.qmth.distributed.print.business.templete.execute;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qmth.boot.api.exception.ApiException;
-import com.qmth.distributed.print.business.entity.*;
-import com.qmth.distributed.print.business.enums.ExamCardStatusEnum;
-import com.qmth.distributed.print.business.enums.ExamStatusEnum;
+import com.qmth.distributed.print.business.entity.TBTask;
 import com.qmth.distributed.print.business.enums.TaskResultEnum;
 import com.qmth.distributed.print.business.enums.TaskStatusEnum;
-import com.qmth.distributed.print.business.service.*;
 import com.qmth.distributed.print.business.templete.create.AsyncCreateTaskTemplete;
 import com.qmth.distributed.print.business.templete.service.TaskLogicService;
 import com.qmth.distributed.print.common.contant.SystemConstant;
-import com.qmth.distributed.print.common.enums.ExceptionResultEnum;
 import com.qmth.distributed.print.common.util.Result;
 import com.qmth.distributed.print.common.util.ResultUtil;
 import org.slf4j.Logger;
@@ -21,8 +16,8 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.io.IOException;
 import java.text.MessageFormat;
-import java.util.*;
-import java.util.stream.Collectors;
+import java.util.Map;
+import java.util.StringJoiner;
 
 /**
  * @Description: 创建pdf模版
@@ -54,7 +49,7 @@ public class AsyncCreatePdfTempleteService extends AsyncCreateTaskTemplete {
         tbTask.setStatus(TaskStatusEnum.RUNNING);
         try {
             taskLogicService.executeCreatePdfLogic(map);
-            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", FORMAT_TIME, FINISH_TITLE, 111, FINISH_SIZE));
+            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", FORMAT_TIME, FINISH_TITLE, map.get("size"), FINISH_SIZE));
             tbTask.setResult(TaskResultEnum.SUCCESS);
         } catch (Exception e) {
             log.error("请求出错", e);

+ 7 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/importData/AsyncImportTaskTemplete.java

@@ -6,6 +6,7 @@ import com.qmth.boot.api.exception.ApiException;
 import com.qmth.distributed.print.business.entity.TBTask;
 import com.qmth.distributed.print.business.enums.TaskResultEnum;
 import com.qmth.distributed.print.business.enums.TaskStatusEnum;
+import com.qmth.distributed.print.business.enums.TaskTypeEnum;
 import com.qmth.distributed.print.business.enums.UploadFileEnum;
 import com.qmth.distributed.print.business.service.TBTaskService;
 import com.qmth.distributed.print.business.util.OssUtil;
@@ -99,7 +100,7 @@ public abstract class AsyncImportTaskTemplete {
             inputStream = new ByteArrayInputStream(bookByteAry);
             StringJoiner stringJoiner = new StringJoiner("");
             path = path.substring(0, path.lastIndexOf(File.separator) + 1);
-
+            path = path.replaceAll(UploadFileEnum.PDF.getTitle(), UploadFileEnum.FILE.getTitle());
             stringJoiner.add(path).add(SystemConstant.getUuid()).add(TXT_PREFIX).toString();
             if (Objects.equals(type, SystemConstant.OSS)) {//上传至oss
                 ossUtil.ossUpload(stringJoiner.toString(), inputStream, null);
@@ -142,6 +143,11 @@ public abstract class AsyncImportTaskTemplete {
                 e.printStackTrace();
             }
             tbTask.setStatus(TaskStatusEnum.FINISH);
+            if (tbTask.getType() == TaskTypeEnum.CREATE_PDF) {
+                tbTask.setResultFilePath(tbTask.getImportFilePath());
+                tbTask.setImportFileName(null);
+                tbTask.setImportFilePath(null);
+            }
             tbTaskService.updateById(tbTask);
         }
     }

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

@@ -166,6 +166,8 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         try {
             TBTask tbTask = (TBTask) map.get(SystemConstant.TASK);
             SysUser sysUser = (SysUser) map.get(SystemConstant.USER);
+            Long examDetailId = Objects.nonNull(map.get("examDetailId")) ? (Long) map.get("examDetailId") : null;
+
             //这里为保存附件html的逻辑
             //查询题卡详情是否有附件id,有的话则把以前的附件删除
             Set<Long> attachmentIds = null;
@@ -183,6 +185,9 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             QueryWrapper<ExamDetail> examDetailQueryWrapper = new QueryWrapper<>();
             examDetailQueryWrapper.lambda().eq(ExamDetail::getSchoolId, sysUser.getSchoolId())
                     .eq(ExamDetail::getPrintPlanId, tbTask.getPrintPlanId());
+            if (Objects.nonNull(examDetailId)) {
+                examDetailQueryWrapper.lambda().eq(ExamDetail::getId, examDetailId);
+            }
             List<ExamDetail> examDetailList = detailService.list(examDetailQueryWrapper);
             if (Objects.isNull(examDetailList) || examDetailList.size() == 0) {
                 throw ExceptionResultEnum.ERROR.exception("考务计划为空");
@@ -190,10 +195,6 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             attachmentIds = Objects.isNull(attachmentIds) ? attachmentIds = new HashSet<>() : attachmentIds;
             ftlList = Objects.isNull(ftlList) ? ftlList = new HashSet<>() : ftlList;
             for (ExamDetail examDetail : examDetailList) {
-                if (Objects.nonNull(examDetail.getAttachmentId())) {
-                    attachmentIds.add(examDetail.getAttachmentId());
-                }
-
                 //查询examDetailCourse
                 QueryWrapper<ExamDetailCourse> examDetailCourseQueryWrapper = new QueryWrapper<>();
                 examDetailCourseQueryWrapper.lambda().eq(ExamDetailCourse::getExamDetailId, examDetail.getId());
@@ -303,6 +304,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                 //合并pdf
                 basicAttachmentList.add(mergePdf(tbTask, examDetail, sysUser.getId(), variablePdfList, ordinaryPdfList, paperPdfList, examStudentPdfList, backupPaperPdfList, cardPdfList));
             }
+            map.computeIfAbsent("size", v -> examDetailList.size());
             //最后一步删除附件
             deleteAttachment(attachmentIds, ftlList);
         } catch (Exception e) {

+ 5 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/SysUserController.java

@@ -228,8 +228,12 @@ public class SysUserController {
     @ApiOperation(value = "异步创建pdf接口")
     @RequestMapping(value = "/async/create_pdf", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
-    public Result createPdfAysnc(@ApiParam(value = "印刷计划id", required = true) @RequestParam String printPlanId) throws IOException {
+    public Result createPdfAysnc(@ApiParam(value = "印刷计划id", required = true) @RequestParam String printPlanId,
+                                 @ApiParam(value = "考务计划id", required = false) @RequestParam(required = false) String examDetailId) throws IOException {
         Map<String, Object> map = tbTaskService.saveTask(TaskTypeEnum.CREATE_PDF, SystemConstant.convertIdToLong(printPlanId));
+        if (Objects.nonNull(examDetailId)) {
+            map.computeIfAbsent("examDetailId", v -> SystemConstant.convertIdToLong(examDetailId));
+        }
         asyncCreatePdfTempleteService.createPdf(map);
         TBTask tbTask = Objects.nonNull(map.get(SystemConstant.TASK)) ? (TBTask) map.get(SystemConstant.TASK) : null;
         return Objects.nonNull(tbTask) ? ResultUtil.ok(new EditResult(tbTask.getId())) : ResultUtil.error("创建任务失败");