From 1630243ed75a92c60d0638e7d14477e4aadcf2b7 Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期五, 18 四月 2025 17:41:44 +0800
Subject: [PATCH] zjh20250418

---
 ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjReportServiceImpl.java |  376 ++++++++++++++---------------------------------------
 1 files changed, 99 insertions(+), 277 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 efa15f4..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;
 
     /**
      * 鏌ヨ浣撴鎶ュ憡瀛樺偍
@@ -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;
@@ -260,7 +263,7 @@
                     //璁剧疆鏂囨。鐨勯〉杈硅窛灏辨槸璺濈椤甸潰杈逛笂鐨勮窛绂伙紝鍒嗗埆涓猴細宸﹁竟璺濓紝鍙宠竟璺濓紝涓婅竟璺濓紝涓嬭竟璺�
                     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);
 
@@ -328,8 +331,8 @@
                     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<>();
@@ -517,9 +520,9 @@
 
 
     @Override
-    @Transactional
     public AjaxResult makeBatchReport(List<String> tjNumbers) {
         return sqlGetReportToMake(tjNumbers);
+
     }
 
     /**
@@ -528,281 +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("鎵归噺鐢熸垚澶辫触");
-        }
-    }
-
-    /**
-     * 閫氳繃sql 閲嶆暣鏁版嵁妯℃澘 鍏ㄩ儴閲嶆柊鐢熸垚
-     * @param tjNumbers
-     * @return
-     */
-//    private AjaxResult makeReport(List<String > tjNumbers) {
+//    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 (String tjNumber : tjNumbers) {
-//            LambdaQueryWrapper<TjOrder> wq = new LambdaQueryWrapper<>();
-//            wq.eq(TjOrder::getTjNumber, tjNumber);
-//            TjOrder tjOrder = tjOrderService.getOne(wq);
-//            if (null != tjOrder) {
-//                LambdaQueryWrapper<TjReportTemplate> tjReportTemplateLambdaQueryWrapper = new LambdaQueryWrapper<>();
-//                TjReportTemplate reportTemplate = null;
-//                if (tjOrder.getTjCategory() != null) {
-//                    //鏌ヨ瀛楀吀
-//                    LambdaQueryWrapper<SysDictData> wqq = new LambdaQueryWrapper<>();
-//                    wqq.eq(SysDictData::getDictType, "dict_tjtype");
-//                    wqq.eq(SysDictData::getDictValue, tjOrder.getTjCategory());
-//                    SysDictData one = dictDataService.getOne(wqq);
-//                    if (one != null) {
-//                        //鏌ヨ瀛楀吀
-//                        LambdaQueryWrapper<SysDictData> wqq1 = new LambdaQueryWrapper<>();
-//                        wqq1.eq(SysDictData::getDictType, "report_template_type");
-//                        wqq1.eq(SysDictData::getDictLabel, one.getDictLabel());
-//                        SysDictData one1 = dictDataService.getOne(wqq1);
-//                        if (one1 != null) {
-//                            tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getFlag, one1.getDictValue());
-//                        } else {
-//                            tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getFlag, 1);
-//                        }
-//                    } else {
-//                        tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getFlag, 1);
-//                    }
-//                    tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getOpen, 0);
-//                    reportTemplate = reportTemplateService.getOne(tjReportTemplateLambdaQueryWrapper);
-//                } else {
-//                    tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getOpen, 0);
-//                    reportTemplate = reportTemplateService.list(tjReportTemplateLambdaQueryWrapper).get(2);
-//                }
-//
-//                String template = reportTemplate.getTemplate();
-//                String userId = null;
-//                if (template == null) {
-//                    // 娌℃湁璇ユā鏉�
-//                    continue;
-//                }
-//                // --------浠ヤ笂-------  鏍规嵁鏁版嵁搴撲腑鐨勬ā鏉夸簩杩涘埗鏂囦欢  杞琾df  鍒涘缓鏂囦欢澶�  灏唒df鏀捐繘鏈湴鏂囦欢澶�
-//                LambdaQueryWrapper<TjCustomer> wq1 = new LambdaQueryWrapper<>();
-//                wq1.eq(TjCustomer::getCusId, tjOrder.getUserId());
-//                TjCustomer tjCustomer = tjCustomerService.getOne(wq1);
-//                LambdaQueryWrapper<DictComp> wq111 = new LambdaQueryWrapper<>();
-//                wq111.eq(DictComp::getDrugManufacturerId, tjOrder.getFirmId());
-//                DictComp dictComp = dictCompService.getOne(wq111);
-//                LambdaQueryWrapper<TjOrderDetail> wq2 = new LambdaQueryWrapper<>();
-//                wq2.eq(TjOrderDetail::getOrderId, tjOrder.getOrderId());
-//                wq2.isNotNull(TjOrderDetail::getFlowingWaterId);
-//                List<TjOrderDetail> list = tjOrderDetailService.list(wq2);
-//                for (TjOrderDetail tjOrderDetail : list) {
-//                    TjProject tjProject = projectService.selectTjProjectByProId(tjOrderDetail.getProId());
-//                    tjOrderDetail.setProject(tjProject);
-//                }
-//                // 鍏辫鑰楁椂5695姣 浠ヤ笅浠g爜鑰楁椂3528
-//                // TODO PDF鍒涘缓浼樺寲
-//                long pdfMkStart = System.currentTimeMillis();
-//                ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
-//                PdfStamper ps = null;
-//                PdfReader reader = null;
-//                try {
-//                    // 璇诲叆pdf琛ㄥ崟
-//                    reader = new PdfReader(new ByteArrayInputStream(Base64.getDecoder().decode(template)));
-//                    // 鏍规嵁琛ㄥ崟鐢熸垚涓�涓柊鐨刾df
-//                    ps = new PdfStamper(reader, byteArrayOutputStream);
-//                    // 鑾峰彇pdf琛ㄥ崟
-//                    AcroFields form = ps.getAcroFields();
-//                    //璇ュ瓧浣撻�犳垚绫诲瀷涓嶅潎鍖�锛屼絾鏄痯df杞浘鐗囦笉涔辩爜
-//                    BaseFont bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
-//                    form.addSubstitutionFont(bf);
-//                    // 濉厖鏁版嵁缁欒〃鏍�
-//                    Map<String, Object> data = new HashMap<>();
-//                    // 璁剧疆鐢ㄦ埛淇℃伅
-//                    setUserInfo(tjNumber, tjOrder, tjCustomer, dictComp, list, data);
-//                    //灏侀潰椤典笅闈㈢殑鎬绘寤鸿鏄剧ず
-//                    if (tjOrder.getCheckAdvice() == null) {
-//                        data.put("remark", "鏃�");
-//                    } else {
-//                        data.put("remark", tjOrder.getCheckAdvice());
-//                    }
-//                    //灏侀潰椤典笅闈㈢殑鎬绘寤鸿鏄剧ず
-//                    if (tjOrder.getCheckDoctor() == null) {
-//                        data.put("docname", "鏃�");
-//                    } else {
-//                        data.put("docname", tjOrder.getCheckDoctor());
-//                    }
-//                    //寮傚父椤圭洰
-////                    data.put("yichang", "銆�1銆戝眻鍏変笉姝n" +
-////                            "銆�2銆戞墎妗冧綋鑲モ激\n" +
-////                            "銆�3銆戜綋閲嶆寚鏁板饩糪n" +
-////                            "銆�4銆戔編鑴傚紓甯革紙鎬昏儐鍥洪唶澧炩炯锛涒舰娌逛笁閰饩硷級\n" +
-////                            "銆�5銆懳�-饩曟皑閰拌浆绉婚叾澧炩炯锛涘ぉ饣斿啲姘ㄩ吀姘ㄥ熀杞Щ閰跺饩硷紱涓欐皑閰告皑鍩鸿浆绉婚叾澧炩炯\n" +
-////                            "銆�6銆戣交饩勪腑搴﹁剛鑲倽");
-//
-//                    //鎷兼帴閲嶅ぇ闃虫�х粨鏋�
-//                    StringBuffer str = new StringBuffer();
-//                    str.append("銆愰噸澶ч槼鎬ч」鐩�慭n");
-//                    LambdaQueryWrapper<TjBigPositive> bigPositiveLambdaQueryWrapper = new LambdaQueryWrapper<>();
-//                    bigPositiveLambdaQueryWrapper.eq(TjBigPositive::getTjNumber, tjNumber);
-//                    final List<TjBigPositive> list1 = tjBigPositiveService.list(bigPositiveLambdaQueryWrapper);
-//                    if (list1 != null && list1.size() > 0) {
-//                        for (int i = 0; i < list1.size(); i++) {
-//                            str.append(i + 1).append("銆�").append(list1.get(i).getProName()).append(";\n");
-//                        }
-//                    } else {
-//                        str.append("    鏃狅紱\n");
-//                    }
-//                    //鎷兼帴寮傚父椤圭洰
-//                    str.append("銆愬紓甯告儏鍐甸」鐩�慭n");
-//                    if (list.size() > 0) {
-////                        for (int i = 0; i < list.size(); i++) {
-////                            if (list.get(i).getExceptionDesc() == 1) {
-////                                str.append(i + 1).append("銆�").append(projectService.getById(list.get(i).getProId()).getProName()).append(";\n");
-////                            }
-////                        }
-//                        int[] index = {0};
-//                        List<TjOrderDetail> collect = list.stream()
-//                                .filter(item -> item.getExceptionDesc() == 1).collect(Collectors.toList());
-//                        if (collect.isEmpty()) {
-//                            str.append("    鏃狅紱\n");
-//                        } else {
-//                            collect.forEach(item -> str.append(index[0]++ + 1).append("銆�").append(projectService.getById(item.getProId()).getProName()).append(";\n"));
-//                        }
-//                    } else {
-//                        str.append("    鏃狅紱\n");
-//                    }
-//                    //寮傚父椤圭洰
-//                    data.put("yichang", str.toString());
-//                    // 閬嶅巻data 缁檖df琛ㄥ崟琛ㄦ牸璧嬪��
-//                    for (String key : data.keySet()) {
-//                        form.setField(key, data.get(key).toString());
-//                    }
-//                    //璁剧疆涓烘棤娉曠紪杈�
-//                    ps.setFormFlattening(true);
-//                    ps.close();
-//                    reader.close();
-//                    // 灏嗕慨鏀瑰悗鐨凱DF鍐呭鍐欏叆
-//                    byte[] bytes = byteArrayOutputStream.toByteArray();
-//                    // 鍒涘缓鏂扮殑PDF鏂囨。
-//                    Document document = new Document(PageSize.A4);
-//                    ByteArrayOutputStream finalOutPut = new ByteArrayOutputStream();
-//                    PdfCopy copy = new PdfCopy(document, finalOutPut);
-//                    document.open();
-//                    reader = new PdfReader(bytes);
-//                    int numberOfPages = reader.getNumberOfPages();
-//                    for (int i = 1; i <= numberOfPages; i++) {
-//                        PdfImportedPage page = copy.getImportedPage(reader, i);
-//                        copy.addPage(page);
-//                    }
-//                    // 娣诲姞璇︽儏椤�
-//                    document.newPage();
-//                    reader.close();
-//                    ByteArrayOutputStream infoByteArrayOutputStream = setInfoPage(userId, tjNumber);
-//                    reader = new PdfReader(infoByteArrayOutputStream.toByteArray());
-//                    int numberOfPages1 = reader.getNumberOfPages();
-//                    for (int i = 1; i <= numberOfPages1; i++) {
-//                        PdfImportedPage page = copy.getImportedPage(reader, i);
-//                        copy.addPage(page);
-//                    }
-//                    infoByteArrayOutputStream.close();
-//                    // 蹇冪數鍥句互鍙婇檮浠�
-//                    // 鍥犳暟鎹簱琛ㄥ瓨鏀綽ase64瀵艰嚧鏌ヨ缂撴參 杩欓噷鎵ц缂撴參
-//                    // 鍦ㄨ繖閲屽鍔犱竴鏉℃煡璇ount 瀵逛簬娌℃湁杩藉姞闄勪欢鐨� 鎻愬崌閫熷害
-//                    long fujianStart = System.currentTimeMillis();
-//                    LambdaQueryWrapper<TjReport> queryWrapper = new LambdaQueryWrapper<>();
-//                    queryWrapper.eq(TjReport::getTjNumber, tjNumber)
-//                            .and(item -> item.eq(TjReport::getType, "闄勪欢").or().eq(TjReport::getType, "蹇冪數鍥�"));
-//                    Integer selectCount = tjReportService.getSelectCount(queryWrapper);
-//                    if (selectCount > 0) {
-//                        String base64XinDianTu = null;
-//                        String base64FuJian = null;
-//                        List<TjReport> reportList = tjReportService.list(queryWrapper);
-//                        TjReport xinDianTu = null;
-//                        TjReport fuJian = null;
-//                        if (!reportList.isEmpty()) {
-//                            for (TjReport tjReport : reportList) {
-//                                if ("闄勪欢".equals(tjReport.getType())) {
-//                                    fuJian = tjReport;
-//                                    base64FuJian = fuJian.getReport();
-//                                } else {
-//                                    xinDianTu = tjReport;
-//                                    base64XinDianTu = xinDianTu.getReport();
-//                                }
-//                            }
-//                        }
-//                        if (xinDianTu != null) {
-//                            if (fuJian != null) {
-//                                addPageByPDFBase64(copy, base64FuJian);
-//                                document.newPage();
-//                                addPageByPDFBase64(copy, base64XinDianTu);
-//                            } else {
-//                                addPageByPDFBase64(copy, base64XinDianTu);
-//                            }
-//                        } else {
-//                            if (fuJian != null) {
-//                                addPageByPDFBase64(copy, base64FuJian);
-//                            }
-//                        }
-//                    }
-//                    copy.close();
-//                    base64Pdfs.add(Base64.getEncoder().encodeToString(finalOutPut.toByteArray()));
-//                    document.close();
-//                    finalOutPut.close();
-//                    reader.close();
-//                    //淇敼order琛ㄤ腑鐨勬墦鍗版姤鍛婃椂闂翠负褰撳墠鏃堕棿
-//                    LambdaUpdateWrapper<TjOrder> updateWrapper = new LambdaUpdateWrapper<>();
-//                    updateWrapper.eq(TjOrder::getTjNumber, tjNumber);
-//                    updateWrapper.set(TjOrder::getReportTime, new Date());
-//                    updateWrapper.set(TjOrder::getPrintLastTime, new Date());
-//                    updateWrapper.set(TjOrder::getDownloadLastTime, new Date());
-//                    updateWrapper.set(TjOrder::getStatus, TjConstants.TJ_END);
-//                    tjOrderService.update(updateWrapper);
-//                } catch (Exception e) {
-//                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-//                    e.printStackTrace();
-//                }
+//        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[] mergePDFs = PDFDocumentUtil.mergePDFs(base64Pdfs);
+//            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(mergePDFs);
-//            outputStream.flush();
-//            outputStream.close();
+////            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.success();
 //    }
+
+    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());
+//        }
+
+        //鍖哄煙鐗堜綋妫�娣诲姞闄㈠尯缂栫爜
+//        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));
+                }
+            }
+            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("鎵归噺鐢熸垚澶辫触");
+            }
+        }
+        return AjaxResult.error("鎵归噺鐢熸垚澶辫触");
+    }
 }

--
Gitblit v1.8.0