From 7bd5bf792d9f2ba900f3703d1a7e6a1d78fee98e Mon Sep 17 00:00:00 2001
From: zhaowenxuan <chacca165@163.com>
Date: 星期四, 12 十二月 2024 22:59:23 +0800
Subject: [PATCH] pdf增加排序

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java |  229 ++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 129 insertions(+), 100 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 2023cc8..77f58aa 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
@@ -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);
                     }
-                    paragraph = PdfUtils.setParagraph(defaultFont, "");
-                    paragraph.setLeading(0f);
-                    paragraph.setSpacingBefore(0f);
-                    paragraph.setSpacingAfter(5f);
-                    document2.add(paragraph);
-                    xmXh++;
+                    if (isXmWrite) {
+                        paragraph = PdfUtils.setParagraph(defaultFont, "");
+                        paragraph.setLeading(0f);
+                        paragraph.setSpacingBefore(0f);
+                        paragraph.setSpacingAfter(5f);
+                        document2.add(paragraph);
+                        xmXh++;
+                    }
                 }
 
                 // 妫�楠�
@@ -1042,11 +1044,13 @@
                             index++;
                         }
                     }
-                    paragraph = PdfUtils.setParagraph(defaultFont, "");
-                    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++;
+                    }
                 }
             }
         }
@@ -1096,26 +1100,101 @@
         paragraph.setSpacingAfter(2f);
         document2.add(paragraph);
         xmXh = 0;
-        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.contains("鈫�") || i.contains("鈫�")) {
-                    if (!isXmWrite) {
-                        xmXh++;
-                        paragraph = new Paragraph("銆�"+xmXh+"."+xmmc+"銆�",defaultFont);
-                        paragraph.setAlignment(Element.ALIGN_LEFT);
+
+        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鏈姤鍛婁粎瀵规湰娆℃鏌ヨ礋璐o紝涓村簥鍖荤敓渚濇嵁鐥呮儏濡傛湁鐤戦棶锛岃鍙婃椂澶嶆煡鎴栬繘涓�姝ユ鏌�", "");
+//                    result = "\n      " + result.replaceAll("\n", "\n      ");
+                            int index1 = 1;
+                            String[] split = result.split("\n");
+                            boolean contains = result.contains("鏈姤鍛婁粎瀵规湰娆℃鏌ヨ礋璐o紝涓村簥鍖荤敓渚濇嵁鐥呮儏濡傛湁鐤戦棶锛岃鍙婃椂澶嶆煡鎴栬繘涓�姝ユ鏌�");
+                            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("鏈姤鍛婁粎瀵规湰娆℃鏌ヨ礋璐o紝涓村簥鍖荤敓渚濇嵁鐥呮儏濡傛湁鐤戦棶锛岃鍙婃椂澶嶆煡鎴栬繘涓�姝ユ鏌�");
+                            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);
-                        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);
-                    // 绗叚浣嶆槸lis椤圭洰id
+                }
+                // 妫�楠�
+                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) {
+                                xmXh++;
+                                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);
+                            // 绗叚浣嶆槸lis椤圭洰id
 //                    LambdaQueryWrapper<TjProject> wrapper = new LambdaQueryWrapper<>();
 //                    wrapper.eq(TjProject::getLisXmbm,i.get(5));
 //                    TjProject project = projectService.getOne(wrapper);
@@ -1126,10 +1205,10 @@
 //                        if (!rules.isEmpty()){
 //
 //                        }
-                    String str = "    ";
-                    List<Map<String, Object>> maps = tjRulesService.getyichangxiangmujianyiguize(i.get(5),"",i.get(2),tjOrder.getTjNumber());
-                    if (!maps.isEmpty()){
-                        for (Map<String, Object> objectMap : maps) {
+                            String str = "    ";
+                            List<Map<String, Object>> maps = tjRulesService.getyichangxiangmujianyiguize(i.get(5),"",i.get(2),tjOrder.getTjNumber());
+                            if (!maps.isEmpty()){
+                                for (Map<String, Object> objectMap : maps) {
 //                                paragraph = new Paragraph(str+"寤鸿鏍囬",defaultFont);
 //                                paragraph.setAlignment(Element.ALIGN_LEFT);
 //                                document2.add(paragraph);
@@ -1146,79 +1225,29 @@
 //                                paragraph.setAlignment(Element.ALIGN_LEFT);
 //                                document2.add(paragraph);
 
-                            paragraph = new Paragraph(str+objectMap.get("bt").toString().trim()+objectMap.get("nr").toString().trim(),defaultFont);
-                            paragraph.setAlignment(Element.ALIGN_LEFT);
-                            document2.add(paragraph);
+                                    paragraph = new Paragraph(str+objectMap.get("bt").toString().trim()+objectMap.get("nr").toString().trim(),defaultFont);
+                                    paragraph.setAlignment(Element.ALIGN_LEFT);
+                                    document2.add(paragraph);
+                                }
+                                paragraph = PdfUtils.setParagraph(defaultFont, "");
+                                paragraph.setSpacingBefore(2f);
+                                paragraph.setSpacingAfter(5f);
+                                document2.add(paragraph);
+                            }
+//                    }
+                            index++;
                         }
+                    }
+                    if (isXmWrite) {
                         paragraph = PdfUtils.setParagraph(defaultFont, "");
-                        paragraph.setSpacingBefore(2f);
+                        paragraph.setSpacingBefore(0f);
                         paragraph.setSpacingAfter(5f);
                         document2.add(paragraph);
                     }
-//                    }
-                    index++;
                 }
             }
-            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鏈姤鍛婁粎瀵规湰娆℃鏌ヨ礋璐o紝涓村簥鍖荤敓渚濇嵁鐥呮儏濡傛湁鐤戦棶锛岃鍙婃椂澶嶆煡鎴栬繘涓�姝ユ鏌�", "");
-//                    result = "\n      " + result.replaceAll("\n", "\n      ");
-                    int index1 = 1;
-                    String[] split = result.split("\n");
-                    boolean contains = result.contains("鏈姤鍛婁粎瀵规湰娆℃鏌ヨ礋璐o紝涓村簥鍖荤敓渚濇嵁鐥呮儏濡傛湁鐤戦棶锛岃鍙婃椂澶嶆煡鎴栬繘涓�姝ユ鏌�");
-                    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("鏈姤鍛婁粎瀵规湰娆℃鏌ヨ礋璐o紝涓村簥鍖荤敓渚濇嵁鐥呮儏濡傛湁鐤戦棶锛岃鍙婃椂澶嶆煡鎴栬繘涓�姝ユ鏌�");
-                    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();

--
Gitblit v1.8.0