From 6b74e7a581a89d59e3e61e1b57a4570a3d031bc5 Mon Sep 17 00:00:00 2001
From: zhaowenxuan <chacca165@163.com>
Date: 星期四, 05 六月 2025 16:25:44 +0800
Subject: [PATCH] 报告数据接口增加返回检查综述和医师建议

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/api/DefaultController.java |  214 +++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 204 insertions(+), 10 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 399ea2e..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,22 +1,39 @@
 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;
+import io.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import java.io.File;
+import java.io.IOException;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.stream.Collectors;
+
+import static com.ltkj.framework.datasource.DynamicDataSourceContextHolder.log;
 
 /**
  * @Company: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃
@@ -33,6 +50,14 @@
     private TjCheckController tjCheckController;
     @Autowired
     private TjCustomerMapper tjCustomerMapper;
+    @Autowired
+    private ITjOrderService tjOrderService;
+    @Autowired
+    private ITjOrderDetailService detailService;
+    @Autowired
+    private ISysConfigService sysConfigService;
+    @Autowired
+    private TjOrderYcxmService tjOrderYcxmService;
 
     /**
      * 鎻愪緵缁欎笁鏂硅皟鐢ㄧ殑鎶ュ憡鏌ョ湅鎺ュ彛
@@ -40,10 +65,34 @@
      * @param json
      */
     @PostMapping("/viewReport")
-    public void viewReport(HttpServletResponse response, @RequestBody String json){
+    public void viewReport(HttpServletResponse response, @RequestBody String json) throws IOException {
         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;
+        }
         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);
     }
 
     /**
@@ -54,7 +103,109 @@
     @PostMapping("/reportData")
     public AjaxResult reportData(@RequestBody String json){
         String tjNum = JSONUtil.parseObj(json).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("鏆傛棤鏁版嵁锛侊紒");
+        }
         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);
     }
@@ -70,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();
+        }
     }
 
     /**
@@ -85,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);
     }
@@ -125,4 +295,28 @@
         }
     }
 
+
+
+    /**
+     * 灏忕▼搴忕偣鍑讳綋妫�鎶ュ憡鏌ヨ璇︽儏,鏄剧ず韬珮浣撻噸浣撻噸鎸囨暟鏀剁缉鍘嬭垝寮犲帇
+     */
+    @GetMapping("/getShenGaoTiZhong")
+    @ApiOperation(value = "灏忕▼搴�-浣撴鎶ュ憡鏌ヨ璇︽儏")
+    public AjaxResult getShenGaoTiZhong(@RequestParam @ApiParam(value = "浣撴鍙�") String tjNumber) {
+//        Map<String, Object> objectMap = new HashMap<>();
+        LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
+        wq1.eq(TjOrder::getTjNumber, tjNumber);
+        wq1.eq(TjOrder::getCheckStatus, 1);
+        TjOrder one = tjOrderService.getOne(wq1);
+        if (one == null) {
+            return AjaxResult.success("浣撴鏆傛湭瀹屾垚锛侊紒");
+        }
+
+        List<ShenGaoTiZhongVo> maps = detailService.getShenGaoTiZhongList(one.getTjNumber());
+
+        log.info("ltkj {}鐨勪綋妫�鎶ュ憡鏌ヨ璇︽儏"+maps,tjNumber);
+        return AjaxResult.success(maps);
+
+    }
+
 }

--
Gitblit v1.8.0