zhaowenxuan
7 天以前 0892d843cd394f383ff50f480f7f22f2ec3829bc
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("本报告仅对本次检查负责,临床医生依据病情如有疑问,请及时复查或进一步检查", "");
                    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("本报告仅对本次检查负责,临床医生依据病情如有疑问,请及时复查或进一步检查", "")
                        .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;
    }
}