From e607595f8a4df7d4d577f64ae577b658bdd98c7e Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期三, 16 四月 2025 17:23:28 +0800
Subject: [PATCH] zjh20250416

---
 ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjReportServiceImpl.java |  125 +++++++++++++++++++++++++++++++----------
 1 files changed, 94 insertions(+), 31 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 c77c09b..9ac0d39 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;
 
     /**
      * 鏌ヨ浣撴鎶ュ憡瀛樺偍
@@ -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);
+//        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) {
-        LambdaQueryWrapper<TjReport> tjReportLambdaQueryWrapper = new LambdaQueryWrapper<>();
-        tjReportLambdaQueryWrapper.in(TjReport::getTjNumber, tjNumbers);
-        List<TjReport> list = tjReportService.list(tjReportLambdaQueryWrapper);
+//        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