From 4b5b00d6e5ff5bd79208e729bf046cd1e95d6572 Mon Sep 17 00:00:00 2001 From: chuang <994001556@qq.com> Date: Sun, 2 Apr 2023 15:40:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=98=E6=AC=BE=E5=8D=95=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=EF=BC=8C=E6=A6=9C=E5=8D=95=E5=AF=BC=E5=85=A5=20=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E5=A4=9A=E7=A7=8D=E7=B1=BB=E5=9E=8B=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/jnpf/filter/WebFilterConfig.java | 1 + .../controller/MobilePortController.java | 2 +- .../paymentdoc/service/PaymentdocService.java | 3 +- .../service/impl/PaymentdocServiceImpl.java | 55 ++++++++++--------- .../impl/PurchaseorderitemServiceImpl.java | 7 ++- 5 files changed, 39 insertions(+), 29 deletions(-) diff --git a/SC-boot/linkage-admin/src/main/java/jnpf/filter/WebFilterConfig.java b/SC-boot/linkage-admin/src/main/java/jnpf/filter/WebFilterConfig.java index 579a85ac..a5bf798d 100644 --- a/SC-boot/linkage-admin/src/main/java/jnpf/filter/WebFilterConfig.java +++ b/SC-boot/linkage-admin/src/main/java/jnpf/filter/WebFilterConfig.java @@ -84,6 +84,7 @@ public class WebFilterConfig implements WebMvcConfigurer { list.add("/favicon.ico"); list.add("/api/info/exportPdf/**"); + list.add("/api/info/getPaymentDocPdf/**"); return list; } diff --git a/SC-boot/linkage-scm/src/main/java/jnpf/mobilePort/controller/MobilePortController.java b/SC-boot/linkage-scm/src/main/java/jnpf/mobilePort/controller/MobilePortController.java index aaadf3d6..1754c6a4 100644 --- a/SC-boot/linkage-scm/src/main/java/jnpf/mobilePort/controller/MobilePortController.java +++ b/SC-boot/linkage-scm/src/main/java/jnpf/mobilePort/controller/MobilePortController.java @@ -53,7 +53,7 @@ public class MobilePortController { * @throws Exception */ @GetMapping(value = "/getPaymentDocPdf/{id}", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) - public void getPaymentDocPdf(HttpServletResponse response,@PathVariable("id") String id) { + public void getPaymentDocPdf(HttpServletResponse response,@PathVariable("id") String id) throws IOException { String idd="410787543580384837"; paymentdocService.getPaymentDocPdf(idd); } diff --git a/SC-boot/linkage-scm/src/main/java/jnpf/paymentdoc/service/PaymentdocService.java b/SC-boot/linkage-scm/src/main/java/jnpf/paymentdoc/service/PaymentdocService.java index 899e293c..5c6c61bb 100644 --- a/SC-boot/linkage-scm/src/main/java/jnpf/paymentdoc/service/PaymentdocService.java +++ b/SC-boot/linkage-scm/src/main/java/jnpf/paymentdoc/service/PaymentdocService.java @@ -7,6 +7,7 @@ import jnpf.paymentdoc.entity.PaymentdocItem1Entity; import jnpf.paymentdoc.entity.PaymentdocItem2Entity; import jnpf.paymentdoc.model.paymentdoc.PaymentdocPagination; +import java.io.IOException; import java.util.List; /** * @@ -39,5 +40,5 @@ public interface PaymentdocService extends IService { //列表子表数据方法 - void getPaymentDocPdf(String id); + void getPaymentDocPdf(String id) throws IOException; } diff --git a/SC-boot/linkage-scm/src/main/java/jnpf/paymentdoc/service/impl/PaymentdocServiceImpl.java b/SC-boot/linkage-scm/src/main/java/jnpf/paymentdoc/service/impl/PaymentdocServiceImpl.java index c434b5dc..a169865c 100644 --- a/SC-boot/linkage-scm/src/main/java/jnpf/paymentdoc/service/impl/PaymentdocServiceImpl.java +++ b/SC-boot/linkage-scm/src/main/java/jnpf/paymentdoc/service/impl/PaymentdocServiceImpl.java @@ -6,9 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import jnpf.config.ConfigValueUtil; import jnpf.mobilePort.utils.ExportPdf; -import jnpf.mobilePort.utils.MultipartFileDto; import jnpf.paymentdoc.entity.PaymentdocEntity; import jnpf.paymentdoc.entity.PaymentdocItem0Entity; import jnpf.paymentdoc.entity.PaymentdocItem1Entity; @@ -26,15 +24,17 @@ import jnpf.supplier.service.SupplierService; import jnpf.util.ServletUtil; import jnpf.util.StringUtil; import jnpf.util.UserProvider; -import lombok.Cleanup; -import org.apache.http.entity.ContentType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.*; +import javax.servlet.http.HttpServletResponse; +import java.io.BufferedOutputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; import java.lang.reflect.Field; +import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -362,46 +362,49 @@ public class PaymentdocServiceImpl extends ServiceImpl item2Entities = this.GetPaymentdocItem2List(id); List> paymentDocNodeInfo = paymentdocMapper.getPaymentDocNodeInfo(id); - String templateFilePath = configValueUtil.getTemplateFilePath() ; +// String templateFilePath = configValueUtil.getTemplateFilePath() +"paymentDocPdf//"; HashMap map = new HashMap<>(); map.put("reportList",paymentDocNodeInfo); byte[] bytes = null; - ByteArrayOutputStream out = null; + ByteArrayOutputStream out = null; ExportPdf exportPdf = new ExportPdf(); // word模板 try { out = exportPdf.createPdf(map, "paymentDoc.ftl", "/templates/export"); + bytes = out.toByteArray(); + out.close(); } catch (Exception e) { throw new RuntimeException(e); } - bytes = out.toByteArray(); - String fileName = "2023年3月30日.pdf"; -// fileName = URLEncoder.encode(fileName, "utf-8"); - -// 存在本地文件中 + String fileName = "城市矿产请示.pdf"; - MultipartFile file = null; + HttpServletResponse response = ServletUtil.getResponse(); + response.reset(); + String excelTitle = fileName; + String filen = null; try { - @Cleanup InputStream inputStream = new ByteArrayInputStream(bytes); - file = new MultipartFileDto(ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream); - // FileUtil.upFile(file, templateFilePath+"/wc/", fileName); - File f = new File(templateFilePath, fileName); - - //将上传的文件存储到指定位置 - file.transferTo(f); + filen = URLEncoder.encode(excelTitle, "UTF-8").replaceAll("\\+", "%20"); + } catch (UnsupportedEncodingException e) { + throw new RuntimeException(e); + } +// 设置response的Header + response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + filen ); + response.setContentType("application/x-download;charset=utf-8"); + BufferedOutputStream toClient = null; + try { + toClient = new BufferedOutputStream(response.getOutputStream()); + toClient.write(out.toByteArray()); + toClient.flush(); + toClient.close(); } catch (IOException e) { throw new RuntimeException(e); } - - log.warn("pdf文件生成成功!"); } diff --git a/SC-boot/linkage-scm/src/main/java/jnpf/purchaseorder/service/impl/PurchaseorderitemServiceImpl.java b/SC-boot/linkage-scm/src/main/java/jnpf/purchaseorder/service/impl/PurchaseorderitemServiceImpl.java index e6d7d6a0..2d6f6dfe 100644 --- a/SC-boot/linkage-scm/src/main/java/jnpf/purchaseorder/service/impl/PurchaseorderitemServiceImpl.java +++ b/SC-boot/linkage-scm/src/main/java/jnpf/purchaseorder/service/impl/PurchaseorderitemServiceImpl.java @@ -1459,7 +1459,12 @@ public class PurchaseorderitemServiceImpl extends ServiceImpl