From 206a888c39eed2c58f4dab3c5bfcac7f068a0ea9 Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期一, 17 二月 2025 18:03:27 +0800
Subject: [PATCH] zjh20250217

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java |  146 ++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 122 insertions(+), 24 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 a3fbce1..d0ad287 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
@@ -1001,6 +1001,13 @@
 
         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();
@@ -1017,9 +1024,19 @@
                 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();
+                    String xmmc = proVo.getProName();
+//                    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) {
+//                        if (!entry.getKey().equals(detail.getProId())) continue;
                         if (!isXmWrite) {
                             paragraph = new Paragraph(xmXh + ".  " + xmmc, defaultFont);
                             paragraph.setAlignment(Element.ALIGN_LEFT);
@@ -1028,16 +1045,20 @@
                         }
                         String result = detail.getProResult();
                         if (StrUtil.isNotBlank(result)) {
-                            int index = 1;
                             result = result.replaceAll("鏈姤鍛婁粎瀵规湰娆℃鏌ヨ礋璐o紝涓村簥鍖荤敓渚濇嵁鐥呮儏濡傛湁鐤戦棶锛岃鍙婃椂澶嶆煡鎴栬繘涓�姝ユ鏌�", "");
 //                            result = result.replaceAll("", "");
-                            String[] split = result.split("\n");
+//                            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();
-                            for (String s : split) {
-                                if (StrUtil.isBlank(s.replaceAll("\n", "").trim())) continue;
-                                builder.append("    (").append(index).append(")").append(s).append("\n");
+                                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);
@@ -1104,7 +1125,78 @@
         wq.eq(TjOrderYcxm::getTjh, tjOrder.getTjNumber());
         List<TjOrderYcxm> ycxms = ycxmService.list(wq);
         if (null != ycxms && !ycxms.isEmpty()) {
-            for (Map.Entry<String, List<CsProVo>> deptEntry : listMap.entrySet()) {
+
+            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();
+                if(null !=details && !details.isEmpty()){
+                    details= details.stream()
+                            .sorted(Comparator.comparing(TjOrderYcxm::getJcxm))
+                            .collect(Collectors.toList());
+                    boolean isXmWrite = false;
+                    int index = 1;
+                    int index1 = 1;
+                    for (TjOrderYcxm detail : details) {
+                        String xmmc = entry.getKey().toString();
+                        if (!isXmWrite) {
+                            xmXh++;
+                            paragraph = new Paragraph("銆�" + xmXh + "." + xmmc + "銆�", defaultFont);
+                            paragraph.setAlignment(Element.ALIGN_LEFT);
+                            document2.add(paragraph);
+                            isXmWrite = true;
+                        }
+                        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)) {
+                            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 = new ArrayList<>();
+
+                            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);
+                            }
+                            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 = "     ";
+                                paragraph = new Paragraph(content, 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, List<CsProVo>> deptEntry : listMap.entrySet()) {
                 List<CsProVo> proVos = deptEntry.getValue();
                 if (proVos.size() > 1) {
                     proVos = proVos.stream()
@@ -1125,7 +1217,8 @@
                             int index = 1;
                             int index1 = 1;
                             for (TjOrderDetail detail : details) {
-                                String xmmc = detail.getProName();
+                                String xmmc = proVo.getProName();
+//                                String xmmc = detail.getProName();
                                 if (!isXmWrite) {
                                     xmXh++;
                                     paragraph = new Paragraph("銆�" + xmXh + "." + xmmc + "銆�", defaultFont);
@@ -1135,13 +1228,18 @@
                                 }
                                 String result = detail.getProResult();
                                 if (StrUtil.isNotBlank(result)) {
-                                    String[] split = result.split("\n");
                                     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");
+//                                    String[] split = result.split("\n");
+//                                    for (String s : split) {
+//                                        if (StrUtil.isBlank(s.replaceAll("\n", "").trim())) continue;
+//                                        builder.append("    (").append(index1).append(")").append(s).append("\n");
+//                                        index1++;
+//                                    }
+
+                                        if (StrUtil.isBlank(result.replaceAll("\n", "").trim())) continue;
+                                        builder.append("    (").append(index1).append(")").append(detail.getProName()).append(": ").append(result).append("\n");
                                         index1++;
-                                    }
+
                                     result = builder.toString();
                                 }
                                 if (StrUtil.isNotBlank(result)) {
@@ -1158,7 +1256,7 @@
 
                                 LambdaQueryWrapper<TjOrderYcxm> ycwq=new LambdaQueryWrapper<>();
                                 ycwq.eq(TjOrderYcxm::getTjh,tjOrder.getTjNumber());
-                                ycwq.eq(TjOrderYcxm::getJcxm,xmmc);
+                                ycwq.eq(TjOrderYcxm::getJcxm,detail.getProName());
                                 TjOrderYcxm ycxm = ycxmService.getOne(ycwq);
                                 if(null !=ycxm){
                                     String jynr = ycxm.getJynr();
@@ -1250,7 +1348,7 @@
                         }
                     }
                 }
-            }
+            }*/
         } else {
             for (Map.Entry<String, List<CsProVo>> deptEntry : listMap.entrySet()) {
                 List<CsProVo> proVos = deptEntry.getValue();
@@ -2805,14 +2903,14 @@
                     }
                 }
             }
-//            if(!tjPdfVOS.isEmpty()){
-//                tjPdfVOS=tjPdfVOS.stream().sorted(Comparator.comparing(TjPdfVO::getProName, Collator.getInstance(Locale.CHINA))).collect(Collectors.toList());
-//                tjPdfVOS = tjPdfVOS.stream()
-//                        .sorted(Comparator.comparingInt(
-//                                tjPdfVO -> tjPdfVO.getProName().length() // 鏍规嵁鍚嶅瓧鐨勯暱搴︽帓搴�
-//                        ))
-//                        .collect(Collectors.toList());
-//            }
+            if(!tjPdfVOS.isEmpty()){
+                tjPdfVOS=tjPdfVOS.stream().sorted(Comparator.comparing(TjPdfVO::getProName, Collator.getInstance(Locale.CHINA))).collect(Collectors.toList());
+                tjPdfVOS = tjPdfVOS.stream()
+                        .sorted(Comparator.comparingInt(
+                                tjPdfVO -> tjPdfVO.getProName().length() // 鏍规嵁鍚嶅瓧鐨勯暱搴︽帓搴�
+                        ))
+                        .collect(Collectors.toList());
+            }
             printReport.put(entry.getKey(), tjPdfVOS);
         }
     }

--
Gitblit v1.8.0