24282 2 éve
szülő
commit
dc6838bd5e
20 módosított fájl, 121 hozzáadás és 457 törlés
  1. 3 29
      bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/contract/service/impl/ContractPdfServiceImpl.java
  2. 12 37
      bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/contract/service/impl/ContractSamplePdfServiceImpl.java
  3. 3 28
      bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/funds/v2/service/impl/RequestFundsV2PdfServiceImpl.java
  4. 3 26
      bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/paymentgoods/service/impl/PaymentGoodsPdfServiceImpl.java
  5. 3 25
      bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/paymentlist/service/impl/PaymentListPdfServiceImpl.java
  6. 14 27
      bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/prove/pdf/service/impl/AfterSaleConfirmPdfServiceImpl.java
  7. 3 16
      bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/prove/pdf/service/impl/CIPdfServiceImpl.java
  8. 3 16
      bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/prove/pdf/service/impl/CommercialInvoicePdfServiceImpl.java
  9. 3 15
      bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/prove/pdf/service/impl/CustomsDeclareServiceImpl.java
  10. 3 19
      bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/prove/pdf/service/impl/JointDeclareServiceImpl.java
  11. 3 17
      bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/prove/pdf/service/impl/PIPdfServiceImpl.java
  12. 3 18
      bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/prove/pdf/service/impl/PackingBillPdfServiceImpl.java
  13. 3 16
      bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/prove/pdf/service/impl/ProformaInvoicePdfServiceImpl.java
  14. 3 16
      bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/prove/pdf/service/impl/PromiseBookServiceImpl.java
  15. 4 16
      bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/prove/pdf/service/impl/ProxyCustomsPowerAttorneyServiceImpl.java
  16. 2 3
      bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/prove/service/IBillProvePdfService.java
  17. 10 28
      bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/prove/service/impl/BillProvePdfServiceImpl.java
  18. 5 30
      bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/purchase/service/impl/PurchaseContractPdfServiceImpl.java
  19. 3 28
      bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/reportPrice/service/impl/ReportPriceBillPdfServiceImpl.java
  20. 35 47
      bladex/blade-common/src/main/java/org/springblade/common/utils/pdf/ThymeleafPdfUtil.java

+ 3 - 29
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/contract/service/impl/ContractPdfServiceImpl.java

@@ -14,7 +14,6 @@ import com.fjhx.contract.service.IContractProjectService;
 import com.fjhx.contract.service.IContractService;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.collections4.MapUtils;
-import org.apache.commons.io.IOUtils;
 import org.springblade.common.constant.AttachmentConstant;
 import org.springblade.common.constant.CurrencyCodeEnum;
 import org.springblade.common.constant.CurrencyTypeEnum;
@@ -25,25 +24,15 @@ import org.springblade.common.utils.pdf.ThymeleafPdfUtil;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
-import org.springblade.core.tool.utils.FileUtil;
 import org.springblade.core.tool.utils.Func;
-import org.springblade.core.tool.utils.id.IdUtils;
 import org.springblade.resource.entity.ObsUpload;
 import org.springblade.resource.feign.IObsClient;
 import org.springblade.system.attachment.entity.Attachment;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.io.File;
-import java.io.FileInputStream;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
 
 /**
  * 生成外销合同pdf
@@ -92,11 +81,6 @@ public class ContractPdfServiceImpl implements IContractPdfService {
             String contractId = (String) variablesMap.get("contractId");
             //合同编码
             String contractCode = (String) variablesMap.get("contractCode");
-
-            //创建文件
-            String temName = IdUtils.simpleUUID() + ".pdf";
-            File pdfFile = FileUtil.createFile(temName, temp_folder);
-
             //生成pdf
             String temp = template_name + "_" + AuthUtil.getTenantId();
             //判断租户定制模板是否存在,如果不存在使用默认模板
@@ -104,10 +88,7 @@ public class ContractPdfServiceImpl implements IContractPdfService {
             if (!b) {
                 temp = template_name;
             }
-            ThymeleafPdfUtil.generate(pdfFile, temp, variablesMap);
-
-            //文件转字节
-            byte[] bytes = IOUtils.toByteArray(new FileInputStream(pdfFile));
+            byte[] bytes = ThymeleafPdfUtil.generateByte(temp, variablesMap);
 
             //文件名称
             String fileName = "PI-" + contractCode + ".pdf";
@@ -127,14 +108,7 @@ public class ContractPdfServiceImpl implements IContractPdfService {
             //删除pdf附件
             attachmentApi.deleteByBusiIdAndType(contractId, AttachmentConstant.BusiType.PDF);
             //保存附件
-            attachmentApi.batchInsert(Arrays.asList(attachment));
-
-            try {
-                //删除临时文件
-                pdfFile.delete();
-            } catch (Exception e) {
-
-            }
+            attachmentApi.batchInsert(Collections.singletonList(attachment));
             return attachment;
         } catch (Exception e) {
             throw new ServiceException("生成外销合同PDF文件失败:" + e.getMessage());

+ 12 - 37
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/contract/service/impl/ContractSamplePdfServiceImpl.java

@@ -16,7 +16,6 @@ import com.fjhx.mail.box.entity.Mailbox;
 import com.fjhx.mail.feign.IMailboxApi;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.collections4.MapUtils;
-import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springblade.common.constant.AttachmentConstant;
 import org.springblade.common.constant.CurrencyCodeEnum;
@@ -28,8 +27,6 @@ import org.springblade.common.utils.pdf.ThymeleafPdfUtil;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
-import org.springblade.core.tool.utils.FileUtil;
-import org.springblade.core.tool.utils.id.IdUtils;
 import org.springblade.resource.entity.ObsUpload;
 import org.springblade.resource.feign.IObsClient;
 import org.springblade.system.attachment.entity.Attachment;
@@ -38,16 +35,8 @@ import org.springblade.system.user.feign.IUserClient;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.io.File;
-import java.io.FileInputStream;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
 
 /**
  * 生成合同样品单pdf
@@ -100,26 +89,18 @@ public class ContractSamplePdfServiceImpl implements IContractSamplePdfService {
             Map variablesMap = getVariablesMap(id);
             //合同id
             String contractId = (String) variablesMap.get("contractId");
-            //合同编码
+            // 合同编码
             String contractCode = (String) variablesMap.get("contractCode");
-
-            //创建文件
-            String temName = IdUtils.simpleUUID() + ".pdf";
-            File pdfFile = FileUtil.createFile(temName, temp_folder);
-
-            //生成pdf
+            // 生成pdf
             String temp = template_name + "_" + AuthUtil.getTenantId();
-            //判断租户定制模板是否存在,如果不存在使用默认模板
+            // 判断租户定制模板是否存在,如果不存在使用默认模板
             boolean b = ThymeleafPdfUtil.existTemplate(temp);
             if (!b) {
                 temp = template_name;
             }
-            ThymeleafPdfUtil.generate(pdfFile, temp, variablesMap);
-
-            //文件转字节
-            byte[] bytes = IOUtils.toByteArray(new FileInputStream(pdfFile));
+            byte[] bytes = ThymeleafPdfUtil.generateByte(temp, variablesMap);
 
-            //文件名称
+            // 文件名称
             String fileName = "Sample PI-" + contractCode + ".pdf";
 
             // 邮件附件上传到华为云
@@ -127,24 +108,18 @@ public class ContractSamplePdfServiceImpl implements IContractSamplePdfService {
             if (!r.isSuccess() || MapUtils.isEmpty(r.getData())) {
                 throw new ServiceException("上传PDF文件失败");
             }
-            //获取出附件信息
+            // 获取出附件信息
             JSONObject attachmentJson = r.getData();
             Attachment attachment = attachmentJson.toJavaObject(Attachment.class);
-            //业务id=报价单id
+            // 业务id=报价单id
             attachment.setBusiId(contractId);
-            //附件类型=pdf
+            // 附件类型=pdf
             attachment.setBusiType(AttachmentConstant.BusiType.PDF);
-            //删除pdf附件
+            // 删除pdf附件
             attachmentApi.deleteByBusiIdAndType(contractId, AttachmentConstant.BusiType.PDF);
-            //保存附件
-            attachmentApi.batchInsert(Arrays.asList(attachment));
+            // 保存附件
+            attachmentApi.batchInsert(Collections.singletonList(attachment));
 
-            try {
-                //删除临时文件
-                pdfFile.delete();
-            } catch (Exception e) {
-
-            }
             return attachment;
         } catch (Exception e) {
             throw new ServiceException("生成合同样品单PDF文件失败:" + e.getMessage());

+ 3 - 28
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/funds/v2/service/impl/RequestFundsV2PdfServiceImpl.java

@@ -19,7 +19,6 @@ package com.fjhx.funds.v2.service.impl;
 import com.alibaba.fastjson.JSONObject;
 import com.fjhx.activiti.feign.IActivitiApi;
 import com.fjhx.common.attachment.IAttachmentApi;
-import com.fjhx.company.entity.Company;
 import com.fjhx.company.entity.CompanyBasics;
 import com.fjhx.company.service.ICompanyBasicsService;
 import com.fjhx.feign.IFlowClient;
@@ -33,7 +32,6 @@ import com.fjhx.funs.v2.RequestFundsDetailsV2;
 import com.fjhx.funs.v2.RequestFundsV2;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.collections4.MapUtils;
-import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springblade.common.constant.AttachmentConstant;
 import org.springblade.common.enums.YesOrNoEnum;
@@ -43,7 +41,6 @@ import org.springblade.common.utils.pdf.ThymeleafPdfUtil;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
-import org.springblade.core.tool.utils.FileUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.id.IdUtils;
 import org.springblade.resource.entity.ObsUpload;
@@ -57,14 +54,7 @@ import org.springblade.system.user.feign.IUserClient;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
 
 /**
  * 请款PDF 服务实现类
@@ -131,11 +121,6 @@ public class RequestFundsV2PdfServiceImpl implements IRequestFundsV2PdfService {
             Map variablesMap = getVariablesMap(entity);
             //请款信息
             entity = (RequestFundsV2) variablesMap.get("entity");
-
-            //创建文件
-            String temName = IdUtils.simpleUUID() + ".pdf";
-            File pdfFile = FileUtil.createFile(temName, temp_folder);
-
             //生成pdf
             String temp = template_name + entity.getPaymentRequestType() + "_" + AuthUtil.getTenantId();
             //判断租户定制模板是否存在,如果不存在使用默认模板
@@ -143,10 +128,7 @@ public class RequestFundsV2PdfServiceImpl implements IRequestFundsV2PdfService {
             if (!b) {
                 temp = template_name + entity.getPaymentRequestType();
             }
-            ThymeleafPdfUtil.generate(pdfFile, temp, variablesMap);
-
-            //文件转字节
-            byte[] bytes = IOUtils.toByteArray(new FileInputStream(pdfFile));
+            byte[] bytes = ThymeleafPdfUtil.generateByte(temp, variablesMap);
 
             //文件名称
             String fileName = temp + "-" + IdUtils.fastSimpleUUID() + ".pdf";
@@ -166,14 +148,7 @@ public class RequestFundsV2PdfServiceImpl implements IRequestFundsV2PdfService {
             //删除pdf附件
             attachmentApi.deleteByBusiIdAndType(entity.getId(), AttachmentConstant.BusiType.PDF);
             //保存附件
-            attachmentApi.batchInsert(Arrays.asList(attachment));
-
-            try {
-                //删除临时文件
-                pdfFile.delete();
-            } catch (Exception e) {
-
-            }
+            attachmentApi.batchInsert(Collections.singletonList(attachment));
             return attachment;
         } catch (Exception e) {
             throw new ServiceException("生成报销单PDF文件失败:" + e.getMessage());

+ 3 - 26
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/paymentgoods/service/impl/PaymentGoodsPdfServiceImpl.java

@@ -18,7 +18,6 @@ package com.fjhx.paymentgoods.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
 import com.fjhx.common.attachment.IAttachmentApi;
-import com.fjhx.company.entity.Company;
 import com.fjhx.company.entity.CompanyBasics;
 import com.fjhx.company.service.ICompanyBasicsService;
 import com.fjhx.feign.IFlowClient;
@@ -32,7 +31,6 @@ import com.fjhx.paymentgoods.service.IPaymentGoodsPdfService;
 import com.fjhx.paymentgoods.service.IPaymentGoodsService;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.collections4.MapUtils;
-import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springblade.common.constant.AttachmentConstant;
 import org.springblade.common.enums.YesOrNoEnum;
@@ -42,7 +40,6 @@ import org.springblade.common.utils.pdf.ThymeleafPdfUtil;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
-import org.springblade.core.tool.utils.FileUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.id.IdUtils;
 import org.springblade.resource.entity.ObsUpload;
@@ -56,13 +53,7 @@ import org.springblade.system.user.feign.IUserClient;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
 
 /**
  * 付款账单PDF 服务实现类
@@ -127,10 +118,6 @@ public class PaymentGoodsPdfServiceImpl implements IPaymentGoodsPdfService {
             //请款信息
             entity = (PaymentGoods) variablesMap.get("entity");
 
-            //创建文件
-            String temName = IdUtils.simpleUUID() + ".pdf";
-            File pdfFile = FileUtil.createFile(temName, temp_folder);
-
             //生成pdf
             String temp = template_name + "_" + AuthUtil.getTenantId();
             //判断租户定制模板是否存在,如果不存在使用默认模板
@@ -138,10 +125,7 @@ public class PaymentGoodsPdfServiceImpl implements IPaymentGoodsPdfService {
             if (!b) {
                 temp = template_name;
             }
-            ThymeleafPdfUtil.generate(pdfFile, temp, variablesMap);
-
-            //文件转字节
-            byte[] bytes = IOUtils.toByteArray(new FileInputStream(pdfFile));
+            byte[] bytes = ThymeleafPdfUtil.generateByte(temp, variablesMap);
 
             //文件名称
             String fileName = temp + "-" + IdUtils.fastSimpleUUID() + ".pdf";
@@ -161,14 +145,7 @@ public class PaymentGoodsPdfServiceImpl implements IPaymentGoodsPdfService {
             //删除pdf附件
             attachmentApi.deleteByBusiIdAndType(entity.getId(), AttachmentConstant.BusiType.PDF);
             //保存附件
-            attachmentApi.batchInsert(Arrays.asList(attachment));
-
-            try {
-                //删除临时文件
-                pdfFile.delete();
-            } catch (Exception e) {
-
-            }
+            attachmentApi.batchInsert(Collections.singletonList(attachment));
             return attachment;
         } catch (Exception e) {
             throw new ServiceException("生成报销单PDF文件失败:" + e.getMessage());

+ 3 - 25
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/paymentlist/service/impl/PaymentListPdfServiceImpl.java

@@ -13,7 +13,6 @@ import com.fjhx.wms.warehouse.IWmsDueApi;
 import com.fjhx.wms.warehouse.IWmsDuePaymentApi;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.collections4.MapUtils;
-import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springblade.common.constant.AttachmentConstant;
 import org.springblade.common.utils.CommonUtil;
@@ -22,7 +21,6 @@ import org.springblade.common.utils.pdf.ThymeleafPdfUtil;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
-import org.springblade.core.tool.utils.FileUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.id.IdUtils;
 import org.springblade.resource.entity.ObsUpload;
@@ -36,13 +34,7 @@ import org.springblade.system.user.feign.IUserClient;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
 
 /**
  * @Description: 付款PDF 业务接口实现类
@@ -106,10 +98,6 @@ public class PaymentListPdfServiceImpl implements IPaymentListPdfService {
             //请款信息
             entity = (DuePayment) variablesMap.get("entity");
 
-            //创建文件
-            String temName = IdUtils.simpleUUID() + ".pdf";
-            File pdfFile = FileUtil.createFile(temName, temp_folder);
-
             //生成pdf
             String temp = template_name + "_" + AuthUtil.getTenantId();
             //判断租户定制模板是否存在,如果不存在使用默认模板
@@ -117,10 +105,7 @@ public class PaymentListPdfServiceImpl implements IPaymentListPdfService {
             if (!b) {
                 temp = template_name;
             }
-            ThymeleafPdfUtil.generate(pdfFile, temp, variablesMap);
-
-            //文件转字节
-            byte[] bytes = IOUtils.toByteArray(new FileInputStream(pdfFile));
+            byte[] bytes = ThymeleafPdfUtil.generateByte(temp, variablesMap);
 
             //文件名称
             String fileName = temp + "-" + IdUtils.fastSimpleUUID() + ".pdf";
@@ -140,14 +125,7 @@ public class PaymentListPdfServiceImpl implements IPaymentListPdfService {
             //删除pdf附件
             attachmentApi.deleteByBusiIdAndType(entity.getId(), AttachmentConstant.BusiType.PDF);
             //保存附件
-            attachmentApi.batchInsert(Arrays.asList(attachment));
-
-            try {
-                //删除临时文件
-                pdfFile.delete();
-            } catch (Exception e) {
-
-            }
+            attachmentApi.batchInsert(Collections.singletonList(attachment));
             return attachment;
         } catch (Exception e) {
             throw new ServiceException("生成报销单PDF文件失败:" + e.getMessage());

+ 14 - 27
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/prove/pdf/service/impl/AfterSaleConfirmPdfServiceImpl.java

@@ -25,20 +25,12 @@ import org.springblade.common.utils.DoubleUtil;
 import org.springblade.common.utils.pdf.ThymeleafPdfUtil;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.utils.AuthUtil;
-import org.springblade.core.tool.utils.FileUtil;
-import org.springblade.core.tool.utils.id.IdUtils;
 import org.springblade.system.attachment.entity.Attachment;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.io.File;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -90,10 +82,6 @@ public class AfterSaleConfirmPdfServiceImpl implements IAfterSaleConfirmPdfServi
             //单证id
             String billProveId = (String) variablesMap.get("billProveId");
 
-            //创建文件
-            String temName = IdUtils.simpleUUID() + ".pdf";
-            File pdfFile = FileUtil.createFile(temName, IBillProvePdfService.temp_folder);
-
             //生成pdf
             String temp = template_name + "_" + AuthUtil.getTenantId();
             //判断租户定制模板是否存在,如果不存在使用默认模板
@@ -101,11 +89,10 @@ public class AfterSaleConfirmPdfServiceImpl implements IAfterSaleConfirmPdfServi
             if (!b) {
                 temp = template_name;
             }
-            ThymeleafPdfUtil.generate(pdfFile, temp, variablesMap);
+            byte[] bytes = ThymeleafPdfUtil.generateByte(temp, variablesMap);
 
             //上传单证pdf
-            Attachment attachment = iBillProvePdfService.upload(billProveId, AttachmentConstant.BusiType.BILL_PROVE_SALES_CONFIRMATION, fileName, pdfFile);
-            return attachment;
+            return iBillProvePdfService.upload(billProveId, AttachmentConstant.BusiType.BILL_PROVE_SALES_CONFIRMATION, fileName, bytes);
         } catch (Exception e) {
             throw new ServiceException("生成售后确认书PDF文件失败:" + e.getMessage());
         }
@@ -128,34 +115,34 @@ public class AfterSaleConfirmPdfServiceImpl implements IAfterSaleConfirmPdfServi
         //货币代码
         String currencyCode = CurrencyCodeEnum.getNameByKey(billProve.getCurrencyType());
 
-        //合同信息
+        // 合同信息
         Contract contract = iContractService.getById(billProve.getContractId());
         contract = Optional.ofNullable(contract).orElse(new Contract());
 
-        //单证-货代公司
+        // 单证-货代公司
         BillProveForwarder proveForwarder = iBillProveForwarderService.getByBillProveId(billProve.getId());
         proveForwarder = Optional.ofNullable(proveForwarder).orElse(new BillProveForwarder());
 
         String shipDate = "";
-        if (proveForwarder != null && proveForwarder.getShipDate() != null) {
-            //船期
+        if (proveForwarder.getShipDate() != null) {
+            // 船期
             shipDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, proveForwarder.getShipDate());
         }
 
-        //合同确认时间转换
+        // 合同确认时间转换
         String approvedDate = "";
-        if (contract != null && contract.getApprovedDate() != null) {
+        if (contract.getApprovedDate() != null) {
             approvedDate = DateUtils.parseDateToStr(DateUtils.DD_MMM_YYYY, contract.getApprovedDate(), Locale.ENGLISH);
         }
 
-        //有效日期
+        // 有效日期
         String validTime = "";
-        if (contract != null && contract.getValidTime() != null) {
+        if (contract.getValidTime() != null) {
             validTime = DateUtils.parseDateToStr(DateUtils.DD_MMM_YYYY, contract.getValidTime(), Locale.ENGLISH);
         }
 
         //合同收费项目
-        BigDecimal projectSubtotal = new BigDecimal(0.00);
+        BigDecimal projectSubtotal = new BigDecimal("0.00");
         List<ContractProject> projects = iContractProjectService.getByContractId(contract.getId());
         if (CollectionUtils.isNotEmpty(projects)) {
             //收费项目总金额
@@ -181,7 +168,7 @@ public class AfterSaleConfirmPdfServiceImpl implements IAfterSaleConfirmPdfServi
                 ShipmentPackingProduct product = value.get(0);
 
                 //计算数量
-                Integer quantity = 0;
+                int quantity = 0;
                 for (ShipmentPackingProduct shipmentPackingProduct : value) {
                     //装箱数量*总箱数
                     int c = shipmentPackingProduct.getQuantity() * shipmentPackingProduct.getTotalBoxes();
@@ -219,7 +206,7 @@ public class AfterSaleConfirmPdfServiceImpl implements IAfterSaleConfirmPdfServi
         String moneyEn = DollarsNumberFormat.parse(prefix, finalSubtotal.toPlainString()).toUpperCase();
 
         //页面参数
-        Map variablesMap = new HashMap<>();
+        Map<String, Object> variablesMap = new HashMap<>();
         variablesMap.put("huaWeiUrl", iCommonService.getHuaWeiUrl());
         variablesMap.put("billProve", billProve);
         variablesMap.put("billProveId", billProve.getId());

+ 3 - 16
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/prove/pdf/service/impl/CIPdfServiceImpl.java

@@ -23,20 +23,12 @@ import org.springblade.common.utils.DoubleUtil;
 import org.springblade.common.utils.pdf.ThymeleafPdfUtil;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.utils.AuthUtil;
-import org.springblade.core.tool.utils.FileUtil;
-import org.springblade.core.tool.utils.id.IdUtils;
 import org.springblade.system.attachment.entity.Attachment;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.io.File;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -86,10 +78,6 @@ public class CIPdfServiceImpl implements ICIPdfService {
             //单证id
             String billProveId = (String) variablesMap.get("billProveId");
 
-            //创建文件
-            String temName = IdUtils.simpleUUID() + ".pdf";
-            File pdfFile = FileUtil.createFile(temName, IBillProvePdfService.temp_folder);
-
             //生成pdf
             String temp = template_name + "_" + AuthUtil.getTenantId();
             //判断租户定制模板是否存在,如果不存在使用默认模板
@@ -97,11 +85,10 @@ public class CIPdfServiceImpl implements ICIPdfService {
             if (!b) {
                 temp = template_name;
             }
-            ThymeleafPdfUtil.generate(pdfFile, temp, variablesMap);
+            byte[] bytes = ThymeleafPdfUtil.generateByte(temp, variablesMap);
 
             //上传单证pdf
-            Attachment attachment = iBillProvePdfService.upload(billProveId, AttachmentConstant.BusiType.BILL_PROVE_CI, fileName, pdfFile);
-            return attachment;
+            return iBillProvePdfService.upload(billProveId, AttachmentConstant.BusiType.BILL_PROVE_CI, fileName, bytes);
         } catch (Exception e) {
             throw new ServiceException("生成商业发票PDF文件失败:" + e.getMessage());
         }

+ 3 - 16
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/prove/pdf/service/impl/CommercialInvoicePdfServiceImpl.java

@@ -23,20 +23,12 @@ import org.springblade.common.utils.DoubleUtil;
 import org.springblade.common.utils.pdf.ThymeleafPdfUtil;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.utils.AuthUtil;
-import org.springblade.core.tool.utils.FileUtil;
-import org.springblade.core.tool.utils.id.IdUtils;
 import org.springblade.system.attachment.entity.Attachment;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.io.File;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -86,10 +78,6 @@ public class CommercialInvoicePdfServiceImpl implements ICommercialInvoicePdfSer
             //单证id
             String billProveId = (String) variablesMap.get("billProveId");
 
-            //创建文件
-            String temName = IdUtils.simpleUUID() + ".pdf";
-            File pdfFile = FileUtil.createFile(temName, IBillProvePdfService.temp_folder);
-
             //生成pdf
             String temp = template_name + "_" + AuthUtil.getTenantId();
             //判断租户定制模板是否存在,如果不存在使用默认模板
@@ -97,11 +85,10 @@ public class CommercialInvoicePdfServiceImpl implements ICommercialInvoicePdfSer
             if (!b) {
                 temp = template_name;
             }
-            ThymeleafPdfUtil.generate(pdfFile, temp, variablesMap);
+            byte[] bytes = ThymeleafPdfUtil.generateByte(temp, variablesMap);
 
             //上传单证pdf
-            Attachment attachment = iBillProvePdfService.upload(billProveId, AttachmentConstant.BusiType.BILL_PROVE_COMMERCIAL_INVOICE, fileName, pdfFile);
-            return attachment;
+            return iBillProvePdfService.upload(billProveId, AttachmentConstant.BusiType.BILL_PROVE_COMMERCIAL_INVOICE, fileName, bytes);
         } catch (Exception e) {
             throw new ServiceException("生成商业发票PDF文件失败:" + e.getMessage());
         }

+ 3 - 15
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/prove/pdf/service/impl/CustomsDeclareServiceImpl.java

@@ -26,20 +26,13 @@ import org.springblade.common.utils.DoubleUtil;
 import org.springblade.common.utils.pdf.ThymeleafPdfUtil;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.utils.AuthUtil;
-import org.springblade.core.tool.utils.FileUtil;
 import org.springblade.core.tool.utils.Func;
-import org.springblade.core.tool.utils.id.IdUtils;
 import org.springblade.system.attachment.entity.Attachment;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.io.File;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -101,10 +94,6 @@ public class CustomsDeclareServiceImpl implements ICustomsDeclareService {
                 variablesMap.put(entry.getKey(), entry.getValue());
             }
 
-            //创建文件
-            String temName = IdUtils.simpleUUID() + ".pdf";
-            File pdfFile = FileUtil.createFile(temName, IBillProvePdfService.temp_folder);
-
             //生成pdf
             String temp = template_name + "_" + AuthUtil.getTenantId();
             //判断租户定制模板是否存在,如果不存在使用默认模板
@@ -112,11 +101,10 @@ public class CustomsDeclareServiceImpl implements ICustomsDeclareService {
             if (!b) {
                 temp = template_name;
             }
-            ThymeleafPdfUtil.generate(pdfFile, temp, variablesMap);
+            byte[] bytes = ThymeleafPdfUtil.generateByte(temp, variablesMap);
 
             //上传单证pdf
-            Attachment attachment = iBillProvePdfService.upload(proveId, AttachmentConstant.BusiType.BILL_PROVE_CUSTOMS, fileName, pdfFile);
-            return attachment;
+            return iBillProvePdfService.upload(proveId, AttachmentConstant.BusiType.BILL_PROVE_CUSTOMS, fileName, bytes);
         } catch (Exception e) {
             throw new ServiceException("生成报关单PDF文件失败:" + e.getMessage());
         }

+ 3 - 19
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/prove/pdf/service/impl/JointDeclareServiceImpl.java

@@ -19,21 +19,12 @@ import org.springblade.common.utils.DateUtils;
 import org.springblade.common.utils.DoubleUtil;
 import org.springblade.common.utils.pdf.ThymeleafPdfUtil;
 import org.springblade.core.log.exception.ServiceException;
-import org.springblade.core.tool.utils.FileUtil;
-import org.springblade.core.tool.utils.id.IdUtils;
 import org.springblade.system.attachment.entity.Attachment;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.io.File;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -81,17 +72,10 @@ public class JointDeclareServiceImpl implements IJointDeclareService {
             Map variablesMap = getVariablesMap(proveId);
             //单证id
             String billProveId = (String) variablesMap.get("billProveId");
-
-            //创建文件
-            String temName = IdUtils.simpleUUID() + ".pdf";
-            File pdfFile = FileUtil.createFile(temName, IBillProvePdfService.temp_folder);
-
             //生成pdf
-            ThymeleafPdfUtil.generate(pdfFile, template_name, variablesMap);
-
+            byte[] bytes = ThymeleafPdfUtil.generateByte(template_name, variablesMap);
             //上传单证pdf
-            Attachment attachment = iBillProvePdfService.upload(billProveId, AttachmentConstant.BusiType.BILL_PROVE_JOINT_DECLARE, fileName, pdfFile);
-            return attachment;
+            return iBillProvePdfService.upload(billProveId, AttachmentConstant.BusiType.BILL_PROVE_JOINT_DECLARE, fileName, bytes);
         } catch (Exception e) {
             throw new ServiceException("生成出口方和进口方共同声明PDF文件失败:" + e.getMessage());
         }

+ 3 - 17
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/prove/pdf/service/impl/PIPdfServiceImpl.java

@@ -23,20 +23,12 @@ import org.springblade.common.utils.DoubleUtil;
 import org.springblade.common.utils.pdf.ThymeleafPdfUtil;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.utils.AuthUtil;
-import org.springblade.core.tool.utils.FileUtil;
-import org.springblade.core.tool.utils.id.IdUtils;
 import org.springblade.system.attachment.entity.Attachment;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.io.File;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -85,11 +77,6 @@ public class PIPdfServiceImpl implements IPIPdfService {
             Map variablesMap = getVariablesMap(proveId);
             //单证id
             String billProveId = (String) variablesMap.get("billProveId");
-
-            //创建文件
-            String temName = IdUtils.simpleUUID() + ".pdf";
-            File pdfFile = FileUtil.createFile(temName, IBillProvePdfService.temp_folder);
-
             //生成pdf
             String temp = template_name + "_" + AuthUtil.getTenantId();
             //判断租户定制模板是否存在,如果不存在使用默认模板
@@ -97,11 +84,10 @@ public class PIPdfServiceImpl implements IPIPdfService {
             if (!b) {
                 temp = template_name;
             }
-            ThymeleafPdfUtil.generate(pdfFile, temp, variablesMap);
+            byte[] bytes = ThymeleafPdfUtil.generateByte(temp, variablesMap);
 
             //上传单证pdf
-            Attachment attachment = iBillProvePdfService.upload(billProveId, AttachmentConstant.BusiType.BILL_PROVE_PI, fileName, pdfFile);
-            return attachment;
+            return iBillProvePdfService.upload(billProveId, AttachmentConstant.BusiType.BILL_PROVE_PI, fileName, bytes);
         } catch (Exception e) {
             throw new ServiceException("生成商业发票PDF文件失败:" + e.getMessage());
         }

+ 3 - 18
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/prove/pdf/service/impl/PackingBillPdfServiceImpl.java

@@ -21,24 +21,14 @@ import org.springblade.common.utils.DateUtils;
 import org.springblade.common.utils.pdf.ThymeleafPdfUtil;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.utils.AuthUtil;
-import org.springblade.core.tool.utils.FileUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.StringUtil;
-import org.springblade.core.tool.utils.id.IdUtils;
 import org.springblade.system.attachment.entity.Attachment;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.io.File;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Optional;
-import java.util.TreeSet;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -84,10 +74,6 @@ public class PackingBillPdfServiceImpl implements IPackingBillPdfService {
             //单证id
             String billProveId = (String) variablesMap.get("billProveId");
 
-            //创建文件
-            String temName = IdUtils.simpleUUID() + ".pdf";
-            File pdfFile = FileUtil.createFile(temName, IBillProvePdfService.temp_folder);
-
             //生成pdf
             String temp = template_name + "_" + AuthUtil.getTenantId();
             //判断租户定制模板是否存在,如果不存在使用默认模板
@@ -95,11 +81,10 @@ public class PackingBillPdfServiceImpl implements IPackingBillPdfService {
             if (!b) {
                 temp = template_name;
             }
-            ThymeleafPdfUtil.generate(pdfFile, temp, variablesMap);
+            byte[] bytes = ThymeleafPdfUtil.generateByte(temp, variablesMap);
 
             //上传单证pdf
-            Attachment attachment = iBillProvePdfService.upload(billProveId, AttachmentConstant.BusiType.BILL_PROVE_PACKING, fileName, pdfFile);
-            return attachment;
+            return iBillProvePdfService.upload(billProveId, AttachmentConstant.BusiType.BILL_PROVE_PACKING, fileName, bytes);
         } catch (Exception e) {
             throw new ServiceException("生成装箱单PDF文件失败:" + e.getMessage());
         }

+ 3 - 16
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/prove/pdf/service/impl/ProformaInvoicePdfServiceImpl.java

@@ -21,20 +21,12 @@ import org.springblade.common.utils.DollarsNumberFormat;
 import org.springblade.common.utils.DoubleUtil;
 import org.springblade.common.utils.pdf.ThymeleafPdfUtil;
 import org.springblade.core.log.exception.ServiceException;
-import org.springblade.core.tool.utils.FileUtil;
-import org.springblade.core.tool.utils.id.IdUtils;
 import org.springblade.system.attachment.entity.Attachment;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.io.File;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -83,16 +75,11 @@ public class ProformaInvoicePdfServiceImpl implements IProformaInvoicePdfService
             //单证id
             String billProveId = (String) variablesMap.get("billProveId");
 
-            //创建文件
-            String temName = IdUtils.simpleUUID() + ".pdf";
-            File pdfFile = FileUtil.createFile(temName, IBillProvePdfService.temp_folder);
-
             //生成pdf
-            ThymeleafPdfUtil.generate(pdfFile, template_name, variablesMap);
+            byte[] bytes = ThymeleafPdfUtil.generateByte(template_name, variablesMap);
 
             //上传单证pdf
-            Attachment attachment = iBillProvePdfService.upload(billProveId, AttachmentConstant.BusiType.BILL_PROVE_PROFORMA_INVOICE, fileName, pdfFile);
-            return attachment;
+            return iBillProvePdfService.upload(billProveId, AttachmentConstant.BusiType.BILL_PROVE_PROFORMA_INVOICE, fileName, bytes);
         } catch (Exception e) {
             throw new ServiceException("生成形式发票PDF文件失败:" + e.getMessage());
         }

+ 3 - 16
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/prove/pdf/service/impl/PromiseBookServiceImpl.java

@@ -21,20 +21,12 @@ import org.springblade.common.utils.DoubleUtil;
 import org.springblade.common.utils.pdf.ThymeleafPdfUtil;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.utils.AuthUtil;
-import org.springblade.core.tool.utils.FileUtil;
-import org.springblade.core.tool.utils.id.IdUtils;
 import org.springblade.system.attachment.entity.Attachment;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.io.File;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -83,16 +75,11 @@ public class PromiseBookServiceImpl implements IPromiseBookService {
             //单证id
             String billProveId = (String) variablesMap.get("billProveId");
 
-            //创建文件
-            String temName = IdUtils.simpleUUID() + ".pdf";
-            File pdfFile = FileUtil.createFile(temName, IBillProvePdfService.temp_folder);
-
             //生成pdf
-            ThymeleafPdfUtil.generate(pdfFile, template_name, variablesMap);
+            byte[] bytes = ThymeleafPdfUtil.generateByte(template_name, variablesMap);
 
             //上传单证pdf
-            Attachment attachment = iBillProvePdfService.upload(billProveId, AttachmentConstant.BusiType.BILL_PROVE_PROMISE_BOOK, fileName, pdfFile);
-            return attachment;
+            return iBillProvePdfService.upload(billProveId, AttachmentConstant.BusiType.BILL_PROVE_PROMISE_BOOK, fileName, bytes);
         } catch (Exception e) {
             throw new ServiceException("生成非医疗物资出口承诺书PDF文件失败:" + e.getMessage());
         }

+ 4 - 16
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/prove/pdf/service/impl/ProxyCustomsPowerAttorneyServiceImpl.java

@@ -17,19 +17,12 @@ import org.springblade.common.utils.DoubleUtil;
 import org.springblade.common.utils.pdf.ThymeleafPdfUtil;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.utils.AuthUtil;
-import org.springblade.core.tool.utils.FileUtil;
-import org.springblade.core.tool.utils.id.IdUtils;
 import org.springblade.system.attachment.entity.Attachment;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.io.File;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -75,22 +68,17 @@ public class ProxyCustomsPowerAttorneyServiceImpl implements IProxyCustomsPowerA
             //单证id
             String billProveId = (String) variablesMap.get("billProveId");
 
-            //创建文件
-            String temName = IdUtils.simpleUUID() + ".pdf";
-            File pdfFile = FileUtil.createFile(temName, IBillProvePdfService.temp_folder);
-
-            //生成pdf
+            // 生成pdf
             String temp = template_name + "_" + AuthUtil.getTenantId();
             //判断租户定制模板是否存在,如果不存在使用默认模板
             boolean b = ThymeleafPdfUtil.existTemplate(temp);
             if (!b) {
                 temp = template_name;
             }
-            ThymeleafPdfUtil.generate(pdfFile, temp, variablesMap);
+            byte[] bytes = ThymeleafPdfUtil.generateByte(temp, variablesMap);
 
             //上传单证pdf
-            Attachment attachment = iBillProvePdfService.upload(billProveId, AttachmentConstant.BusiType.BILL_PROVE_PROXY_ENTRUST, fileName, pdfFile);
-            return attachment;
+            return iBillProvePdfService.upload(billProveId, AttachmentConstant.BusiType.BILL_PROVE_PROXY_ENTRUST, fileName, bytes);
         } catch (Exception e) {
             throw new ServiceException("生成代理报关委托书PDF文件失败:" + e.getMessage());
         }

+ 2 - 3
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/prove/service/IBillProvePdfService.java

@@ -2,7 +2,6 @@ package com.fjhx.prove.service;
 
 import org.springblade.system.attachment.entity.Attachment;
 
-import java.io.File;
 import java.util.List;
 
 /**
@@ -28,9 +27,9 @@ public interface IBillProvePdfService {
      * @param billProveId    单证id
      * @param attachmentType 附件类型
      * @param fileName       文件名称
-     * @param pdfFile        pdf文件
+     * @param bytes          pdf文件byte数组
      * @throws Exception
      */
-    Attachment upload(String billProveId, Integer attachmentType, String fileName, File pdfFile) throws Exception;
+    Attachment upload(String billProveId, Integer attachmentType, String fileName, byte[] bytes) throws Exception;
 
 }

+ 10 - 28
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/prove/service/impl/BillProvePdfServiceImpl.java

@@ -2,16 +2,9 @@ package com.fjhx.prove.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
 import com.fjhx.common.attachment.IAttachmentApi;
-import com.fjhx.prove.pdf.service.IAfterSaleConfirmPdfService;
-import com.fjhx.prove.pdf.service.ICIPdfService;
-import com.fjhx.prove.pdf.service.ICommercialInvoicePdfService;
-import com.fjhx.prove.pdf.service.ICustomsDeclareService;
-import com.fjhx.prove.pdf.service.IPIPdfService;
-import com.fjhx.prove.pdf.service.IPackingBillPdfService;
-import com.fjhx.prove.pdf.service.IProxyCustomsPowerAttorneyService;
+import com.fjhx.prove.pdf.service.*;
 import com.fjhx.prove.service.IBillProvePdfService;
 import org.apache.commons.collections4.MapUtils;
-import org.apache.commons.io.IOUtils;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
@@ -21,10 +14,8 @@ import org.springblade.system.attachment.entity.Attachment;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.io.File;
-import java.io.FileInputStream;
 import java.util.ArrayList;
-import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -112,39 +103,30 @@ public class BillProvePdfServiceImpl implements IBillProvePdfService {
      * @param billProveId    单证id
      * @param attachmentType 附件类型
      * @param fileName       文件名称
-     * @param pdfFile        pdf文件
+     * @param bytes          pdf文件byte数组
      * @throws Exception
      */
     @Override
-    public Attachment upload(String billProveId, Integer attachmentType, String fileName, File pdfFile) throws Exception {
-        //文件转字节
-        byte[] bytes = IOUtils.toByteArray(new FileInputStream(pdfFile));
+    public Attachment upload(String billProveId, Integer attachmentType, String fileName, byte[] bytes) throws Exception {
 
         // 邮件附件上传到华为云
         R<JSONObject> r = obsClient.uploadHuaWei(new ObsUpload(fileName, bytes, AuthUtil.getTenantId()));
         if (!r.isSuccess() || MapUtils.isEmpty(r.getData())) {
             throw new org.springblade.core.log.exception.ServiceException("上传PDF文件失败");
         }
-        //获取出附件信息
+        // 获取出附件信息
         JSONObject attachmentJson = r.getData();
         Attachment attachment = attachmentJson.toJavaObject(Attachment.class);
-        //业务id=单证id
+        // 业务id=单证id
         attachment.setBusiId(billProveId);
-        //附件类型
+        // 附件类型
         attachment.setBusiType(attachmentType);
 
-        //根据附件类型删除
+        // 根据附件类型删除
         attachmentApi.deleteByBusiIdAndType(billProveId, attachmentType);
+        // 保存附件
+        attachmentApi.batchInsert(Collections.singletonList(attachment));
 
-        //保存附件
-        attachmentApi.batchInsert(Arrays.asList(attachment));
-
-        try {
-            //删除临时文件
-            pdfFile.delete();
-        } catch (Exception e) {
-
-        }
         return attachment;
     }
 

+ 5 - 30
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/purchase/service/impl/PurchaseContractPdfServiceImpl.java

@@ -18,7 +18,6 @@ import com.fjhx.supply.entity.Supply;
 import com.fjhx.supply.service.ISupplyService;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.collections4.MapUtils;
-import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.jsoup.Jsoup;
 import org.jsoup.nodes.Document;
@@ -32,26 +31,16 @@ import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.DateUtil;
-import org.springblade.core.tool.utils.FileUtil;
 import org.springblade.core.tool.utils.Func;
-import org.springblade.core.tool.utils.id.IdUtils;
 import org.springblade.resource.entity.ObsUpload;
 import org.springblade.resource.feign.IObsClient;
 import org.springblade.system.attachment.entity.Attachment;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.io.File;
-import java.io.FileInputStream;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -113,10 +102,6 @@ public class PurchaseContractPdfServiceImpl implements IPurchaseContractPdfServi
             //采购编码
             String purchaseCode = (String) variablesMap.get("purchaseCode");
 
-            //创建文件
-            String temName = IdUtils.simpleUUID() + ".pdf";
-            File pdfFile = FileUtil.createFile(temName, temp_folder);
-
             //生成pdf
             String temp = template_name + "_" + AuthUtil.getTenantId();
             //判断租户定制模板是否存在,如果不存在使用默认模板
@@ -124,10 +109,7 @@ public class PurchaseContractPdfServiceImpl implements IPurchaseContractPdfServi
             if (!b) {
                 temp = template_name;
             }
-            ThymeleafPdfUtil.generate(pdfFile, temp, variablesMap);
-
-            //文件转字节
-            byte[] bytes = IOUtils.toByteArray(new FileInputStream(pdfFile));
+            byte[] bytes = ThymeleafPdfUtil.generateByte(temp, variablesMap);
 
             //文件名称
             String fileName = "PO-" + purchaseCode + ".pdf";
@@ -147,14 +129,7 @@ public class PurchaseContractPdfServiceImpl implements IPurchaseContractPdfServi
             //删除pdf附件
             attachmentApi.deleteByBusiIdAndType(purchaseId, AttachmentConstant.BusiType.PDF);
             //保存附件
-            attachmentApi.batchInsert(Arrays.asList(attachment));
-
-            try {
-                //删除临时文件
-                pdfFile.delete();
-            } catch (Exception e) {
-
-            }
+            attachmentApi.batchInsert(Collections.singletonList(attachment));
             return attachment;
         } catch (Exception e) {
             throw new ServiceException("生成采购合同PDF文件失败:" + e.getMessage());
@@ -185,12 +160,12 @@ public class PurchaseContractPdfServiceImpl implements IPurchaseContractPdfServi
             Document document = Jsoup.parse(remark);
             remark = document.text();
             String[] remarkArr = remark.split(purchaseContract.getCode());
-            StringBuffer sb = new StringBuffer();
+            StringBuilder sb = new StringBuilder();
             for (String s : remarkArr) {
                 if (s.length() > text_row_count + 7) {
                     s = CommonUtil.displayWithComma(s, text_row_symbol, text_row_count + 7);
                 }
-                sb.append(s + text_row_symbol);
+                sb.append(s).append(text_row_symbol);
             }
             remark = sb.toString();
 //            remark = remark.replaceAll("font-size:", "");

+ 3 - 28
bladex-saas-project/saas-business-tradeerp/src/main/java/com/fjhx/reportPrice/service/impl/ReportPriceBillPdfServiceImpl.java

@@ -16,7 +16,6 @@ import com.fjhx.reportPrice.service.IReportPriceBillProjectService;
 import com.fjhx.reportPrice.service.IReportPriceBillService;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.collections4.MapUtils;
-import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springblade.common.constant.AttachmentConstant;
 import org.springblade.common.constant.CurrencyCodeEnum;
@@ -28,8 +27,6 @@ import org.springblade.common.utils.pdf.ThymeleafPdfUtil;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
-import org.springblade.core.tool.utils.FileUtil;
-import org.springblade.core.tool.utils.id.IdUtils;
 import org.springblade.resource.entity.ObsUpload;
 import org.springblade.resource.feign.IObsClient;
 import org.springblade.system.attachment.entity.Attachment;
@@ -40,16 +37,8 @@ import org.springblade.system.user.feign.IUserClient;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.io.File;
-import java.io.FileInputStream;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
 
 /**
  * 报价单生成pdf
@@ -109,10 +98,6 @@ public class ReportPriceBillPdfServiceImpl implements IReportPriceBillPdfService
             //报价单编码
             String reportPriceBillCode = (String) variablesMap.get("reportPriceBillCode");
 
-            //创建文件
-            String temName = IdUtils.simpleUUID() + ".pdf";
-            File pdfFile = FileUtil.createFile(temName, temp_folder);
-
             //生成pdf
             String temp = template_name + "_" + AuthUtil.getTenantId();
             //判断租户定制模板是否存在,如果不存在使用默认模板
@@ -120,10 +105,7 @@ public class ReportPriceBillPdfServiceImpl implements IReportPriceBillPdfService
             if (!b) {
                 temp = template_name;
             }
-            ThymeleafPdfUtil.generate(pdfFile, temp, variablesMap);
-
-            //文件转字节
-            byte[] bytes = IOUtils.toByteArray(new FileInputStream(pdfFile));
+            byte[] bytes = ThymeleafPdfUtil.generateByte(temp, variablesMap);
 
             //文件名称
             String fileName = "Quotation-" + reportPriceBillCode + ".pdf";
@@ -143,14 +125,7 @@ public class ReportPriceBillPdfServiceImpl implements IReportPriceBillPdfService
             //删除pdf附件
             attachmentApi.deleteByBusiIdAndType(reportPriceBillId, AttachmentConstant.BusiType.PDF);
             //保存附件
-            attachmentApi.batchInsert(Arrays.asList(attachment));
-
-            try {
-                //删除临时文件
-                pdfFile.delete();
-            } catch (Exception e) {
-
-            }
+            attachmentApi.batchInsert(Collections.singletonList(attachment));
             return attachment;
         } catch (Exception e) {
             throw new ServiceException("生成报价单PDF文件失败:" + e.getMessage());

+ 35 - 47
bladex/blade-common/src/main/java/org/springblade/common/utils/pdf/ThymeleafPdfUtil.java

@@ -1,12 +1,12 @@
 package org.springblade.common.utils.pdf;
 
+import cn.hutool.core.io.IoUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.lowagie.text.pdf.BaseFont;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springblade.common.utils.pdf.factory.Base64ImgReplacedElementFactory;
-import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.SpringUtil;
 import org.springframework.core.env.Environment;
 import org.springframework.core.io.Resource;
@@ -19,9 +19,8 @@ import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;
 import org.xhtmlrenderer.pdf.ITextFontResolver;
 import org.xhtmlrenderer.pdf.ITextRenderer;
 
-import java.io.BufferedOutputStream;
+import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.io.FileOutputStream;
 import java.io.InputStream;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -32,22 +31,20 @@ import java.util.Optional;
  * 使用Thymeleaf模板生成pdf
  */
 public class ThymeleafPdfUtil {
-    //存放字体路径
-    private static HashSet<String> fontPaths = new HashSet<>();
-
-    //模板前缀,模板存放路径
+    // 存放字体路径
+    private static final HashSet<String> fontPaths = new HashSet<>();
+    // 模板前缀,模板存放路径
     private final static String templatePrefix = "templates/";
-    //模板后缀
+    // 模板后缀
     private final static String templateSuffix = ".html";
-    //模板类型
+    // 模板类型
     private final static String templateMode = "HTML";
-    //模板编码
+    // 模板编码
     private final static String templateEncoding = "UTF-8";
+    // 读取运行环境
+    private static final Environment environment = SpringUtil.getBean(Environment.class);
 
-    //读取运行环境
-    private static Environment environment = SpringUtil.getBean(Environment.class);
-
-    private AbstractConfigurableTemplateResolver templateResolver;
+    private final AbstractConfigurableTemplateResolver templateResolver;
     private TemplateEngine templateEngine;
 
     private ThymeleafPdfUtil() {
@@ -78,49 +75,46 @@ public class ThymeleafPdfUtil {
     /**
      * 根据模板生成一个PDF
      *
-     * @param ouputPDF     输出pdf路径
      * @param templateName 模板名称
      * @param variables    页面参数
      * @throws Exception
      */
-    public static void generate(File ouputPDF, String templateName, Map variables) throws Exception {
-        //为空初始化
+    public static byte[] generateByte(String templateName, Map variables) throws Exception {
+        // 为空初始化
         variables = Optional.ofNullable(variables).orElse(new HashMap());
 
         final Context ctx = new Context();
         ctx.setVariables(variables);
 
         final TemplateEngine templateEngine = new ThymeleafPdfUtil().getTemplateEngine();
-        String htmlContent = templateEngine.process(templateName, ctx);
-
-//        System.err.println("htmlContent-1-:" + htmlContent);
 
-        //替换转义
-        htmlContent = htmlContent.replaceAll("&lt;", "<").replaceAll("&gt;", ">");
-        htmlContent = htmlContent.replaceAll("&quot;", "'");
-
-//        System.err.println("htmlContent-2-:" + htmlContent);
+        // 替换转义
+        String htmlContent = templateEngine.process(templateName, ctx).replaceAll("&lt;", "<").replaceAll("&gt;", ">").replaceAll("&quot;", "'");
 
         ITextRenderer renderer = new ITextRenderer();
         ITextFontResolver fontResolver = renderer.getFontResolver();
         try {
-            //获取字体路径
+            // 获取字体路径
             getFontPaths();
             if (CollectionUtils.isNotEmpty(fontPaths)) {
                 for (String path : fontPaths) {
-                    //避免中文为空设置系统字体
+                    // 避免中文为空设置系统字体
                     fontResolver.addFont(path, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
                 }
             }
         } catch (Exception e) {
             e.printStackTrace();
         }
-        //解决pdf对图片路径为base64不显示问题
+        // 解决pdf对图片路径为base64不显示问题
         renderer.getSharedContext().setReplacedElementFactory(new Base64ImgReplacedElementFactory());
-
         renderer.setDocumentFromString(htmlContent);
         renderer.layout();
-        renderer.createPDF(new BufferedOutputStream(new FileOutputStream(ouputPDF)));
+
+        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+        renderer.createPDF(byteArrayOutputStream);
+        byte[] bytes = byteArrayOutputStream.toByteArray();
+        IoUtil.close(byteArrayOutputStream);
+        return bytes;
     }
 
     /**
@@ -177,12 +171,12 @@ public class ThymeleafPdfUtil {
         try {
             System.err.println(JSONObject.toJSONString(fontPaths));
             if (CollectionUtils.isEmpty(fontPaths)) {
-                //读取配置
-                String fontpath = environment.getProperty("blade.pdf.fontpath");
-                if (StringUtils.isBlank(fontpath)) {
+                // 读取配置
+                String fontPath = environment.getProperty("blade.pdf.fontpath");
+                if (StringUtils.isBlank(fontPath)) {
                     return;
                 }
-                getFiles(fontpath);
+                getFiles(fontPath);
                 System.err.println("加载到字体路径==" + JSONObject.toJSONString(fontPaths));
             }
         } catch (Exception e) {
@@ -198,15 +192,15 @@ public class ThymeleafPdfUtil {
     public static void getFiles(String path) {
         File file = new File(path);
         File[] tempList = file.listFiles();
-        if (tempList == null || tempList.length <= 0) {
+        if (tempList == null) {
             return;
         }
-        for (int i = 0; i < tempList.length; i++) {
-            if (tempList[i].isFile()) {
-                fontPaths.add(tempList[i].toString());
+        for (File value : tempList) {
+            if (value.isFile()) {
+                fontPaths.add(value.toString());
             }
-            if (tempList[i].isDirectory()) {
-                //这里就不递归了,
+            if (value.isDirectory()) {
+                // 这里就不递归了,
             }
         }
     }
@@ -226,13 +220,7 @@ public class ThymeleafPdfUtil {
         } catch (Exception e) {
             return false;
         } finally {
-            if (inputStream != null) {
-                try {
-                    inputStream.close();
-                } catch (Exception e) {
-
-                }
-            }
+            IoUtil.close(inputStream);
         }
     }