From 1d5eb9bd21333ce57f71857203acb3a2f774a831 Mon Sep 17 00:00:00 2001
From: zhaowenxuan <chacca165@163.com>
Date: 星期五, 19 七月 2024 18:14:30 +0800
Subject: [PATCH] 报告存储代码从pdf工具类转移到接口

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java |   87 +++++++++++++++++++++++++++++++++----------
 1 files changed, 66 insertions(+), 21 deletions(-)

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 6806325..e95577f 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
@@ -2,7 +2,6 @@
 
 import java.io.*;
 import java.net.URL;
-import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Paths;
 import java.text.NumberFormat;
@@ -21,7 +20,6 @@
 import com.itextpdf.text.*;
 import com.itextpdf.text.pdf.*;
 import com.itextpdf.text.pdf.draw.LineSeparator;
-import com.ltkj.common.annotation.Log;
 import com.ltkj.common.core.domain.entity.SysDictData;
 import com.ltkj.common.utils.DateUtils;
 import com.ltkj.common.utils.PDFDocumentUtil;
@@ -30,13 +28,11 @@
 import com.ltkj.framework.config.MatchUtils;
 import com.ltkj.hosp.domain.*;
 import com.ltkj.hosp.service.*;
-import com.ltkj.hosp.vodomain.UpdateOrderRemarkVo;
 import com.ltkj.mall.mallOrderUtils.TjConstants;
 import com.ltkj.system.service.ISysConfigService;
 import com.ltkj.system.service.ISysDictDataService;
 import com.ltkj.system.service.ISysUserService;
 import com.ltkj.web.config.pdfutils.MergePdf;
-import com.ltkj.web.config.pdfutils.MyHeaderFooter;
 import com.ltkj.web.config.pdfutils.PDFBinaryUtil;
 import com.ltkj.web.config.pdfutils.PdfUtils;
 import com.ltkj.web.controller.his.HisPDFUtil;
@@ -45,6 +41,7 @@
 import io.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.web.bind.annotation.*;
@@ -380,23 +377,70 @@
                 params.put("jsrq", jsrq);
                 params.put("pagecount", 100);
                 params.put("page", 1);
-                HashMap<String, Object> map = new HashMap<>();
                 LambdaQueryWrapper<TjCustomer> wq1 = new LambdaQueryWrapper<>();
                 wq1.eq(TjCustomer::getCusId, tjOrder.getUserId());
                 TjCustomer tjCustomer = tjCustomerService.getOne(wq1);
-//                    return hisPDFUtil.execHisRequest(map, params, tjOrder, reportTemplate);
                 try {
-                    return hisPDFUtil.hisPDF(tjOrder,tjCustomer,reportTemplate);
-                } catch (DocumentException e) {
-                    logger.error("鐢熸垚鎶ュ憡寮傚父");
+                    AjaxResult ajaxResult = hisPDFUtil.hisPDF(tjOrder, tjCustomer, reportTemplate);
+                    if (!ajaxResult.get("code").toString().equals("200")) {
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    } else {
+                        Long userId = tjCustomer.getCusId();
+                        String outputFileName1 = userId + tjNumber + tjCustomer.getCusName() + "_鎶ュ憡.pdf";
+                        TjReport tjReport = new TjReport();
+                        tjReport.setTjNumber(String.valueOf(tjNumber));
+                        tjReport.setPath(urlValue + outputFileName1);
+                        String outputPath1 = value + "\\";
+                        String pdfBinary = getPDFBinary(outputPath1 + outputFileName1);
+                        tjReport.setReport(pdfBinary);
+                        tjReport.setType("浣撴鎶ュ憡");
+                        tjReport.setPrint("pdf");
+                        tjReportService.save(tjReport);
+                        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);
+                    }
+                    return ajaxResult;
+                } catch (Exception e) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                     e.printStackTrace();
-                    return AjaxResult.error("鐢熸垚鎶ュ憡寮傚父");
+                    // 璋冪敤鎾ら攢
+//                    tjReportController.backOnlyCheckType(tjNumber);
+                    logger.error("鐢熸垚鎶ュ憡寮傚父");
+                    return AjaxResult.error("鐢熸垚鎶ュ憡澶辫触");
                 }
             } else {
                 return AjaxResult.error("璇峰厛鎬绘");
             }
         }
         return AjaxResult.error();
+    }
+
+    @Autowired
+    private TjReportController tjReportController;
+
+    /**
+     * 鎾ら攢
+     * @param tjNumber
+     */
+    @Transactional(propagation = Propagation.REQUIRES_NEW)
+    public void backOnlyCheckType(String tjNumber) {
+        QueryWrapper<TjOrder> wq2 = new QueryWrapper<>();
+        wq2.eq("tj_number", tjNumber);
+        TjOrder one = tjOrderService.getOne(wq2);
+        one.setCheckStatus(0);
+        String config = configService.selectConfigByKey("tj_confirm");
+        if ("Y".equals(config)) {
+            one.setStatus(TjConstants.TJ_CHECK);
+        } else {
+            one.setStatus(TjConstants.TJ_CONFIRM);
+        }
+        //灏嗙姸鎬佹敼涓烘湭瀹℃牳
+        tjOrderService.updateById(one);
     }
 
     private AjaxResult newFun(String tjNumber) {
@@ -567,7 +611,7 @@
                     for (String key : data.keySet()) {
                         form.setField(key, data.get(key).toString());
                     }
-                    System.out.println("pdf濉厖琛ㄥ崟鏁版嵁鑰楁椂锛�"+(System.currentTimeMillis() - pdfMkStart));
+                    System.out.println("pdf濉厖琛ㄥ崟鏁版嵁鑰楁椂锛�" + (System.currentTimeMillis() - pdfMkStart));
                     //璁剧疆涓烘棤娉曠紪杈�
                     ps.setFormFlattening(true);
                     ps.close();
@@ -636,8 +680,8 @@
                         }
                     }
                     long fujianEnd = System.currentTimeMillis();
-                    System.out.println("闄勪欢鏌ヨ鑰楁椂锛�"+(fujianEnd - fujianStart));
-                    System.out.println("鏂囦欢淇濆瓨鍓嶈�楁椂锛�"+(fujianEnd - pdfMkStart));
+                    System.out.println("闄勪欢鏌ヨ鑰楁椂锛�" + (fujianEnd - fujianStart));
+                    System.out.println("鏂囦欢淇濆瓨鍓嶈�楁椂锛�" + (fujianEnd - pdfMkStart));
                     // 淇濆瓨pdf鏂囦欢
                     copy.close();
                     String outputPath1 = value + "\\";
@@ -1563,7 +1607,7 @@
         });
         List<Long> proIds = tjOrderDetails.stream().map(TjOrderDetail::getProId).collect(Collectors.toList());
         LambdaQueryWrapper<TjProject> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.in(TjProject::getProId,proIds);
+        queryWrapper.in(TjProject::getProId, proIds);
         List<TjProject> projectList = projectService.list(queryWrapper);
         for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
             TjProject tjProject = projectList.stream().filter(item -> item.getProId().equals(tjOrderDetail.getProId())).collect(Collectors.toList()).get(0);
@@ -1574,7 +1618,7 @@
                 System.out.println("'''''''''''''''''''''''''''''''''''" + tjOrderDetail.getOrderDetailId());
             }
             // 鍒ゆ柇鍦╟ollect涓槸鍚﹀瓨鍦�
-            if (collect.contains(tjOrderDetail.getProject().getProParentId())){
+            if (collect.contains(tjOrderDetail.getProject().getProParentId())) {
                 LambdaQueryWrapper<TjStandard> wq6 = new LambdaQueryWrapper<>();
                 wq6.eq(TjStandard::getProId, tjOrderDetail.getProId());
                 List<TjStandard> list2 = tjStandardService.list(wq6);
@@ -1628,9 +1672,9 @@
                 tjPdfVOS.add(tjPdfVO);
             }
         }
-        printReport.entrySet().stream().forEach(item->{
+        printReport.entrySet().stream().forEach(item -> {
             List<TjPdfVO> pdfVOS = hashMap.get(item.getKey().getProId());
-            printReport.put(item.getKey(),pdfVOS);
+            printReport.put(item.getKey(), pdfVOS);
         });
     }
 
@@ -1750,22 +1794,23 @@
     @PostMapping("/preview/batch")
     @ApiOperation(value = "鎵归噺浣撴鎶ュ憡")
     @Transactional
-    public AjaxResult preview(@RequestBody String data){
+    public AjaxResult preview(@RequestBody String data) {
         String is_batch_report_use_sql = configService.selectConfigByKey("is_batch_report_use_sql");
         List<String> tjNumbers = Arrays.stream(data.split(",")).collect(Collectors.toList());
         if ("true".equals(is_batch_report_use_sql)) {
             return tjReportService.makeBatchReport(tjNumbers);
-        }else {
+        } else {
             return makeReport(tjNumbers);
         }
     }
 
     /**
      * 閫氳繃sql 閲嶆暣鏁版嵁妯℃澘 鍏ㄩ儴閲嶆柊鐢熸垚
+     *
      * @param tjNumbers
      * @return
      */
-    private AjaxResult makeReport(List<String > tjNumbers) {
+    private AjaxResult makeReport(List<String> tjNumbers) {
         ArrayList<String> base64Pdfs = new ArrayList<>();
         for (String tjNumber : tjNumbers) {
             LambdaQueryWrapper<TjOrder> wq = new LambdaQueryWrapper<>();
@@ -1979,7 +2024,7 @@
 //            outputStream.flush();
 //            outputStream.close();
             String s = Base64.getEncoder().encodeToString(mergePDFs);
-            return AjaxResult.success().put("file",s);
+            return AjaxResult.success().put("file", s);
         } catch (DocumentException | IOException e) {
             e.printStackTrace();
             return AjaxResult.error("鎵归噺鐢熸垚澶辫触");

--
Gitblit v1.8.0