From dedacd79c93f8ef95e0cb986f5e7fbd27ddbd907 Mon Sep 17 00:00:00 2001
From: zhaowenxuan <chacca165@163.com>
Date: 星期四, 03 七月 2025 09:12:49 +0800
Subject: [PATCH] 2025-07-03

---
 ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjReportServiceImpl.java |  169 ++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 116 insertions(+), 53 deletions(-)

diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjReportServiceImpl.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjReportServiceImpl.java
index bd9c607..f4d254c 100644
--- a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjReportServiceImpl.java
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjReportServiceImpl.java
@@ -2,6 +2,7 @@
 
 import java.io.*;
 import java.nio.file.Files;
+import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.*;
 import java.util.List;
@@ -75,6 +76,8 @@
     private ITjOrderRemarkService tjOrderRemarkService;
     @Resource
     private ITjStandardService tjStandardService;
+    @Autowired
+    private ITjReportPrintService printService;
 
     /**
      * 鏌ヨ浣撴鎶ュ憡瀛樺偍
@@ -142,10 +145,10 @@
         return tjReportMapper.deleteTjReportByReId(reId);
     }
 
-    @Value("${path.filePath}")
-    private String value;
+//    @Value("${path.filePath}")
+//    private String value;
 
-    @Override
+   /* @Override
     public AjaxResult getTjReport(String tjNumber) {
         //鏍规嵁浣撴鍙�
         //鍦╫rder閲屾煡璇綋妫�鐘舵�� 鍒ゆ柇浣撴鏄惁瀹屾垚
@@ -176,9 +179,9 @@
                     TjProject tjProject = projectService.selectTjProjectByProId(tjOrderDetail.getProId());
                     tjOrderDetail.setProject(tjProject);
                 }
-                /*
+                *//*
                  * ====================绗竴閮ㄥ垎 濉厖浣撴鎶ュ憡灏侀潰妯℃澘
-                 * */
+                 * *//*
                 //鏍规嵁鏁版嵁搴撲腑鐨勬ā鏉夸簩杩涘埗鏂囦欢  杞琾df  鍒涘缓鏂囦欢澶�  灏唒df鏀捐繘鏂囦欢澶�
                 LambdaQueryWrapper<TjReportTemplate> tjReportTemplateLambdaQueryWrapper = new LambdaQueryWrapper<>();
                 tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getFlag, 1);
@@ -190,12 +193,12 @@
                 //褰撳墠鐧诲綍鐨勪汉宸ュ彿
                 String userId = SecurityUtils.getLoginUser().getUsername();
                 //浜岃繘鍒惰浆pdf 瀛樺偍鍦ㄤ复鏃舵枃浠跺す涓�
-                PDFBinaryUtil.base64StringToPDF(template, FileUtil.mkdir(value).getPath() + "\\" + userId + "浣撴鎶ュ憡灏侀潰妯℃澘.pdf");
+                PDFBinaryUtil.base64StringToPDF(template, FileUtil.mkdir(value).getPath() + File.separator + userId + "浣撴鎶ュ憡灏侀潰妯℃澘.pdf");
 
                 // 妯℃澘鏂囦欢璺緞
-                String inputFileName = value + "\\" + userId + "浣撴鎶ュ憡灏侀潰妯℃澘.pdf";
+                String inputFileName = value + File.separator + userId + "浣撴鎶ュ憡灏侀潰妯℃澘.pdf";
                 // 鐢熸垚鐨勬枃浠惰矾寰�
-                String outputFileName = value + "\\" + userId + "浣撴鎶ュ憡灏侀潰椤�.pdf";
+                String outputFileName = value + File.separator + userId + "浣撴鎶ュ憡灏侀潰椤�.pdf";
                 OutputStream os = null;
                 PdfStamper ps = null;
                 PdfReader reader = null;
@@ -251,16 +254,16 @@
                     ps.close();
                     os.close();
                     reader.close();
-                    /*
+                    *//*
                      * ==========================绗簩閮ㄥ垎  鐢熸垚椤圭洰璇︽儏
-                     */
+                     *//*
                     //鏂囨。瀵硅薄  瀹炵幇A4绾搁〉闈�
                     Document document = new Document(PageSize.A4);
                     //document.setMarginMirroring(true);
                     //璁剧疆鏂囨。鐨勯〉杈硅窛灏辨槸璺濈椤甸潰杈逛笂鐨勮窛绂伙紝鍒嗗埆涓猴細宸﹁竟璺濓紝鍙宠竟璺濓紝涓婅竟璺濓紝涓嬭竟璺�
                     document.setMargins(70, 70, 40, 40);
                     //杩欎釜鏄敓鎴恜df鐨勪綅缃互鍙婂悕绉�
-                    String fileName = value + "\\" + userId + "浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf";
+                    String fileName = value + File.separator + userId + "浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf";
                     OutputStream outputStream = Files.newOutputStream(Paths.get(fileName));
                     PdfWriter pdfWriter = PdfWriter.getInstance(document, outputStream);
 
@@ -320,16 +323,16 @@
                         LineSeparator objectName = new LineSeparator();
                         document.add(objectName);
                     }
-                    /*
+                    *//*
                      * document鍏抽棴鐨勫叾瀹炴槸鏂囦欢鐨勭洃鍚姸鎬侊紝writer鍏抽棴鐨勬槸io娴侊紝writer鍒涘缓鍦╠ocument涔嬪悗
-                     * */
+                     * *//*
                     document.close();
                     pdfWriter.close();
                     outputStream.close();
 
                     //=============================== 绗笁閮ㄥ垎  鍚堝苟浣撴鎶ュ憡灏侀潰椤靛拰浣撴鎶ュ憡椤圭洰璇︽儏椤�
-                    String[] files1 = {value + "\\" + userId + "浣撴鎶ュ憡灏侀潰椤�.pdf", value + "\\" + userId + "浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf"};
-                    String outputPath1 = value + "\\";
+                    String[] files1 = {value + File.separator + userId + "浣撴鎶ュ憡灏侀潰椤�.pdf", value + File.separator + userId + "浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf"};
+                    String outputPath1 = value + File.separator;
                     String outputFileName1 = tjNumber + "浣撴鎶ュ憡.pdf";
 
                     File file1 = new File(outputPath1 + outputFileName1);
@@ -349,9 +352,9 @@
 
                     //灏嗕复鏃舵枃浠跺す涓殑鍥涗釜鏂囦欢鍒犻櫎
                     //FileUtil.del(value+"\\"+tjNumber + "浣撴鎶ュ憡.pdf");
-                    FileUtil.del(value + "\\" + userId + "浣撴鎶ュ憡灏侀潰妯℃澘.pdf");
-                    FileUtil.del(value + "\\" + userId + "浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf");
-                    FileUtil.del(value + "\\" + userId + "浣撴鎶ュ憡灏侀潰椤�.pdf");
+                    FileUtil.del(value + File.separator + userId + "浣撴鎶ュ憡灏侀潰妯℃澘.pdf");
+                    FileUtil.del(value + File.separator + userId + "浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf");
+                    FileUtil.del(value + File.separator + userId + "浣撴鎶ュ憡灏侀潰椤�.pdf");
 
                     //淇敼order琛ㄤ腑鐨勬墦鍗版姤鍛婃椂闂翠负褰撳墠鏃堕棿
                     LambdaUpdateWrapper<TjOrder> updateWrapper = new LambdaUpdateWrapper<>();
@@ -369,7 +372,7 @@
             }
         }
         return null;
-    }
+    }*/
 
     @Override
     public Integer getSelectCount(Wrapper<TjReport> queryWrapper) {
@@ -517,8 +520,8 @@
 
 
     @Override
-    public AjaxResult makeBatchReport(List<String> tjNumbers) {
-        return sqlGetReportToMake(tjNumbers);
+    public AjaxResult makeBatchReport(List<String> tjNumbers,String value) {
+        return sqlGetReportToMake(tjNumbers,value);
 
     }
 
@@ -528,40 +531,100 @@
      * @param tjNumbers
      * @return
      */
-    private AjaxResult sqlGetReportToMake(List<String> tjNumbers) {
-        LambdaQueryWrapper<TjReport> tjReportLambdaQueryWrapper = new LambdaQueryWrapper<>();
-        tjReportLambdaQueryWrapper.in(TjReport::getTjNumber, tjNumbers);
-        List<TjReport> list = tjReportService.list(tjReportLambdaQueryWrapper);
+//    private AjaxResult sqlGetReportToMake(List<String> tjNumbers) {
+//        LambdaQueryWrapper<TjReport> tjReportLambdaQueryWrapper = new LambdaQueryWrapper<>();
+//        tjReportLambdaQueryWrapper.in(TjReport::getTjNumber, tjNumbers);
+//        List<TjReport> list = tjReportService.list(tjReportLambdaQueryWrapper);
+//        ArrayList<String> base64Pdfs = new ArrayList<>();
+//        for (TjReport report : list) {
+//            if (report == null || report.getReport() == null) {
+//                // 娌℃湁璇ユ姤鍛� 鐩存帴璺宠繃
+//                continue;
+//            }
+//            base64Pdfs.add(report.getReport());
+//        }
+//        tjNumbers.forEach(tjNumber ->{
+//            LambdaUpdateWrapper<TjOrder> updateWrapper = new LambdaUpdateWrapper<>();
+//            updateWrapper.eq(TjOrder::getTjNumber, tjNumber);
+//            updateWrapper.set(TjOrder::getPrintLastTime, new Date());
+//            updateWrapper.set(TjOrder::getDownloadLastTime, new Date());
+//            updateWrapper.set(TjOrder::getStatus, TjConstants.TJ_END);
+//            tjOrderService.update(updateWrapper);
+//        });
+//        try {
+//            byte[] mergePDF = PDFDocumentUtil.mergePDFs(base64Pdfs);
+//            String s = Base64.getEncoder().encodeToString(mergePDF);
+//            return AjaxResult.success().put("file",s);
+//            // 鏈湴鐢熸垚娴嬭瘯
+////            String PDF_FILE = "d:\\Users\\w\\Desktop\\test.pdf";
+////            BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(PDF_FILE));
+////            outputStream.write(mergePDF);
+////            outputStream.flush();
+////            outputStream.close();
+//        } catch (DocumentException | IOException e) {
+//            e.printStackTrace();
+//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+//            return AjaxResult.error("鎵归噺鐢熸垚澶辫触");
+//        }
+//    }
+
+    private AjaxResult sqlGetReportToMake(List<String> tjNumbers, String value) {
+//        LambdaQueryWrapper<TjReport> tjReportLambdaQueryWrapper = new LambdaQueryWrapper<>();
+//        tjReportLambdaQueryWrapper.in(TjReport::getTjNumber, tjNumbers);
+//        List<TjReport> list = tjReportService.list(tjReportLambdaQueryWrapper);
         ArrayList<String> base64Pdfs = new ArrayList<>();
-        for (TjReport report : list) {
-            if (report == null || report.getReport() == null) {
-                // 娌℃湁璇ユ姤鍛� 鐩存帴璺宠繃
-                continue;
+//        for (TjReport report : list) {
+//            if (report == null || report.getReport() == null) {
+//                // 娌℃湁璇ユ姤鍛� 鐩存帴璺宠繃
+//                continue;
+//            }
+//            base64Pdfs.add(report.getReport());
+//        }
+
+        //鍖哄煙鐗堜綋妫�娣诲姞闄㈠尯缂栫爜
+//        String key = DataSourceContextHolder.getDataSourceKey();
+//        key = key.replace("ltkjpeis10_","");
+
+        if(null !=tjNumbers && !tjNumbers.isEmpty()){
+            for (String number : tjNumbers) {
+                TjOrder order = tjOrderService.getOrderByTjNum(number);
+                TjCustomer tjCustomer = tjCustomerService.getById( order.getUserId());
+                String filePath = value + File.separator  + File.separator + tjCustomer.getCusId() + order.getTjNumber() + tjCustomer.getCusName() + "_鎶ュ憡.pdf";
+                try {
+                    // 璇诲彇鏂囦欢涓哄瓧鑺傛暟缁�
+                    Path path = Paths.get(filePath);
+                    byte[] fileBytes = Files.readAllBytes(path);
+                    // 灏嗗瓧鑺傛暟缁勮浆鎹负 Base64 瀛楃涓�
+                    String base64String = Base64.getEncoder().encodeToString(fileBytes);
+                    base64Pdfs.add(base64String);
+
+                    //淇濆瓨鎵撳嵃鏁版嵁璁板綍
+                    TjReportPrint print=new TjReportPrint();
+                    print.setTjNumber(order.getTjNumber());
+                    print.setPrintBy(SecurityUtils.getLoginUser().getUser().getNickName());
+                    print.setPrintTime(new Date());
+                    print.setPrintStatus("宸叉墦鍗�");
+                    if (printService.save(print)) {
+                        order.setPrintLastTime(new Date());
+                        order.setStatus(TjConstants.TJ_END);
+                        tjOrderService.updateById(order);
+                    }
+
+                } catch (IOException e) {
+                    e.printStackTrace();
+                    log.error(String.valueOf(e));
+                }
             }
-            base64Pdfs.add(report.getReport());
+            try {
+                byte[] mergePDF = PDFDocumentUtil.mergePDFs(base64Pdfs);
+                String s = Base64.getEncoder().encodeToString(mergePDF);
+                return AjaxResult.success().put("file",s);
+            } catch (DocumentException | IOException e) {
+                e.printStackTrace();
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return AjaxResult.error("鎵归噺鐢熸垚澶辫触");
+            }
         }
-        tjNumbers.forEach(tjNumber ->{
-            LambdaUpdateWrapper<TjOrder> updateWrapper = new LambdaUpdateWrapper<>();
-            updateWrapper.eq(TjOrder::getTjNumber, tjNumber);
-            updateWrapper.set(TjOrder::getPrintLastTime, new Date());
-            updateWrapper.set(TjOrder::getDownloadLastTime, new Date());
-            updateWrapper.set(TjOrder::getStatus, TjConstants.TJ_END);
-            tjOrderService.update(updateWrapper);
-        });
-        try {
-            byte[] mergePDF = PDFDocumentUtil.mergePDFs(base64Pdfs);
-            String s = Base64.getEncoder().encodeToString(mergePDF);
-            return AjaxResult.success().put("file",s);
-            // 鏈湴鐢熸垚娴嬭瘯
-//            String PDF_FILE = "d:\\Users\\w\\Desktop\\test.pdf";
-//            BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(PDF_FILE));
-//            outputStream.write(mergePDF);
-//            outputStream.flush();
-//            outputStream.close();
-        } catch (DocumentException | IOException e) {
-            e.printStackTrace();
-            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-            return AjaxResult.error("鎵归噺鐢熸垚澶辫触");
-        }
+        return AjaxResult.error("鎵归噺鐢熸垚澶辫触");
     }
 }

--
Gitblit v1.8.0