From 14ecea8537d5b29ca64c75aad4ff49265018415d Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期三, 02 七月 2025 08:51:22 +0800
Subject: [PATCH] zjh20250702

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/app/ReportController.java |  458 +++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 318 insertions(+), 140 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/app/ReportController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/app/ReportController.java
index 1f5a29b..c4ec1cf 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/app/ReportController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/app/ReportController.java
@@ -2,15 +2,27 @@
 
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.ltkj.common.core.controller.BaseController;
 import com.ltkj.common.core.domain.AjaxResult;
 import com.ltkj.common.core.page.TableDataInfo;
+import com.ltkj.common.utils.SecurityUtils;
 import com.ltkj.common.utils.StringUtils;
 import com.ltkj.framework.config.UserHoder;
 import com.ltkj.hosp.domain.*;
 import com.ltkj.hosp.service.*;
+import com.ltkj.hosp.sqlDomain.LtkjExamJcbgd;
+import com.ltkj.hosp.sqlDomain.LtkjExamJcsqd;
+import com.ltkj.hosp.sqlDomain.LtkjHybgd;
+import com.ltkj.hosp.sqlDomain.LtkjHysqd;
+import com.ltkj.hosp.vodomain.ShenGaoTiZhongVo;
+import com.ltkj.mall.mallOrderUtils.TjConstants;
+import com.ltkj.system.service.ISysConfigService;
+import com.ltkj.web.config.pdfutils.PDFBinaryUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -21,13 +33,14 @@
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.server.session.InMemoryWebSessionStore;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.*;
+import java.math.BigDecimal;
+import java.net.URL;
 import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
@@ -45,47 +58,51 @@
 
     @Resource
     private ITjReportService reportService;
-
     @Resource
     private ITjCustomerService customerService;
     @Autowired
     private ITjOrderService orderService;
-
     @Autowired
     private ITjOrderDetailService detailService;
-
     @Resource
     private ITjProjectService projectService;
-
     @Resource
     private ITjOrderRemarkService remarkService;
-
     @Resource
     private ITjStandardService standardService;
-
     @Resource
     private ITjAdviceService adviceService;
-
     @Resource
     private IDictCompService compService;
-
     @Resource
     private ITjReportTemplateService reportTemplateService;
+//    @Value("${path.filePath}")
+//    private String value;
+    @Resource
+    private LtkjHybgdService ltkjHybgdService;
+    @Resource
+    private LtkjHysqdService ltkjHysqdService;
+    @Resource
+    private LtkjExamJcbgdService jcbgdService;
+    @Resource
+    private LtkjExamJcsqdService jcsqdService;
+    @Autowired
+    private ISysConfigService configService;
 
-    @Value("${path.filePath}")
-    private String value;
 
     /**
      * 灏忕▼搴忔煡璇綋妫�鎶ュ憡鍒楄〃
      */
     @GetMapping("/getReportList")
     @ApiOperation(value = "灏忕▼搴�-浣撴鎶ュ憡鍒楄〃")
-    public AjaxResult getReportList(@RequestParam(required = false) @ApiParam(value = "鎵嬫満鍙�") String cusPhone) {
-        Wxuser wxuser = UserHoder.getWxuser();
-
+    public AjaxResult getReportList(String cusPhone) {
+//        Wxuser wxuser = UserHoder.getWxuser();
+        if (cusPhone == null) {
+            return AjaxResult.error("璇风粦瀹氭墜鏈哄彿锛�");
+        }
         List<Object> result = new ArrayList<>();
-        QueryWrapper<TjCustomer> wq1 = new QueryWrapper<>();
-        wq1.eq("cus_phone", wxuser.getPhone());
+        LambdaQueryWrapper<TjCustomer> wq1 = new LambdaQueryWrapper<>();
+        wq1.eq(TjCustomer::getCusPhone, cusPhone);
         List<TjCustomer> list1 = customerService.list(wq1);
         if (list1.size() != 0) {
             for (TjCustomer tjCustomer : list1) {
@@ -114,9 +131,10 @@
      */
     @GetMapping("/getRelativeReportList")
     @ApiOperation(value = "灏忕▼搴�-鏌ヨ浜插弸鏈�鏂版姤鍛�")
-    public AjaxResult getRelativeReportList(@RequestParam @ApiParam(value = "濮撳悕") String cusName, @RequestParam @ApiParam(value = "韬唤璇佸彿") String cusIdcard) {
+    public AjaxResult getRelativeReportList(@RequestParam @ApiParam(value = "濮撳悕") String cusName,
+                                            @RequestParam @ApiParam(value = "韬唤璇佸彿") String cusIdcard) {
         LambdaQueryWrapper<TjCustomer> wq1 = new LambdaQueryWrapper<>();
-        wq1.eq(TjCustomer::getCusName, cusName);
+        wq1.like(TjCustomer::getCusName, cusName);
         wq1.eq(TjCustomer::getCusIdcard, cusIdcard);
         TjCustomer customer = customerService.getOne(wq1);
         if (null != customer) {
@@ -158,6 +176,7 @@
         TjCustomer customer = customerService.getOne(wq22);
         LambdaQueryWrapper<TjOrderRemark> wqm = new LambdaQueryWrapper<>();
         wqm.eq(TjOrderRemark::getTjNumber, tjNumber);
+        wqm.in(TjOrderRemark::getDeptId,"100", "240", "253", "254", "255", "257", "258", "259", "269", "270");
         List<TjOrderRemark> remarkList = remarkService.list(wqm);
         List<Map<String, Object>> abnormalList = new ArrayList<>();
         if (null != remarkList && remarkList.size() > 0) {
@@ -165,66 +184,64 @@
                 Map<String, Object> parent = new HashMap<>();
                 Map<String, Object> parent1 = new HashMap<>();
                 TjProject tjProject = projectService.getById(remark.getProId());
-                if (null != tjProject) {
+                if (null != tjProject && tjProject.getNeedReport().equals("Y")) {
                     parent.put("parent", tjProject.getProName());
                     parent1.put("parent", tjProject.getProName());
-                } else {
-                    parent.put("parent", null);
-                    parent1.put("parent", null);
-                }
-                LambdaQueryWrapper<TjProject> wq2 = new LambdaQueryWrapper<>();
-                wq2.eq(TjProject::getProParentId, remark.getProId());
-                List<Long> sonsTjProjectList = null;
-                if (null != projectService.list(wq2) && projectService.list(wq2).size() > 0) {
-                    sonsTjProjectList = projectService.list(wq2).stream().map(TjProject::getProId).collect(Collectors.toList());
-                }
-                if (sonsTjProjectList == null) {
-                    log.info("鎴戞姤绌烘寚閽堜簡::::::::::::" + remark.toString());
-                    continue;
-                }
-                LambdaQueryWrapper<TjOrderDetail> wq = new LambdaQueryWrapper<>();
-                wq.eq(TjOrderDetail::getOrderId, one.getOrderId());
-                wq.in(TjOrderDetail::getProId, sonsTjProjectList);
-                List<TjOrderDetail> tjOrderDetails = detailService.list(wq);
-                if (null != tjOrderDetails && tjOrderDetails.size() > 0) {
-                    List<TjOrderDetail> abnormals = new ArrayList<>();
-                    for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
-                        if (tjOrderDetail.getExceptionDesc() == 1) {
-                            abnormals.add(tjOrderDetail);
-                            parent1.put("abnormalList", abnormals);
-                            abnormalList.add(parent1);
-                        }
-                        LambdaQueryWrapper<TjProject> wqqqq = new LambdaQueryWrapper<>();
-                        wqqqq.eq(TjProject::getProId, tjOrderDetail.getProId());
-                        tjOrderDetail.setProject(projectService.getOne(wqqqq));
-                        LambdaQueryWrapper<TjStandard> wq6 = new LambdaQueryWrapper<>();
-                        wq6.eq(TjStandard::getProId, tjOrderDetail.getProId());
-                        List<TjStandard> list2 = standardService.list(wq6);
-                        if (list2.size() == 0) {
-                            tjOrderDetail.setStandard(null);
-                        } else if (list2.size() == 1) {
-                            tjOrderDetail.setStandard(list2.get(0));
-                        } else {
-                            for (TjStandard tjStandard : list2) {
-                                LambdaQueryWrapper<TjStandard> wq8 = new LambdaQueryWrapper<>();
-                                if (tjStandard.getTjSex() != null) {
-                                    wq8.eq(TjStandard::getTjSex, customer.getCusSex());
-                                }
-                                if (tjStandard.getTjType() != null) {
-                                    wq8.eq(TjStandard::getTjType, StringUtils.getAgeType(DateUtil.ageOfNow(customer.getCusBrithday())));
-                                }
-                                tjOrderDetail.setStandard(standardService.getOne(wq8));
-                            }
-                        }
+                    LambdaQueryWrapper<TjProject> wq2 = new LambdaQueryWrapper<>();
+                    wq2.eq(TjProject::getProParentId, remark.getProId());
+                    List<Long> sonsTjProjectList = null;
+                    if (null != projectService.list(wq2) && projectService.list(wq2).size() > 0) {
+                        sonsTjProjectList = projectService.list(wq2).stream().map(TjProject::getProId).collect(Collectors.toList());
                     }
-                    LambdaQueryWrapper<TjAdvice> wq3 = new LambdaQueryWrapper<>();
-                    wq3.eq(TjAdvice::getProId, remark.getProId());
-                    parent.put("sons", tjOrderDetails);
-                    parent.put("parentAdvice", adviceService.list(wq3));
-                    parent.put("advice", remark.getSummary());
-                    list.add(parent);
-                } else {
-                    return AjaxResult.success("璇ュ鎴峰湪娌℃湁浣撴椤圭洰鏁版嵁");
+                    if (sonsTjProjectList == null) {
+                        log.info("鎴戞姤绌烘寚閽堜簡::::::::::::" + remark.toString());
+                        continue;
+                    }
+                    LambdaQueryWrapper<TjOrderDetail> wq = new LambdaQueryWrapper<>();
+                    wq.eq(TjOrderDetail::getOrderId, one.getOrderId());
+                    wq.in(TjOrderDetail::getProId, sonsTjProjectList);
+                    List<TjOrderDetail> tjOrderDetails = detailService.list(wq);
+                    if (null != tjOrderDetails && tjOrderDetails.size() > 0) {
+                        List<TjOrderDetail> abnormals = new ArrayList<>();
+                        for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
+                            if (tjOrderDetail.getExceptionDesc() == 1) {
+                                abnormals.add(tjOrderDetail);
+                                parent1.put("abnormalList", abnormals);
+                                abnormalList.add(parent1);
+                            }
+                            LambdaQueryWrapper<TjProject> wqqqq = new LambdaQueryWrapper<>();
+                            wqqqq.eq(TjProject::getProId, tjOrderDetail.getProId());
+                            wqqqq.eq(TjProject::getNeedReport,"Y");
+                            tjOrderDetail.setProject(projectService.getOne(wqqqq));
+                            //                            LambdaQueryWrapper<TjStandard> wq6 = new LambdaQueryWrapper<>();
+//                            wq6.eq(TjStandard::getProId, tjOrderDetail.getProId());
+//                            List<TjStandard> list2 = standardService.list(wq6);
+//                            if (list2.size() == 0) {
+//                                tjOrderDetail.setStandard(null);
+//                            } else if (list2.size() == 1) {
+//                                tjOrderDetail.setStandard(list2.get(0));
+//                            } else {
+//                                for (TjStandard tjStandard : list2) {
+//                                    LambdaQueryWrapper<TjStandard> wq8 = new LambdaQueryWrapper<>();
+//                                    if (tjStandard.getTjSex() != null) {
+//                                        wq8.eq(TjStandard::getTjSex, customer.getCusSex());
+//                                    }
+//                                    if (tjStandard.getTjType() != null) {
+//                                        wq8.eq(TjStandard::getTjType, StringUtils.getAgeType(DateUtil.ageOfNow(customer.getCusBrithday())));
+//                                    }
+//                                    tjOrderDetail.setStandard(standardService.getOne(wq8));
+//                                }
+//                            }
+                        }
+                        LambdaQueryWrapper<TjAdvice> wq3 = new LambdaQueryWrapper<>();
+                        wq3.eq(TjAdvice::getProId, remark.getProId());
+                        parent.put("sons", tjOrderDetails);
+                        parent.put("parentAdvice", adviceService.list(wq3));
+                        parent.put("advice", remark.getSummary());
+                        list.add(parent);
+                    } else {
+                        return AjaxResult.success("璇ュ鎴峰湪娌℃湁浣撴椤圭洰鏁版嵁");
+                    }
                 }
             }
             objectMap.put("list", list);
@@ -236,14 +253,96 @@
         return AjaxResult.success("璇ュ鎴峰湪娌℃湁浣撴椤圭洰鏁版嵁锛�");
     }
 
+    @GetMapping("/getHyReportByTjNumber")
+    @ApiOperation(value = "灏忕▼搴�-浣撴鍖栭獙鎶ュ憡鏌ヨ璇︽儏")
+    public AjaxResult getHyReportByTjNumber(@RequestParam @ApiParam(value = "浣撴鍙�") String tjNumber) {
+        LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
+        wq1.eq(TjOrder::getTjNumber, tjNumber);
+        wq1.eq(TjOrder::getCheckStatus, 1);
+        TjOrder one = orderService.getOne(wq1);
+        if (one == null) {
+            return AjaxResult.success("浣撴鏆傛湭瀹屾垚锛侊紒");
+        }
+        List<LtkjHysqd> hysqdList = ltkjHysqdService.getLtkjHysqdByTjh(one.getCardId());
+        if(null !=hysqdList && hysqdList.size()>0){
+            List<Map<String, Object>> list = new ArrayList<>();
+
+            for (LtkjHysqd hysqd : hysqdList) {
+                Map<String, Object> map = new HashMap<>();
+                map.put("parent",hysqd.getXmmc());
+                List<LtkjHybgd> hybgdList = ltkjHybgdService.getJianYanBaoGaoDanList(hysqd.getTmh());
+                if(null !=hybgdList && hybgdList.size()>0){
+                    for (LtkjHybgd hybgd : hybgdList) {
+                        String jyjg = hybgd.getJyjg();
+                        String fwz = hybgd.getFwz();
+                        if (jyjg != null && StrUtil.isNotBlank(jyjg) && fwz != null && StrUtil.isNotBlank(fwz)){
+                            try {
+                                String[] fwzs = fwz.split("-");
+                                BigDecimal min = new BigDecimal(fwzs[0]);
+                                BigDecimal max = new BigDecimal(fwzs[1]);
+                                BigDecimal jyjgval = new BigDecimal(jyjg);
+                                // 姣旇緝妫�楠岀粨鏋滃拰鑼冨洿鍊�
+                                if (jyjgval.compareTo(min) < 0) {
+                                    // jyjg 灏忎簬鑼冨洿鏈�灏忓�硷紝娣诲姞涓嬬澶�
+                                    jyjg = jyjg + "   鈫�";
+                                    hybgd.setYcbz("1");
+                                } else if (jyjgval.compareTo(max) > 0) {
+                                    // jyjg 澶т簬鑼冨洿鏈�澶у�硷紝娣诲姞涓婄澶�
+                                    jyjg = jyjg + "   鈫�";
+                                    hybgd.setYcbz("1");
+                                }else {
+                                    hybgd.setYcbz("0");
+                                }
+                                hybgd.setJyjg(jyjg);
+                            } catch (Exception ignored) {}
+                        }
+                    }
+                }
+                map.put("sons",hybgdList);
+                list.add(map);
+            }
+            return AjaxResult.success(list);
+        }
+        return AjaxResult.success("璇ュ鎴峰湪娌℃湁浣撴椤圭洰鏁版嵁锛�");
+    }
+
+
+
+    @GetMapping("/getJcReportByTjNumber")
+    @ApiOperation(value = "灏忕▼搴�-浣撴妫�鏌ユ姤鍛婃煡璇㈣鎯�")
+    public AjaxResult getJcReportByTjNumber(@RequestParam @ApiParam(value = "浣撴鍙�") String tjNumber) {
+        LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
+        wq1.eq(TjOrder::getTjNumber, tjNumber);
+        wq1.eq(TjOrder::getCheckStatus, 1);
+        TjOrder one = orderService.getOne(wq1);
+        if (one == null) {
+            return AjaxResult.success("浣撴鏆傛湭瀹屾垚锛侊紒");
+        }
+        List<LtkjExamJcsqd> jcsqdList = jcsqdService.getLtkjJcsqdByTjh(one.getCardId());
+        if(null !=jcsqdList && jcsqdList.size()>0){
+            List<Map<String, Object>> list = new ArrayList<>();
+            for (LtkjExamJcsqd jcsqd : jcsqdList) {
+                Map<String, Object> map = new HashMap<>();
+                map.put("parent",jcsqd.getJcxmmc());
+                map.put("jcbx",jcsqd.getJgbx());
+                List<LtkjExamJcbgd> jcbgdList = jcbgdService.getJianJcBaoGaoDanList(jcsqd.getTmh());
+                map.put("sons",jcbgdList);
+                list.add(map);
+            }
+            return AjaxResult.success(list);
+        }
+        return AjaxResult.success("璇ュ鎴峰湪娌℃湁浣撴椤圭洰鏁版嵁锛�");
+    }
+
+
+
     /**
      * 灏忕▼搴忕偣鍑讳綋妫�鎶ュ憡鏌ヨ璇︽儏,鏄剧ず韬珮浣撻噸浣撻噸鎸囨暟鏀剁缉鍘嬭垝寮犲帇
      */
     @GetMapping("/getShenGaoTiZhong")
     @ApiOperation(value = "灏忕▼搴�-浣撴鎶ュ憡鏌ヨ璇︽儏")
     public AjaxResult getShenGaoTiZhong(@RequestParam @ApiParam(value = "浣撴鍙�") String tjNumber) {
-        Map<String, Object> objectMap = new HashMap<>();
-        List<Map<String, Object>> list = new ArrayList<>();
+//        Map<String, Object> objectMap = new HashMap<>();
         LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
         wq1.eq(TjOrder::getTjNumber, tjNumber);
         wq1.eq(TjOrder::getCheckStatus, 1);
@@ -252,64 +351,38 @@
             return AjaxResult.success("浣撴鏆傛湭瀹屾垚锛侊紒");
         }
 
-        LambdaQueryWrapper<TjOrderDetail> wq = new LambdaQueryWrapper<>();
-        wq.eq(TjOrderDetail::getOrderId, one.getOrderId());
-        wq.in(TjOrderDetail::getProId, "1633660948860522524");
-        final TjOrderDetail one1 = detailService.getOne(wq);
-        if (one1== null){
-            objectMap.put("shenggao", "鏃�");
-        }else {
-            objectMap.put("shenggao", one1.getProResult());
-        }
-
-
-        LambdaQueryWrapper<TjOrderDetail> wq2 = new LambdaQueryWrapper<>();
-        wq2.eq(TjOrderDetail::getOrderId, one.getOrderId());
-        wq2.in(TjOrderDetail::getProId, "1633660948860522525");
-        final TjOrderDetail one2 = detailService.getOne(wq2);
-        if (one2==null){
-            objectMap.put("tizhong", "鏃�");
-        }else {
-            objectMap.put("tizhong", one2.getProResult());
-        }
-
-
-        LambdaQueryWrapper<TjOrderDetail> wq3 = new LambdaQueryWrapper<>();
-        wq3.eq(TjOrderDetail::getOrderId, one.getOrderId());
-        wq3.in(TjOrderDetail::getProId, "1633660948860522526");
-        final TjOrderDetail one3 = detailService.getOne(wq3);
-        if (one3==null){
-            objectMap.put("tizhongzhishu", "鏃�");
-        }else {
-            objectMap.put("tizhongzhishu", one3.getProResult());
-        }
-
-
-
-        LambdaQueryWrapper<TjOrderDetail> wq4 = new LambdaQueryWrapper<>();
-        wq4.eq(TjOrderDetail::getOrderId, one.getOrderId());
-        wq4.in(TjOrderDetail::getProId, "1633660948860522527");
-        final TjOrderDetail one4 = detailService.getOne(wq4);
-        if (one4==null){
-            objectMap.put("shousuoya", "鏃�");
-        }else {
-            objectMap.put("shousuoya", one4.getProResult());
-        }
-
-
-
-        LambdaQueryWrapper<TjOrderDetail> wq5 = new LambdaQueryWrapper<>();
-        wq5.eq(TjOrderDetail::getOrderId, one.getOrderId());
-        wq5.in(TjOrderDetail::getProId, "1633660948860522528");
-        final TjOrderDetail one5 = detailService.getOne(wq5);
-        if (one5==null){
-            objectMap.put("shuzhangya","鏃�");
-        }else {
-            objectMap.put("shuzhangya", one5.getProResult());
-        }
-
-
-        return AjaxResult.success(objectMap);
+        List<ShenGaoTiZhongVo> maps = detailService.getShenGaoTiZhongList(one.getTjNumber());
+//        if(null !=maps && maps.size()>0){
+//            for (Map<String, Object> map : maps) {
+//                if (map.get("") == null) {
+//                    objectMap.put("shenggao", "鏃�");
+//                } else {
+//                    objectMap.put("shenggao", one1.getProResult());
+//                }
+//                if (one2 == null) {
+//                    objectMap.put("tizhong", "鏃�");
+//                } else {
+//                    objectMap.put("tizhong", one2.getProResult());
+//                }
+//                if (one3 == null) {
+//                    objectMap.put("tizhongzhishu", "鏃�");
+//                } else {
+//                    objectMap.put("tizhongzhishu", one3.getProResult());
+//                }
+//                if (one4 == null) {
+//                    objectMap.put("shousuoya", "鏃�");
+//                } else {
+//                    objectMap.put("shousuoya", one4.getProResult());
+//                }
+//                if (one5 == null) {
+//                    objectMap.put("shuzhangya", "鏃�");
+//                } else {
+//                    objectMap.put("shuzhangya", one5.getProResult());
+//                }
+//            }
+//        }
+        log.info("ltkj {}鐨勪綋妫�鎶ュ憡鏌ヨ璇︽儏"+maps,tjNumber);
+        return AjaxResult.success(maps);
 
     }
 
@@ -320,8 +393,113 @@
     @GetMapping("/downloadReport")
     @ApiOperation(value = "灏忕▼搴�-涓嬭浇鎶ュ憡")
     public AjaxResult downloadReport(@RequestParam @ApiParam(value = "浣撴鍙�") String tjNumber) {
-        Map<String, Object> map = new HashMap<>();
-        return AjaxResult.success(map);
+        Map<String, String> res = new HashMap<>();
+        LambdaQueryWrapper<TjReport> we = new LambdaQueryWrapper<>();
+        we.eq(TjReport::getTjNumber, tjNumber);
+        we.eq(TjReport::getType, "浣撴鎶ュ憡");
+        TjReport one = reportService.getOne(we);
+        if ("pdf".equals(one.getPrint())) {
+            res.put("flag", "0");
+            res.put("url", one.getPath());
+            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}")
+    @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);
+//        orderService.update(updateWrapper);
+
+
+        LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
+        wq1.eq(TjOrder::getTjNumber, tjNumber);
+        TjOrder tjOrder = orderService.getOne(wq1);
+
+        String value = configService.selectConfigByKey("path_filePath");
+        LambdaQueryWrapper<TjCustomer> wq2 = new LambdaQueryWrapper<>();
+        wq2.eq(TjCustomer::getCusId, tjOrder.getUserId());
+        TjCustomer tjCustomer = customerService.getOne(wq2);
+
+
+        LambdaQueryWrapper<TjReport> we = new LambdaQueryWrapper<>();
+        we.eq(TjReport::getTjNumber, tjNumber);
+        we.eq(TjReport::getType, "浣撴鎶ュ憡");
+        TjReport one = reportService.getOne(we);
+        if (one == null) {
+            return;
+        }
+        final UUID uuid = UUID.randomUUID();
+        final String substring = uuid.toString().substring(0, 5);
+
+//        String userId = SecurityUtils.getLoginUser().getUsername();
+        PDFBinaryUtil.base64StringToPDF(one.getReport(), FileUtil.mkdir(value).getPath() + File.separator + substring + tjNumber + tjCustomer.getCusName() + "_浣撴鎶ュ憡.pdf");
+        //String filePath = one.getPath();
+        String filePath = value + File.separator + substring + tjNumber + tjCustomer.getCusName() + "_浣撴鎶ュ憡.pdf";
+        File f = new File(filePath);
+        if (filePath.isEmpty()) {
+            System.out.println("鏂囦欢涓嶅瓨鍦紒");
+            return;
+        }
+        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="
+                        + substring + tjNumber + ".pdf");
+            } else {
+                // 绾笅杞芥柟寮�
+                response.setContentType("application/x-msdownload");
+                response.setContentType("application/pdf;charset=utf-8");
+                response.setHeader("Content-Disposition", "attachment;filename="
+                        + substring + tjNumber + ".pdf");
+            }
+            out = response.getOutputStream();
+            while ((len = br.read(bs)) > 0) {
+                out.write(bs, 0, len);
+            }
+            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();
+
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
     }
 
 

--
Gitblit v1.8.0