From cd128b36357e7025b29776d16fe44105e9e5b735 Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期一, 17 二月 2025 17:49:41 +0800
Subject: [PATCH] zjh20250217

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java |  247 ++++++++++++++++++++++--------------------------
 1 files changed, 114 insertions(+), 133 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java
index b24b97e..ea284e3 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java
@@ -1002,115 +1002,141 @@
 
         int xmXh = 1;
 
-//        orderDetails=orderDetails.stream().sorted(Comparator.comparing(TjOrderDetail::getProName, Collator.getInstance(Locale.CHINA))).collect(Collectors.toList());
-//        orderDetails = orderDetails.stream()
-//                .sorted(Comparator.comparingInt(
-//                        tjPdfVO -> tjPdfVO.getProName().length() // 鏍规嵁鍚嶅瓧鐨勯暱搴︽帓搴�
-//                ))
-//                .collect(Collectors.toList());
-
         Map<Long, List<TjOrderDetail>> collect = orderDetails.stream().collect(Collectors.groupingBy(TjOrderDetail::getProId));
-        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) {
+        LambdaQueryWrapper<TjOrderYcxm> wq = new LambdaQueryWrapper<>();
+        wq.eq(TjOrderYcxm::getTjh, tjOrder.getTjNumber());
+        List<TjOrderYcxm> ycxms = ycxmService.list(wq);
+        if (null != ycxms && !ycxms.isEmpty()) {
 
-                // 妫�鏌�
-                for (Map.Entry<Long, List<TjOrderDetail>> entry : collect.entrySet()) {
-                    if (!entry.getKey().equals(proVo.getProId())) continue;
-                    List<TjOrderDetail> details = entry.getValue();
-                    String xmmc = proVo.getProName();
+            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;
-
-//                    details=details.stream().sorted(Comparator.comparing(TjOrderDetail::getProName, Collator.getInstance(Locale.CHINA))).collect(Collectors.toList());
-//                    details = details.stream()
-//                            .sorted(Comparator.comparingInt(
-//                                    tjPdfVO -> tjPdfVO.getProName().length() // 鏍规嵁鍚嶅瓧鐨勯暱搴︽帓搴�
-//                            ))
-//                            .collect(Collectors.toList());
-                    int index = 1;
-                    for (TjOrderDetail detail : details) {
+                boolean isXmWrite = false;
+                int index = 1;
+                for (TjOrderYcxm detail : details) {
 //                        if (!entry.getKey().equals(detail.getProId())) continue;
-                        if (!isXmWrite) {
-                            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("鏈姤鍛婁粎瀵规湰娆℃鏌ヨ礋璐o紝涓村簥鍖荤敓渚濇嵁鐥呮儏濡傛湁鐤戦棶锛岃鍙婃椂澶嶆煡鎴栬繘涓�姝ユ鏌�", "");
-//                            result = result.replaceAll("", "");
-//                            String[] split = result.split("\n");
-//                            StringBuilder builder = new StringBuilder();
-//                            for (String s : split) {
-//                                if (StrUtil.isBlank(s.replaceAll("\n", "").trim())) continue;
-//                                builder.append("    (").append(index).append(")").append(s).append("\n");
-//                                index++;
-//                            }
-                            StringBuilder builder = new StringBuilder();
-                            if (StrUtil.isBlank(result.replaceAll("\n", "").trim())) continue;
-                            builder.append("    (").append(index).append(")").append(detail.getProName()).append(": ").append(result).append("\n");
-                            index++;
-
-                            result = builder.toString();
-                        }
-                        paragraph = new Paragraph(result, defaultFont);
+                    if (!isXmWrite) {
+                        paragraph = new Paragraph(xmXh + ".  " + xmmc, defaultFont);
                         paragraph.setAlignment(Element.ALIGN_LEFT);
                         document2.add(paragraph);
+                        isXmWrite = true;
                     }
-                    if (isXmWrite) {
-                        paragraph = PdfUtils.setParagraph(defaultFont, "");
-                        paragraph.setLeading(0f);
-                        paragraph.setSpacingBefore(0f);
-                        paragraph.setSpacingAfter(5f);
-                        document2.add(paragraph);
-                        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++;
 
-                // 妫�楠�
-                for (Map.Entry<String, Object> item : map.entrySet()) {
-                    String xmmc = item.getKey();
-                    HashMap<String, Object> entryValue = (HashMap<String, Object>) item.getValue();
-                    ArrayList<List<String>> lists = (ArrayList<List<String>>) entryValue.get("data");
-                    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));
+                        result = builder.toString();
+                    }
+                    paragraph = new Paragraph(result, defaultFont);
+                    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++;
+                }
+            }
+        }else {
+            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 = proVo.getProName();
+//                    String xmmc = details.get(0).getProName();
+                        boolean isXmWrite = false;
+                        int index = 1;
+                        for (TjOrderDetail detail : details) {
+//                        if (!entry.getKey().equals(detail.getProId())) continue;
                             if (!isXmWrite) {
                                 paragraph = new Paragraph(xmXh + ".  " + xmmc, defaultFont);
                                 paragraph.setAlignment(Element.ALIGN_LEFT);
                                 document2.add(paragraph);
                                 isXmWrite = true;
                             }
-                            String content = "    (" + index + ") " + i.get(0) + "锛�" + i.get(1) + "  " + i.get(3) + "  " + i.get(4) + "      " + i.get(2);
-                            paragraph = new Paragraph(content, defaultFont);
+                            String result = detail.getProResult();
+                            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.getProName()).append(": ").append(result).append("\n");
+                                index++;
+
+                                result = builder.toString();
+                            }
+                            paragraph = new Paragraph(result, defaultFont);
                             paragraph.setAlignment(Element.ALIGN_LEFT);
                             document2.add(paragraph);
-                            index++;
+                        }
+                        if (isXmWrite) {
+                            paragraph = PdfUtils.setParagraph(defaultFont, "");
+                            paragraph.setLeading(0f);
+                            paragraph.setSpacingBefore(0f);
+                            paragraph.setSpacingAfter(5f);
+                            document2.add(paragraph);
+                            xmXh++;
                         }
                     }
-                    if (isXmWrite) {
-                        paragraph = PdfUtils.setParagraph(defaultFont, "");
-                        paragraph.setSpacingBefore(0f);
-                        paragraph.setSpacingAfter(5f);
-                        document2.add(paragraph);
-                        xmXh++;
+
+                    // 妫�楠�
+                    for (Map.Entry<String, Object> item : map.entrySet()) {
+                        String xmmc = item.getKey();
+                        HashMap<String, Object> entryValue = (HashMap<String, Object>) item.getValue();
+                        ArrayList<List<String>> lists = (ArrayList<List<String>>) entryValue.get("data");
+                        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) {
+                                    paragraph = new Paragraph(xmXh + ".  " + xmmc, defaultFont);
+                                    paragraph.setAlignment(Element.ALIGN_LEFT);
+                                    document2.add(paragraph);
+                                    isXmWrite = true;
+                                }
+                                String content = "    (" + index + ") " + i.get(0) + "锛�" + i.get(1) + "  " + i.get(3) + "  " + i.get(4) + "      " + i.get(2);
+                                paragraph = new Paragraph(content, defaultFont);
+                                paragraph.setAlignment(Element.ALIGN_LEFT);
+                                document2.add(paragraph);
+                                index++;
+                            }
+                        }
+                        if (isXmWrite) {
+                            paragraph = PdfUtils.setParagraph(defaultFont, "");
+                            paragraph.setSpacingBefore(0f);
+                            paragraph.setSpacingAfter(5f);
+                            document2.add(paragraph);
+                            xmXh++;
+                        }
                     }
                 }
             }
         }
+
+
 
         paragraph = PdfUtils.setParagraph(defaultFont, "");
         paragraph.setLeading(0f);
@@ -1122,9 +1148,6 @@
         paragraph.setSpacingAfter(2f);
         document2.add(paragraph);
         xmXh = 0;
-        LambdaQueryWrapper<TjOrderYcxm> wq = new LambdaQueryWrapper<>();
-        wq.eq(TjOrderYcxm::getTjh, tjOrder.getTjNumber());
-        List<TjOrderYcxm> ycxms = ycxmService.list(wq);
         if (null != ycxms && !ycxms.isEmpty()) {
 
             Map<String, List<TjOrderYcxm>> stringListMap = ycxms.stream().collect(Collectors.groupingBy(TjOrderYcxm::getParentName));
@@ -1377,9 +1400,6 @@
                             }
                             String result = detail.getProResult();
                             if (StrUtil.isNotBlank(result)) {
-//                    result = result.replaceAll(" ","").replaceAll("\t","");
-//                    result = result.replaceAll("\n鏈姤鍛婁粎瀵规湰娆℃鏌ヨ礋璐o紝涓村簥鍖荤敓渚濇嵁鐥呮儏濡傛湁鐤戦棶锛岃鍙婃椂澶嶆煡鎴栬繘涓�姝ユ鏌�", "");
-//                    result = "\n      " + result.replaceAll("\n", "\n      ");
                                 int index1 = 1;
                                 String[] split = result.split("\n");
 //                            boolean contains = result.contains("鏈姤鍛婁粎瀵规湰娆℃鏌ヨ礋璐o紝涓村簥鍖荤敓渚濇嵁鐥呮儏濡傛湁鐤戦棶锛岃鍙婃椂澶嶆煡鎴栬繘涓�姝ユ鏌�");
@@ -1390,15 +1410,8 @@
                                     builder.append("    (").append(index1).append(")").append(s).append("\n");
                                     index1++;
                                 }
-//                            if (!contains) builder.append("    (").append(index1).append(")").append("鏈姤鍛婁粎瀵规湰娆℃鏌ヨ礋璐o紝涓村簥鍖荤敓渚濇嵁鐥呮儏濡傛湁鐤戦棶锛岃鍙婃椂澶嶆煡鎴栬繘涓�姝ユ鏌�");
-//                            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);
@@ -1409,15 +1422,11 @@
                                 document2.add(paragraph);
                             }
                             String str = "     ";
-//                        List<Map<String, Object>> maps = tjRulesService.getyichangxiangmujianyiguize(entry.getKey().toString(),"",
-//                                detail.getYcbz(),tjOrder.getTjNumber(),detail.getProName().replaceAll("[锛�(][^锛�)]*[锛�)]", "")
-//                                        .replaceAll("[ 娴嬪畾妫�娴媇",""),detail.getProResult());
                             List<Map<String, Object>> maps = new ArrayList<>();
                             if (detail.getDeptId().equals("2")) {
                                 String[] split = result.split("銆倈,|锛�");
                                 for (String s : split) {
                                     s = s.replaceAll("\n", "").replaceAll("[锛�(][^锛�)]*[锛�)]", "");
-//                                Map<String,Object> mapss= tjRulesService.getyichangxiangmujianyiguizeJianCha(s);
                                     Map<String, Object> mapss = tjProAdvicerulesService.getyichangxiangmujianyiguizeJianCha(detail.getKs(), s, "0");
                                     if (null != mapss) {
                                         Object bt = mapss.get("bt");
@@ -1430,7 +1439,6 @@
 
                             for (Map<String, Object> objectMap : collect1) {
                                 String content = str + objectMap.get("bt").toString() + objectMap.get("nr").toString();
-//                            if (StrUtil.isBlank(content)) content = "     鏈姤鍛婁粎瀵规湰娆℃鏌ヨ礋璐o紝涓村簥鍖荤敓渚濇嵁鐥呮儏濡傛湁鐤戦棶锛岃鍙婃椂澶嶆煡鎴栬繘涓�姝ユ鏌�";
                                 if (StrUtil.isBlank(content)) content = "     ";
                                 paragraph = new Paragraph(content, defaultFont);
                                 paragraph.setAlignment(Element.ALIGN_LEFT);
@@ -1467,38 +1475,12 @@
                                 paragraph = new Paragraph(content, defaultFont);
                                 paragraph.setAlignment(Element.ALIGN_LEFT);
                                 document2.add(paragraph);
-                                // 绗叚浣嶆槸lis椤圭洰id
-//                    LambdaQueryWrapper<TjProject> wrapper = new LambdaQueryWrapper<>();
-//                    wrapper.eq(TjProject::getLisXmbm,i.get(5));
-//                    TjProject project = projectService.getOne(wrapper);
-//                    if (project != null) {
-//                        LambdaQueryWrapper<TjRules> queryWrapper = new LambdaQueryWrapper<>();
-//                        queryWrapper.eq(TjRules::getProId,project.getProId());
-//                        List<TjRules> rules = tjRulesService.list(queryWrapper);
-//                        if (!rules.isEmpty()){
-//
-//                        }
                                 String str = "    ";
                                 List<Map<String, Object>> maps = tjRulesService.getyichangxiangmujianyiguize(i.get(5), "",
                                         i.get(2), tjOrder.getTjNumber(), i.get(0).replaceAll("[锛�(][^锛�)]*[锛�)]", "")
                                                 .replaceAll("[ 娴嬪畾妫�娴媇", ""), i.get(1));
                                 if (!maps.isEmpty()) {
                                     for (Map<String, Object> objectMap : maps) {
-//                                paragraph = new Paragraph(str+"寤鸿鏍囬",defaultFont);
-//                                paragraph.setAlignment(Element.ALIGN_LEFT);
-//                                document2.add(paragraph);
-//
-//                                paragraph = new Paragraph(str+objectMap.get("bt").toString(),defaultFont);
-//                                paragraph.setAlignment(Element.ALIGN_LEFT);
-//                                document2.add(paragraph);
-//
-//                                paragraph = new Paragraph(str+"寤鸿鍐呭",defaultFont);
-//                                paragraph.setAlignment(Element.ALIGN_LEFT);
-//                                document2.add(paragraph);
-//
-//                                paragraph = new Paragraph(str+objectMap.get("nr").toString(),defaultFont);
-//                                paragraph.setAlignment(Element.ALIGN_LEFT);
-//                                document2.add(paragraph);
                                         Object bt = objectMap.get("bt");
                                         Object nr = objectMap.get("nr");
                                         if (null != bt && null != nr) {
@@ -1506,7 +1488,6 @@
                                             if (StrUtil.isBlank(content)) content1 = "     ";
                                             paragraph = new Paragraph(content1, defaultFont);
                                         }
-//                                    if (StrUtil.isBlank(content)) content1 = "     鏈姤鍛婁粎瀵规湰娆℃鏌ヨ礋璐o紝涓村簥鍖荤敓渚濇嵁鐥呮儏濡傛湁鐤戦棶锛岃鍙婃椂澶嶆煡鎴栬繘涓�姝ユ鏌�";
                                         paragraph.setAlignment(Element.ALIGN_LEFT);
                                         document2.add(paragraph);
                                     }
@@ -1610,7 +1591,7 @@
         tableQz.addCell(cell);
 
         String keyId = DataSourceContextHolder.getDataSourceKey();
-        keyId = keyId.replace("typeis10_","");
+        keyId = keyId.replace("ltkjpeis10_","");
 
         File file = new File(value + File.separator + keyId + File.separator + "yinzhang.png");
         cell = new PdfPCell();

--
Gitblit v1.8.0