From 09101577baa4b844e308238d1d4ac1972d660577 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期三, 17 十二月 2025 16:47:22 +0800
Subject: [PATCH] 生成站点电路试验报告(天线)合并单元格

---
 inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java |  150 +++++++++++++++++++++++++-------------------------
 1 files changed, 75 insertions(+), 75 deletions(-)

diff --git a/inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java b/inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java
index 9f7dba1..b602c88 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java
@@ -2209,81 +2209,81 @@
         }
         // 澶勭悊鍚堝苟鍗曞厓鏍肩殑闂
         String path = wordUrl + "/" + url;
-//        try {
-//            ZipSecureFile.setMinInflateRatio(0.0001);
-//            FileInputStream stream = new FileInputStream(path);
-//            XWPFDocument document = new XWPFDocument(stream);
-//            List<XWPFTable> xwpfTables = document.getTables();
-//            for (int i = 0; i < xwpfTables.size(); i++) {
-//                Set<String> set1 = new HashSet<>();
-//                Map<String, Map<String, Integer>> maps = new HashMap<>();
-//                for (int j = 0; j < xwpfTables.get(i).getRows().size(); j++) {
-//                    for (int k = 0; k < xwpfTables.get(i).getRows().get(j).getTableCells().size(); k++) {
-//                        if (xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().indexOf("鈭�") > -1) {
-//                            String[] split = xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().split("鈭�");
-//                            if (set1.add(split[1])) {
-//                                Map<String, Integer> map = new HashMap<>();
-//                                map.put("sr", j);
-//                                map.put("sc", k);
-//                                map.put("er", j + 0);
-//                                map.put("ec", k + 0);
-//                                maps.put(split[1], map);
-//                            } else {
-//                                Map<String, Integer> map1 = maps.get(split[1]);
-//                                if (j == map1.get("sr")) {
-//                                    map1.put("ec", map1.get("ec") + 1);
-//                                } else if (k == map1.get("sc")) {
-//                                    map1.put("er", map1.get("er") + 1);
-//                                }
-//                            }
-//                            String str = xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().split("鈭�")[0];
-//                            xwpfTables.get(i).getRows().get(j).getTableCells().get(k).removeParagraph(0);
-//                            xwpfTables.get(i).getRows().get(j).getTableCells().get(k).setText(str);
-//                            xwpfTables.get(i).getRows().get(j).getTableCells().get(k).setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER);
-//                            xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getParagraphArray(0).setAlignment(org.apache.poi.xwpf.usermodel.ParagraphAlignment.CENTER);
-//                        }
-//                    }
-//                }
-//
-//                // 鍗曞厓鏍兼帓搴�, 閬垮厤鏍煎紡閿欎贡
-//                List<Map.Entry<String, Map<String, Integer>>> entries = new ArrayList<>(maps.entrySet());
-//                entries.sort((o1, o2) -> o1.getValue().get("sc") - o2.getValue().get("sc"));
-//
-//                // 鎸夌収椤哄簭娣诲姞杩涢泦鍚�
-//                List<String> list = new ArrayList<>();
-//                for (Map.Entry<String, Map<String, Integer>> entry : entries) {
-//                    list.add(entry.getKey());
-//                }
-//                /*List<String> list = new ArrayList<>();
-//                for (String s : maps.keySet()) {
-//                    list.add(s);
-//                }*/
-//                for (int a = list.size() - 1; a >= 0; a--) {
-//                    Map<String, Integer> v = maps.get(list.get(a));
-//                    for (int j = 0; j < v.get("er") - v.get("sr") + 1; j++) {
-//                        if (v.get("ec") > v.get("sc")) {
-//                            try {
-//                                TableTools.mergeCellsHorizonal(xwpfTables.get(i), v.get("sr") + j, v.get("sc"), v.get("ec"));
-//                            } catch (Exception e) {
-//                            }
-//                        }
-//                    }
-//                    if (v.get("er") > v.get("sr")) {
-//                        try {
-//                            TableTools.mergeCellsVertically(xwpfTables.get(i), v.get("sc"), v.get("sr"), v.get("er"));
-//                        } catch (Exception e) {
-//                        }
-//                    }
-//                }
-//            }
-//            FileOutputStream fileOutputStream = new FileOutputStream(path);
-//            document.write(fileOutputStream);
-//            fileOutputStream.close();
-//        } catch (FileNotFoundException e) {
-//            throw new RuntimeException(e);
-//        } catch (IOException e) {
-//            throw new RuntimeException(e);
-//        }
+        try {
+            ZipSecureFile.setMinInflateRatio(0.0001);
+            FileInputStream stream = new FileInputStream(path);
+            XWPFDocument document = new XWPFDocument(stream);
+            List<XWPFTable> xwpfTables = document.getTables();
+            for (int i = 0; i < xwpfTables.size(); i++) {
+                Set<String> set1 = new HashSet<>();
+                Map<String, Map<String, Integer>> maps = new HashMap<>();
+                for (int j = 0; j < xwpfTables.get(i).getRows().size(); j++) {
+                    for (int k = 0; k < xwpfTables.get(i).getRows().get(j).getTableCells().size(); k++) {
+                        if (xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().indexOf("鈭�") > -1) {
+                            String[] split = xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().split("鈭�");
+                            if (set1.add(split[1])) {
+                                Map<String, Integer> map = new HashMap<>();
+                                map.put("sr", j);
+                                map.put("sc", k);
+                                map.put("er", j + 0);
+                                map.put("ec", k + 0);
+                                maps.put(split[1], map);
+                            } else {
+                                Map<String, Integer> map1 = maps.get(split[1]);
+                                if (j == map1.get("sr")) {
+                                    map1.put("ec", map1.get("ec") + 1);
+                                } else if (k == map1.get("sc")) {
+                                    map1.put("er", map1.get("er") + 1);
+                                }
+                            }
+                            String str = xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().split("鈭�")[0];
+                            xwpfTables.get(i).getRows().get(j).getTableCells().get(k).removeParagraph(0);
+                            xwpfTables.get(i).getRows().get(j).getTableCells().get(k).setText(str);
+                            xwpfTables.get(i).getRows().get(j).getTableCells().get(k).setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER);
+                            xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getParagraphArray(0).setAlignment(org.apache.poi.xwpf.usermodel.ParagraphAlignment.CENTER);
+                        }
+                    }
+                }
+
+                // 鍗曞厓鏍兼帓搴�, 閬垮厤鏍煎紡閿欎贡
+                List<Map.Entry<String, Map<String, Integer>>> entries = new ArrayList<>(maps.entrySet());
+                entries.sort((o1, o2) -> o1.getValue().get("sc") - o2.getValue().get("sc"));
+
+                // 鎸夌収椤哄簭娣诲姞杩涢泦鍚�
+                List<String> list = new ArrayList<>();
+                for (Map.Entry<String, Map<String, Integer>> entry : entries) {
+                    list.add(entry.getKey());
+                }
+                /*List<String> list = new ArrayList<>();
+                for (String s : maps.keySet()) {
+                    list.add(s);
+                }*/
+                for (int a = list.size() - 1; a >= 0; a--) {
+                    Map<String, Integer> v = maps.get(list.get(a));
+                    for (int j = 0; j < v.get("er") - v.get("sr") + 1; j++) {
+                        if (v.get("ec") > v.get("sc")) {
+                            try {
+                                TableTools.mergeCellsHorizonal(xwpfTables.get(i), v.get("sr") + j, v.get("sc"), v.get("ec"));
+                            } catch (Exception e) {
+                            }
+                        }
+                    }
+                    if (v.get("er") > v.get("sr")) {
+                        try {
+                            TableTools.mergeCellsVertically(xwpfTables.get(i), v.get("sc"), v.get("sr"), v.get("er"));
+                        } catch (Exception e) {
+                        }
+                    }
+                }
+            }
+            FileOutputStream fileOutputStream = new FileOutputStream(path);
+            document.write(fileOutputStream);
+            fileOutputStream.close();
+        } catch (FileNotFoundException e) {
+            throw new RuntimeException(e);
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
         InsOrderFile insOrderFile = new InsOrderFile();
         insOrderFile.setInsOrderId(insOrderState.getInsOrderId());
         insOrderFile.setInsSampleId(insOrderState.getInsSampleId());

--
Gitblit v1.9.3