Browse Source

加入线程池配置

wangliang 4 years ago
parent
commit
ef327dca9f

+ 7 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/CreatePdfUtil.java

@@ -27,6 +27,7 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.util.*;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 
 /**
@@ -459,14 +460,14 @@ public class CreatePdfUtil {
         StringJoiner stringJoiner = new StringJoiner("").add(SystemConstant.PDF_TEMP_FILES_DIR).add(File.separator);
         List<PdfDto> mergePdfList = new ArrayList<>();
         List<PdfDto> mergePdfA4List = new ArrayList<>();
-        int pageA3Count = 0;
-        int pageA4Count = 0;
+        AtomicInteger pageA3Count = new AtomicInteger(0);
+        AtomicInteger pageA4Count = new AtomicInteger(0);
         for (int i = 0; i < list.length; i++) {
             if (list[i].size() > 0 && list[i].get(0).getPageSize() == PageSizeEnum.A4) {
-                pageA4Count = pageA4Count + list[i].stream().mapToInt(PdfDto::getPageCount).sum();
+                pageA4Count.addAndGet(list[i].stream().mapToInt(PdfDto::getPageCount).sum());
                 mergePdfA4List.addAll(list[i]);
             } else if (list[i].size() > 0 && list[i].get(0).getPageSize() == PageSizeEnum.A3) {
-                pageA3Count = pageA3Count + list[i].stream().mapToInt(PdfDto::getPageCount).sum();
+                pageA3Count.addAndGet(list[i].stream().mapToInt(PdfDto::getPageCount).sum());
                 mergePdfList.addAll(list[i]);
             }
         }
@@ -479,8 +480,8 @@ public class CreatePdfUtil {
         tbTask.setImportFileName(basicAttachment.getName());
         tbTask.setImportFilePath(basicAttachment.getPath());
         examDetail.setAttachmentId(basicAttachment.getId());
-        examDetail.setPagesA3(pageA3Count);
-        examDetail.setPagesA4(pageA4Count);
+        examDetail.setPagesA3(pageA3Count.get());
+        examDetail.setPagesA4(pageA4Count.get());
         examDetail.setStatus(PrintMethodEnum.AUTO == basicExamRule.getPrintMethod() ? ExamDetailStatusEnum.WAITING : ExamDetailStatusEnum.READY);
         detailService.saveOrUpdate(examDetail);
         ossUtil.ossUpload(dirName, localPdfFile, DigestUtils.md5Hex(new FileInputStream(localPdfFile)));