From 168fc6e251ee41d2f814278b9fe0d123463284ad Mon Sep 17 00:00:00 2001
From: lige <bestlige@outlook.com>
Date: 星期一, 25 十二月 2023 16:23:43 +0800
Subject: [PATCH] 1

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java  |   24 +++---
 ltkj-admin/src/test/java/lgTest.java                                             |  116 ++++++++++++++++++++++++++++
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjPackageController.java |   57 +++++++++++++-
 3 files changed, 179 insertions(+), 18 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjPackageController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjPackageController.java
index 0ea17ea..6dcb844 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjPackageController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjPackageController.java
@@ -183,14 +183,61 @@
 //            return getDataTable(tjPackageList);
 //        }
         String pacName="";
-        if (cusSex.equals("2")) {
-            return getDataTable(tjPackageService.getPacListBySqlAndAll(pacName));
-
+        if (cusSex==null || cusSex.equals("2")) {
+            final List<TjPackage> pacListBySqlAndAll = tjPackageService.getPacListBySqlAndAll(pacName);
+            if (pacListBySqlAndAll!=null){
+                for (TjPackage tjPackage : pacListBySqlAndAll) {
+                    List<TjProject> res=new ArrayList<>();
+                    LambdaQueryWrapper<TjPackageProject> wqq=new LambdaQueryWrapper<>();
+                    wqq.eq(TjPackageProject::getPacId,tjPackage.getPacId());
+                    final List<TjPackageProject> list = ppservice.list(wqq);
+                    if (list!=null){
+                        for (TjPackageProject tjPackageProject : list) {
+                            final TjProject byId = tjProjectService.getById(tjPackageProject.getProId());
+                            res.add(byId);
+                        }
+                        tjPackage.setTjProjectList(res);
+                    }
+                }
+            }
+            return getDataTable(pacListBySqlAndAll);
         } else {
             if (cusSex.equals("0")) {
-                return getDataTable(tjPackageService.getPacListBySqlAndMan(pacName));
+                final List<TjPackage> pacListBySqlAndMan = tjPackageService.getPacListBySqlAndMan(pacName);
+                if (pacListBySqlAndMan!=null){
+                    for (TjPackage tjPackage : pacListBySqlAndMan) {
+                        List<TjProject> res=new ArrayList<>();
+                        LambdaQueryWrapper<TjPackageProject> wqq=new LambdaQueryWrapper<>();
+                        wqq.eq(TjPackageProject::getPacId,tjPackage.getPacId());
+                        final List<TjPackageProject> list = ppservice.list(wqq);
+                        if (list!=null){
+                            for (TjPackageProject tjPackageProject : list) {
+                                final TjProject byId = tjProjectService.getById(tjPackageProject.getProId());
+                                res.add(byId);
+                            }
+                            tjPackage.setTjProjectList(res);
+                        }
+                    }
+                }
+                return getDataTable(pacListBySqlAndMan);
             }else {
-                return getDataTable(tjPackageService.getPacListBySqlAndWomen(pacName));
+                final List<TjPackage> pacListBySqlAndWomen = tjPackageService.getPacListBySqlAndWomen(pacName);
+                if (pacListBySqlAndWomen!=null){
+                    for (TjPackage tjPackage : pacListBySqlAndWomen) {
+                        List<TjProject> res=new ArrayList<>();
+                        LambdaQueryWrapper<TjPackageProject> wqq=new LambdaQueryWrapper<>();
+                        wqq.eq(TjPackageProject::getPacId,tjPackage.getPacId());
+                        final List<TjPackageProject> list = ppservice.list(wqq);
+                        if (list!=null){
+                            for (TjPackageProject tjPackageProject : list) {
+                                final TjProject byId = tjProjectService.getById(tjPackageProject.getProId());
+                                res.add(byId);
+                            }
+                            tjPackage.setTjProjectList(res);
+                        }
+                    }
+                }
+                return getDataTable(pacListBySqlAndWomen);
             }
         }
     }
diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java
index 603b14f..d0c43c0 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java
@@ -430,11 +430,11 @@
                     //璁剧疆鏂囨。鐨勯〉杈硅窛灏辨槸璺濈椤甸潰杈逛笂鐨勮窛绂伙紝鍒嗗埆涓猴細宸﹁竟璺濓紝鍙宠竟璺濓紝涓婅竟璺濓紝涓嬭竟璺�
                     document.setMargins(70, 70, 40, 40);
                     //鐢熸垚pdf鐨勪綅缃互鍙婂悕绉�
-                    String fileName = value + "\\" + userId + "浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf";
+                    String fileName = value + "\\" + userId +tjNumber+ "浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf";
                     OutputStream outputStream = Files.newOutputStream(Paths.get(fileName));
                     PdfWriter pdfWriter = PdfWriter.getInstance(document, outputStream);
 
-                    pdfWriter.setPageEvent(new MyHeaderFooter());// 椤电湁椤佃剼
+                    //pdfWriter.setPageEvent(new MyHeaderFooter());// 椤电湁椤佃剼
 
                     document.open();
 
@@ -584,14 +584,14 @@
                     outputStream.close();
 
                     // TODO: 2023/3/29  鏌ヨ闄勪欢pdf 濡傚績鐢靛浘銆侀檮浠�
-                    LambdaQueryWrapper<TjReport> rtwq1 = new LambdaQueryWrapper<>();
-                    rtwq1.eq(TjReport::getType, "鍖诲鍚嶈瘝");
-//                    rtwq1.eq(TjReport::getTjNumber, tjNumber);
-                    TjReport one11111 = tjReportService.getOne(rtwq1);
-                    if(null !=one11111){
-                        String report1 = one11111.getReport();
-                        PDFBinaryUtil.base64StringToPDF(report1, FileUtil.mkdir(value).getPath() + "\\" + userId + "鍖诲鍚嶈瘝.pdf");
-                    }
+//                    LambdaQueryWrapper<TjReport> rtwq1 = new LambdaQueryWrapper<>();
+//                    rtwq1.eq(TjReport::getType, "鍖诲鍚嶈瘝");
+////                    rtwq1.eq(TjReport::getTjNumber, tjNumber);
+//                    TjReport one11111 = tjReportService.getOne(rtwq1);
+//                    if(null !=one11111){
+//                        String report1 = one11111.getReport();
+//                        PDFBinaryUtil.base64StringToPDF(report1, FileUtil.mkdir(value).getPath() + "\\" + userId + "鍖诲鍚嶈瘝.pdf");
+//                    }
 
                     LambdaQueryWrapper<TjReport> rtwq = new LambdaQueryWrapper<>();
                     rtwq.eq(TjReport::getType, "蹇冪數鍥�");
@@ -611,7 +611,7 @@
                         PDFBinaryUtil.base64StringToPDF(report12, FileUtil.mkdir(value).getPath() + "\\" + userId + "闄勪欢.pdf");
                     }
                     //鍚堝苟
-                    String[] files1 = {value + "\\" + userId + "浣撴鎶ュ憡灏侀潰椤�.pdf", value + "\\" + userId + "浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf", value + "\\" + userId + "鍖诲鍚嶈瘝.pdf", value + "\\" + userId + "闄勪欢.pdf", value + "\\" + userId + "蹇冪數鍥�.pdf"};
+                    String[] files1 = {value + "\\" + userId + "浣撴鎶ュ憡灏侀潰椤�.pdf", value + "\\" + userId + tjNumber+"浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf", value + "\\" + userId + "闄勪欢.pdf", value + "\\" + userId + "蹇冪數鍥�.pdf"};
                     String outputPath1 = value + "\\";
                     String outputFileName1 = userId + tjNumber + tjCustomer.getCusName() + "_浣撴鎶ュ憡.pdf";
 
@@ -633,7 +633,7 @@
                     //TODO 2023/2/3 16:21 鐢熸垚浣撴鎶ュ憡pdf鍚庡垹闄ゆ湰鍦版枃浠�
                     //FileUtil.del(value + "\\" + tjNumber + "浣撴鎶ュ憡.pdf");
                     //FileUtil.del(value + "\\" + userId + "浣撴鎶ュ憡灏侀潰妯℃澘.pdf");
-                    //FileUtil.del(value + "\\" + userId + "浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf");
+                    //FileUtil.del(value + "\\" + userId +tjNumber+ "浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf");
                     //FileUtil.del(value + "\\" + userId + "浣撴鎶ュ憡灏侀潰椤�.pdf");
                     //FileUtil.del(value + "\\" + userId + "蹇冪數鍥�.pdf");
 
diff --git a/ltkj-admin/src/test/java/lgTest.java b/ltkj-admin/src/test/java/lgTest.java
index bd42a2d..c579529 100644
--- a/ltkj-admin/src/test/java/lgTest.java
+++ b/ltkj-admin/src/test/java/lgTest.java
@@ -1,5 +1,8 @@
+import com.itextpdf.text.*;
+import com.itextpdf.text.pdf.*;
 import com.ltkj.LtkjApplication;
 import com.ltkj.hosp.mapper.TestMapper;
+import com.ltkj.web.config.pdfutils.MyHeaderFooter;
 import lombok.extern.slf4j.Slf4j;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -9,6 +12,11 @@
 import org.springframework.test.context.junit4.SpringRunner;
 
 import javax.annotation.Resource;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.nio.file.Files;
+import java.nio.file.Paths;
 
 /**
  * @Company: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃
@@ -23,13 +31,119 @@
 
     @Resource
     private TestMapper testMapper;
+
     @Test
     public void lige() {
 
+//        try {
+//            PdfReader reader = new PdfReader("original.pdf");
+//            PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("output.pdf"));
+//            // 鑾峰彇 PDF 涓殑椤垫暟
+//            int pageCount = reader.getNumberOfPages();// 娣诲姞姘村嵃
+//            System.out.println(pageCount);
+//            for (int i = 1; i <= pageCount; i++) {
+//                final int numberOfPages = reader.getNumberOfPages(i);
+//            }
+//            stamper.close();
+//            reader.close();
+//
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+
+
     }
 
+
+    /**
+     * @param srcPdfPath   婧怭DF鏂囦欢璺緞
+     * @param tagetPdfPath 鍔犱簡椤电爜鐨凱DF鏂囦欢璺緞
+     * @description 缁橮DF鏂囦欢娣诲姞椤电爜
+     */
+    public static void addPageNum(String srcPdfPath, String tagetPdfPath) {
+        try {
+            // 杈撳嚭鏂囦欢 娴�
+            FileOutputStream fos = new FileOutputStream(tagetPdfPath);
+
+            // 璇诲彇 婧怭DF鏂囦欢锛岃繘琛屼竴椤典竴椤靛鍒讹紝鎵嶈兘瑙﹀彂 娣诲姞椤电爜鐨�  椤甸潰鐩戝惉浜嬩欢
+            PdfReader reader = new PdfReader(srcPdfPath);
+            // 鑾峰彇 婧愭枃浠舵�婚〉鏁�
+            int num = reader.getNumberOfPages();
+
+            // 鏂板缓鏂囨。锛岄粯璁4澶у皬
+            Document document = new Document(PageSize.A4);
+            PdfWriter writer = PdfWriter.getInstance(document, fos);
+            // 璁剧疆椤甸潰鐩戝惉浜嬩欢锛屽繀椤诲湪open鏂规硶鍓�
+            writer.setPageEvent(new PdfNumPageEvent(num));
+            document.open();
+            // PDF鍐呭浣�
+            PdfContentByte pdfContent = writer.getDirectContent();
+            //System.out.println("鎬婚〉鏁帮細" + num);
+            // 椤甸潰鏁版槸浠�1寮�濮嬬殑
+            for (int i = 1; i <= num; i++) {
+                document.newPage();
+                // 璁剧疆绌洪〉鐮佽繘琛屽睍绀�
+                writer.setPageEmpty(false);
+                PdfImportedPage page = writer.getImportedPage(reader, i);
+                // 澶嶅埗濂界殑椤甸潰锛屾坊鍔犲埌鍐呭鍘伙紝瑙﹀彂浜嬩欢鐩戝惉
+                pdfContent.addTemplate(page, 0, 42);
+            }
+            document.close();
+            reader.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+
+    /**
+     * @description 閽堝椤电爜鐢熸垚鐨凱DF浜嬩欢鐩戝惉
+     **/
+    public static class PdfNumPageEvent extends PdfPageEventHelper {
+
+        private int total;
+
+        PdfNumPageEvent() {
+
+        }
+
+        PdfNumPageEvent(int num) {
+            this.total = num;
+        }
+
+        @Override
+        public void onEndPage(PdfWriter writer, Document document) {
+            try {
+                // PDF鏂囨。鍐呭
+                PdfContentByte pdfContent = writer.getDirectContent();
+                pdfContent.saveState();
+                pdfContent.beginText();
+                int footerFontSize = 10;
+                // 瑙e喅椤电爜涓枃鏃犳硶鏄剧ず 鎴栬�� 鏄剧ず涓轰贡鐮佺殑闂
+                // 浣嗘槸蹇呴』寮曞叆jar鍖� itext-asian-5.2.0.jar
+                BaseFont baseFont = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", false);
+                Font fontDetail = new Font(baseFont, footerFontSize, Font.NORMAL);
+                pdfContent.setFontAndSize(baseFont, footerFontSize);
+                // 椤佃剼鐨勯〉鐮� 灞曠ず
+                String footerNum = String.format("绗�%d椤碉紝鍏�" + total + "椤�", writer.getPageNumber());
+                Phrase phrase = new Phrase(footerNum, fontDetail);
+                // 椤电爜鐨� 妯酱 鍧愭爣 灞呬腑
+                float x = (document.left() + document.right()) / 2 + 10;
+                // 椤电爜鐨� 绾佃酱 鍧愭爣
+                float y = document.bottom(-20);
+                // 娣诲姞鏂囨湰鍐呭锛岃繘琛屽睍绀洪〉鐮�
+                ColumnText.showTextAligned(pdfContent, Element.ALIGN_CENTER, phrase, x, y, 0);
+                pdfContent.endText();
+                pdfContent.restoreState();
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+
     public static void main(String[] args) {
-        Long a=12L;
+        Long a = 12L;
         final long l = a + 10000;
         final String s = "V" + l;
         System.out.println(s);

--
Gitblit v1.8.0