zhaowenxuan
2024-12-12 7bd5bf792d9f2ba900f3703d1a7e6a1d78fee98e
ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java
@@ -691,7 +691,7 @@
        cell.setPaddingTop(10);
        cell.setPaddingBottom(10);
//        cell.setPhrase(new Phrase("何小婷", zongJianFont));
        cell.setPhrase(new Phrase(tjOrder.getCheckDoctor(), zongJianFont));
        cell.setPhrase(new Phrase(sysConfigService.selectConfigByKey("pdf_report_zongjianysname"), zongJianFont));
        tableQz.addCell(cell);
        cell = new PdfPCell();
@@ -1009,12 +1009,14 @@
                        paragraph.setAlignment(Element.ALIGN_LEFT);
                        document2.add(paragraph);
                    }
                    if (isXmWrite) {
                    paragraph = PdfUtils.setParagraph(defaultFont, "");
                    paragraph.setLeading(0f);
                    paragraph.setSpacingBefore(0f);
                    paragraph.setSpacingAfter(5f);
                    document2.add(paragraph);
                    xmXh++;
                    }
                }
                // 检验
@@ -1042,11 +1044,13 @@
                            index++;
                        }
                    }
                    if(isXmWrite) {
                    paragraph = PdfUtils.setParagraph(defaultFont, "");
                    paragraph.setSpacingBefore(0f);
                    paragraph.setSpacingAfter(5f);
                    document2.add(paragraph);
                    xmXh++;
                    }
                }
            }
        }
@@ -1096,6 +1100,78 @@
        paragraph.setSpacingAfter(2f);
        document2.add(paragraph);
        xmXh = 0;
        for (Map.Entry<String, List<CsProVo>> deptEntry : listMap.entrySet()) {
            List<CsProVo> proVos = deptEntry.getValue();
            if (proVos.size() > 1) {
                proVos = proVos.stream()
                        .sorted(Comparator.comparingLong(CsProVo::getProId))
                        .collect(Collectors.toList());
            }
            ArrayList<String> jianYanYiDa = new ArrayList<>();
            for (CsProVo proVo : proVos) {
                // 检查
                for (Map.Entry<Long, List<TjOrderDetail>> entry : collect.entrySet()) {
                    if (!entry.getKey().equals(proVo.getProId())) continue;
                    List<TjOrderDetail> details = entry.getValue();
                    String xmmc = details.get(0).getProName();
                    boolean isXmWrite = false;
                    int index = 1;
                    for (TjOrderDetail detail : details) {
                        if (!isXmWrite) {
                            xmXh++;
                            paragraph = new Paragraph("【"+xmXh+"."+xmmc+"】", defaultFont);
                            paragraph.setAlignment(Element.ALIGN_LEFT);
                            document2.add(paragraph);
                            isXmWrite = true;
                        }
                        String result = detail.getProResult();
                        if (StrUtil.isNotBlank(result)) {
//                    result = result.replaceAll(" ","").replaceAll("\t","");
//                    result = result.replaceAll("\n本报告仅对本次检查负责,临床医生依据病情如有疑问,请及时复查或进一步检查", "");
//                    result = "\n      " + result.replaceAll("\n", "\n      ");
                            int index1 = 1;
                            String[] split = result.split("\n");
                            boolean contains = result.contains("本报告仅对本次检查负责,临床医生依据病情如有疑问,请及时复查或进一步检查");
                            StringBuilder builder = new StringBuilder();
                            for (String s : split) {
                                if (StrUtil.isBlank(s.replaceAll("\n","").trim())) continue;
                                builder.append("    (").append(index1).append(")").append(s).append("\n");
                                index1++;
                            }
                            if (!contains) builder.append("    (").append(index1).append(")").append("本报告仅对本次检查负责,临床医生依据病情如有疑问,请及时复查或进一步检查");
                            else builder.substring(0,builder.length() - 1);
                            result = builder.toString();
                        }
//                String content = "  (" + index + ") " + detail.getProName() + ":" + result;
//                content = content.replaceAll("[\\n\\r]+$", "");
//                content = content.replaceAll("\\s+$", "");
//                paragraph = new Paragraph(content, defaultFont);
                        if (StrUtil.isNotBlank(result)) {
                            paragraph = new Paragraph(result, defaultFont);
                            paragraph.setAlignment(Element.ALIGN_LEFT);
                            document2.add(paragraph);
                        }else {
                            paragraph = new Paragraph("建议定期复查",defaultFont);
                            paragraph.setAlignment(Element.ALIGN_LEFT);
                            document2.add(paragraph);
                        }
                        String str = "     ";
                        List<Map<String, Object>> maps = tjRulesService.getyichangxiangmujianyiguize(entry.getKey().toString(),"","",tjOrder.getTjNumber());
                        for (Map<String, Object> objectMap : maps) {
                            paragraph = new Paragraph(str+objectMap.get("bt").toString()+objectMap.get("nr").toString(),defaultFont);
                            paragraph.setAlignment(Element.ALIGN_LEFT);
                            document2.add(paragraph);
                        }
                        index++;
                        paragraph = PdfUtils.setParagraph(defaultFont, "");
                        paragraph.setLeading(0f);
                        paragraph.setSpacingBefore(0f);
                        paragraph.setSpacingAfter(5f);
                        document2.add(paragraph);
                    }
                }
                // 检验
        for (Map.Entry<String, Object> item : map.entrySet()) {
            String xmmc = item.getKey();
            HashMap<String, Object> entryValue = (HashMap<String, Object>) item.getValue();
@@ -1103,7 +1179,10 @@
            boolean isXmWrite = false;
            int index = 1;
            for (List<String> i : lists) {
                        if (!i.get(6).contains(String.valueOf(proVo.getProId()))) continue;
                if (i.contains("↓") || i.contains("↑")) {
                            if (jianYanYiDa.contains(i.get(5))) continue;
                            jianYanYiDa.add(i.get(5));
                    if (!isXmWrite) {
                        xmXh++;
                        paragraph = new Paragraph("【"+xmXh+"."+xmmc+"】",defaultFont);
@@ -1159,66 +1238,16 @@
                    index++;
                }
            }
                    if (isXmWrite) {
            paragraph = PdfUtils.setParagraph(defaultFont, "");
            paragraph.setSpacingBefore(0f);
            paragraph.setSpacingAfter(5f);
            document2.add(paragraph);
        }
                }
            }
        }
        for (Map.Entry<Long, List<TjOrderDetail>> entry : orderDetails.stream().collect(Collectors.groupingBy(TjOrderDetail::getProId)).entrySet()) {
            List<TjOrderDetail> details = entry.getValue();
            String xmmc = details.get(0).getProName();
            boolean isXmWrite = false;
            int index = 1;
            for (TjOrderDetail detail : details) {
                if (!isXmWrite) {
                    xmXh++;
                    paragraph = new Paragraph("【"+xmXh+"."+xmmc+"】", defaultFont);
                    paragraph.setAlignment(Element.ALIGN_LEFT);
                    document2.add(paragraph);
                    isXmWrite = true;
                }
                String result = detail.getProResult();
                if (StrUtil.isNotBlank(result)) {
//                    result = result.replaceAll(" ","").replaceAll("\t","");
//                    result = result.replaceAll("\n本报告仅对本次检查负责,临床医生依据病情如有疑问,请及时复查或进一步检查", "");
//                    result = "\n      " + result.replaceAll("\n", "\n      ");
                    int index1 = 1;
                    String[] split = result.split("\n");
                    boolean contains = result.contains("本报告仅对本次检查负责,临床医生依据病情如有疑问,请及时复查或进一步检查");
                    StringBuilder builder = new StringBuilder();
                    for (String s : split) {
                        if (StrUtil.isBlank(s.replaceAll("\n","").trim())) continue;
                        builder.append("    (").append(index1).append(")").append(s).append("\n");
                        index1++;
                    }
                    if (!contains) builder.append("    (").append(index1).append(")").append("本报告仅对本次检查负责,临床医生依据病情如有疑问,请及时复查或进一步检查");
                    else builder.substring(0,builder.length() - 1);
                    result = builder.toString();
                }
//                String content = "  (" + index + ") " + detail.getProName() + ":" + result;
//                content = content.replaceAll("[\\n\\r]+$", "");
//                content = content.replaceAll("\\s+$", "");
//                paragraph = new Paragraph(content, defaultFont);
                paragraph = new Paragraph(result, defaultFont);
                paragraph.setAlignment(Element.ALIGN_LEFT);
                document2.add(paragraph);
                String str = "     ";
                List<Map<String, Object>> maps = tjRulesService.getyichangxiangmujianyiguize(entry.getKey().toString(),"","",tjOrder.getTjNumber());
                for (Map<String, Object> objectMap : maps) {
                    paragraph = new Paragraph(str+objectMap.get("bt").toString()+objectMap.get("nr").toString(),defaultFont);
                    paragraph.setAlignment(Element.ALIGN_LEFT);
                    document2.add(paragraph);
                }
                index++;
                paragraph = PdfUtils.setParagraph(defaultFont, "");
                paragraph.setLeading(0f);
                paragraph.setSpacingBefore(0f);
                paragraph.setSpacingAfter(5f);
                document2.add(paragraph);
            }
        }
@@ -1320,8 +1349,8 @@
        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
        cell.setPaddingTop(10);
        cell.setPaddingBottom(10);
//        cell.setPhrase(new Phrase("何小婷", zongJianFont));
        cell.setPhrase(new Phrase(tjOrder.getCheckDoctor(), zongJianFont));
        cell.setPhrase(new Phrase(sysConfigService.selectConfigByKey("pdf_report_zongjianysname"), zongJianFont));
//        cell.setPhrase(new Phrase(tjOrder.getCheckDoctor(), zongJianFont));
        tableQz.addCell(cell);
        cell = new PdfPCell();