From 0348f5a8184bd0a05434562f0021c2bb50628c32 Mon Sep 17 00:00:00 2001
From: zhaowenxuan <chacca165@163.com>
Date: 星期一, 09 十二月 2024 13:41:20 +0800
Subject: [PATCH] 2024-12-09

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java |   84 +++++++++++++++++++++++++++++++++---------
 1 files changed, 66 insertions(+), 18 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 b1777cd..74d97e6 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
@@ -42,6 +42,7 @@
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 
 /**
@@ -121,7 +122,8 @@
         String color = sysConfigService.selectConfigByKey("report_title_color");
 //        list.get(0).getHospName().equals("婢勫悎鐭垮姟灞�涓績鍖婚櫌")
         List<SysDictData> sysUserSex = sysDictDataService.list(new LambdaQueryWrapper<SysDictData>().eq(SysDictData::getDictType, "sys_user_sex"));
-        HashMap<String, Object> pdfChangGui = makePDFInfo(tjOrder, customer, tjReportTemplate);
+        HashMap<String, Object> map = makeHisJianYan(tjOrder, customer);
+        HashMap<String, Object> pdfChangGui = makePDFInfo(tjOrder, customer, tjReportTemplate,dictHosp,map);
         if (pdfChangGui == null)
             return AjaxResult.error();
         Document document = (Document) pdfChangGui.get("document");
@@ -163,7 +165,6 @@
             return AjaxResult.error();
         }
         // 缁勮妫�楠屾暟鎹�
-        HashMap<String, Object> map = makeHisJianYan(tjOrder, customer);
         makeHisJianYanTable(document1, map,dictHosp,color);
 
 
@@ -818,7 +819,7 @@
      * @param tjOrder
      * @param reportTemplate
      */
-    public HashMap<String, Object> makePDFInfo(TjOrder tjOrder, TjCustomer tjCustomer, TjReportTemplate reportTemplate) {
+    public HashMap<String, Object> makePDFInfo(TjOrder tjOrder, TjCustomer tjCustomer, TjReportTemplate reportTemplate,DictHosp dictHosp,HashMap<String, Object> jianYanMap) {
         String tjNumber = tjOrder.getTjNumber();
         String template = reportTemplate.getTemplate();
         LambdaQueryWrapper<DictComp> wq111 = new LambdaQueryWrapper<>();
@@ -868,27 +869,66 @@
             }
             //鎷兼帴閲嶅ぇ闃虫�х粨鏋�
             StringBuffer str = new StringBuffer();
-            str.append("銆愰噸澶ч槼鎬ч」鐩�慭n");
-            LambdaQueryWrapper<TjBigPositive> bigPositiveLambdaQueryWrapper = new LambdaQueryWrapper<>();
-            bigPositiveLambdaQueryWrapper.eq(TjBigPositive::getTjNumber, tjNumber);
-            List<TjBigPositive> list1 = tjBigPositiveService.list(bigPositiveLambdaQueryWrapper);
-            if (list1 != null && list1.size() > 0) {
-                for (int i = 0; i < list1.size(); i++) {
-                    str.append((i + 1) + "銆�" + list1.get(i).getProName() + ";\n");
+            if (!dictHosp.getHospName().equals("婢勫悎鐭垮姟灞�涓績鍖婚櫌")) {
+                str.append("銆愰噸澶ч槼鎬ч」鐩�慭n");
+                LambdaQueryWrapper<TjBigPositive> bigPositiveLambdaQueryWrapper = new LambdaQueryWrapper<>();
+                bigPositiveLambdaQueryWrapper.eq(TjBigPositive::getTjNumber, tjNumber);
+                List<TjBigPositive> list1 = tjBigPositiveService.list(bigPositiveLambdaQueryWrapper);
+                if (list1 != null && list1.size() > 0) {
+                    for (int i = 0; i < list1.size(); i++) {
+                        str.append((i + 1) + "銆�" + list1.get(i).getProName() + ";\n");
+                    }
+                } else {
+                    str.append("    鏃狅紱\n");
                 }
-            } else {
-                str.append("    鏃狅紱\n");
             }
             //鎷兼帴寮傚父椤圭洰
             str.append("銆愬紓甯告儏鍐甸」鐩�慭n");
-            if (list.size() > 0) {
-                for (int i = 0; i < list.size(); i++) {
-                    if (list.get(i).getExceptionDesc() == 1) {
-                        str.append((i + 1) + "銆�" + projectService.getById(list.get(i).getProId()).getProName() + ";\n");
+            if (!dictHosp.getHospName().equals("婢勫悎鐭垮姟灞�涓績鍖婚櫌")) {
+                if (list.size() > 0) {
+                    for (int i = 0; i < list.size(); i++) {
+                        if (list.get(i).getExceptionDesc() == 1) {
+                            str.append((i + 1) + "銆�" + projectService.getById(list.get(i).getProId()).getProName() + ";\n");
+                        }
+                    }
+                } else {
+                    str.append("    鏃狅紱\n");
+                }
+            }else {
+                int maxProjectLength = 0;
+                for (Map.Entry<String, Object> item : jianYanMap.entrySet()) {
+                    HashMap<String, Object> entryValue = (HashMap<String, Object>) item.getValue();
+                    ArrayList<List<String>> lists = (ArrayList<List<String>>) entryValue.get("data");
+                    for (List<String> i : lists) {
+                        maxProjectLength = Math.max(maxProjectLength, i.get(0).length());
                     }
                 }
-            } else {
-                str.append("    鏃狅紱\n");
+                int projectWidth = maxProjectLength * 2;
+                int resultWidth = 8;
+                int flagWidth = 8;
+                int unitWidth = 8;
+                int rangeWidth = 15;
+                str.append(padRight("椤圭洰", projectWidth))
+                        .append(padRight("缁撴灉", resultWidth))
+                        .append(padRight("鏍囧織", flagWidth))
+                        .append(padRight("鍗曚綅", unitWidth))
+                        .append(padRight("鍙傝�冭寖鍥�", rangeWidth))
+                        .append("\n");
+                for (Map.Entry<String, Object> item : jianYanMap.entrySet()) {
+                    HashMap<String, Object> entryValue = (HashMap<String, Object>) item.getValue();
+                    ArrayList<List<String>> lists = (ArrayList<List<String>>) entryValue.get("data");
+                    for (List<String> i : lists) {
+                        if (i.contains("鈫�") || i.contains("鈫�")) {
+                            int currentProjectWidth = i.get(0).length() + (maxProjectLength - i.get(0).length()) * 2 + 2;
+                            str.append(padRight(i.get(0), currentProjectWidth));
+                            str.append(padRight(i.get(1), resultWidth));
+                            str.append(padRight(i.get(2), flagWidth));
+                            str.append(padRight(i.get(3), unitWidth));
+                            str.append(padRight(i.get(4), rangeWidth));
+                            str.append("\n");
+                        }
+                    }
+                }
             }
             //寮傚父椤圭洰
             data.put("yichang", str.toString());
@@ -928,6 +968,14 @@
         }
     }
 
+    public static String padRight(String str, int length) {
+        StringBuilder sb = new StringBuilder(str);
+        while (sb.length() < length) {
+            sb.append(" ");
+        }
+        return sb.toString();
+    }
+
     /**
      * 缁勫悎闈炲寲楠岄」鐩姤鍛婃暟鎹�
      *

--
Gitblit v1.8.0