wangliang 4 năm trước cách đây
mục cha
commit
ae6b76112c

+ 26 - 26
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/PdfDto.java

@@ -16,16 +16,16 @@ public class PdfDto {
     String path;
 
     @ApiModelProperty(name = "页数")
-    Integer pageCount = 0;
+    int pageCount = 0;
 
     @ApiModelProperty(name = "实际页数")
-    Integer actualPageCount = 0;
+    int actualPageCount = 0;
 
     @ApiModelProperty(name = "页面大小")
     PageSizeEnum pageSize;
 
     @ApiModelProperty(name = "序号")
-    Integer sequence = 0;
+    int sequence = 0;
 
     @ApiModelProperty(name = "tag")
     boolean tag = true;
@@ -39,44 +39,36 @@ public class PdfDto {
         this.pageSize = pageSize;
     }
 
-    public PdfDto(String path, PageSizeEnum pageSize, Integer pageCount) {
+    public PdfDto(String path, PageSizeEnum pageSize, int pageCount) {
         this.path = path;
         this.pageSize = pageSize;
         this.pageCount = pageCount;
     }
 
-    public PdfDto(String path, PageSizeEnum pageSize, Integer pageCount, Integer sequence) {
+    public PdfDto(String path, PageSizeEnum pageSize, int pageCount, int sequence) {
         this.path = path;
         this.pageSize = pageSize;
         this.pageCount = pageCount;
         this.sequence = sequence;
     }
 
-    public PdfDto(PageSizeEnum pageSize, Integer pageCount, boolean tag) {
+    public PdfDto(PageSizeEnum pageSize, int pageCount, boolean tag) {
         this.pageSize = pageSize;
         this.pageCount = pageCount;
         this.tag = tag;
     }
 
-    public PdfDto(PageSizeEnum pageSize, Integer pageCount) {
+    public PdfDto(PageSizeEnum pageSize, int pageCount) {
         this.pageSize = pageSize;
         this.pageCount = pageCount;
     }
 
-    public PdfDto(PageSizeEnum pageSize, Integer pageCount, Integer actualPageCount) {
+    public PdfDto(PageSizeEnum pageSize, int pageCount, int actualPageCount) {
         this.pageSize = pageSize;
         this.pageCount = pageCount;
         this.actualPageCount = actualPageCount;
     }
 
-    public Integer getActualPageCount() {
-        return actualPageCount;
-    }
-
-    public void setActualPageCount(Integer actualPageCount) {
-        this.actualPageCount = actualPageCount;
-    }
-
     public boolean isTag() {
         return tag;
     }
@@ -85,14 +77,6 @@ public class PdfDto {
         this.tag = tag;
     }
 
-    public Integer getSequence() {
-        return sequence;
-    }
-
-    public void setSequence(Integer sequence) {
-        this.sequence = sequence;
-    }
-
     public String getPath() {
         return path;
     }
@@ -101,14 +85,30 @@ public class PdfDto {
         this.path = path;
     }
 
-    public Integer getPageCount() {
+    public int getPageCount() {
         return pageCount;
     }
 
-    public void setPageCount(Integer pageCount) {
+    public void setPageCount(int pageCount) {
         this.pageCount = pageCount;
     }
 
+    public int getActualPageCount() {
+        return actualPageCount;
+    }
+
+    public void setActualPageCount(int actualPageCount) {
+        this.actualPageCount = actualPageCount;
+    }
+
+    public int getSequence() {
+        return sequence;
+    }
+
+    public void setSequence(int sequence) {
+        this.sequence = sequence;
+    }
+
     public PageSizeEnum getPageSize() {
         return pageSize;
     }

+ 14 - 10
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/CreatePdfUtil.java

@@ -17,7 +17,6 @@ import com.qmth.distributed.print.business.service.CommonService;
 import com.qmth.distributed.print.business.service.ExamDetailService;
 import com.qmth.distributed.print.common.contant.SystemConstant;
 import com.qmth.distributed.print.common.enums.ExceptionResultEnum;
-import com.qmth.distributed.print.common.util.JacksonUtil;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -28,7 +27,6 @@ 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;
 
 /**
@@ -477,14 +475,20 @@ public class CreatePdfUtil {
         String dirNameA4 = PdfUtil.mergePdf(pathA4List.toArray(new String[mergePdfA4List.size()]), null);
         String dirNameA3 = PdfUtil.mergePdf(pathA3List.toArray(new String[mergePdfA3List.size()]), null);
         // oss上只认"/",windows生成的路径分隔符全部替换为"/"
-        dirNameA4 = dirNameA4.replaceAll("\\\\", "/");
-        dirNameA3 = dirNameA3.replaceAll("\\\\", "/");
-        File localA4PdfFile = new File(stringJoiner.toString() + File.separator + dirNameA4);
-        File localA3PdfFile = new File(stringJoiner.toString() + File.separator + dirNameA3);
-        BasicAttachment basicAttachment = basicAttachmentService.saveAttachmentPdf(dirNameA3, userId);
-        tbTask.setImportFileName(basicAttachment.getName());
-        tbTask.setImportFilePath(basicAttachment.getPath());
-        examDetail.setAttachmentId(basicAttachment.getId());
+        File localA4PdfFile = null, localA3PdfFile = null;
+        BasicAttachment basicAttachment = null;
+        if (Objects.nonNull(dirNameA4)) {
+            dirNameA4 = dirNameA4.replaceAll("\\\\", "/");
+            localA4PdfFile = new File(stringJoiner.toString() + File.separator + dirNameA4);
+        }
+        if (Objects.nonNull(dirNameA3)) {
+            dirNameA3 = dirNameA3.replaceAll("\\\\", "/");
+            localA3PdfFile = new File(stringJoiner.toString() + File.separator + dirNameA3);
+            basicAttachment = basicAttachmentService.saveAttachmentPdf(dirNameA3, userId);
+            tbTask.setImportFileName(basicAttachment.getName());
+            tbTask.setImportFilePath(basicAttachment.getPath());
+            examDetail.setAttachmentId(basicAttachment.getId());
+        }
         examDetail.setPagesA3(PdfUtil.getPdfPages(localA3PdfFile));
         examDetail.setPagesA4(PdfUtil.getPdfPages(localA4PdfFile));
 //        log.info("pageA3Count:{},examDetail:{}", pageA3Count.get(), JacksonUtil.parseJson(examDetail));

+ 15 - 11
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/PdfUtil.java

@@ -100,15 +100,17 @@ public class PdfUtil {
         FileOutputStream fileOutputStream = null;
         int pageCount = 0;
         try {
-            reader = new PdfReader(pdfFile.getPath());
-            pageCount = reader.getNumberOfPages();
-            if (Math.abs(pageCount % 2) == 1) {//取偶
-                ByteArrayOutputStream baos = new ByteArrayOutputStream();
-                PdfStamper stamper = new PdfStamper(reader, baos);
-                stamper.insertPage(pageCount + 1, reader.getPageSizeWithRotation(1));
-                stamper.close();
-                fileOutputStream = new FileOutputStream(pdfFile);
-                IOUtils.write(baos.toByteArray(), fileOutputStream);
+            if (Objects.nonNull(pdfFile)) {
+                reader = new PdfReader(pdfFile.getPath());
+                pageCount = reader.getNumberOfPages();
+                if (Math.abs(pageCount % 2) == 1) {//取偶
+                    ByteArrayOutputStream baos = new ByteArrayOutputStream();
+                    PdfStamper stamper = new PdfStamper(reader, baos);
+                    stamper.insertPage(pageCount + 1, reader.getPageSizeWithRotation(1));
+                    stamper.close();
+                    fileOutputStream = new FileOutputStream(pdfFile);
+                    IOUtils.write(baos.toByteArray(), fileOutputStream);
+                }
             }
         } catch (Exception e) {
             log.error("请求出错", e);
@@ -134,8 +136,10 @@ public class PdfUtil {
     public static int getPdfPages(File pdfFile) throws IOException {
         PdfReader reader = null;
         try {
-            reader = new PdfReader(pdfFile.getPath());
-            return reader.getNumberOfPages();
+            if (Objects.nonNull(pdfFile)) {
+                reader = new PdfReader(pdfFile.getPath());
+                return reader.getNumberOfPages();
+            }
         } catch (Exception e) {
             log.error("请求出错", e);
         } finally {