From 5f1d1c462bbf49bc6a22b9e17b49733bcc1e0bc6 Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期五, 20 六月 2025 19:01:13 +0800
Subject: [PATCH] zjh20250620

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java | 1541 +++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 925 insertions(+), 616 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 584dc8d..3150cf6 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,10 +2,10 @@
 
 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;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -20,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;
@@ -29,20 +28,22 @@
 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;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+import jodd.util.StringUtil;
+import lombok.extern.slf4j.Slf4j;
 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.*;
@@ -57,9 +58,10 @@
  * @author ltkj
  * @date 2022-12-06
  */
+@Slf4j
 @RestController
 @RequestMapping("/system/report")
-@Api(tags = "浣撴鎶ュ憡")
+@Api(tags = "AAAA_浣撴鎶ュ憡")
 @Transactional
 public class TjReportController extends BaseController {
     @Resource
@@ -80,8 +82,8 @@
     private IDictCompService dictCompService;
     @Resource
     private ITjReportTemplateService reportTemplateService;
-    @Value("${path.filePath}")
-    private String value;
+//    @Value("${path.filePath}")
+//    private String value;
     @Value("${path.reportServer}")
     private String urlValue;
     @Resource
@@ -97,25 +99,37 @@
     private ISysDictDataService dictDataService;
     @Resource
     private ITbTransitionService transitionService;
-
     @Autowired
     private ITjBigPositiveService tjBigPositiveService;
+    @Autowired
+    private HisPDFUtil hisPDFUtil;
+    @Autowired
+    private IDictHospService dictHospService;
+    @Autowired
+    private ITjReportPrintService printService;
+    @Autowired
+    private TjOrderYcxmService ycxmService;
 
     @GetMapping("/savePdf")
     @ApiOperation(value = "浠庢湰鍦板瓨鍌ㄦā鏉垮埌鏁版嵁搴�")
     public AjaxResult savePdf() {
         //浠庢枃浠跺湴鍧�璇诲叆PDF鏂囦欢  浠呭瓨鍌ㄤ竴娆�
-        String base64String = PDFBinaryUtil.getPDFBinary("D:\\Tjreport\\浣撴妯℃澘5.pdf");
-        TjReportTemplate tem = new TjReportTemplate();
-        tem.setName("浣撴鎶ュ憡妯℃澘5");
-        tem.setRemark("浣撴鎶ュ憡妯℃澘5");
-        tem.setTemplate(base64String);
-        tem.setFlag("1");
-        tem.setOpen("0");
-        final boolean save = reportTemplateService.save(tem);
-        if (save) {
-            return AjaxResult.success("淇濆瓨鎴愬姛");
+        String base64String = PDFBinaryUtil.getPDFBinary(configService.selectConfigByKey("default_pdf5Template"));
+        if(StringUtil.isNotBlank(base64String)){
+            reportTemplateService.remove(new LambdaQueryWrapper<TjReportTemplate>().eq(TjReportTemplate::getName,"浣撴鎶ュ憡妯℃澘5"));
+            TjReportTemplate tem = new TjReportTemplate();
+            tem.setName("浣撴鎶ュ憡妯℃澘5");
+            tem.setRemark("浣撴鎶ュ憡妯℃澘5");
+            tem.setTemplate(base64String);
+            tem.setFlag("1");
+            tem.setOpen("0");
+            tem.setCreateTime(DateUtil.date());
+            final boolean save = reportTemplateService.save(tem);
+            if (save) {
+                return AjaxResult.success("淇濆瓨鎴愬姛");
+            }
         }
+
         return AjaxResult.success("淇濆瓨澶辫触");
 //        String base64String2 = PDFBinaryUtil.getPDFBinary("D:\\Tjreport\\蹇冪數鍥�1.pdf");
 //        TjReport tem2 = new TjReport();
@@ -269,9 +283,9 @@
 
     @GetMapping("/toPdf/{TjNumber}")
     @ApiOperation(value = "鎵撳嵃浣撴鎶ュ憡涓簆df")
-    @Transactional
+//    @Transactional
     public AjaxResult toPdf(@PathVariable("TjNumber") @ApiParam(value = "浣撴鍙�") String tjNumber) {
-        AjaxResult error = null;
+        //        AjaxResult error = null;
         // 涔嬪墠鐨勪唬鐮� 浼樺寲閫熷害
 //        System.out.println("----------------------------------oldFun寮�濮�-------------------------------------------------------");
 //        error = oldFun(tjNumber);
@@ -287,18 +301,202 @@
 //        remarkVo.setProId("1633660948860522555");
 //        updateOrderRemarkVos.add(remarkVo);
 //        tjCheckController.checkUpdateOrderRemark(updateOrderRemarkVos);
-        System.out.println("---------------------------------------newFun寮�濮�--------------------------------------------------");
-        error = newFun(tjNumber);
-        System.out.println("-------------------------------------------缁撴潫----------------------------------------------");
+//        System.out.println("---------------------------------------newFun寮�濮�--------------------------------------------------");
+        // 浠ュ墠娴嬭瘯pdf鏂规硶
+//        error = newFun(tjNumber);
+//        System.out.println("-------------------------------------------缁撴潫----------------------------------------------");
         // 鎾ら攢
 //        revocationReport(tjNumber);
-        if (error != null) {
-            return error;
+//        if (error != null) {
+//            return error;
+//        }
+//        return AjaxResult.success("璇ョ敤鎴蜂綋妫�鏈畬鎴愶紝涓嶈兘鎵撳嵃鎶ュ憡锛侊紒锛�");
+
+        TjOrder tjOrder = tjOrderService.getOrderByTjNum(tjNumber);
+        if (null != tjOrder) {
+        String config = configService.selectConfigByKey("sfjcwjhyqxm");
+        if(null != config && config.equalsIgnoreCase("Y")){
+            int num = tjOrderRemarkService.getTjYqOrderRemarkByTjNum(tjNumber);
+            if (num > 0) {
+                tjOrder.setReportTime(null);
+                tjOrder.setCheckTime(null);
+                tjOrder.setCheckStatus(0);
+                tjOrder.setPrintLastTime(null);
+                tjOrderService.updateById(tjOrder);
+                return AjaxResult.error("瀛樺湪鏈鎴栧欢鏈熼」鐩殏涓嶈兘鐢熸垚鎶ュ憡!!!");
+            }
         }
-        return AjaxResult.success("璇ョ敤鎴蜂綋妫�鏈畬鎴愶紝涓嶈兘鎵撳嵃鎶ュ憡锛侊紒锛�");
+            //鍒ゆ柇琛ㄤ腑鏈夋病鏈夎浣撴鎶ュ憡  涓嶈兘閲嶅鐢熸垚
+            LambdaQueryWrapper<TjReport> wqa = new LambdaQueryWrapper<>();
+            wqa.eq(TjReport::getTjNumber, tjNumber);
+            wqa.eq(TjReport::getType, "浣撴鎶ュ憡");
+            Integer count = tjReportService.getSelectCount(wqa);
+            if (tjOrder.getReportTime() !=null ||  count != 0  ) {
+//                tjOrder.setReportTime(null);
+//                tjOrder.setCheckTime(null);
+//                tjOrder.setCheckStatus(0);
+//                tjOrder.setPrintLastTime(null);
+//                tjOrderService.updateById(tjOrder);
+                return AjaxResult.error("璇ュ鎴锋姤鍛婂凡鐢熸垚锛佷笉鑳介噸澶嶇敓鎴愶紒鍙洿鎺ラ瑙堟垨鎵撳嵃锛�");
+            }
+
+            LambdaQueryWrapper<TjReportTemplate> tjReportTemplateLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getFlag, 1);
+            tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getOpen, 0);
+            TjReportTemplate reportTemplate = reportTemplateService.getOne(tjReportTemplateLambdaQueryWrapper);
+//            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);
+//            }
+            Integer checkStatus = tjOrder.getCheckStatus();
+            if (checkStatus == 1) {
+                if ("鎶ヨ〃".equals(reportTemplate.getPrint())) {
+                    TjReport tjReport = new TjReport();
+                    tjReport.setTjNumber(String.valueOf(tjNumber));
+                    tjReport.setPath(reportTemplate.getUrl() + "?tjNum=" + tjNumber);
+                    tjReport.setType("浣撴鎶ュ憡");
+                    tjReport.setPrint("鎶ヨ〃");
+                    tjReportService.save(tjReport);
+                    //淇敼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);
+                    return AjaxResult.success("宸茬敓鎴愭姤鍛婏紒鍙洿鎺ョ偣鍑婚瑙堬紒");
+                }
+//                String hisRegistrationId = tjOrder.getCardId();
+//                Date createTime = tjOrder.getCreateTime();
+//                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//                String ksrq = dateFormat.format(createTime);
+//                String jsrq = dateFormat.format(new Date());
+//                HashMap<String, Object> params = new HashMap<>();
+//                params.put("his_registration_id", hisRegistrationId);
+//                params.put("ksbm", "");
+//                params.put("pationid", "");
+//                params.put("ksrq", ksrq);
+//                params.put("jsrq", jsrq);
+//                params.put("pagecount", 100);
+//                params.put("page", 1);
+                LambdaQueryWrapper<TjCustomer> wq1 = new LambdaQueryWrapper<>();
+                wq1.eq(TjCustomer::getCusId, tjOrder.getUserId());
+                TjCustomer tjCustomer = tjCustomerService.getOne(wq1);
+                LambdaQueryWrapper<TjReportTemplate> wrapper = new LambdaQueryWrapper<>();
+                wrapper.eq(TjReportTemplate::getFlag,"4");
+                wrapper.eq(TjReportTemplate::getOpen,"1");
+                TjReportTemplate zongJianYiShiQianMing = reportTemplateService.getOne(wrapper);
+                try {
+                    return shengchengbgmoban(tjNumber, tjOrder, tjCustomer, reportTemplate,zongJianYiShiQianMing);
+                } catch (Exception e) {
+//                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    log.error("鐢熸垚鎶ュ憡澶辫触锛�"+e.getMessage(),String.valueOf(e));
+                    tjOrder.setReportTime(null);
+                    tjOrder.setCheckTime(null);
+                    tjOrder.setCheckStatus(0);
+                    tjOrder.setPrintLastTime(null);
+                    tjOrderService.updateById(tjOrder);
+
+//                    logger.error(String.valueOf(e));
+                    return AjaxResult.error("鐢熸垚鎶ュ憡澶辫触");
+                }
+            } else {
+                return AjaxResult.error("璇峰厛鎬绘");
+            }
+        }
+        return AjaxResult.error();
+    }
+
+    public AjaxResult shengchengbgmoban(String tjNumber, TjOrder tjOrder, TjCustomer tjCustomer, TjReportTemplate reportTemplate,TjReportTemplate zongJianYiShiQianMing) throws Exception {
+        AjaxResult ajaxResult = null;
+        String value = configService.selectConfigByKey("path_filePath");
+        try {
+//            ajaxResult = hisPDFUtil.hisPDF(tjOrder, tjCustomer, reportTemplate);
+//            ajaxResult = hisPDFUtil.hisPDFNew(tjOrder, tjCustomer, reportTemplate);
+
+            ajaxResult = hisPDFUtil.hisPDFNew2(tjOrder, tjCustomer, reportTemplate,zongJianYiShiQianMing);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error(String.valueOf(e));
+            throw new Exception(e);
+        }
+        if (!ajaxResult.get("code").toString().equals("200")) {
+//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return AjaxResult.error("鐢熸垚鎶ュ憡澶辫触");
+        } 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 + File.separator;
+//            String pdfBinary = getPDFBinary(outputPath1 + outputFileName1);
+//            tjReport.setReport(pdfBinary);
+            tjReport.setType("浣撴鎶ュ憡");
+            tjReport.setPrint("pdf");
+            tjReportService.save(tjReport);
+            Date date = new Date();
+            //            LambdaUpdateWrapper<TjOrder> updateWrapper = new LambdaUpdateWrapper<>();
+//            updateWrapper.eq(TjOrder::getTjNumber, tjNumber);
+//            updateWrapper.set(TjOrder::getReportTime, date);
+//            updateWrapper.set(TjOrder::getPrintLastTime, date);
+//            updateWrapper.set(TjOrder::getDownloadLastTime,date);
+//            updateWrapper.set(TjOrder::getStatus, TjConstants.TJ_END);
+            tjOrder.setStatus(TjConstants.TJ_END);
+            tjOrder.setReportTime(date);
+//            tjOrder.setPrintLastTime(date);
+//            tjOrder.setDownloadLastTime(date);
+            tjOrderService.updateById(tjOrder);
+        }
+        return ajaxResult;
+    }
+
+
+    /**
+     * 鎾ら攢
+     * @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) {
+        String value = configService.selectConfigByKey("path_filePath");
         long startTime = System.currentTimeMillis();
         int num = tjOrderRemarkService.getTjYqOrderRemarkByTjNum(tjNumber);
         if (num > 0) {
@@ -466,7 +664,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();
@@ -535,11 +733,11 @@
                         }
                     }
                     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 + "\\";
+                    String outputPath1 = value + File.separator;
                     String outputFileName1 = userId + tjNumber + tjCustomer.getCusName() + "new_浣撴鎶ュ憡.pdf";
                     File file = new File(outputPath1 + outputFileName1);
                     BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(file));
@@ -738,7 +936,8 @@
                 // 璁剧疆姝f枃瀛椾綋鏍峰紡锛�12鍙�
                 Font textFont = PdfUtils.setFont(9);
                 //鍒涘缓琛ㄦ牸  灏嗚〃澶村瓧浣撳拰姝f枃瀛椾綋鏀捐繘鍘�
-                PdfPTable table = PdfUtils.setTable(headFont, textFont, titles, value);
+                DictHosp dictHosp = dictHospService.list().get(0);
+                PdfPTable table = PdfUtils.setTable(headFont, textFont, titles, value,dictHosp.equals("婢勫悎鐭垮姟灞�涓績鍖婚櫌"));
                 document.add(paragraph);
                 document.add(table);
                 //鍒ゆ柇澶囨敞鏄惁涓虹┖  绌轰笉鑳芥樉绀簄ull
@@ -791,480 +990,482 @@
         return byteArrayOutputStream;
     }
 
-    private AjaxResult oldFun(String tjNumber) {
-        long startTime = System.currentTimeMillis();
-        int num = tjOrderRemarkService.getTjYqOrderRemarkByTjNum(tjNumber);
-        if (num > 0) return AjaxResult.error("鏈夊欢鏈熼」鐩殏涓嶈兘鐢熸垚鎶ュ憡!!!");
-        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);
-            }
-
-
-            //鍒ゆ柇琛ㄤ腑鏈夋病鏈夎浣撴鎶ュ憡  涓嶈兘閲嶅鐢熸垚
-            LambdaQueryWrapper<TjReport> wqa = new LambdaQueryWrapper<>();
-            wqa.eq(TjReport::getTjNumber, tjNumber);
-            wqa.eq(TjReport::getType, "浣撴鎶ュ憡");
-            List<TjReport> list2 = tjReportService.list(wqa);
-            if (list2.size() != 0) {
-                return AjaxResult.error("璇ュ鎴锋姤鍛婂凡鐢熸垚锛佷笉鑳介噸澶嶇敓鎴愶紒鍙洿鎺ラ瑙堟垨鎵撳嵃锛�");
-            }
-
-
-            Integer checkStatus = tjOrder.getCheckStatus();
-            if (checkStatus == 1) {
-                //鍒ゆ柇鎶ュ憡鐢熸垚 淇濆瓨绫诲瀷 2024/2/29
-                if ("鎶ヨ〃".equals(reportTemplate.getPrint())) {
-                    TjReport tjReport = new TjReport();
-                    tjReport.setTjNumber(String.valueOf(tjNumber));
-                    tjReport.setPath(reportTemplate.getUrl() + "?tjNum=" + tjNumber);
-                    tjReport.setType("浣撴鎶ュ憡");
-                    tjReport.setPrint("鎶ヨ〃");
-                    tjReportService.save(tjReport);
-                    //淇敼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);
-                    return AjaxResult.success("宸茬敓鎴愭姤鍛婏紒鍙洿鎺ョ偣鍑婚瑙堬紒");
-                }
-
-
-                String template = reportTemplate.getTemplate();
-                String userId = SecurityUtils.getLoginUser().getUsername();
-                if (template != null) {
-                    PDFBinaryUtil.base64StringToPDF(template, FileUtil.mkdir(value).getPath() + "\\" + userId + "浣撴鎶ュ憡灏侀潰妯℃澘.pdf");
-                }
-                // --------浠ヤ笂-------  鏍规嵁鏁版嵁搴撲腑鐨勬ā鏉夸簩杩涘埗鏂囦欢  杞琾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());
-                //20230306鍒ゆ柇璇ラ」鐩槸鍚﹂��璐�/缂磋垂
-                wq2.isNotNull(TjOrderDetail::getFlowingWaterId);
-                //20230323鍒ゆ柇璇ラ」鐩槸鍚﹀純妫�/鏈
-//                wq2.eq(TjOrderDetail::getTjStatus,1);
-                List<TjOrderDetail> list = tjOrderDetailService.list(wq2);
-                for (TjOrderDetail tjOrderDetail : list) {
-                    TjProject tjProject = projectService.selectTjProjectByProId(tjOrderDetail.getProId());
-                    tjOrderDetail.setProject(tjProject);
-                }
-
-                String inputFileName = value + "\\" + userId + "浣撴鎶ュ憡灏侀潰妯℃澘.pdf";
-                String outputFileName = value + "\\" + userId + "浣撴鎶ュ憡灏侀潰椤�.pdf";
-                OutputStream os = null;
-                PdfStamper ps = null;
-                PdfReader reader = null;
-                File file = new File(outputFileName);
-                try {
-                    os = Files.newOutputStream(file.toPath());
-                    // 璇诲叆pdf琛ㄥ崟
-                    reader = new PdfReader(inputFileName);
-                    // 鏍规嵁琛ㄥ崟鐢熸垚涓�涓柊鐨刾df
-                    ps = new PdfStamper(reader, os);
-                    // 鑾峰彇pdf琛ㄥ崟
-                    AcroFields form = ps.getAcroFields();
-                    //璇ュ瓧浣撻�犳垚绫诲瀷涓嶅潎鍖�锛屼絾鏄痯df杞浘鐗囦笉涔辩爜
-                    //BaseFont bf = BaseFont.createFont("C:Windows\\Fonts\\simfang.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
-                    BaseFont bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
-                    form.addSubstitutionFont(bf);
-
-                    // 濉厖鏁版嵁缁欒〃鏍�
-                    Map<String, Object> data = new HashMap<>();
-
-                    //濉厖鎬у埆锛氬垽鏂敺濂�
-                    Long cusSex = tjCustomer.getCusSex();
-                    String sex;
-                    String name1;
-                    String tjtype;
-                    if (cusSex == 0) {
-                        sex = "鐢�";
-                        name1 = tjCustomer.getCusName() + "鍏堢敓";
-                    } else {
-                        sex = "濂�";
-                        name1 = tjCustomer.getCusName() + "濂冲+";
-                    }
-                    data.put("name", tjCustomer.getCusName());
-                    data.put("cusId", tjCustomer.getCusId());
-                    data.put("name1", name1);
-                    if ("1".equals(tjOrder.getTjType())) {
-                        tjtype = "鍥㈤槦";
-                        data.put("tjtype", tjtype);
-                    } else {
-                        tjtype = "涓汉";
-                        data.put("tjtype", tjtype);
-                    }
-                    data.put("dstype", "缁熶竴");
-                    data.put("sex", sex);
-                    data.put("age", DateUtil.ageOfNow(tjCustomer.getCusBrithday()));
-                    data.put("tjnumber", tjNumber);
-                    data.put("tjdate", DateUtils.parseDateToStr("yyyy/MM/dd", tjOrder.getCreateTime()));
-                    data.put("phone", tjCustomer.getCusPhone());
-                    data.put("idcard", MatchUtils.hideIdCardNum(tjCustomer.getCusIdcard()));
-                    data.put("num1", list.size());
-                    data.put("num2", 0);
-                    data.put("num3", 4);
-                    if (dictComp == null) {
-                        data.put("work", "鏃�");
-                    } else {
-                        data.put("work", dictComp.getCnName());
-                    }
-                    //灏侀潰椤典笅闈㈢殑鎬绘寤鸿鏄剧ず
-                    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) + "銆�" + list1.get(i).getProName() + ";\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) + "銆�" + projectService.getById(list.get(i).getProId()).getProName() + ";\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();
-                    os.close();
-                    reader.close();
-
-                    //====================================浠ヤ笂灏侀潰椤碉紝浠ヤ笅璇︽儏椤�
-                    //鏂囨。瀵硅薄  瀹炵幇A4绾搁〉闈�
-                    Document document = new Document(PageSize.A4);
-                    //document.setMarginMirroring(true);
-                    //璁剧疆鏂囨。鐨勯〉杈硅窛灏辨槸璺濈椤甸潰杈逛笂鐨勮窛绂伙紝鍒嗗埆涓猴細宸﹁竟璺濓紝鍙宠竟璺濓紝涓婅竟璺濓紝涓嬭竟璺�
-                    document.setMargins(70, 70, 40, 40);
-                    //鐢熸垚pdf鐨勪綅缃互鍙婂悕绉�
-                    String fileName = value + "\\" + userId + tjNumber + "浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf";
-                    OutputStream outputStream = Files.newOutputStream(Paths.get(fileName));
-                    PdfWriter pdfWriter = PdfWriter.getInstance(document, outputStream);
-
-                    //pdfWriter.setPageEvent(new MyHeaderFooter());// 椤电湁椤佃剼
-
-                    document.open();
-
-                    document.add(new Header("鍋ュ悍浣撴缁撴灉", "鍋ュ悍浣撴缁撴灉"));
-
-
-                    Map<TjOrderRemark, List<TjPdfVO>> tjOrderRemarkObjectMap = addTable(tjNumber);
-                    Map<TjOrderRemark, List<TjPdfVO>> tjOrderRemarkListMap = addHuaYanTable(tjNumber);
-                    tjOrderRemarkObjectMap.putAll(tjOrderRemarkListMap);
-                    for (Map.Entry<TjOrderRemark, List<TjPdfVO>> entry : tjOrderRemarkObjectMap.entrySet()) {
-                        List<TjPdfVO> value = entry.getValue();
-                        LambdaQueryWrapper<TjProject> wqqq = new LambdaQueryWrapper<>();
-                        wqqq.eq(TjProject::getProId, entry.getKey().getProId());
-                        TjProject one11 = projectService.getOne(wqqq);
-                        //鍒ゆ柇璇ラ」鐩槸鍚﹂渶瑕佹墦鍗版姤鍛�
-                        if (null != one11 && "N".equals(one11.getNeedReport())) {
-                            continue;
-                        }
-                        String titleName = null;
-                        if (null != one11 && "1".equals(one11.getResultType())) {
-                            titleName = one11.getProName();
-                            // 璁剧疆鏍囬瀛椾綋鏍峰紡
-                            Font titleFonts = PdfUtils.setFont(9);
-                            Paragraph paragraph = PdfUtils.setParagraph(titleFonts, titleName);
-
-                            String[] titles = {"浣撴椤圭洰", "浣撴缁撴灉"};
-                            // 鑾峰彇鍒楄〃鏁版嵁
-                            //璁剧疆琛ㄥご瀛椾綋鏍峰紡
-                            Font headFont = PdfUtils.setFont(9);
-                            // 璁剧疆姝f枃瀛椾綋鏍峰紡锛�12鍙�
-                            Font textFont = PdfUtils.setFont(9);
-                            //鍒涘缓琛ㄦ牸  灏嗚〃澶村瓧浣撳拰姝f枃瀛椾綋鏀捐繘鍘�
-                            PdfPTable table = PdfUtils.setTable1(headFont, textFont, titles, value);
-                            document.add(paragraph);
-                            document.add(table);
-
-                            //鍒ゆ柇澶囨敞鏄惁涓虹┖  绌轰笉鑳芥樉绀簄ull
-                            if (entry.getKey().getRemark() == null) {
-                                entry.getKey().setRemark("");
-                            }
-
-                            String remark = "澶囨敞锛�" + entry.getKey().getRemark();
-                            if (entry.getKey().getRemark().length() > 50) {
-                                int j = 0;
-                                for (int i = 0; i < remark.length() / 50; i++) {
-                                    String substring = remark.substring(j, j + 50);
-                                    Font remarkFonts = PdfUtils.setFont(9);
-                                    Paragraph pp = PdfUtils.setParagraph(remarkFonts, substring);
-                                    document.add(pp);
-                                    j = j + 50;
-                                }
-                                if (remark.length() % 50 != 0) {
-                                    String substring = remark.substring((remark.length() / 50) * 50, remark.length() - 1);
-                                    Font remarkFonts = PdfUtils.setFont(9);
-                                    Paragraph pp = PdfUtils.setParagraph(remarkFonts, substring);
-                                    document.add(pp);
-                                }
-                            } else {
-                                Font remarkFonts = PdfUtils.setFont(9);
-                                Paragraph pp = PdfUtils.setParagraph(remarkFonts, remark);
-                                document.add(pp);
-                            }
-
-                            //鍒ゆ柇涓绘鍖诲笀鏄惁涓虹┖  绌轰笉鑳芥樉绀簄ull
-                            if (null != entry.getKey().getDoctorName() && null != userService.getById(entry.getKey().getDoctorName())) {
-                                //涓绘鍖诲笀
-                                String doctorName = "涓绘鍖诲笀锛�" + userService.getById(entry.getKey().getDoctorName()).getNickName();
-                                Font doctorFonts = PdfUtils.setFont(9);
-                                Paragraph df = PdfUtils.setParagraph(doctorFonts, doctorName);
-                                df.setAlignment(Element.ALIGN_RIGHT);
-                                document.add(df);
-                            } else {
-                                String doctorName = "涓绘鍖诲笀锛�" + "鏃�";
-                                Font doctorFonts = PdfUtils.setFont(9);
-                                Paragraph df = PdfUtils.setParagraph(doctorFonts, doctorName);
-                                df.setAlignment(Element.ALIGN_RIGHT);
-                                document.add(df);
-
-                            }
-
-                            //鍒嗗壊绾�
-                            LineSeparator objectName = new LineSeparator();
-                            document.add(objectName);
-                        } else {
-                            if (null != one11) {
-                                titleName = one11.getProName();
-                            } else {
-                                titleName = entry.getKey().getProName();
-                            }
-
-                            // 璁剧疆鏍囬瀛椾綋鏍峰紡
-                            Font titleFonts = PdfUtils.setFont(9);
-                            Paragraph paragraph = PdfUtils.setParagraph(titleFonts, titleName);
-
-                            String[] titles = {"浣撴椤圭洰", "浣撴缁撴灉", "鍗曚綅", "鍙傝�冭寖鍥�"};
-                            // 鑾峰彇鍒楄〃鏁版嵁
-                            //璁剧疆琛ㄥご瀛椾綋鏍峰紡
-                            Font headFont = PdfUtils.setFont(9);
-                            // 璁剧疆姝f枃瀛椾綋鏍峰紡锛�12鍙�
-                            Font textFont = PdfUtils.setFont(9);
-                            //鍒涘缓琛ㄦ牸  灏嗚〃澶村瓧浣撳拰姝f枃瀛椾綋鏀捐繘鍘�
-                            PdfPTable table = PdfUtils.setTable(headFont, textFont, titles, value);
-                            document.add(paragraph);
-                            document.add(table);
-
-                            //鍒ゆ柇澶囨敞鏄惁涓虹┖  绌轰笉鑳芥樉绀簄ull
-                            if (entry.getKey().getRemark() == null) {
-                                entry.getKey().setRemark("");
-                            }
-
-                            String remark = "澶囨敞锛�" + entry.getKey().getRemark();
-                            if (entry.getKey().getRemark().length() > 50) {
-                                int j = 0;
-                                for (int i = 0; i < remark.length() / 50; i++) {
-                                    String substring = remark.substring(j, j + 50);
-                                    Font remarkFonts = PdfUtils.setFont(9);
-                                    Paragraph pp = PdfUtils.setParagraph(remarkFonts, substring);
-                                    document.add(pp);
-                                    j = j + 50;
-                                }
-                                if (remark.length() % 50 != 0) {
-                                    String substring = remark.substring((remark.length() / 50) * 50, remark.length() - 1);
-                                    Font remarkFonts = PdfUtils.setFont(9);
-                                    Paragraph pp = PdfUtils.setParagraph(remarkFonts, substring);
-                                    document.add(pp);
-                                }
-                            } else {
-                                Font remarkFonts = PdfUtils.setFont(9);
-                                Paragraph pp = PdfUtils.setParagraph(remarkFonts, remark);
-                                document.add(pp);
-                            }
-
-                            //鍒ゆ柇涓绘鍖诲笀鏄惁涓虹┖  绌轰笉鑳芥樉绀簄ull
-                            if (null != entry.getKey().getDoctorName() && null != userService.getById(entry.getKey().getDoctorName())) {
-                                //涓绘鍖诲笀
-                                String doctorName = "涓绘鍖诲笀锛�" + userService.getById(entry.getKey().getDoctorName()).getNickName();
-                                Font doctorFonts = PdfUtils.setFont(9);
-                                Paragraph df = PdfUtils.setParagraph(doctorFonts, doctorName);
-                                df.setAlignment(Element.ALIGN_RIGHT);
-                                document.add(df);
-                            } else {
-                                String doctorName = "涓绘鍖诲笀锛�" + "鏃�";
-                                Font doctorFonts = PdfUtils.setFont(9);
-                                Paragraph df = PdfUtils.setParagraph(doctorFonts, doctorName);
-                                df.setAlignment(Element.ALIGN_RIGHT);
-                                document.add(df);
-                            }
-                            //鍒嗗壊绾�
-                            LineSeparator objectName = new LineSeparator();
-                            document.add(objectName);
-                        }
-                    }
-                    document.close();
-                    pdfWriter.close();
-                    outputStream.close();
-
-//                    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");
+//    private AjaxResult oldFun(String tjNumber) {
+//        String value = configService.selectConfigByKey("path_filePath");
+//        DictHosp dictHosp = dictHospService.list().get(0);
+//        long startTime = System.currentTimeMillis();
+//        int num = tjOrderRemarkService.getTjYqOrderRemarkByTjNum(tjNumber);
+//        if (num > 0) return AjaxResult.error("鏈夊欢鏈熼」鐩殏涓嶈兘鐢熸垚鎶ュ憡!!!");
+//        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);
 //                    }
-
-                    LambdaQueryWrapper<TjReport> rtwq = new LambdaQueryWrapper<>();
-                    rtwq.eq(TjReport::getType, "蹇冪數鍥�");
-                    rtwq.eq(TjReport::getTjNumber, tjNumber);
-                    TjReport one1111 = tjReportService.getOne(rtwq);
-                    if (null != one1111) {
-                        String report = one1111.getReport();
-                        PDFBinaryUtil.base64StringToPDF(report, FileUtil.mkdir(value).getPath() + "\\" + tjNumber + userId + "蹇冪數鍥�.pdf");
-                    }
-
-                    LambdaQueryWrapper<TjReport> rtwq12 = new LambdaQueryWrapper<>();
-                    rtwq12.eq(TjReport::getType, "闄勪欢");
-                    rtwq12.eq(TjReport::getTjNumber, tjNumber);
-                    TjReport one111112 = tjReportService.getOne(rtwq12);
-                    if (null != one111112) {
-                        String report12 = one111112.getReport();
-                        PDFBinaryUtil.base64StringToPDF(report12, FileUtil.mkdir(value).getPath() + "\\" + tjNumber + userId + "闄勪欢.pdf");
-                    }
-
-                    //鍚堝苟
-                    String[] files1 = null;
-                    if (one1111 != null) {
-                        if (one111112 != null) {
-                            files1 = new String[]{value + "\\" + userId + "浣撴鎶ュ憡灏侀潰椤�.pdf", value + "\\" + userId + tjNumber + "浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf", value + "\\" + tjNumber + userId + "闄勪欢.pdf", value + "\\" + tjNumber + userId + "蹇冪數鍥�.pdf"};
-                        } else {
-                            files1 = new String[]{value + "\\" + userId + "浣撴鎶ュ憡灏侀潰椤�.pdf", value + "\\" + userId + tjNumber + "浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf", value + "\\" + tjNumber + userId + "蹇冪數鍥�.pdf"};
-                        }
-                    } else {
-                        if (one111112 != null) {
-                            files1 = new String[]{value + "\\" + userId + "浣撴鎶ュ憡灏侀潰椤�.pdf", value + "\\" + userId + tjNumber + "浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf", value + "\\" + tjNumber + userId + "闄勪欢.pdf"};
-                        } else {
-                            files1 = new String[]{value + "\\" + userId + "浣撴鎶ュ憡灏侀潰椤�.pdf", value + "\\" + userId + tjNumber + "浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf"};
-                        }
-                    }
-                    //鍚堝苟
-//                    String[] files1 = {value + "\\" + userId + "浣撴鎶ュ憡灏侀潰椤�.pdf", value + "\\" + userId + tjNumber+"浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf", value + "\\" +tjNumber+ userId + "闄勪欢.pdf", value + "\\" + tjNumber + userId + "蹇冪數鍥�.pdf"};
-                    String outputPath1 = value + "\\";
-                    String outputFileName1 = userId + tjNumber + tjCustomer.getCusName() + "_浣撴鎶ュ憡.pdf";
-
-                    File file1 = new File(outputPath1 + outputFileName1);
-                    List<File> f = new ArrayList<>();
-                    for (String s : files1) {
-                        f.add(new File(s));
-                    }
-                    MergePdf.mergeFileToPDF(f, file1);
-
-                    TjReport tjReport = new TjReport();
-                    tjReport.setTjNumber(String.valueOf(tjNumber));
-                    tjReport.setPath(urlValue + outputFileName1);
-                    String pdfBinary = getPDFBinary(outputPath1 + outputFileName1);
-                    tjReport.setReport(pdfBinary);
-                    tjReport.setType("浣撴鎶ュ憡");
-                    tjReport.setPrint("pdf");
-                    tjReportService.save(tjReport);
-
-                    //FileUtil.del(value + "\\" + tjNumber + "浣撴鎶ュ憡.pdf");
-                    //FileUtil.del(value + "\\" + userId + "浣撴鎶ュ憡灏侀潰妯℃澘.pdf");
-                    //FileUtil.del(value + "\\" + userId +tjNumber+ "浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf");
-                    //FileUtil.del(value + "\\" + userId + "浣撴鎶ュ憡灏侀潰椤�.pdf");
-                    //FileUtil.del(value + "\\" + userId + "蹇冪數鍥�.pdf");
-
-
-                    //淇敼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);
-                    long entTime = System.currentTimeMillis();
-                    System.out.println(entTime - startTime + "ms");
-                    return AjaxResult.success("宸茬敓鎴愭姤鍛婏紒鍙洿鎺ョ偣鍑婚瑙堬紒");
-
-                } catch (Exception e) {
-                    e.printStackTrace();
-                    return AjaxResult.success("PDF瀵煎嚭澶辫触");
-                } finally {
-                    transitionService.deletedTbTransitionListByCusIdAndTjNum(tjCustomer.getCusIdcard(), tjOrder.getCardId());
-                }
-            }
-        }
-        return null;
-    }
+//                } 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);
+//            }
+//
+//
+//            //鍒ゆ柇琛ㄤ腑鏈夋病鏈夎浣撴鎶ュ憡  涓嶈兘閲嶅鐢熸垚
+//            LambdaQueryWrapper<TjReport> wqa = new LambdaQueryWrapper<>();
+//            wqa.eq(TjReport::getTjNumber, tjNumber);
+//            wqa.eq(TjReport::getType, "浣撴鎶ュ憡");
+//            List<TjReport> list2 = tjReportService.list(wqa);
+//            if (list2.size() != 0) {
+//                return AjaxResult.error("璇ュ鎴锋姤鍛婂凡鐢熸垚锛佷笉鑳介噸澶嶇敓鎴愶紒鍙洿鎺ラ瑙堟垨鎵撳嵃锛�");
+//            }
+//
+//
+//            Integer checkStatus = tjOrder.getCheckStatus();
+//            if (checkStatus == 1) {
+//                //鍒ゆ柇鎶ュ憡鐢熸垚 淇濆瓨绫诲瀷 2024/2/29
+//                if ("鎶ヨ〃".equals(reportTemplate.getPrint())) {
+//                    TjReport tjReport = new TjReport();
+//                    tjReport.setTjNumber(String.valueOf(tjNumber));
+//                    tjReport.setPath(reportTemplate.getUrl() + "?tjNum=" + tjNumber);
+//                    tjReport.setType("浣撴鎶ュ憡");
+//                    tjReport.setPrint("鎶ヨ〃");
+//                    tjReportService.save(tjReport);
+//                    //淇敼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);
+//                    return AjaxResult.success("宸茬敓鎴愭姤鍛婏紒鍙洿鎺ョ偣鍑婚瑙堬紒");
+//                }
+//
+//
+//                String template = reportTemplate.getTemplate();
+//                String userId = SecurityUtils.getLoginUser().getUsername();
+//                if (template != null) {
+//                    PDFBinaryUtil.base64StringToPDF(template, FileUtil.mkdir(value).getPath() + File.separator + userId + "浣撴鎶ュ憡灏侀潰妯℃澘.pdf");
+//                }
+//                // --------浠ヤ笂-------  鏍规嵁鏁版嵁搴撲腑鐨勬ā鏉夸簩杩涘埗鏂囦欢  杞琾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());
+//                //20230306鍒ゆ柇璇ラ」鐩槸鍚﹂��璐�/缂磋垂
+//                wq2.isNotNull(TjOrderDetail::getFlowingWaterId);
+//                //20230323鍒ゆ柇璇ラ」鐩槸鍚﹀純妫�/鏈
+////                wq2.eq(TjOrderDetail::getTjStatus,1);
+//                List<TjOrderDetail> list = tjOrderDetailService.list(wq2);
+//                for (TjOrderDetail tjOrderDetail : list) {
+//                    TjProject tjProject = projectService.selectTjProjectByProId(tjOrderDetail.getProId());
+//                    tjOrderDetail.setProject(tjProject);
+//                }
+//
+//                String inputFileName = value + File.separator + userId + "浣撴鎶ュ憡灏侀潰妯℃澘.pdf";
+//                String outputFileName = value + File.separator + userId + "浣撴鎶ュ憡灏侀潰椤�.pdf";
+//                OutputStream os = null;
+//                PdfStamper ps = null;
+//                PdfReader reader = null;
+//                File file = new File(outputFileName);
+//                try {
+//                    os = Files.newOutputStream(file.toPath());
+//                    // 璇诲叆pdf琛ㄥ崟
+//                    reader = new PdfReader(inputFileName);
+//                    // 鏍规嵁琛ㄥ崟鐢熸垚涓�涓柊鐨刾df
+//                    ps = new PdfStamper(reader, os);
+//                    // 鑾峰彇pdf琛ㄥ崟
+//                    AcroFields form = ps.getAcroFields();
+//                    //璇ュ瓧浣撻�犳垚绫诲瀷涓嶅潎鍖�锛屼絾鏄痯df杞浘鐗囦笉涔辩爜
+//                    //BaseFont bf = BaseFont.createFont("C:Windows\\Fonts\\simfang.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
+//                    BaseFont bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
+//                    form.addSubstitutionFont(bf);
+//
+//                    // 濉厖鏁版嵁缁欒〃鏍�
+//                    Map<String, Object> data = new HashMap<>();
+//
+//                    //濉厖鎬у埆锛氬垽鏂敺濂�
+//                    Long cusSex = tjCustomer.getCusSex();
+//                    String sex;
+//                    String name1;
+//                    String tjtype;
+//                    if (cusSex == 0) {
+//                        sex = "鐢�";
+//                        name1 = tjCustomer.getCusName() + "鍏堢敓";
+//                    } else {
+//                        sex = "濂�";
+//                        name1 = tjCustomer.getCusName() + "濂冲+";
+//                    }
+//                    data.put("name", tjCustomer.getCusName());
+//                    data.put("cusId", tjCustomer.getCusId());
+//                    data.put("name1", name1);
+//                    if ("1".equals(tjOrder.getTjType())) {
+//                        tjtype = "鍥㈤槦";
+//                        data.put("tjtype", tjtype);
+//                    } else {
+//                        tjtype = "涓汉";
+//                        data.put("tjtype", tjtype);
+//                    }
+//                    data.put("dstype", "缁熶竴");
+//                    data.put("sex", sex);
+//                    data.put("age", DateUtil.ageOfNow(tjCustomer.getCusBrithday()));
+//                    data.put("tjnumber", tjNumber);
+//                    data.put("tjdate", DateUtils.parseDateToStr("yyyy/MM/dd", tjOrder.getCreateTime()));
+//                    data.put("phone", tjCustomer.getCusPhone());
+//                    data.put("idcard", MatchUtils.hideIdCardNum(tjCustomer.getCusIdcard()));
+//                    data.put("num1", list.size());
+//                    data.put("num2", 0);
+//                    data.put("num3", 4);
+//                    if (dictComp == null) {
+//                        data.put("work", "鏃�");
+//                    } else {
+//                        data.put("work", dictComp.getCnName());
+//                    }
+//                    //灏侀潰椤典笅闈㈢殑鎬绘寤鸿鏄剧ず
+//                    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) + "銆�" + list1.get(i).getProName() + ";\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) + "銆�" + projectService.getById(list.get(i).getProId()).getProName() + ";\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();
+//                    os.close();
+//                    reader.close();
+//
+//                    //====================================浠ヤ笂灏侀潰椤碉紝浠ヤ笅璇︽儏椤�
+//                    //鏂囨。瀵硅薄  瀹炵幇A4绾搁〉闈�
+//                    Document document = new Document(PageSize.A4);
+//                    //document.setMarginMirroring(true);
+//                    //璁剧疆鏂囨。鐨勯〉杈硅窛灏辨槸璺濈椤甸潰杈逛笂鐨勮窛绂伙紝鍒嗗埆涓猴細宸﹁竟璺濓紝鍙宠竟璺濓紝涓婅竟璺濓紝涓嬭竟璺�
+//                    document.setMargins(70, 70, 40, 40);
+//                    //鐢熸垚pdf鐨勪綅缃互鍙婂悕绉�
+//                    String fileName = value + File.separator + userId + tjNumber + "浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf";
+//                    OutputStream outputStream = Files.newOutputStream(Paths.get(fileName));
+//                    PdfWriter pdfWriter = PdfWriter.getInstance(document, outputStream);
+//
+//                    //pdfWriter.setPageEvent(new MyHeaderFooter());// 椤电湁椤佃剼
+//
+//                    document.open();
+//
+//                    document.add(new Header("鍋ュ悍浣撴缁撴灉", "鍋ュ悍浣撴缁撴灉"));
+//
+//
+//                    Map<TjOrderRemark, List<TjPdfVO>> tjOrderRemarkObjectMap = addTable(tjNumber);
+//                    Map<TjOrderRemark, List<TjPdfVO>> tjOrderRemarkListMap = addHuaYanTable(tjNumber);
+//                    tjOrderRemarkObjectMap.putAll(tjOrderRemarkListMap);
+//                    for (Map.Entry<TjOrderRemark, List<TjPdfVO>> entry : tjOrderRemarkObjectMap.entrySet()) {
+//                        List<TjPdfVO> value = entry.getValue();
+//                        LambdaQueryWrapper<TjProject> wqqq = new LambdaQueryWrapper<>();
+//                        wqqq.eq(TjProject::getProId, entry.getKey().getProId());
+//                        TjProject one11 = projectService.getOne(wqqq);
+//                        //鍒ゆ柇璇ラ」鐩槸鍚﹂渶瑕佹墦鍗版姤鍛�
+//                        if (null != one11 && "N".equals(one11.getNeedReport())) {
+//                            continue;
+//                        }
+//                        String titleName = null;
+//                        if (null != one11 && "1".equals(one11.getResultType())) {
+//                            titleName = one11.getProName();
+//                            // 璁剧疆鏍囬瀛椾綋鏍峰紡
+//                            Font titleFonts = PdfUtils.setFont(9);
+//                            Paragraph paragraph = PdfUtils.setParagraph(titleFonts, titleName);
+//
+//                            String[] titles = {"浣撴椤圭洰", "浣撴缁撴灉"};
+//                            // 鑾峰彇鍒楄〃鏁版嵁
+//                            //璁剧疆琛ㄥご瀛椾綋鏍峰紡
+//                            Font headFont = PdfUtils.setFont(9);
+//                            // 璁剧疆姝f枃瀛椾綋鏍峰紡锛�12鍙�
+//                            Font textFont = PdfUtils.setFont(9);
+//                            //鍒涘缓琛ㄦ牸  灏嗚〃澶村瓧浣撳拰姝f枃瀛椾綋鏀捐繘鍘�
+//                            PdfPTable table = PdfUtils.setTable1(headFont, textFont, titles, value);
+//                            document.add(paragraph);
+//                            document.add(table);
+//
+//                            //鍒ゆ柇澶囨敞鏄惁涓虹┖  绌轰笉鑳芥樉绀簄ull
+//                            if (entry.getKey().getRemark() == null) {
+//                                entry.getKey().setRemark("");
+//                            }
+//
+//                            String remark = "澶囨敞锛�" + entry.getKey().getRemark();
+//                            if (entry.getKey().getRemark().length() > 50) {
+//                                int j = 0;
+//                                for (int i = 0; i < remark.length() / 50; i++) {
+//                                    String substring = remark.substring(j, j + 50);
+//                                    Font remarkFonts = PdfUtils.setFont(9);
+//                                    Paragraph pp = PdfUtils.setParagraph(remarkFonts, substring);
+//                                    document.add(pp);
+//                                    j = j + 50;
+//                                }
+//                                if (remark.length() % 50 != 0) {
+//                                    String substring = remark.substring((remark.length() / 50) * 50, remark.length() - 1);
+//                                    Font remarkFonts = PdfUtils.setFont(9);
+//                                    Paragraph pp = PdfUtils.setParagraph(remarkFonts, substring);
+//                                    document.add(pp);
+//                                }
+//                            } else {
+//                                Font remarkFonts = PdfUtils.setFont(9);
+//                                Paragraph pp = PdfUtils.setParagraph(remarkFonts, remark);
+//                                document.add(pp);
+//                            }
+//
+//                            //鍒ゆ柇涓绘鍖诲笀鏄惁涓虹┖  绌轰笉鑳芥樉绀簄ull
+//                            if (null != entry.getKey().getDoctorName() && null != userService.getById(entry.getKey().getDoctorName())) {
+//                                //涓绘鍖诲笀
+//                                String doctorName = "涓绘鍖诲笀锛�" + userService.getById(entry.getKey().getDoctorName()).getNickName();
+//                                Font doctorFonts = PdfUtils.setFont(9);
+//                                Paragraph df = PdfUtils.setParagraph(doctorFonts, doctorName);
+//                                df.setAlignment(Element.ALIGN_RIGHT);
+//                                document.add(df);
+//                            } else {
+//                                String doctorName = "涓绘鍖诲笀锛�" + "鏃�";
+//                                Font doctorFonts = PdfUtils.setFont(9);
+//                                Paragraph df = PdfUtils.setParagraph(doctorFonts, doctorName);
+//                                df.setAlignment(Element.ALIGN_RIGHT);
+//                                document.add(df);
+//
+//                            }
+//
+//                            //鍒嗗壊绾�
+//                            LineSeparator objectName = new LineSeparator();
+//                            document.add(objectName);
+//                        } else {
+//                            if (null != one11) {
+//                                titleName = one11.getProName();
+//                            } else {
+//                                titleName = entry.getKey().getProName();
+//                            }
+//
+//                            // 璁剧疆鏍囬瀛椾綋鏍峰紡
+//                            Font titleFonts = PdfUtils.setFont(9);
+//                            Paragraph paragraph = PdfUtils.setParagraph(titleFonts, titleName);
+//
+//                            String[] titles = {"浣撴椤圭洰", "浣撴缁撴灉", "鍗曚綅", "鍙傝�冭寖鍥�"};
+//                            // 鑾峰彇鍒楄〃鏁版嵁
+//                            //璁剧疆琛ㄥご瀛椾綋鏍峰紡
+//                            Font headFont = PdfUtils.setFont(9);
+//                            // 璁剧疆姝f枃瀛椾綋鏍峰紡锛�12鍙�
+//                            Font textFont = PdfUtils.setFont(9);
+//                            //鍒涘缓琛ㄦ牸  灏嗚〃澶村瓧浣撳拰姝f枃瀛椾綋鏀捐繘鍘�
+//                            PdfPTable table = PdfUtils.setTable(headFont, textFont, titles, value,dictHosp.equals("婢勫悎鐭垮姟灞�涓績鍖婚櫌"));
+//                            document.add(paragraph);
+//                            document.add(table);
+//
+//                            //鍒ゆ柇澶囨敞鏄惁涓虹┖  绌轰笉鑳芥樉绀簄ull
+//                            if (entry.getKey().getRemark() == null) {
+//                                entry.getKey().setRemark("");
+//                            }
+//
+//                            String remark = "澶囨敞锛�" + entry.getKey().getRemark();
+//                            if (entry.getKey().getRemark().length() > 50) {
+//                                int j = 0;
+//                                for (int i = 0; i < remark.length() / 50; i++) {
+//                                    String substring = remark.substring(j, j + 50);
+//                                    Font remarkFonts = PdfUtils.setFont(9);
+//                                    Paragraph pp = PdfUtils.setParagraph(remarkFonts, substring);
+//                                    document.add(pp);
+//                                    j = j + 50;
+//                                }
+//                                if (remark.length() % 50 != 0) {
+//                                    String substring = remark.substring((remark.length() / 50) * 50, remark.length() - 1);
+//                                    Font remarkFonts = PdfUtils.setFont(9);
+//                                    Paragraph pp = PdfUtils.setParagraph(remarkFonts, substring);
+//                                    document.add(pp);
+//                                }
+//                            } else {
+//                                Font remarkFonts = PdfUtils.setFont(9);
+//                                Paragraph pp = PdfUtils.setParagraph(remarkFonts, remark);
+//                                document.add(pp);
+//                            }
+//
+//                            //鍒ゆ柇涓绘鍖诲笀鏄惁涓虹┖  绌轰笉鑳芥樉绀簄ull
+//                            if (null != entry.getKey().getDoctorName() && null != userService.getById(entry.getKey().getDoctorName())) {
+//                                //涓绘鍖诲笀
+//                                String doctorName = "涓绘鍖诲笀锛�" + userService.getById(entry.getKey().getDoctorName()).getNickName();
+//                                Font doctorFonts = PdfUtils.setFont(9);
+//                                Paragraph df = PdfUtils.setParagraph(doctorFonts, doctorName);
+//                                df.setAlignment(Element.ALIGN_RIGHT);
+//                                document.add(df);
+//                            } else {
+//                                String doctorName = "涓绘鍖诲笀锛�" + "鏃�";
+//                                Font doctorFonts = PdfUtils.setFont(9);
+//                                Paragraph df = PdfUtils.setParagraph(doctorFonts, doctorName);
+//                                df.setAlignment(Element.ALIGN_RIGHT);
+//                                document.add(df);
+//                            }
+//                            //鍒嗗壊绾�
+//                            LineSeparator objectName = new LineSeparator();
+//                            document.add(objectName);
+//                        }
+//                    }
+//                    document.close();
+//                    pdfWriter.close();
+//                    outputStream.close();
+//
+////                    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() + File.separator + userId + "鍖诲鍚嶈瘝.pdf");
+////                    }
+//
+//                    LambdaQueryWrapper<TjReport> rtwq = new LambdaQueryWrapper<>();
+//                    rtwq.eq(TjReport::getType, "蹇冪數鍥�");
+//                    rtwq.eq(TjReport::getTjNumber, tjNumber);
+//                    TjReport one1111 = tjReportService.getOne(rtwq);
+//                    if (null != one1111) {
+//                        String report = one1111.getReport();
+//                        PDFBinaryUtil.base64StringToPDF(report, FileUtil.mkdir(value).getPath() + File.separator + tjNumber + userId + "蹇冪數鍥�.pdf");
+//                    }
+//
+//                    LambdaQueryWrapper<TjReport> rtwq12 = new LambdaQueryWrapper<>();
+//                    rtwq12.eq(TjReport::getType, "闄勪欢");
+//                    rtwq12.eq(TjReport::getTjNumber, tjNumber);
+//                    TjReport one111112 = tjReportService.getOne(rtwq12);
+//                    if (null != one111112) {
+//                        String report12 = one111112.getReport();
+//                        PDFBinaryUtil.base64StringToPDF(report12, FileUtil.mkdir(value).getPath() + File.separator + tjNumber + userId + "闄勪欢.pdf");
+//                    }
+//
+//                    //鍚堝苟
+//                    String[] files1 = null;
+//                    if (one1111 != null) {
+//                        if (one111112 != null) {
+//                            files1 = new String[]{value + File.separator + userId + "浣撴鎶ュ憡灏侀潰椤�.pdf", value + File.separator + userId + tjNumber + "浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf", value + File.separator + tjNumber + userId + "闄勪欢.pdf", value + File.separator + tjNumber + userId + "蹇冪數鍥�.pdf"};
+//                        } else {
+//                            files1 = new String[]{value + File.separator + userId + "浣撴鎶ュ憡灏侀潰椤�.pdf", value + File.separator + userId + tjNumber + "浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf", value + File.separator + tjNumber + userId + "蹇冪數鍥�.pdf"};
+//                        }
+//                    } else {
+//                        if (one111112 != null) {
+//                            files1 = new String[]{value + File.separator + userId + "浣撴鎶ュ憡灏侀潰椤�.pdf", value + File.separator + userId + tjNumber + "浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf", value + File.separator + tjNumber + userId + "闄勪欢.pdf"};
+//                        } else {
+//                            files1 = new String[]{value + File.separator + userId + "浣撴鎶ュ憡灏侀潰椤�.pdf", value + File.separator + userId + tjNumber + "浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf"};
+//                        }
+//                    }
+//                    //鍚堝苟
+////                    String[] files1 = {value + File.separator + userId + "浣撴鎶ュ憡灏侀潰椤�.pdf", value + File.separator + userId + tjNumber+"浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf", value + File.separator +tjNumber+ userId + "闄勪欢.pdf", value + File.separator + tjNumber + userId + "蹇冪數鍥�.pdf"};
+//                    String outputPath1 = value + File.separator;
+//                    String outputFileName1 = userId + tjNumber + tjCustomer.getCusName() + "_浣撴鎶ュ憡.pdf";
+//
+//                    File file1 = new File(outputPath1 + outputFileName1);
+//                    List<File> f = new ArrayList<>();
+//                    for (String s : files1) {
+//                        f.add(new File(s));
+//                    }
+//                    MergePdf.mergeFileToPDF(f, file1);
+//
+//                    TjReport tjReport = new TjReport();
+//                    tjReport.setTjNumber(String.valueOf(tjNumber));
+//                    tjReport.setPath(urlValue + outputFileName1);
+//                    String pdfBinary = getPDFBinary(outputPath1 + outputFileName1);
+//                    tjReport.setReport(pdfBinary);
+//                    tjReport.setType("浣撴鎶ュ憡");
+//                    tjReport.setPrint("pdf");
+//                    tjReportService.save(tjReport);
+//
+//                    //FileUtil.del(value + File.separator + tjNumber + "浣撴鎶ュ憡.pdf");
+//                    //FileUtil.del(value + File.separator + userId + "浣撴鎶ュ憡灏侀潰妯℃澘.pdf");
+//                    //FileUtil.del(value + File.separator + userId +tjNumber+ "浣撴鎶ュ憡椤圭洰璇︽儏椤�.pdf");
+//                    //FileUtil.del(value + File.separator + userId + "浣撴鎶ュ憡灏侀潰椤�.pdf");
+//                    //FileUtil.del(value + File.separator + userId + "蹇冪數鍥�.pdf");
+//
+//
+//                    //淇敼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);
+//                    long entTime = System.currentTimeMillis();
+//                    System.out.println(entTime - startTime + "ms");
+//                    return AjaxResult.success("宸茬敓鎴愭姤鍛婏紒鍙洿鎺ョ偣鍑婚瑙堬紒");
+//
+//                } catch (Exception e) {
+//                    e.printStackTrace();
+//                    return AjaxResult.success("PDF瀵煎嚭澶辫触");
+//                } finally {
+////                    transitionService.deletedTbTransitionListByCusIdAndTjNum(tjCustomer.getCusIdcard(), tjOrder.getCardId());
+//                }
+//            }
+//        }
+//        return null;
+//    }
 
 
     //闈炲寲楠岄」鐩姤鍛�
@@ -1321,35 +1522,12 @@
         //鍒涘缓map 閿负鐖堕」鐩�  鍊间负瀛愰」鐩泦鍚�
         Map<TjOrderRemark, List<TjPdfVO>> printReport = new LinkedHashMap<>();
         //鏌ュ埌璇ュ鎴风殑浣撴璁板綍
-//        LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
-//        wq1.eq(TjOrder::getTjNumber, tjNumber);
-//        TjOrder one = tjOrderService.getOne(wq1);
 
         //鎷垮埌浣撴璁板綍鐨刼rderid锛屾煡鍑洪」鐩缁嗕俊鎭�
-//        LambdaQueryWrapper<TjOrderDetail> wq = new LambdaQueryWrapper<>();
-//        wq.eq(TjOrderDetail::getOrderId, one.getOrderId());
-//        //20230323鍒ゆ柇椤圭洰宸叉
-//        wq.ne(TjOrderDetail::getTjStatus, 0);
-//        wq.eq(TjOrderDetail::getProId,projectService.getHuaYanProId());
-//        List<TjOrderDetail> tjOrderDetails = tjOrderDetailService.list(wq);
-        List<TjOrderDetail> tjOrderDetails = tjOrderDetailService.addHuaYanTable(tjNumber);
-        //閬嶅巻浣撴璁板綍 灏嗛」鐩殑鍏蜂綋淇℃伅
-        //閬嶅巻瀹㈡埛鎵�閫夌殑椤圭洰(鍖呭惈瀛愰」鐖堕」)
-//        for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
-//            TjProject tjProject = projectService.getById(tjOrderDetail.getProId());
-//            if (null != tjProject) {
-//                tjOrderDetail.setProject(tjProject);
-//            }
-//        }
 
-//        LambdaQueryWrapper<TjCustomer> wq22 = new LambdaQueryWrapper<>();
-//        wq22.eq(TjCustomer::getCusId, one.getUserId());
-//        TjCustomer customer = tjCustomerService.getOne(wq22);
-//        LambdaQueryWrapper<TjOrderRemark> wqq = new LambdaQueryWrapper<>();
-//        wqq.eq(TjOrderRemark::getTjNumber, tjNumber);
-//        wqq.eq(TjOrderRemark::getDeptId,"241");
-//        List<TjOrderRemark> tjOrderRemarks = tjOrderRemarkService.list(wqq);
-        List<TjOrderRemark> tjOrderRemarks = tjOrderRemarkService.addHuaYanTable(tjNumber);
+        List<TjOrderDetail> tjOrderDetails = tjOrderDetailService.addHuaYanAndCgTable(tjNumber);
+
+        List<TjOrderRemark> tjOrderRemarks = tjOrderRemarkService.addHuaYanAndCgTable(tjNumber);
         for (TjOrderRemark tjOrderRemark : tjOrderRemarks) {
             printReport.put(tjOrderRemark, null);
         }
@@ -1357,7 +1535,7 @@
         for (Map.Entry<TjOrderRemark, List<TjPdfVO>> entry : printReport.entrySet()) {
             List<TjPdfVO> tjPdfVOS = new ArrayList<>();
             for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
-                if (entry.getKey().getProId().equals(tjOrderDetail.getProId())) {
+                if (entry.getKey().getProsId().equals(tjOrderDetail.getProsId())) {
                     TjPdfVO tjPdfVO = new TjPdfVO();
                     tjPdfVO.setProName(tjOrderDetail.getProName());
                     if (null != tjOrderDetail.getYcbz() && !tjOrderDetail.getYcbz().equals("")) {
@@ -1372,7 +1550,7 @@
                 }
             }
             printReport.put(entry.getKey(), tjPdfVOS);
-            if (tjPdfVOS.size() == 0) {
+            if (tjPdfVOS.isEmpty()) {
                 toRemoveKeys.add(entry.getKey());
             }
         }
@@ -1462,7 +1640,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);
@@ -1473,11 +1651,11 @@
                 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);
-                if (list2.size() == 0) {
+                if (list2.isEmpty()) {
                     TjStandard s = new TjStandard();
                     s.setCompany(" ");
                     s.setTjStandardLtValue(" ");
@@ -1527,9 +1705,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);
         });
     }
 
@@ -1542,7 +1720,7 @@
         we.eq(TjReport::getType, "浣撴鎶ュ憡");
         TjReport one = tjReportService.getOne(we);
         if (one == null) {
-            return AjaxResult.error("鏆傛棤浣撴鎶ュ憡");
+            return AjaxResult.error("鏆傛棤浣撴鎶ュ憡,璇锋挙鍥炲埌鎬绘鏈鏍搁〉闈�,闇�鎬绘鍖荤敓閲嶆柊瀹℃牳骞剁敓鎴愭姤鍛�!");
         }
         if ("pdf".equals(one.getPrint())) {
             res.put("flag", "0");
@@ -1552,7 +1730,7 @@
             res.put("url", one.getPath());
             return AjaxResult.success(res);
         } else {
-            return AjaxResult.error("鏆傛棤浣撴鎶ュ憡");
+            return AjaxResult.error("鏆傛棤浣撴鎶ュ憡,璇锋挙鍥炲埌鎬绘鏈鏍搁〉闈�,闇�鎬绘鍖荤敓閲嶆柊瀹℃牳骞剁敓鎴愭姤鍛�!");
         }
 
     }
@@ -1561,37 +1739,129 @@
     @GetMapping("/preview/{flag}/{TjNumber}")
     @ApiOperation(value = "涓嬭浇浣撴鎶ュ憡")
     public void preview(HttpServletResponse response, @PathVariable("flag") boolean flag, @PathVariable("TjNumber") String tjNumber) {
-        //淇敼order琛ㄤ腑鐨勪笅杞芥姤鍛婃椂闂翠负褰撳墠鏃堕棿
-        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);
+        TjOrder tjOrder = tjOrderService.getOrderByTjNum(tjNumber);
+        TjCustomer tjCustomer = tjCustomerService.getById( tjOrder.getUserId());
+//        LambdaQueryWrapper<TjReport> we = new LambdaQueryWrapper<>();
+//        we.eq(TjReport::getTjNumber, tjNumber);
+//        we.eq(TjReport::getType, "浣撴鎶ュ憡");
+//        TjReport one = tjReportService.getOne(we);
+//        if (one == null) {
+//            return;
+//        }
+//        String userId = SecurityUtils.getLoginUser().getUsername();
+//        PDFBinaryUtil.base64StringToPDF(one.getReport(), FileUtil.mkdir(value).getPath() + File.separator + userId + tjNumber + tjCustomer.getCusName() + "_浣撴鎶ュ憡.pdf");
+        String value = configService.selectConfigByKey("path_filePath");
+        String filePath = value + File.separator + tjCustomer.getCusId() + tjNumber + tjCustomer.getCusName() + "_鎶ュ憡.pdf";
+        File f = new File(filePath);
+        BufferedInputStream br = null;
+        OutputStream out = null;
+        FileInputStream fileInputStream = null;
+        try {
+            fileInputStream = new FileInputStream(f);
+            br = new BufferedInputStream(fileInputStream);
+            byte[] bs = new byte[1024];
+            int len = 0;
+            response.reset(); // 闈炲父閲嶈
+            if (flag) {
+                // 鍦ㄧ嚎鎵撳紑鏂瑰紡
+                URL u = new URL("file:///" + filePath);
+                //System.out.println(u);
+                String contentType = u.openConnection().getContentType();
+                response.setContentType(contentType);
+                response.setHeader("Content-Disposition", "inline;filename="
+                        + tjCustomer.getCusId() + tjNumber + ".pdf");
+            } else {
+                // 绾笅杞芥柟寮�
+                response.setContentType("application/x-msdownload");
+                response.setContentType("application/pdf;charset=utf-8");
+                response.setHeader("Content-Disposition", "attachment;filename="
+                        + tjCustomer.getCusId() + tjNumber + ".pdf");
+            }
+            out = response.getOutputStream();
+            while ((len = br.read(bs)) > 0) {
+                out.write(bs, 0, len);
+            }
+//            if(null !=tjOrder.getHeshouTime() && tjOrder.getHeshouStatus()==1){
+//                TjReportPrint print=new TjReportPrint();
+//                print.setTjNumber(tjNumber);
+//                print.setPrintBy(SecurityUtils.getLoginUser().getUser().getNickName());
+//                print.setPrintTime(date);
+//                print.setPrintStatus("宸叉墦鍗�");
+//                if (printService.save(print)) {
+//                    tjOrder.setPrintLastTime(date);
+//                    tjOrderService.updateById(tjOrder);
+//                }
+//            }
+            out.flush();
+            out.close();
+            br.close();
+            fileInputStream.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+            //System.out.println("pdf澶勭悊鏂囦欢寮傚父" + e);
+        } finally {
+            if (out != null) {
+                try {
+                    out.close();
+                    br.close();
+                    fileInputStream.close();
 
-
-        LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
-        wq1.eq(TjOrder::getTjNumber, tjNumber);
-        TjOrder tjOrder = tjOrderService.getOne(wq1);
-
-
-        LambdaQueryWrapper<TjCustomer> wq2 = new LambdaQueryWrapper<>();
-        wq2.eq(TjCustomer::getCusId, tjOrder.getUserId());
-        TjCustomer tjCustomer = tjCustomerService.getOne(wq2);
-
-
-        LambdaQueryWrapper<TjReport> we = new LambdaQueryWrapper<>();
-        we.eq(TjReport::getTjNumber, tjNumber);
-        we.eq(TjReport::getType, "浣撴鎶ュ憡");
-        TjReport one = tjReportService.getOne(we);
-        if (one == null) {
-            return;
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
         }
+    }
 
-        String userId = SecurityUtils.getLoginUser().getUsername();
-        PDFBinaryUtil.base64StringToPDF(one.getReport(), FileUtil.mkdir(value).getPath() + "\\" + userId + tjNumber + tjCustomer.getCusName() + "_浣撴鎶ュ憡.pdf");
-        //String filePath = one.getPath();
-        String filePath = value + "\\" + userId + tjNumber + tjCustomer.getCusName() + "_浣撴鎶ュ憡.pdf";
+
+//    @GetMapping("/previewBase64/{flag}/{TjNumber}")
+//    @ApiOperation(value = "涓嬭浇浣撴鎶ュ憡Base64")
+    public String previewBase64( @PathVariable("TjNumber") String tjNumber) {
+        try {
+            TjOrder tjOrder = tjOrderService.getOrderByTjNum(tjNumber);
+            TjCustomer tjCustomer = tjCustomerService.getById( tjOrder.getUserId());
+            String value = configService.selectConfigByKey("path_filePath");
+            String filePath = value + File.separator + tjCustomer.getCusId() + tjNumber + tjCustomer.getCusName() + "_鎶ュ憡.pdf";
+            File f = new File(filePath);
+            //            System.out.println("Base64: " + base64);
+            return fileToBase64(f);
+        } catch (IOException e) {
+            log.error(e.toString());
+            throw new RuntimeException(e);
+        }
+    }
+
+    public static String fileToBase64(File file) throws IOException {
+        try (FileInputStream fileInputStream = new FileInputStream(file)) {
+            byte[] fileBytes = new byte[(int) file.length()];
+            fileInputStream.read(fileBytes);
+            return Base64.getEncoder().encodeToString(fileBytes);
+        }
+    }
+
+
+    @GetMapping("/previewprint/{flag}/{TjNumber}/{sfdy}")
+    @ApiOperation(value = "涓嬭浇浣撴鎶ュ憡")
+    public void previewprint(HttpServletResponse response, @PathVariable("flag") boolean flag, @PathVariable("TjNumber") String tjNumber,@PathVariable("sfdy") String sfdy) {
+
+        Date date = new Date();
+        TjOrder tjOrder = tjOrderService.getOrderByTjNum(tjNumber);
+
+        TjCustomer tjCustomer = tjCustomerService.getById( tjOrder.getUserId());
+
+//        LambdaQueryWrapper<TjReport> we = new LambdaQueryWrapper<>();
+//        we.eq(TjReport::getTjNumber, tjNumber);
+//        we.eq(TjReport::getType, "浣撴鎶ュ憡");
+//        TjReport one = tjReportService.getOne(we);
+//        if (one == null) {
+//            return;
+//        }
+//
+//        String userId = SecurityUtils.getLoginUser().getUsername();
+//        PDFBinaryUtil.base64StringToPDF(one.getReport(), FileUtil.mkdir(value).getPath() + File.separator + userId + tjNumber + tjCustomer.getCusName() + "_浣撴鎶ュ憡.pdf");
+//        String filePath = value + File.separator + userId + tjNumber + tjCustomer.getCusName() + "_浣撴鎶ュ憡.pdf";
+        String value = configService.selectConfigByKey("path_filePath");
+        String filePath = value + File.separator + tjCustomer.getCusId() + tjNumber + tjCustomer.getCusName() + "_鎶ュ憡.pdf";
         File f = new File(filePath);
         if (filePath.isEmpty()) {
             System.out.println("鏂囦欢涓嶅瓨鍦紒");
@@ -1613,17 +1883,29 @@
                 String contentType = u.openConnection().getContentType();
                 response.setContentType(contentType);
                 response.setHeader("Content-Disposition", "inline;filename="
-                        + userId + tjNumber + ".pdf");
+                        + tjCustomer.getCusId() + tjNumber + ".pdf");
             } else {
                 // 绾笅杞芥柟寮�
                 response.setContentType("application/x-msdownload");
                 response.setContentType("application/pdf;charset=utf-8");
                 response.setHeader("Content-Disposition", "attachment;filename="
-                        + userId + tjNumber + ".pdf");
+                        + tjCustomer.getCusId() + tjNumber + ".pdf");
             }
             out = response.getOutputStream();
             while ((len = br.read(bs)) > 0) {
                 out.write(bs, 0, len);
+            }
+            if(null !=sfdy && sfdy.equals("1")){
+                TjReportPrint print=new TjReportPrint();
+                print.setTjNumber(tjNumber);
+                print.setPrintBy(SecurityUtils.getLoginUser().getUser().getNickName());
+                print.setPrintTime(date);
+                print.setPrintStatus("宸叉墦鍗�");
+                if (printService.save(print)) {
+                    tjOrder.setPrintLastTime(date);
+                    tjOrder.setStatus(TjConstants.TJ_END);
+                    tjOrderService.updateById(tjOrder);
+                }
             }
             out.flush();
             out.close();
@@ -1649,22 +1931,47 @@
     @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());
+        String value = configService.selectConfigByKey("path_filePath");
         if ("true".equals(is_batch_report_use_sql)) {
-            return tjReportService.makeBatchReport(tjNumbers);
-        }else {
+            return tjReportService.makeBatchReport(tjNumbers,value);
+        } else {
             return makeReport(tjNumbers);
         }
     }
 
+
+    @GetMapping("/xiugaidayinzhuangtai")
+    @ApiOperation(value = "淇敼鎵撳嵃鐘舵�佹帴鍙�")
+    @Transactional
+    public AjaxResult xiugaidayinzhuangtai(@RequestParam String tjNumber) {
+        TjOrder order = tjOrderService.getOrderByTjNum(tjNumber);
+        if(null !=order){
+            Date date=new Date();
+            TjReportPrint print=new TjReportPrint();
+            print.setTjNumber(tjNumber);
+            print.setPrintBy(SecurityUtils.getLoginUser().getUser().getNickName());
+            print.setPrintTime(date);
+            print.setPrintStatus("宸叉墦鍗�");
+            if (printService.save(print)) {
+                order.setPrintLastTime(date);
+                order.setStatus(TjConstants.TJ_END);
+                tjOrderService.updateById(order);
+            }
+            return AjaxResult.success();
+        }
+     return AjaxResult.error();
+    }
+
     /**
      * 閫氳繃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<>();
@@ -1878,7 +2185,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("鎵归噺鐢熸垚澶辫触");
@@ -1887,43 +2194,47 @@
 
     @GetMapping("/revocationReport/{TjNumber}")
     @ApiOperation(value = "鎾ら攢鐢熸垚浣撴鎶ュ憡")
+    @Transactional
     public AjaxResult revocationReport(@PathVariable("TjNumber") String tjNumber) {
-        //閫昏緫鍒犻櫎鏁版嵁搴撻噷鐨勬姤鍛�
-        QueryWrapper<TjReport> wq1 = new QueryWrapper<>();
-        wq1.select("re_id");
-        wq1.eq("tj_number", tjNumber);
-        wq1.eq("type", "浣撴鎶ュ憡");
-        TjReport tjReport = tjReportService.getOne(wq1);
-        if (null != tjReport) {
-//            if (!tjReportService.remove(wq1)) {
-//                return AjaxResult.error("鎾ゅ洖澶辫触锛�");
-//            }
-            // 涓嶅湪浣跨敤閫昏緫鍒犻櫎 閫昏緫鍒犻櫎瀵艰嚧鎵撳嵃鎶ュ憡鐢熸垚 鏌ヨsql缂撴參
-            int i = tjReportService.deleteTjReportByReId(tjReport.getReId());
-            if (i == 0) {
-                return AjaxResult.error("鎾ゅ洖澶辫触锛�");
+
+        TjOrder one = tjOrderService.getOrderByTjNum(tjNumber);
+        if(null !=one){
+            if(null !=one.getHeshouTime() && one.getHeshouStatus()==1)return AjaxResult.error("鎶ュ憡宸叉牳鏀朵笉鍙挙鍥�!!!");
+            one.setCheckStatus(0);
+            String config = configService.selectConfigByKey("tj_confirm");
+            if ("Y".equals(config)) {
+                one.setStatus(TjConstants.TJ_CHECK);
+            } else {
+                one.setStatus(TjConstants.TJ_CONFIRM);
+            }
+            one.setReportTime(null);
+            one.setCheckTime(null);
+            one.setCheckDoctor(null);
+            one.setHeshouStatus(0);
+            one.setHeshouTime(null);
+            one.setHeshouDoctor(null);
+            one.setPrintLastTime(null);
+            one.setDownloadLastTime(null);
+            if (tjOrderService.updateById(one)) {
+
+                //閫昏緫鍒犻櫎鏁版嵁搴撻噷鐨勬姤鍛�
+                QueryWrapper<TjReport> wq1 = new QueryWrapper<>();
+                wq1.select("re_id");
+                wq1.eq("tj_number", tjNumber);
+                wq1.eq("type", "浣撴鎶ュ憡");
+                TjReport tjReport = tjReportService.getOne(wq1);
+                if (null != tjReport) {
+                    // 涓嶅湪浣跨敤閫昏緫鍒犻櫎 閫昏緫鍒犻櫎瀵艰嚧鎵撳嵃鎶ュ憡鐢熸垚 鏌ヨsql缂撴參
+                    int i = tjReportService.deleteTjReportByReId(tjReport.getReId());
+                    if (i == 0) {
+                        return AjaxResult.error("鏆傛棤浣撴鎶ュ憡,璇锋挙鍥炲埌鎬绘鏈鏍搁〉闈�,闇�鎬绘鍖荤敓閲嶆柊瀹℃牳骞剁敓鎴愭姤鍛�!");
+                    }
+                }
+
+                return AjaxResult.success("鎾ゅ洖鎴愬姛锛�");
             }
         }
-        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);
-        }
-        //灏嗙姸鎬佹敼涓烘湭瀹℃牳
-//        UpdateWrapper updateWrapper=new UpdateWrapper();
-//        updateWrapper.eq("tj_number",tjNumber);
-//        updateWrapper.set("check_status",0);
-        boolean update = tjOrderService.updateById(one);
-
-        if (update) {
-            return AjaxResult.success("鎾ゅ洖鎴愬姛锛�");
-        }
-        return AjaxResult.error("鎾ゅ洖澶辫触锛�");
+        return AjaxResult.error("璇ヤ汉鍛樹綋妫�璁板綍涓嶅瓨鍦�,璇锋牳瀹炰汉鍛樹俊鎭�!");
 
     }
 
@@ -1973,8 +2284,8 @@
         LambdaQueryWrapper<TjOrder> wq2 = new LambdaQueryWrapper<>();
         wq2.eq(TjOrder::getFirmId, firmId);
         wq2.eq(TjOrder::getFirmDeptId, firmDeptId);
-        wq2.eq(TjOrder::getTjType, "1");
-        wq2.in(TjOrder::getStatus, 401, 402);
+        wq2.ne(TjOrder::getTjType, "2");
+//        wq2.in(TjOrder::getStatus, 401, 402);
         final List<TjOrder> list = tjOrderService.list(wq2);
 
         for (TjOrder tjOrder : list) {
@@ -2333,16 +2644,14 @@
 
     @GetMapping("/tuanDuiYiChangBySex")
     @ApiOperation(value = "鐢熸垚鍥㈤槦浣撴鎶ュ憡鈥斺�旂敺濂冲紓甯哥粨鏋滅粺璁�")
-    public Map<String, List<Map<String, Object>>> tuanDuiYiChangBySex(@ApiParam(value = "鍗曚綅") @RequestParam String firmId,
-                                                                      @ApiParam(value = "閮ㄩ棬") @RequestParam String firmDeptId) {
+    public Map<String, List<Map<String, Object>>> tuanDuiYiChangBySex(@ApiParam(value = "鍗曚綅") @RequestParam String dwname) {
 
         Map<String, List<Map<String, Object>>> all = new HashMap<>();
 
         LambdaQueryWrapper<TjOrder> wq2 = new LambdaQueryWrapper<>();
-        wq2.eq(TjOrder::getFirmId, firmId);
-        wq2.eq(TjOrder::getFirmDeptId, firmDeptId);
-        wq2.eq(TjOrder::getTjType, "1");
-        wq2.in(TjOrder::getStatus, 401, 402);
+        wq2.eq(TjOrder::getFirmName,dwname);
+        wq2.ne(TjOrder::getTjType, "2");
+//        wq2.in(TjOrder::getStatus, 401, 402);
         final List<TjOrder> list = tjOrderService.list(wq2);
 
         List<String> tjNumberList = list.stream().map(TjOrder::getTjNumber).collect(Collectors.toList());

--
Gitblit v1.8.0