From ab0b2ea827a5116c1bcc8d57b082e14aff34e1d2 Mon Sep 17 00:00:00 2001
From: zhaowenxuan <chacca165@163.com>
Date: 星期一, 27 五月 2024 17:49:48 +0800
Subject: [PATCH] 修改线程池创建方式,增加时间非空判断

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java |  178 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 163 insertions(+), 15 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 1880da8..bb3e3be 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
@@ -77,6 +77,8 @@
     private ITjReportTemplateService reportTemplateService;
     @Value("${path.filePath}")
     private String value;
+    @Value("${path.reportServer}")
+    private String urlValue;
     @Resource
     private ISysUserService userService;
     @Resource
@@ -297,11 +299,10 @@
                 tjReportTemplateLambdaQueryWrapper.eq(TjReportTemplate::getOpen, 0);
                 reportTemplate = reportTemplateService.list(tjReportTemplateLambdaQueryWrapper).get(2);
             }
-            String template = reportTemplate.getTemplate();
 
-            String userId = SecurityUtils.getLoginUser().getUsername();
-            PDFBinaryUtil.base64StringToPDF(template, FileUtil.mkdir(value).getPath() + "\\" + userId + "浣撴鎶ュ憡灏侀潰妯℃澘.pdf");
-            // --------浠ヤ笂-------  鏍规嵁鏁版嵁搴撲腑鐨勬ā鏉夸簩杩涘埗鏂囦欢  杞琾df  鍒涘缓鏂囦欢澶�  灏唒df鏀捐繘鏈湴鏂囦欢澶�
+
+
+
 
             //鍒ゆ柇琛ㄤ腑鏈夋病鏈夎浣撴鎶ュ憡  涓嶈兘閲嶅鐢熸垚
             LambdaQueryWrapper<TjReport> wqa = new LambdaQueryWrapper<>();
@@ -315,6 +316,35 @@
 
             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);
@@ -469,17 +499,20 @@
 
 
                     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 ("N".equals(one11.getNeedReport())){
+                        if (null !=one11 && "N".equals(one11.getNeedReport())){
                             continue;
                         }
-                        if ("1".equals(one11.getResultType())) {
-                            String titleName = one11.getProName();
+                        String titleName =null;
+                        if (null !=one11 && "1".equals(one11.getResultType())) {
+                             titleName =one11.getProName();
                             // 璁剧疆鏍囬瀛椾綋鏍峰紡
                             Font titleFonts = PdfUtils.setFont(9);
                             Paragraph paragraph = PdfUtils.setParagraph(titleFonts, titleName);
@@ -543,7 +576,12 @@
                             LineSeparator objectName = new LineSeparator();
                             document.add(objectName);
                         } else {
-                            String titleName = one11.getProName();
+                            if(null !=one11){
+                                titleName = one11.getProName();
+                            }else {
+                                titleName = entry.getKey().getProName();
+                            }
+
                             // 璁剧疆鏍囬瀛椾綋鏍峰紡
                             Font titleFonts = PdfUtils.setFont(9);
                             Paragraph paragraph = PdfUtils.setParagraph(titleFonts, titleName);
@@ -666,10 +704,11 @@
 
                     TjReport tjReport = new TjReport();
                     tjReport.setTjNumber(String.valueOf(tjNumber));
-                    tjReport.setPath(outputPath1 + outputFileName1);
+                    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");
@@ -700,21 +739,25 @@
         }
         return AjaxResult.success("璇ョ敤鎴蜂綋妫�鏈畬鎴愶紝涓嶈兘鎵撳嵃鎶ュ憡锛侊紒锛�");
     }
-
+    //闈炲寲楠岄」鐩姤鍛�
     public Map<TjOrderRemark, List<TjPdfVO>> addTable(String tjNumber) {
         //鍒涘缓map 閿负鐖堕」鐩�  鍊间负瀛愰」鐩泦鍚�
-        Map<TjOrderRemark, List<TjPdfVO>> printReport = new HashMap<>();
+        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.ne(TjOrderDetail::getProId,projectService.getHuaYanProId());
+        wq.eq(TjOrderDetail::getProId,projectService.getNotCcCtXdtProId());
+//        wq.notIn(TjOrderDetail::getProId,projectService.getNneedReprotProId());
         List<TjOrderDetail> tjOrderDetails = tjOrderDetailService.list(wq);
 
         //閬嶅巻浣撴璁板綍 灏嗛」鐩殑鍏蜂綋淇℃伅
@@ -725,27 +768,106 @@
                 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.ne(TjOrderRemark::getDeptId,"241");
+        wqq.in(TjOrderRemark::getDeptId,"269","270","253","254","255","257","251","271");
+        wqq.notIn(TjOrderRemark::getProId,projectService.getNneedReprotProId());
         List<TjOrderRemark> tjOrderRemarks = tjOrderRemarkService.list(wqq);
 
         for (TjOrderRemark tjOrderRemark : tjOrderRemarks) {
-            printReport.put(tjOrderRemark, null);
+
+            printReport.put(tjOrderRemark,null);
         }
 
+        extracted(printReport,one, customer);
+        return printReport;
+    }
+
+
+    //鍖栭獙椤圭洰鎶ュ憡
+    public Map<TjOrderRemark, List<TjPdfVO>> addHuaYanTable(String tjNumber) {
+        //鍒涘缓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);
+
+        for (TjOrderRemark tjOrderRemark : tjOrderRemarks) {
+            printReport.put(tjOrderRemark,null);
+        }
+        List<Object> toRemoveKeys = new ArrayList<>();
         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())){
+                        TjPdfVO tjPdfVO = new TjPdfVO();
+                        tjPdfVO.setProName(tjOrderDetail.getProName());
+                        if(null !=tjOrderDetail.getYcbz() && !tjOrderDetail.getYcbz().equals("")){
+                            tjPdfVO.setProResult(tjOrderDetail.getProResult()+" ["+tjOrderDetail.getYcbz()+"]");
+                        }else {
+                            tjPdfVO.setProResult(tjOrderDetail.getProResult());
+                        }
+                        tjPdfVO.setExc(tjOrderDetail.getExceptionDesc());
+                        tjPdfVO.setStandardValue(tjOrderDetail.getStanId());
+                        tjPdfVO.setCompany(tjOrderDetail.getProAdvice());
+                        tjPdfVOS.add(tjPdfVO);
+                    }
+            }
+            printReport.put(entry.getKey(), tjPdfVOS);
+            if(tjPdfVOS.size()==0)
+            {toRemoveKeys.add(entry.getKey());}
+        }
+        toRemoveKeys.forEach(printReport::remove);
+        return printReport;
+    }
+
+    private void extracted(Map<TjOrderRemark, List<TjPdfVO>> printReport, TjOrder one, TjCustomer customer) {
+        for (Map.Entry<TjOrderRemark, List<TjPdfVO>> entry : printReport.entrySet()) {
+            List<TjPdfVO> tjPdfVOS = new ArrayList<>();
+//            TjOrder one = tjOrderService.getOrderByTjNum(entry.getKey().getTjNumber());
+            List<TjOrderDetail> tjOrderDetails = tjOrderDetailService.getDetailByOrderIdAndParId(one.getOrderId(),entry.getKey().getProId());
+            for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
+                TjProject tjProject = projectService.getById(tjOrderDetail.getProId());
+                if (null != tjProject) {
+                    tjOrderDetail.setProject(tjProject);
+                }
                 if (null == tjOrderDetail.getProject()) {
                     System.out.println("'''''''''''''''''''''''''''''''''''" + tjOrderDetail.getOrderDetailId());
                 }
-
                 if (tjOrderDetail.getProject().getProParentId().equals(entry.getKey().getProId())) {
-
                     LambdaQueryWrapper<TjStandard> wq6 = new LambdaQueryWrapper<>();
                     wq6.eq(TjStandard::getProId, tjOrderDetail.getProId());
                     List<TjStandard> list2 = tjStandardService.list(wq6);
@@ -800,8 +922,33 @@
             }
             printReport.put(entry.getKey(), tjPdfVOS);
         }
-        return printReport;
     }
+
+
+    @GetMapping("/isPdfOrJimu")
+    @ApiOperation(value = "鍒ゆ柇鎶ュ憡鎵撳紑绫诲瀷")
+    public AjaxResult isPdfOrJimu(String tjNumber) {
+        Map<String,String> res=new HashMap<>();
+        LambdaQueryWrapper<TjReport> we = new LambdaQueryWrapper<>();
+        we.eq(TjReport::getTjNumber, tjNumber);
+        we.eq(TjReport::getType, "浣撴鎶ュ憡");
+        TjReport one = tjReportService.getOne(we);
+        if (one==null){
+            return AjaxResult.error("鏆傛棤浣撴鎶ュ憡");
+        }
+        if ("pdf".equals(one.getPrint())){
+            res.put("flag","0");
+            return AjaxResult.success(res);
+        }else if ("鎶ヨ〃".equals(one.getPrint())){
+            res.put("flag","1");
+            res.put("url",one.getPath());
+            return AjaxResult.success(res);
+        }else {
+            return AjaxResult.error("鏆傛棤浣撴鎶ュ憡");
+        }
+
+    }
+
 
 
     @GetMapping("/preview/{flag}/{TjNumber}")
@@ -833,6 +980,7 @@
         if (one == null) {
             return;
         }
+
         String userId = SecurityUtils.getLoginUser().getUsername();
         PDFBinaryUtil.base64StringToPDF(one.getReport(), FileUtil.mkdir(value).getPath() + "\\" + userId + tjNumber + tjCustomer.getCusName() + "_浣撴鎶ュ憡.pdf");
         //String filePath = one.getPath();

--
Gitblit v1.8.0