zhaowenxuan
2025-04-16 9006b682c6d78dc4ce9590c2657ff75f4adb172f
ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java
@@ -997,35 +997,29 @@
//        List<Map<String, Object>> jiancha = new ArrayList<>();
        paragraph = PdfUtils.setParagraph(defaultTitleFont, "检查综述:");
        paragraph.setSpacingBefore(3f);
        paragraph.setSpacingAfter(2f);
        document2.add(paragraph);
        int xmXh = 1;
        Map<Long, List<TjOrderDetail>> collect = orderDetails.stream().collect(Collectors.groupingBy(TjOrderDetail::getProId));
        LambdaQueryWrapper<TjOrderYcxm> wq = new LambdaQueryWrapper<>();
        wq.eq(TjOrderYcxm::getTjh, tjOrder.getTjNumber());
        List<TjOrderYcxm> ycxms = ycxmService.list(wq);
        boolean isBr = false;
        if (null != ycxms && !ycxms.isEmpty()) {
            paragraph = PdfUtils.setParagraph(defaultTitleFont, "检查综述:");
            paragraph.setSpacingBefore(3f);
            paragraph.setSpacingAfter(2f);
            document2.add(paragraph);
            isBr = true;
            Map<String, List<TjOrderYcxm>> stringListMap = ycxms.stream().collect(Collectors.groupingBy(TjOrderYcxm::getParentName));
            for (Map.Entry<String, List<TjOrderYcxm>> entry : stringListMap.entrySet()) {
                List<TjOrderYcxm> details = entry.getValue();
                String xmmc = entry.getKey();
//                    String xmmc = details.get(0).getProName();
                boolean isXmWrite = false;
                int index = 1;
                String szyssy="";
                StringBuilder builders = new StringBuilder();
                for (TjOrderYcxm detail : details) {
//                    if(detail.getJcxm().contains("舒张压")||detail.getJcxm().contains("收缩压")){
//                        builders.append(detail.getJcxm()).append(detail.getJcjg()).append(" ");
//                        szyssy+=builders.toString();
//                        continue;
//                    }
                    if (!isXmWrite) {
                        paragraph = new Paragraph(xmXh + ".  " + xmmc, defaultFont);
                        paragraph.setAlignment(Element.ALIGN_LEFT);
@@ -1038,7 +1032,8 @@
                        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");
                        builder.append("    (").append(index).append(")").append(detail.getJcxm()).append(": ")
                                .append(result.replaceAll("\n", "").trim()).append("\n");
                        index++;
                        result = builder.toString();
@@ -1047,22 +1042,6 @@
                    paragraph.setAlignment(Element.ALIGN_LEFT);
                    document2.add(paragraph);
                }
//                if(StringUtil.isNotBlank(szyssy)){
//                    if (!isXmWrite) {
//                        paragraph = new Paragraph(xmXh + ".  " + xmmc, defaultFont);
//                        paragraph.setAlignment(Element.ALIGN_LEFT);
//                        document2.add(paragraph);
//                        isXmWrite = true;
//                    }
//                    StringBuilder builder = new StringBuilder();
//                    builder.append("    (").append(index).append(")").append(szyssy).append("\n");
//                    szyssy = builder.toString();
//                    paragraph = new Paragraph(szyssy, defaultFont);
//                    paragraph.setAlignment(Element.ALIGN_LEFT);
//                    document2.add(paragraph);
//                }
                if (isXmWrite) {
                    paragraph = PdfUtils.setParagraph(defaultFont, "");
                    paragraph.setLeading(0f);
@@ -1072,7 +1051,17 @@
                    xmXh++;
                }
            }
        }else {
        }
        /* else {
            if (!collect.isEmpty() || !map.isEmpty()){
                paragraph = PdfUtils.setParagraph(defaultTitleFont, "检查综述:");
                paragraph.setSpacingBefore(3f);
                paragraph.setSpacingAfter(2f);
                document2.add(paragraph);
                isBr = true;
            }
            for (Map.Entry<String, List<CsProVo>> deptEntry : listMap.entrySet()) {
                List<CsProVo> proVos = deptEntry.getValue();
                if (proVos.size() > 1) {
@@ -1159,21 +1148,26 @@
                    }
                }
            }
        } */
        if(isBr) {
            paragraph = PdfUtils.setParagraph(defaultFont, "");
            paragraph.setLeading(0f);
            paragraph.setSpacingBefore(10f);
            paragraph.setSpacingAfter(10f);
            document2.add(paragraph);
        }
        paragraph = PdfUtils.setParagraph(defaultFont, "");
        paragraph.setLeading(0f);
        paragraph.setSpacingBefore(10f);
        paragraph.setSpacingAfter(10f);
        document2.add(paragraph);
        paragraph = PdfUtils.setParagraph(defaultTitleFont, "医生建议:");
        paragraph.setSpacingBefore(3f);
        paragraph.setSpacingAfter(2f);
        document2.add(paragraph);
        xmXh = 0;
        if (null != ycxms && !ycxms.isEmpty()) {
            paragraph = PdfUtils.setParagraph(defaultTitleFont, "医生建议:");
            paragraph.setSpacingBefore(3f);
            paragraph.setSpacingAfter(2f);
            document2.add(paragraph);
            Map<String, List<TjOrderYcxm>> stringListMap = ycxms.stream().collect(Collectors.groupingBy(TjOrderYcxm::getParentName));
@@ -1199,7 +1193,8 @@
                        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");
                            builder.append("    (").append(index1).append(")").append(detail.getJcxm()).append(": ")
                                    .append(result.replaceAll("\n", "").trim()).append("\n");
                            index1++;
                            result = builder.toString();
@@ -1398,7 +1393,16 @@
                    }
                }
            }*/
        } else {
        }
        /* else {
            if (!collect.isEmpty() || !map.isEmpty()){
                paragraph = PdfUtils.setParagraph(defaultTitleFont, "医生建议:");
                paragraph.setSpacingBefore(3f);
                paragraph.setSpacingAfter(2f);
                document2.add(paragraph);
            }
            for (Map.Entry<String, List<CsProVo>> deptEntry : listMap.entrySet()) {
                List<CsProVo> proVos = deptEntry.getValue();
                if (proVos.size() > 1) {
@@ -1536,7 +1540,7 @@
                    }
                }
            }
        }
        } */
        for (int i = 0; i < 1; i++) {
            paragraph = PdfUtils.setParagraph(defaultFont, "");
@@ -2225,7 +2229,61 @@
                                    paragraph.setLeading(5f);
                                    document1.add(ppp);
                                }
                            } else {
                            }
                            // 碳14
//                            else if (value.get(0).getPid().equals("1870371396991955967")){
//                                Font remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE);
//                                Paragraph ppp = new Paragraph("阳性参考值(Delta Over Baseline(DPM)):", remarkFonts);
//                                paragraph.setAlignment(Element.ALIGN_LEFT);
//                                paragraph.setLeading(5f);
//                                document1.add(ppp);
//
//                                LineSeparator objectName = new LineSeparator();
//                                objectName.setOffset(-5);
//                                document1.add(objectName);
//
//                                ppp = new Paragraph("DPM值:         >      149                阳性", remarkFonts);
//                                paragraph.setAlignment(Element.ALIGN_LEFT);
//                                paragraph.setLeading(5f);
//                                document1.add(ppp);
//
//                                ppp = new Paragraph("                ⩽      99                 阴性", remarkFonts);
//                                paragraph.setAlignment(Element.ALIGN_LEFT);
//                                paragraph.setLeading(5f);
//                                document1.add(ppp);
//
//                                objectName.setOffset(-5);
//                                document1.add(objectName);
//
//
//                                int result = Integer.parseInt(value.get(0).getProResult());
//                                String after = "";
//                                if (result > 149){
//                                    after = "阳性";
//                                }else {
//                                    after = "阴性";
//                                }
//                                ppp = new Paragraph("检测结果: DPM=" + result, remarkFonts);
//                                paragraph.setAlignment(Element.ALIGN_LEFT);
//                                paragraph.setLeading(5f);
//                                document1.add(ppp);
//
//                                ppp = new Paragraph("", remarkFonts);
//                                paragraph.setAlignment(Element.ALIGN_LEFT);
//                                paragraph.setLeading(5f);
//                                document1.add(ppp);
//                                ppp = new Paragraph("", remarkFonts);
//                                paragraph.setAlignment(Element.ALIGN_LEFT);
//                                paragraph.setLeading(5f);
//                                document1.add(ppp);
//                                if (StrUtil.isNotBlank(entry.getKey().getRemark())) {
//                                    ppp = new Paragraph("结论:" + entry.getKey().getRemark(), remarkFonts);
//                                    paragraph.setAlignment(Element.ALIGN_LEFT);
//                                    paragraph.setLeading(5f);
//                                    document1.add(ppp);
//                                }
//                            }
                            else {
                                String[] titles = {"体检项目", "体检结果", "单位"};
                                Font headFont = PdfUtils.setFont(DEFAULT_FONT_SIZE);
                                Font textFont = PdfUtils.setFont(DEFAULT_FONT_SIZE);
@@ -2236,18 +2294,22 @@
                            Font remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE);
                            if (isPacs) {
                                Paragraph pp = PdfUtils.setParagraph(remarkFonts, "检查所见:");
                                Paragraph pp;
                                Paragraph ppp;
                                if (StrUtil.isNotBlank(value.get(0).getSj())) {
                                    pp = PdfUtils.setParagraph(remarkFonts, "检查所见:");
                                    document1.add(pp);
                                    ppp = new Paragraph(value.get(0).getSj(), remarkFonts);
                                    paragraph.setAlignment(Element.ALIGN_LEFT);
                                    paragraph.setLeading(5f);
                                    document1.add(ppp);
                                }
                                pp = PdfUtils.setParagraph(remarkFonts, "检查提示:"+value.get(0).getTs());
                                document1.add(pp);
                                Paragraph ppp = new Paragraph(value.get(0).getSj(), remarkFonts);
                                paragraph.setAlignment(Element.ALIGN_LEFT);
                                paragraph.setLeading(5f);
                                document1.add(ppp);
                                pp = PdfUtils.setParagraph(remarkFonts, "结论:");
                                document1.add(pp);
                                ppp = new Paragraph(value.get(0).getTs(), remarkFonts);
                                paragraph.setAlignment(Element.ALIGN_LEFT);
                                paragraph.setLeading(5f);
                                document1.add(ppp);
//                                ppp = new Paragraph(value.get(0).getTs(), remarkFonts);
//                                paragraph.setAlignment(Element.ALIGN_LEFT);
//                                paragraph.setLeading(5f);
//                                document1.add(ppp);
                            } else {
                                if (value.get(0).getPid().equals("1862852701533012001")) {
                                    remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE);
@@ -2421,18 +2483,22 @@
                            Font remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE);
                            if (isPacs) {
                                Paragraph pp = PdfUtils.setParagraph(remarkFonts, "检查所见:");
                                Paragraph pp;
                                Paragraph ppp;
                                if (StrUtil.isNotBlank(value.get(0).getSj()) && StrUtil.isNotBlank(value.get(0).getProResult())) {
                                    pp = PdfUtils.setParagraph(remarkFonts, "检查所见:");
                                    document1.add(pp);
                                    ppp = new Paragraph(value.get(0).getSj() != null ? value.get(0).getSj() : value.get(0).getProResult(), remarkFonts);
                                    paragraph.setAlignment(Element.ALIGN_LEFT);
                                    paragraph.setLeading(5f);
                                    document1.add(ppp);
                                }
                                pp = PdfUtils.setParagraph(remarkFonts, "检查提示:"+ (value.get(0).getTs() != null ? value.get(0).getTs() : value.get(0).getProResult()));
                                document1.add(pp);
                                Paragraph ppp = new Paragraph(value.get(0).getSj() != null ? value.get(0).getSj() : value.get(0).getProResult(), remarkFonts);
                                paragraph.setAlignment(Element.ALIGN_LEFT);
                                paragraph.setLeading(5f);
                                document1.add(ppp);
                                pp = PdfUtils.setParagraph(remarkFonts, "结论:");
                                document1.add(pp);
                                ppp = new Paragraph(value.get(0).getTs() != null ? value.get(0).getTs() : value.get(0).getProResult(), remarkFonts);
                                paragraph.setAlignment(Element.ALIGN_LEFT);
                                paragraph.setLeading(5f);
                                document1.add(ppp);
//                                ppp = new Paragraph(value.get(0).getTs() != null ? value.get(0).getTs() : value.get(0).getProResult(), remarkFonts);
//                                paragraph.setAlignment(Element.ALIGN_LEFT);
//                                paragraph.setLeading(5f);
//                                document1.add(ppp);
                            } else {
                                if (value.get(0).getPid().equals("1862852701533012001")) {
                                    remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE);
@@ -2614,10 +2680,18 @@
        List<LtkjHysqd> list = ltkjHysqdService.list(ltkjHysqdLambdaQueryWrapper);
        HashMap<String, Object> data = new HashMap<>();
        for (LtkjHysqd hysqd : list) {
            LambdaQueryWrapper<LtkjHybgd> ltkjHybgdLambdaQueryWrapper = new LambdaQueryWrapper<>();
            ltkjHybgdLambdaQueryWrapper.eq(LtkjHybgd::getTmh, hysqd.getTmh());
            List<LtkjHybgd> hybgds = ltkjHybgdService.list(ltkjHybgdLambdaQueryWrapper);
//            LambdaQueryWrapper<LtkjHybgd> ltkjHybgdLambdaQueryWrapper = new LambdaQueryWrapper<>();
//            ltkjHybgdLambdaQueryWrapper.eq(LtkjHybgd::getTmh, hysqd.getTmh());
//            List<LtkjHybgd> hybgds = ltkjHybgdService.list(ltkjHybgdLambdaQueryWrapper);
            List<LtkjHybgd> hybgds = ltkjHybgdService.getReportJianYanBaoGaoDanList(hysqd.getTmh());
            if(null !=hybgds && !hybgds.isEmpty()){
//                hybgds = hybgds.stream().distinct().collect(Collectors.toList());
                hybgds = new ArrayList<>(hybgds.stream()
                        .collect(Collectors.toMap(LtkjHybgd::getJcxm, p -> p, (existing, replacement) -> existing))
                        .values());
//                hybgds=hybgds.stream().sorted(Comparator.comparing(LtkjHybgd::getJcxm, Collator.getInstance(Locale.CHINA))).collect(Collectors.toList());
//                hybgds = hybgds.stream()
//                        .sorted(Comparator.comparingInt(