From b83df5a43c563bac919dee41d3a8b794f22f1030 Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期五, 13 十二月 2024 19:20:45 +0800
Subject: [PATCH] zjh202412013

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java |  261 ++++++++++++++++++++++++++++++---------------------
 1 files changed, 152 insertions(+), 109 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..c019590 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();
@@ -856,7 +856,7 @@
         return AjaxResult.success();
     }
 
-    public AjaxResult hisPDFNew2(TjOrder tjOrder, TjCustomer customer, TjReportTemplate tjReportTemplate) throws Exception {
+    public AjaxResult hisPDFNew2(TjOrder tjOrder, TjCustomer customer, TjReportTemplate tjReportTemplate,TjReportTemplate zongJianYiShiQianMing) throws Exception {
         pdfPage = 0;
         DictHosp dictHosp = dictHospService.list().get(0);
         String color = sysConfigService.selectConfigByKey("report_title_color");
@@ -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);
-            }
-        }
 
 
 
@@ -1314,15 +1343,23 @@
         cell.setPhrase(new Phrase("鎬绘鍖诲笀:", zongJianTitleFont));
         tableQz.addCell(cell);
 
+
         cell = new PdfPCell();
         cell.setBorder(Rectangle.NO_BORDER);
         cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
         cell.setHorizontalAlignment(Element.ALIGN_CENTER);
         cell.setPaddingTop(10);
         cell.setPaddingBottom(10);
-//        cell.setPhrase(new Phrase("浣曞皬濠�", zongJianFont));
-        cell.setPhrase(new Phrase(tjOrder.getCheckDoctor(), zongJianFont));
-        tableQz.addCell(cell);
+        if (zongJianYiShiQianMing == null) {
+            cell.setPhrase(new Phrase(sysConfigService.selectConfigByKey("pdf_report_zongjianysname"), zongJianFont));
+            tableQz.addCell(cell);
+        }else {
+            byte[] bytes = Base64.getDecoder().decode(zongJianYiShiQianMing.getTemplate());
+            Image image = Image.getInstance(bytes);
+            image.scaleToFit(100, 100);
+            cell.addElement(image);
+            tableQz.addCell(cell);
+        }
 
         cell = new PdfPCell();
         cell.setBorder(Rectangle.NO_BORDER);
@@ -1395,9 +1432,7 @@
         // 棣栭〉琛ㄥ崟
         String tjNumber = tjOrder.getTjNumber();
         String template = tjReportTemplate.getTemplate();
-        LambdaQueryWrapper<DictComp> wq111 = new LambdaQueryWrapper<>();
-        wq111.eq(DictComp::getDrugManufacturerId, tjOrder.getFirmId());
-        DictComp dictComp = dictCompService.getOne(wq111);
+
         LambdaQueryWrapper<TjOrderDetail> wq2 = new LambdaQueryWrapper<>();
         wq2.eq(TjOrderDetail::getOrderId, tjOrder.getOrderId());
         wq2.isNotNull(TjOrderDetail::getFlowingWaterId);
@@ -1432,10 +1467,18 @@
             tjtype = "涓汉";
             hashMap.put("tjtype", tjtype);
         }
-        if (dictComp == null) {
-            hashMap.put("work", "鏃�");
-        } else {
-            hashMap.put("work", dictComp.getCnName());
+        if (StrUtil.isNotBlank(customer.getCompName())){
+            hashMap.put("work", customer.getCompName());
+        }else {
+            LambdaQueryWrapper<DictComp> wq111 = new LambdaQueryWrapper<>();
+            wq111.eq(DictComp::getDrugManufacturerId, tjOrder.getFirmId());
+            DictComp dictComp = dictCompService.getOne(wq111);
+
+            if (dictComp == null) {
+                hashMap.put("work", "鏃�");
+            } else {
+                hashMap.put("work", dictComp.getCnName());
+            }
         }
         hashMap.put("sex", sex);
         hashMap.put("tjnumber", tjNumber);

--
Gitblit v1.8.0