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 |  154 +++++++++++++++++++++++++++------------------------
 1 files changed, 82 insertions(+), 72 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 76e70ae..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
@@ -115,25 +115,96 @@
         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));
-        JSONArray jczs = JSONUtil.createArray();
-        JSONArray ysjy = JSONUtil.createArray();
+        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();
-            details.sort(Comparator.comparing(TjOrderYcxm::getJcxm));
+            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);
 
-            JSONObject jczObject = processDetails(details, xmmc, xmXh, true);
-            jczs.add(jczObject);
+        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<>();
 
-            JSONObject ysjyObject = processDetails(details, xmmc, xmXh, false);
-            ysjy.add(ysjyObject);
+                    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("jczs", jczs);
-        entries.putOpt("ysjy", ysjy);
+        entries.putOpt("ysjy",ysjy);
 
         removeNullFields(entries);
         return JSONUtil.toBean(entries, AjaxResult.class);
@@ -246,67 +317,6 @@
         log.info("ltkj {}鐨勪綋妫�鎶ュ憡鏌ヨ璇︽儏"+maps,tjNumber);
         return AjaxResult.success(maps);
 
-    }
-
-    private JSONObject processDetails(List<TjOrderYcxm> details, String xmmc, int xmXh, boolean isJcz) {
-        JSONObject object = JSONUtil.createObj();
-        boolean isXmWrite = false;
-        int index = 1;
-        for (TjOrderYcxm detail : details) {
-            if (!isXmWrite) {
-                object.putOpt("xh", xmXh++);
-                object.putOpt("xmmc", xmmc);
-                isXmWrite = true;
-            }
-            String result = detail.getJcjg();
-            if (StrUtil.isNotBlank(result)) {
-                result = result.replaceAll("鏈姤鍛婁粎瀵规湰娆℃鏌ヨ礋璐o紝涓村簥鍖荤敓渚濇嵁鐥呮儏濡傛湁鐤戦棶锛岃鍙婃椂澶嶆煡鎴栬繘涓�姝ユ鏌�", "")
-                        .replaceAll("\n", "").trim();
-                if (StrUtil.isNotBlank(result)) {
-                    StringBuilder builder = new StringBuilder();
-                    builder.append("    (").append(index).append(")").append(detail.getJcxm())
-                            .append(": ").append(result).append("\n");
-                    index++;
-                    result = builder.toString();
-                }
-            }
-
-            if (StrUtil.isNotBlank(result)) {
-                object.putOpt("result", result);
-            } else {
-                object.putOpt("result", isJcz ? result : "寤鸿瀹氭湡澶嶆煡");
-            }
-            if (!isJcz) {
-                JSONArray contents = processJynr(detail.getJynr());
-                object.putOpt("contents", contents);
-            }
-        }
-        return object;
-    }
-
-    private JSONArray processJynr(String jynr) {
-        JSONArray contents = JSONUtil.createArray();
-        List<Map<String, Object>> maps = JSONUtil.parseArray(jynr).stream()
-                .map(o -> {
-                    JSONObject jsonObject = (JSONObject) o;
-                    Map<String, Object> map = new HashMap<>();
-                    String bt = jsonObject.getStr("bt");
-                    String nr = jsonObject.getStr("nr");
-                    if (StrUtil.isNotBlank(bt) || StrUtil.isNotBlank(nr)) {
-                        map.put("bt", bt);
-                        map.put("nr", nr);
-                    }
-                    return map;
-                })
-                .filter(map -> !map.isEmpty())
-                .distinct()
-                .collect(Collectors.toList());
-
-        for (Map<String, Object> map : maps) {
-            String content = "     " + map.get("bt") + map.get("nr");
-            contents.add(StrUtil.isBlank(content) ? "     " : content);
-        }
-        return contents;
     }
 
 }

--
Gitblit v1.8.0