From 0892d843cd394f383ff50f480f7f22f2ec3829bc Mon Sep 17 00:00:00 2001
From: zhaowenxuan <chacca165@163.com>
Date: 星期五, 27 六月 2025 20:24:45 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/api/DefaultController.java |  155 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 150 insertions(+), 5 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/api/DefaultController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/api/DefaultController.java
index bbfe4cb..6ac4969 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/api/DefaultController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/api/DefaultController.java
@@ -1,15 +1,23 @@
 package com.ltkj.web.controller.api;
 
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONArray;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.itextpdf.text.Element;
+import com.itextpdf.text.Paragraph;
 import com.ltkj.common.core.domain.AjaxResult;
+import com.ltkj.hosp.domain.TjCustomer;
 import com.ltkj.hosp.domain.TjOrder;
+import com.ltkj.hosp.domain.TjOrderYcxm;
 import com.ltkj.hosp.mapper.TjCustomerMapper;
 import com.ltkj.hosp.service.ITjOrderDetailService;
 import com.ltkj.hosp.service.ITjOrderService;
+import com.ltkj.hosp.service.TjOrderYcxmService;
 import com.ltkj.hosp.vodomain.ShenGaoTiZhongVo;
+import com.ltkj.system.service.ISysConfigService;
+import com.ltkj.web.config.pdfutils.PdfUtils;
 import com.ltkj.web.controller.system.TjCheckController;
 import com.ltkj.web.controller.system.TjReportController;
 import io.swagger.annotations.ApiOperation;
@@ -18,10 +26,12 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
+import java.io.File;
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.stream.Collectors;
 
 import static com.ltkj.framework.datasource.DynamicDataSourceContextHolder.log;
 
@@ -44,6 +54,10 @@
     private ITjOrderService tjOrderService;
     @Autowired
     private ITjOrderDetailService detailService;
+    @Autowired
+    private ISysConfigService sysConfigService;
+    @Autowired
+    private TjOrderYcxmService tjOrderYcxmService;
 
     /**
      * 鎻愪緵缁欎笁鏂硅皟鐢ㄧ殑鎶ュ憡鏌ョ湅鎺ュ彛
@@ -64,6 +78,23 @@
         tjReportController.preview(response,true,tjNum);
     }
 
+    @PostMapping("/viewReportUrl")
+    public AjaxResult viewReportUrl(@RequestBody String json){
+        JSONObject entries = JSONUtil.parseObj(json);
+        String tjNum = entries.getStr("tjNum");
+        LambdaQueryWrapper<TjOrder> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(TjOrder::getHeshouStatus,1);
+        wrapper.eq(TjOrder::getTjNumber,tjNum);
+        List<TjOrder> list = tjOrderService.list(wrapper);
+        if (list.isEmpty()){
+            return AjaxResult.error();
+        }
+        TjOrder tjOrder = tjOrderService.getOrderByTjNum(tjNum);
+        TjCustomer tjCustomer = tjCustomerMapper.selectById( tjOrder.getUserId());
+        String filePath = tjCustomer.getCusId() + tjNum + tjCustomer.getCusName() + "_鎶ュ憡.pdf";
+        return AjaxResult.success(filePath);
+    }
+
     /**
      * 鎻愪緵缁欎笁鏂硅皟鐢ㄧ殑鎶ュ憡鏁版嵁鎺ュ彛
      * @param json
@@ -80,6 +111,101 @@
             return AjaxResult.error("鏆傛棤鏁版嵁锛侊紒");
         }
         JSONObject entries = JSONUtil.parseObj(tjCheckController.updateCheckType(tjNum));
+
+        LambdaQueryWrapper<TjOrderYcxm> wq = new LambdaQueryWrapper<>();
+        wq.eq(TjOrderYcxm::getTjh, tjNum);
+        List<TjOrderYcxm> ycxms = tjOrderYcxmService.list(wq);
+        Map<String, List<TjOrderYcxm>> stringListMap = ycxms.stream().collect(Collectors.groupingBy(TjOrderYcxm::getParentName));
+        int xmXh = 1;
+        JSONArray jczs = JSONUtil.createArray();
+        for (Map.Entry<String, List<TjOrderYcxm>> entry : stringListMap.entrySet()) {
+            List<TjOrderYcxm> details = entry.getValue();
+            String xmmc = entry.getKey();
+            boolean isXmWrite = false;
+            int index = 1;
+            JSONObject object = JSONUtil.createObj();
+            for (TjOrderYcxm detail : details) {
+                if (!isXmWrite) {
+                    object.putOpt("xh",xmXh);
+                    object.putOpt("xmmc",xmmc);
+                    xmXh++;
+                }
+                String result = detail.getJcjg();
+                if (StrUtil.isNotBlank(result)) {
+                    result = result.replaceAll("鏈姤鍛婁粎瀵规湰娆℃鏌ヨ礋璐o紝涓村簥鍖荤敓渚濇嵁鐥呮儏濡傛湁鐤戦棶锛岃鍙婃椂澶嶆煡鎴栬繘涓�姝ユ鏌�", "");
+                    StringBuilder builder = new StringBuilder();
+                    if (StrUtil.isBlank(result.replaceAll("\n", "").trim())) continue;
+                    builder.append("    (").append(index).append(")").append(detail.getJcxm()).append(": ").append(result).append("\n");
+                    index++;
+                    result = builder.toString();
+                }
+                object.putOpt("result",result);
+            }
+            jczs.add(object);
+        }
+        entries.putOpt("jczs",jczs);
+
+        xmXh = 1;
+        JSONArray ysjy = JSONUtil.createArray();
+        for (Map.Entry<String, List<TjOrderYcxm>> entry : stringListMap.entrySet()) {
+            List<TjOrderYcxm> details = entry.getValue();
+            if(null !=details && !details.isEmpty()){
+                details= details.stream()
+                        .sorted(Comparator.comparing(TjOrderYcxm::getJcxm))
+                        .collect(Collectors.toList());
+                boolean isXmWrite = false;
+                int index1 = 1;
+                for (TjOrderYcxm detail : details) {
+                    JSONObject obj = JSONUtil.createObj();
+                    String xmmc = entry.getKey().toString();
+                    if (!isXmWrite) {
+                        isXmWrite = true;
+                        obj.putOpt("xh",xmXh);
+                        obj.putOpt("xmmc",xmmc);
+                        xmXh++;
+                    }
+                    String result = detail.getJcjg();
+                    if (StrUtil.isNotBlank(result)) {
+                        StringBuilder builder = new StringBuilder();
+                        if (StrUtil.isBlank(result.replaceAll("\n", "").trim())) continue;
+                        builder.append("    (").append(index1).append(")").append(detail.getJcxm()).append(": ").append(result).append("\n");
+                        index1++;
+                        result = builder.toString();
+                    }
+                    if (StrUtil.isNotBlank(result)) {
+                        obj.putOpt("result",result);
+                    } else {
+                        obj.putOpt("result","寤鸿瀹氭湡澶嶆煡");
+                    }
+                    String str = "     ";
+                    List<Map<String, Object>> maps = new ArrayList<>();
+
+                    String jynr = detail.getJynr();
+                    JSONArray array = JSONUtil.parseArray(jynr);
+                    for (Object object : array) {
+                        Map<String,Object> objectMap=new HashMap<>();
+                        JSONObject jsonObject = (JSONObject) object;
+                        String bt = jsonObject.getStr("bt");
+                        String nr = jsonObject.getStr("nr");
+                        objectMap.put("bt",bt);
+                        objectMap.put("nr",nr);
+                        if(null !=bt || null !=nr) maps.add(objectMap);
+                    }
+                    ArrayList<String> strings = new ArrayList<>();
+                    List<Map<String, Object>> collect1 = maps.stream().distinct().collect(Collectors.toList());
+                    for (Map<String, Object> objectMap : collect1) {
+                        String content = str + objectMap.get("bt").toString() + objectMap.get("nr").toString();
+                        if (StrUtil.isBlank(content)) content = "     ";
+                        strings.add(content);
+                    }
+                    obj.putOpt("contents",strings);
+                    ysjy.add(obj);
+                }
+            }
+        }
+
+        entries.putOpt("ysjy",ysjy);
+
         removeNullFields(entries);
         return JSONUtil.toBean(entries, AjaxResult.class);
     }
@@ -95,8 +221,18 @@
         JSONObject entries = JSONUtil.parseObj(json);
         String card = entries.getStr("card");
 //        TjCustomer customer = tjCustomerMapper.getCusInfo(card);
-        List<Map<String ,Object>> customer = tjCustomerMapper.getCusInfoList(card);
-        return AjaxResult.success(customer);
+        String key = sysConfigService.selectConfigByKey("h5OrXcxQueryDate");
+        if (StrUtil.isBlank(key)){
+            key = "2025-05-01";
+        }
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        try {
+            Date date = sdf.parse(key);
+            List<Map<String ,Object>> customer = tjCustomerMapper.getCusInfoList(card,date);
+            return AjaxResult.success(customer);
+        } catch (ParseException e) {
+            return AjaxResult.error();
+        }
     }
 
     /**
@@ -110,6 +246,15 @@
         JSONObject entries = JSONUtil.parseObj(json);
         String card = entries.getStr("card");
         String name = entries.getStr("name");
+        if (StrUtil.isBlank(name)){
+            LambdaQueryWrapper<TjCustomer> wrapper = new LambdaQueryWrapper<>();
+            wrapper.eq(TjCustomer::getCusIdcard,card);
+            wrapper.orderByDesc(TjCustomer::getCusId);
+            wrapper.last("LIMIT 1");
+            TjCustomer customer = tjCustomerMapper.selectOne(wrapper);
+            if (customer == null) return AjaxResult.error();
+            name = customer.getCusName();
+        }
         List<Map<String ,Object>> customer = tjCustomerMapper.getCusInfoListByCardAndName(card,name);
         return AjaxResult.success(customer);
     }

--
Gitblit v1.8.0