From 17c7e460e0664ef30b34b6a6af8ad72a075d401c Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期一, 24 三月 2025 15:05:48 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 inspect-server/src/main/java/com/yuanchu/mom/utils/FuSheUtils.java |   59 ++++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 42 insertions(+), 17 deletions(-)

diff --git a/inspect-server/src/main/java/com/yuanchu/mom/utils/FuSheUtils.java b/inspect-server/src/main/java/com/yuanchu/mom/utils/FuSheUtils.java
index baf937a..b2eb588 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/utils/FuSheUtils.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/utils/FuSheUtils.java
@@ -22,6 +22,7 @@
 
 import javax.annotation.Resource;
 import java.io.*;
+import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -545,7 +546,13 @@
                 // 鍒涘缓涓�涓〃鏍�
                 int checkItemRowNum = row;
                 for (int i = 0; i < checkItemRowNum; i++) {
-                    table1.createRow();
+                    XWPFTableRow tableRow = table1.createRow();
+                    for (XWPFTableCell tableCell : tableRow.getTableCells()) {
+                        // 璁剧疆鍗曞厓鏍煎唴瀹瑰眳涓榻�
+                        for (XWPFParagraph paragraph : tableCell.getParagraphs()) {
+                            paragraph.setAlignment(ParagraphAlignment.CENTER);
+                        }
+                    }
                 }
                 //鍨傜洿
                 mergeCellsVertically(table1, 0, rowNum, rowNum + checkItemRowNum - 1);
@@ -625,8 +632,17 @@
                         run10.setText(s3);
                     }
                 }
-                Map<Double, List<Map<String, Object>>> group = mapList.stream()
-                        .collect(Collectors.groupingBy(item -> (Double) item.get("棰戠巼")));
+                Map<BigDecimal, List<Map<String, Object>>> group = mapList.stream()
+                        .collect(Collectors.groupingBy(item -> {
+                            BigDecimal value = new BigDecimal(String.valueOf(item.get("棰戠巼")));
+                            if (value.scale() <= 0 || value.stripTrailingZeros().scale() <= 0) {
+                                // 娌℃湁灏忔暟閮ㄥ垎锛岃繑鍥炴暣鏁板瓧绗︿覆
+                                return new BigDecimal(value.intValue());
+                            } else {
+                                // 鏈夊皬鏁伴儴鍒嗭紝杩斿洖鍘熷鍊肩殑瀛楃涓插舰寮�
+                                return value;
+                            }
+                        }));
                 group = new TreeMap<>(group);
                 int hang = 2;
                 Double count = 0.0;
@@ -692,7 +708,7 @@
                         }
                     }
                 }
-                for (Double aDouble : group.keySet()) {
+                for (BigDecimal aDouble : group.keySet()) {
                     List<Map<String, Object>> mapList1 = group.get(aDouble);
                     for (Map<String, Object> stringObjectMap : mapList1) {
                         String port = stringObjectMap.get("绔彛").toString();
@@ -726,8 +742,7 @@
                                         passFlag = false;
                                     }
                                 }
-                                String project = stringObjectMap.get(s2).toString();
-                                run10.setText(project);
+                                run10.setText(String.format("%.2f", value));
                             }
                         }
                     }
@@ -863,10 +878,16 @@
                     continue;
                 }
                 List<Map<String, Object>> mapList = aggregatedMap.get(s2);
-                // 鍒涘缓涓�涓〃鏍�
                 int checkItemRowNum = row;
                 for (int i = 0; i < checkItemRowNum; i++) {
-                    table1.createRow(); // 鍒涘缓鏂拌
+                    // 鍒涘缓鏂拌 骞惰缃眳涓�
+                    XWPFTableRow tableRow = table1.createRow();
+                    for (XWPFTableCell tableCell : tableRow.getTableCells()) {
+                        // 璁剧疆鍗曞厓鏍煎唴瀹瑰眳涓榻�
+                        for (XWPFParagraph paragraph : tableCell.getParagraphs()) {
+                            paragraph.setAlignment(ParagraphAlignment.CENTER);
+                        }
+                    }
                 }
 //            XWPFTable table = document.createTable(row, cell);
                 //鍨傜洿
@@ -874,7 +895,7 @@
                 mergeCellsVertically(table1, 1, rowNum, rowNum +  checkItemRowNum - 1);
                 mergeCellsVertically(table1, 2, rowNum, rowNum +  checkItemRowNum - 1);
                 mergeCellsVertically(table1, 3, rowNum, rowNum +  checkItemRowNum - 1);
-                mergeCellsVertically(table1, 4, rowNum, 1);
+                mergeCellsVertically(table1, 4, rowNum, rowNum+1);
                 mergeCellsVertically(table1, cell - 1, rowNum, rowNum+1);
                 mergeCellsVertically(table1, cell - 1, rowNum+2, rowNum +  checkItemRowNum - 1);
                 //姘村钩
@@ -910,7 +931,6 @@
                 // 瀹氫箟鏀规鏌ラ」鏍囧噯鍊�
                 String checkItemStandardStr = "";
                 XWPFParagraph paragraph3 = table1.getRow(rowNum).getCell(3).getParagraphArray(0);
-                paragraph3.setAlignment(ParagraphAlignment.CENTER);
                 XWPFRun run3 = paragraph3.createRun();
                 if (bz.get(s2) != null) {
                     run3.setText(bz.get(s2).toString());
@@ -919,11 +939,11 @@
 
 
                 XWPFParagraph paragraph4 = table1.getRow(rowNum).getCell(4).getParagraphArray(0);
+                paragraph4.setAlignment(ParagraphAlignment.CENTER);
                 XWPFRun run4 = paragraph4.createRun();
                 run4.setText("棰戠巼锛圡Hz锛�");
 
                 XWPFParagraph paragraph5 = table1.getRow(rowNum).getCell(5).getParagraphArray(0);
-                paragraph5.setAlignment(ParagraphAlignment.CENTER);
                 XWPFRun run5 = paragraph5.createRun();
                 run5.setText("绔彛");
 
@@ -953,10 +973,16 @@
                     }
                 }
 
-                Map<Integer, List<Map<String, Object>>> group = mapList.stream()
+                Map<BigDecimal, List<Map<String, Object>>> group = mapList.stream()
                         .collect(Collectors.groupingBy(item -> {
-                            Double aDouble = (Double) item.get("娴嬭瘯棰戠巼(MHZ)");
-                            return aDouble.intValue();
+                            BigDecimal value = new BigDecimal(String.valueOf(item.get("娴嬭瘯棰戠巼(MHZ)")));
+                            if (value.scale() <= 0 || value.stripTrailingZeros().scale() <= 0) {
+                                // 娌℃湁灏忔暟閮ㄥ垎锛岃繑鍥炴暣鏁板瓧绗︿覆
+                                return new BigDecimal(value.intValue());
+                            } else {
+                                // 鏈夊皬鏁伴儴鍒嗭紝杩斿洖鍘熷鍊肩殑瀛楃涓插舰寮�
+                                return value;
+                            }
                         }));
 
 
@@ -1025,7 +1051,7 @@
                     }
                 }
 
-                for (Integer aDouble : group.keySet()) {
+                for (BigDecimal aDouble : group.keySet()) {
                     List<Map<String, Object>> mapList1 = group.get(aDouble);
                     for (Map<String, Object> stringObjectMap : mapList1) {
                         String port = stringObjectMap.get("绔彛").toString();
@@ -1058,8 +1084,7 @@
                                         passFlag = false;
                                     }
                                 }
-                                String project = stringObjectMap.get(s2).toString();
-                                run10.setText(project);
+                                run10.setText(String.format("%.2f",value));
                             }
                         }
                     }

--
Gitblit v1.9.3