From c0a846559e623369636ebf7ba6506958e7a3e913 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期一, 12 五月 2025 13:09:12 +0800
Subject: [PATCH] 远场上传的文件解析做兼容

---
 inspect-server/src/main/java/com/yuanchu/mom/utils/FuSheUtils.java |  630 +++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 436 insertions(+), 194 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 97258fd..0b00346 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
@@ -1,24 +1,16 @@
 package com.yuanchu.mom.utils;
 
 import cn.hutool.core.lang.UUID;
-import com.deepoove.poi.XWPFTemplate;
-import com.deepoove.poi.config.Configure;
-import com.deepoove.poi.config.ConfigureBuilder;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.deepoove.poi.data.*;
 import com.deepoove.poi.data.style.*;
-import com.deepoove.poi.util.TableTools;
-import com.opencsv.CSVReader;
 import com.yuanchu.mom.dto.Exceldata;
-import com.yuanchu.mom.exception.ErrorException;
 import com.yuanchu.mom.mapper.InsOrderFileMapper;
-import com.yuanchu.mom.mapper.InsOrderMapper;
 import com.yuanchu.mom.mapper.InsSampleMapper;
-import com.yuanchu.mom.pojo.InsOrder;
 import com.yuanchu.mom.pojo.InsOrderFile;
 import com.yuanchu.mom.pojo.InsSample;
-import org.apache.commons.io.IOUtils;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.poi.openxml4j.util.ZipSecureFile;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
@@ -31,11 +23,11 @@
 
 import javax.annotation.Resource;
 import java.io.*;
+import java.math.BigDecimal;
 import java.util.*;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
+@Slf4j
 @Component
 public class FuSheUtils {
     @Value("${wordUrl}")
@@ -47,6 +39,7 @@
     @Resource
     InsSampleMapper insSampleMapper;
 
+    //杩戝満
     public void getFuSheWord1(String sonLaboratory, InsOrderFile insOrderFile) {
         //璇诲彇excel鏂囦欢鍐呭
         String excelFilePath = wordUrl + "/" + insOrderFile.getFileUrl(); // 鏇存柊涓轰綘鐨勬枃浠惰矾寰�
@@ -59,6 +52,7 @@
             Exceldata exceldata = new Exceldata();
             Map<Integer, Object> project = new HashMap<>();
             HashMap<String, Object> datas1 = new HashMap<>();
+            HashMap<String, Object> biaozhun = new HashMap<>();
             Boolean exitLoop = false;
             for (int i = 0; i < workbook.getNumberOfSheets(); i++) {
                 String s = "";
@@ -89,26 +83,55 @@
                                     default:
                                         System.out.print("NULL\t");
                                 }
-                            } else {
+                            }
+                            else {
                                 switch (cell.getCellType()) {
                                     case STRING:
                                         if (cell.getColumnIndex() == 1) {
+                                            if (cell.getStringCellValue().equals("鎸囨爣")) {
+                                                for (Cell cell1 : row) {
+                                                    switch (cell1.getCellType()) {
+                                                        case STRING:
+                                                            biaozhun.put(project.get(cell1.getColumnIndex()).toString(), cell1.getStringCellValue());
+                                                            break;
+                                                        case NUMERIC:
+                                                            System.out.print(cell1.getNumericCellValue() + "\t");
+                                                            break;
+                                                        case BOOLEAN:
+                                                            System.out.print(cell1.getBooleanCellValue() + "\t");
+                                                            break;
+                                                        case FORMULA:
+                                                            System.out.print(cell1.getCellFormula() + "\t");
+                                                            break;
+                                                        default:
+                                                            System.out.print("NULL\t");
+                                                    }
+                                                }
+                                            }
                                             exitLoop = true;
                                             break;
                                         }
-                                        if (StringUtils.isNotEmpty(s)) {
-                                            datas.put(s, list);
+                                        String value = "zss";
+                                        switch (row.getCell(1).getCellType()){
+                                            case STRING:
+                                                value = cell.getStringCellValue();
+                                                break;
                                         }
-                                        list = new ArrayList<>();
-                                        s = cell.getStringCellValue();
-                                        datas.put(s, cell.getStringCellValue());
-                                        System.out.print(cell.getStringCellValue() + "\t");
+                                        if (value.equals("zss")){
+                                            if (StringUtils.isNotEmpty(s)) {
+                                                datas.put(s, list);
+                                            }
+                                            list = new ArrayList<>();
+                                            s = cell.getStringCellValue();
+                                            datas.put(s, cell.getStringCellValue());
+                                            System.out.print(cell.getStringCellValue() + "\t");
+                                        }
                                         break;
                                     case NUMERIC:
-                                        int columnIndex = cell.getColumnIndex();
-                                        Object o = project.get(columnIndex);
-                                        map.put(o.toString(), cell.getNumericCellValue());
-                                        System.out.print(cell.getNumericCellValue() + "\t");
+                                            int columnIndex = cell.getColumnIndex();
+                                            Object o = project.get(columnIndex);
+                                            map.put(o.toString(), cell.getNumericCellValue());
+                                            System.out.print(cell.getNumericCellValue() + "\t");
                                         break;
                                     case BOOLEAN:
                                         System.out.print(cell.getBooleanCellValue() + "\t");
@@ -130,6 +153,7 @@
                         }
                     }
                 }
+                list=list.stream().filter(map -> !map.isEmpty()).collect(Collectors.toList());
                 datas.put(s, list);
                 map1.put(sheetName, datas);
                 datas1.putAll(map1);
@@ -161,7 +185,6 @@
                 }
             }
             System.out.println(map);
-            int size = map.size();
             for (String s1 : map.keySet()) {
                 String o = map.get(s1).toString();
                 List<String> collect = Arrays.stream(o.split(",")).collect(Collectors.toList());
@@ -182,7 +205,7 @@
                 }
             }
             System.out.println(map);
-            createWord(sonLaboratory, document, exceldata, map, insOrderFile);
+            createWord(sonLaboratory, document, exceldata, map, biaozhun, insOrderFile);
         } catch (IOException e) {
             e.printStackTrace();
         } finally {
@@ -200,6 +223,7 @@
         }
     }
 
+    //杩滃満
     public void getFuSheWord2(String sonLaboratory, InsOrderFile insOrderFile) {
         //璇诲彇excel鏂囦欢鍐呭
         String excelFilePath = wordUrl + "/" + insOrderFile.getFileUrl(); // 鏇存柊涓轰綘鐨勬枃浠惰矾寰�
@@ -210,8 +234,6 @@
             fileInputStream = new FileInputStream(new File(excelFilePath));
             workbook = new XSSFWorkbook(fileInputStream); // 瀵逛簬 .xlsx 鏂囦欢
             XWPFDocument document = new XWPFDocument();
-
-            Boolean exitLoop = false;
             for (int i = 0; i < workbook.getNumberOfSheets(); i++) {
                 Exceldata exceldata = new Exceldata();
                 HashMap<Integer, Object> project = new HashMap<>();
@@ -227,14 +249,10 @@
                 Boolean biaoji = false;
                 int lastRowNum = sheet.getLastRowNum();
                 for (Row row : sheet) {
-
                     count++;
                     HashMap<String, Object> map1 = new HashMap<>();
                     HashMap<String, Object> pingjun = new HashMap<>();
-
-                    HashMap<String, Object> map = new HashMap<>();
                     for (Cell cell : row) {
-
                         if (row.getRowNum() == 0) {
                             switch (cell.getCellType()) {
                                 case STRING:
@@ -253,28 +271,8 @@
                                 default:
                                     System.out.print("NULL\t");
                             }
-                        } else if (row.getRowNum() == 1) {
-
-                            switch (cell.getCellType()) {
-                                case STRING:
-                                    biaozhun.put(project.get(cell.getColumnIndex()).toString(), cell.getStringCellValue());
-                                    break;
-                                case NUMERIC:
-                                    System.out.print(cell.getNumericCellValue() + "\t");
-                                    break;
-                                case BOOLEAN:
-                                    System.out.print(cell.getBooleanCellValue() + "\t");
-                                    break;
-                                case FORMULA:
-                                    System.out.print(cell.getCellFormula() + "\t");
-                                    break;
-                                default:
-                                    System.out.print("NULL\t");
-                            }
                         } else if (row.getRowNum() > 2) {
-
                             if (cell.getColumnIndex() == 0 && StringUtils.isNotEmpty(cell.getStringCellValue())) {
-
                                 if (map2.size() != 0) {
                                     map2.put(port, list);
                                     datas1.put(jiaodu, map2);
@@ -318,6 +316,25 @@
                                                 }
 
                                             }
+                                        } else if (value.equals("鎸囨爣")) {
+                                            for (Cell cell1 : row) {
+                                                switch (cell1.getCellType()) {
+                                                    case STRING:
+                                                        biaozhun.put(project.get(cell1.getColumnIndex()).toString(), cell1.getStringCellValue());
+                                                        break;
+                                                    case NUMERIC:
+                                                        System.out.print(cell1.getNumericCellValue() + "\t");
+                                                        break;
+                                                    case BOOLEAN:
+                                                        System.out.print(cell1.getBooleanCellValue() + "\t");
+                                                        break;
+                                                    case FORMULA:
+                                                        System.out.print(cell1.getCellFormula() + "\t");
+                                                        break;
+                                                    default:
+                                                        System.out.print("NULL\t");
+                                                }
+                                            }
                                         } else {
                                             biaoji = true;
                                         }
@@ -335,7 +352,6 @@
                                     default:
                                         System.out.print("NULL\t");
                                 }
-
                             }
                         }
                         if (biaoji) {
@@ -343,7 +359,6 @@
                             break;
                         }
                     }
-
                     if (map1.size() != 0) {
                         list.add(map1);
                     }
@@ -367,11 +382,13 @@
                     Map<String, List<HashMap<String, Object>>> numbers = (Map<String, List<HashMap<String, Object>>>) datas1.get(s);
                     for (String s1 : numbers.keySet()) {
                         List<HashMap<String, Object>> hashMaps = numbers.get(s1);
-
                         List<Integer> floatList = new ArrayList<>();
                         for (Map<String, Object> number : hashMaps) {
                             number.put("绔彛", s1);
                             Double o = (Double) number.get("娴嬭瘯棰戠巼(MHZ)");
+                            if (ObjectUtils.isNull(o)){
+                                 o = (Double) number.get("娴嬮噺棰戠巼(MHz)");
+                            }
                             floatList.add(o.intValue());
                         }
                         Integer maxValue = Collections.max(floatList);
@@ -386,17 +403,12 @@
                     }
 
                 }
-
                 System.out.println(map);
 
-
-                int size = map.size();
                 for (String s1 : map.keySet()) {
                     String o = map.get(s1).toString();
-
                     List<String> collect = Arrays.stream(o.split(",")).collect(Collectors.toList());
                     int size1 = -1;
-
                     for (String s : datas1.keySet()) {
                         Map<String, List<HashMap<String, Object>>> o1 = (Map<String, List<HashMap<String, Object>>>) datas1.get(s);
                         for (String s3 : o1.keySet()) {
@@ -423,7 +435,7 @@
             String[] split = insOrderFile.getFileName().split("\\.");
             String name = insOrderFile.getFileName().replace("#", "&").substring(0, (insOrderFile.getFileName().length() - split[split.length - 1].length()));
             String url = UUID.randomUUID() + "_" + insSample.getSampleCode() + "_" + sonLaboratory + name + "瑙f瀽鐨勮緪灏勭珯鐐规姤鍛�.docx";
-            url=url.replace("#", "&");
+            url = url.replace("#", "&");
             FileOutputStream out = new FileOutputStream(wordUrl + "/" + url);
             document.write(out);
             out.close();
@@ -455,8 +467,8 @@
         }
     }
 
-
-    public void createWord(String sonLaboratory, XWPFDocument document, Exceldata exceldata, HashMap<String, Object> map, InsOrderFile insOrderFile) throws IOException {
+    //杩戝満
+    public void createWord(String sonLaboratory, XWPFDocument document, Exceldata exceldata, HashMap<String, Object> map, HashMap<String, Object> bz, InsOrderFile insOrderFile) throws IOException {
         int size = 1;
         XWPFParagraph paragraphs = document.createParagraph();
         XWPFRun runs = paragraphs.createRun();
@@ -508,7 +520,7 @@
             XWPFParagraph paragraph18 = table1.getRow(1).getCell(0).getParagraphArray(0);
             paragraph18.setAlignment(ParagraphAlignment.CENTER);
             XWPFRun run18 = paragraph18.createRun();
-            run18.setText("棰戞锛� " + result1 + "MHz " + "涓嬪�捐" + result);
+            run18.setText("涓嬪�捐" + result);
             List<String> collect = Arrays.stream(split).collect(Collectors.toList());
             List<Map<String, Object>> list = new ArrayList<>();
             // 瀵规墍鏈夌殑閿仛鍚�
@@ -529,121 +541,238 @@
                     aggregatedMap.get(key).add(item);
                 }
             }
+            int rowNum = 2;
             for (String s2 : aggregatedMap.keySet()) {
                 if (s2.equals("绔彛") || s2.equals("棰戠巼")) {
                     continue;
                 }
                 List<Map<String, Object>> mapList = aggregatedMap.get(s2);
                 // 鍒涘缓涓�涓〃鏍�
-                XWPFTable table = document.createTable(row, cell);
-                table.setWidth("100%");
+                int checkItemRowNum = row;
+                for (int i = 0; i < checkItemRowNum; i++) {
+                    XWPFTableRow tableRow = table1.createRow();
+                    for (XWPFTableCell tableCell : tableRow.getTableCells()) {
+                        // 璁剧疆鍗曞厓鏍煎唴瀹瑰眳涓榻�
+                        for (XWPFParagraph paragraph : tableCell.getParagraphs()) {
+                            paragraph.setAlignment(ParagraphAlignment.CENTER);
+                        }
+                    }
+                }
                 //鍨傜洿
-                mergeCellsVertically(table, 0, 0, row - 1);
-                mergeCellsVertically(table, 1, 0, row - 1);
-                mergeCellsVertically(table, 2, 0, row - 1);
-                mergeCellsVertically(table, 3, 0, row - 1);
-                mergeCellsVertically(table, 4, 0, 1);
-                mergeCellsVertically(table, cell - 1, 0, 1);
-                mergeCellsVertically(table, cell - 1, 2, row - 2);
+                mergeCellsVertically(table1, 0, rowNum, rowNum + checkItemRowNum - 1);
+                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, rowNum + 1);
+                mergeCellsVertically(table1, cell - 1, rowNum, rowNum + 1);
+                mergeCellsVertically(table1, cell - 1, rowNum + 2, rowNum + checkItemRowNum - 2);
                 //姘村钩
-                mergeCellsHorizontally(table, 0, 5, cell - 2);
-                mergeCellsHorizontally(table, row - 1, 5, cell - 2);
-
-                table.setInsideHBorder(XWPFTable.XWPFBorderType.SINGLE, 2, 0, "000000"); // 鍐呴儴姘村钩杈规
-                table.setInsideVBorder(XWPFTable.XWPFBorderType.SINGLE, 2, 0, "000000"); // 鍐呴儴鍨傜洿杈规
-                table.setBottomBorder(XWPFTable.XWPFBorderType.SINGLE, 2, 0, "000000");  // 涓嬭竟妗�
-                table.setTopBorder(XWPFTable.XWPFBorderType.SINGLE, 2, 0, "000000");     // 涓婅竟妗�
-                table.setLeftBorder(XWPFTable.XWPFBorderType.SINGLE, 2, 0, "000000");    // 宸﹁竟妗�
-                table.setRightBorder(XWPFTable.XWPFBorderType.SINGLE, 2, 0, "000000");   // 鍙宠竟妗�
+                mergeCellsHorizontally(table1, rowNum, 5, cell - 2);
+                mergeCellsHorizontally(table1, rowNum + checkItemRowNum - 1, 5, cell - 2);
 
                 // 璁剧疆鍗曞厓鏍兼枃鏈苟灞呬腑
-                XWPFParagraph paragraph = table.getRow(0).getCell(0).getParagraphArray(0);
+                XWPFParagraph paragraph = table1.getRow(rowNum).getCell(0).getParagraphArray(0);
                 paragraph.setAlignment(ParagraphAlignment.CENTER);
                 XWPFRun run = paragraph.createRun();
                 run.setText(String.valueOf(size));
-                XWPFParagraph paragraph1 = table.getRow(0).getCell(1).getParagraphArray(0);
+                XWPFParagraph paragraph1 = table1.getRow(rowNum).getCell(1).getParagraphArray(0);
                 paragraph1.setAlignment(ParagraphAlignment.CENTER);
                 XWPFRun run1 = paragraph1.createRun();
                 run1.setText(s2);
-                // 璋冪敤鏂规硶鎻愬彇绗竴涓嫭鍙峰唴鐨勫唴瀹�
-                String firstContent = extractFirstContentFromBrackets(s2);
-                if (firstContent != null) {
-                    XWPFParagraph paragraph2 = table.getRow(0).getCell(2).getParagraphArray(0);
-                    paragraph2.setAlignment(ParagraphAlignment.CENTER);
-                    XWPFRun run2 = paragraph2.createRun();
-                    run2.setText(firstContent);
+                // 鍗曚綅
+                XWPFParagraph paragraph2 = table1.getRow(rowNum).getCell(2).getParagraphArray(0);
+                XWPFRun run2 = paragraph2.createRun();
+                if (s2.contains("澧炵泭")) {
+                    run2.setText("dBi");
+                } else if (s2.contains("娉㈢摚瀹藉害") || s2.contains("娉㈡潫瀹藉害") || s2.contains("涓嬪�捐")) {
+                    run2.setText("掳");
+                } else if (s2.contains("鍓嶅悗姣�") || s2.contains("浜ゅ弶鏋佸寲") || s2.contains("鏃佺摚鎶戝埗") || s2.contains("涓嬮檷") || s2.contains("闆剁偣濉厖") || s2.contains("鍓摚鐢靛钩")) {
+                    run2.setText("dB");
+                } else if (s2.contains("鏁堢巼") || s2.contains("鎵囧尯鍗犳瘮")) {
+                    run2.setText("%");
                 } else {
-                    System.out.println("娌℃湁鎵惧埌鎷彿鍐呯殑鍐呭銆�");
+                    run2.setText("");
                 }
-                XWPFParagraph paragraph3 = table.getRow(0).getCell(3).getParagraphArray(0);
+                XWPFParagraph paragraph3 = table1.getRow(rowNum).getCell(3).getParagraphArray(0);
                 paragraph3.setAlignment(ParagraphAlignment.CENTER);
                 XWPFRun run3 = paragraph3.createRun();
-                run3.setText("/");
-                XWPFParagraph paragraph4 = table.getRow(0).getCell(4).getParagraphArray(0);
+                String checkItemStandardStr = "";
+                if (bz.get(s2) != null) {
+                    run3.setText(bz.get(s2).toString());
+                    checkItemStandardStr = bz.get(s2).toString();
+                } else {
+                    run3.setText("");
+                }
+                XWPFParagraph paragraph4 = table1.getRow(rowNum).getCell(4).getParagraphArray(0);
                 paragraph4.setAlignment(ParagraphAlignment.CENTER);
                 XWPFRun run4 = paragraph4.createRun();
                 run4.setText("棰戠巼锛圡Hz锛�");
-                XWPFParagraph paragraph5 = table.getRow(0).getCell(5).getParagraphArray(0);
+                XWPFParagraph paragraph5 = table1.getRow(rowNum).getCell(5).getParagraphArray(0);
                 paragraph5.setAlignment(ParagraphAlignment.CENTER);
                 XWPFRun run5 = paragraph5.createRun();
                 run5.setText("绔彛");
-                XWPFParagraph paragraph6 = table.getRow(0).getCell(cell - 1).getParagraphArray(0);
+                XWPFParagraph paragraph6 = table1.getRow(rowNum).getCell(cell - 1).getParagraphArray(0);
                 paragraph6.setAlignment(ParagraphAlignment.CENTER);
                 XWPFRun run6 = paragraph6.createRun();
-                run6.setText("/");
-                XWPFParagraph paragraph7 = table.getRow(2).getCell(cell - 1).getParagraphArray(0);
-                paragraph7.setAlignment(ParagraphAlignment.CENTER);
-                XWPFRun run7 = paragraph7.createRun();
-                run7.setText("鍚堟牸");
-                XWPFParagraph paragraph8 = table.getRow(row - 1).getCell(4).getParagraphArray(0);
+                run6.setText("鍒ゅ畾");
+//                XWPFParagraph paragraph7 = table1.getRow(rowNum + 2 ).getCell(cell - 1).getParagraphArray(0);
+//                paragraph7.setAlignment(ParagraphAlignment.CENTER);
+//                XWPFRun run7 = paragraph7.createRun();
+//                run7.setText("鍚堟牸");
+                XWPFParagraph paragraph8 = table1.getRow(rowNum + checkItemRowNum - 1).getCell(4).getParagraphArray(0);
                 paragraph8.setAlignment(ParagraphAlignment.CENTER);
                 XWPFRun run8 = paragraph8.createRun();
                 run8.setText("骞冲潎鍊�");
-                XWPFParagraph paragraph9 = table.getRow(row - 1).getCell(cell - 1).getParagraphArray(0);
+                XWPFParagraph paragraph9 = table1.getRow(rowNum + checkItemRowNum - 1).getCell(cell - 1).getParagraphArray(0);
                 paragraph9.setAlignment(ParagraphAlignment.CENTER);
                 XWPFRun run9 = paragraph9.createRun();
-                run9.setText("/");
+                run9.setText("");
                 for (int i = 0; i < collect.size(); i++) {
                     String s3 = collect.get(i);
                     if (s3.contains("绔彛")) {
-                        XWPFParagraph paragraph10 = table.getRow(1).getCell(5 + i).getParagraphArray(0);
+                        XWPFParagraph paragraph10 = table1.getRow(rowNum + 1).getCell(5 + i).getParagraphArray(0);
                         paragraph10.setAlignment(ParagraphAlignment.CENTER);
                         XWPFRun run10 = paragraph10.createRun();
                         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;
-                for (Double aDouble : group.keySet()) {
+                // 瀹氫箟 鏄惁鍚堟牸鏍囪
+                boolean passFlag = true;
+                // 瑙f瀽鍒ゅ畾鏉′欢骞惰В鏋愭瘮杈冩爣鍑嗗�� 0 鏃犻渶鍒ゅ畾 1 鍖洪棿鍒ゅ畾 2 灏忎簬绛変簬 3 澶т簬绛変簬 4 澶т簬 5 灏忎簬
+                int checkType = 0;
+                double firstParam = 0.0;
+                double secondParam = 0.0 ;
+                checkItemStandardStr = checkItemStandardStr.trim();
+                if(checkItemStandardStr.contains("~") ){
+                    checkType = 1;
+                    String[] params = checkItemStandardStr.split("~");
+                    if(null != params && params.length == 2){
+                        firstParam = Double.valueOf(params[0]);
+                        secondParam = Double.valueOf(params[1]);
+                    }
+                } else if(checkItemStandardStr.contains("-") && !(checkItemStandardStr.contains("鈮�") || checkItemStandardStr.contains("鈮�") || checkItemStandardStr.contains(">") || checkItemStandardStr.contains("<"))){
+                    checkType = 1;
+                    String[] params = checkItemStandardStr.split("-");
+                    if(null != params && params.length == 2){
+                        firstParam = Double.valueOf(params[0]);
+                        secondParam = Double.valueOf(params[1]);
+                    }
+                } else if (checkItemStandardStr.contains("鈮�")) {
+                    checkType = 2;
+                    String[] params = checkItemStandardStr.split("鈮�");
+                    if(null != params && params.length == 1){
+                        if(params[1].contains("%")){
+                            firstParam = Double.valueOf(params[1].substring(0,params[1].length()-1))/100;
+                        }else{
+                            firstParam = Double.valueOf(params[1]);
+                        }
+                    }
+                }else if(checkItemStandardStr.contains("鈮�")){
+                    checkType = 3;
+                    String[] params = checkItemStandardStr.split("鈮�");
+                    if(null != params && params.length == 2){
+                        if(params[1].contains("%")){
+                            firstParam = Double.valueOf(params[1].substring(0,params[1].length()-1))/100;
+                        }else{
+                            firstParam = Double.valueOf(params[1]);
+                        }
+                    }
+                }else if(checkItemStandardStr.contains(">")){
+                    checkType = 4;
+                    String[] params = checkItemStandardStr.split(">");
+                    if(null != params && params.length == 2){
+                        if(params[1].contains("%")){
+                            firstParam = Double.valueOf(params[1].substring(0,params[1].length()-1))/100;
+                        }else{
+                            firstParam = Double.valueOf(params[1]);
+                        }
+                    }
+                }else if(checkItemStandardStr.contains("<")){
+                    checkType = 5;
+                    String[] params = checkItemStandardStr.split("<");
+                    if(null != params && params.length == 2){
+                        if(params[1].contains("%")){
+                            firstParam = Double.valueOf(params[1].substring(0,params[1].length()-1))/100;
+                        }else{
+                            firstParam = Double.valueOf(params[1]);
+                        }
+                    }
+                }
+                for (BigDecimal aDouble : group.keySet()) {
                     List<Map<String, Object>> mapList1 = group.get(aDouble);
                     for (Map<String, Object> stringObjectMap : mapList1) {
                         String port = stringObjectMap.get("绔彛").toString();
                         for (int i = 5; i < cell - 1; i++) {
-                            String text = table.getRow(1).getCell(i).getText();
+                            String text = table1.getRow(rowNum + 1).getCell(i).getText();
                             if (text.equals(port)) {
-                                XWPFParagraph paragraph10 = table.getRow(hang).getCell(i).getParagraphArray(0);
+                                XWPFParagraph paragraph10 = table1.getRow(hang + rowNum).getCell(i).getParagraphArray(0);
                                 paragraph10.setAlignment(ParagraphAlignment.CENTER);
                                 XWPFRun run10 = paragraph10.createRun();
-                                count = (Double) stringObjectMap.get(s2) + count;
-                                String project = stringObjectMap.get(s2).toString();
-                                run10.setText(project);
+                                double value = Double.parseDouble(stringObjectMap.get(s2).toString());
+                                count = value + count;
+                                // 鏁版嵁鍒ゆ柇
+                                if(checkType == 1){
+                                    if(!(value >= firstParam && value <= secondParam)){
+                                        passFlag = false;
+                                    }
+                                }else if(checkType == 2){
+                                    if(value >= firstParam ){
+                                        passFlag = false;
+                                    }
+                                }else if(checkType == 3){
+                                    if(value <= firstParam ){
+                                        passFlag = false;
+                                    }
+                                }else if(checkType == 4){
+                                    if(value < firstParam ){
+                                        passFlag = false;
+                                    }
+                                }else if(checkType == 5){
+                                    if(value > firstParam ){
+                                        passFlag = false;
+                                    }
+                                }
+                                run10.setText(String.format("%.2f", value));
                             }
                         }
                     }
-                    XWPFParagraph paragraph10 = table.getRow(hang).getCell(4).getParagraphArray(0);
+                    XWPFParagraph paragraph10 = table1.getRow(hang+rowNum).getCell(4).getParagraphArray(0);
                     paragraph10.setAlignment(ParagraphAlignment.CENTER);
                     XWPFRun run10 = paragraph10.createRun();
                     run10.setText(String.valueOf(aDouble));
                     hang++;
                 }
-                XWPFParagraph paragraph11 = table.getRow(row - 1).getCell(5).getParagraphArray(0);
+                // 姹囨�荤粨鏋�
+                if(checkType != 0){
+                    XWPFParagraph paragraph10 = table1.getRow(rowNum+2).getCell(cell - 1).getParagraphArray(0);
+                    XWPFRun run10 = paragraph10.createRun();
+                    if(passFlag){
+                        run10.setText("鍚堟牸");
+                    }else {
+                        run10.setText("涓嶅悎鏍�");
+                    }
+                }
+
+                XWPFParagraph paragraph11 = table1.getRow(rowNum + checkItemRowNum - 1).getCell(5).getParagraphArray(0);
                 paragraph11.setAlignment(ParagraphAlignment.CENTER);
                 XWPFRun run11 = paragraph11.createRun();
                 double v = count / (Double.parseDouble(s1.toString()) * Double.parseDouble(i1.toString()));
                 run11.setText(String.format("%.2f", v));
+                rowNum += checkItemRowNum;
                 size++;
             }
         }
@@ -671,12 +800,12 @@
         }
     }
 
+    //杩滃満
     public void createWord2(String sonLaboratory, XWPFDocument document, Exceldata exceldata, HashMap<String, Object> map, HashMap<String, Object> pj, HashMap<String, Object> bz, InsOrderFile insOrderFile) throws IOException {
         int size = 1;
         for (String s : map.keySet()) {
             Map<String, Object> dataRow = exceldata.getDataRow();
             String result = s.substring(s.lastIndexOf("-") + 1);
-            String result1 = s.substring(0, s.lastIndexOf("-"));
             String o = map.get(s).toString();
             String[] split = o.split(",");
             Integer s1 = Integer.parseInt(split[split.length - 1]);
@@ -686,43 +815,48 @@
             HashMap<String, Object> o2 = (HashMap<String, Object>) pj.get(result);
 
             XWPFTable table1 = document.createTable(2, cell);
+            table1.setWidth("100%");
 
             mergeCellsHorizontally(table1, 1, 0, cell - 1);
             mergeCellsHorizontally(table1, 0, 4, cell - 2);
 
             XWPFParagraph paragraph12 = table1.getRow(0).getCell(0).getParagraphArray(0);
+            paragraph12.setAlignment(ParagraphAlignment.CENTER);
             XWPFRun run12 = paragraph12.createRun();
             run12.setText("搴忓彿");
 
             XWPFParagraph paragraph13 = table1.getRow(0).getCell(1).getParagraphArray(0);
+            paragraph13.setAlignment(ParagraphAlignment.CENTER);
             XWPFRun run13 = paragraph13.createRun();
             run13.setText("妫�楠岄」鐩�");
 
             XWPFParagraph paragraph14 = table1.getRow(0).getCell(2).getParagraphArray(0);
+            paragraph14.setAlignment(ParagraphAlignment.CENTER);
             XWPFRun run14 = paragraph14.createRun();
             run14.setText("鍗曚綅");
 
             XWPFParagraph paragraph15 = table1.getRow(0).getCell(3).getParagraphArray(0);
+            paragraph15.setAlignment(ParagraphAlignment.CENTER);
             XWPFRun run15 = paragraph15.createRun();
             run15.setText("鏍囧噯瑕佹眰");
 
             XWPFParagraph paragraph16 = table1.getRow(0).getCell(cell - 1).getParagraphArray(0);
+            paragraph16.setAlignment(ParagraphAlignment.CENTER);
             XWPFRun run16 = paragraph16.createRun();
             run16.setText("妫�楠岀粨璁�");
 
             XWPFParagraph paragraph17 = table1.getRow(0).getCell(4).getParagraphArray(0);
+            paragraph17.setAlignment(ParagraphAlignment.CENTER);
             XWPFRun run17 = paragraph17.createRun();
             run17.setText("妫�楠岀粨鏋�");
 
             XWPFParagraph paragraph18 = table1.getRow(1).getCell(0).getParagraphArray(0);
             XWPFRun run18 = paragraph18.createRun();
-            run18.setText("棰戞锛� " + result1 + "MHz " + "涓嬪�捐" + result);
+            run18.setText("涓嬪�捐" + result);
 
 
             List<String> collect = Arrays.stream(split).collect(Collectors.toList());
             collect.sort((o1, o21) -> Integer.parseInt(o1.substring((o1.length() - 1))) - Integer.parseInt(o21.substring(o21.length() - 1)));
-
-            int size1 = 0;
 
             List<Map<String, Object>> list = new ArrayList<>();
 
@@ -747,137 +881,259 @@
                     aggregatedMap.get(key).add(item);
                 }
             }
-
-
+            // 鍒濆鍖栬鏁�
+            int rowNum = 2;
             for (String s2 : aggregatedMap.keySet()) {
-                if (s2.equals("绔彛") || s2.equals("娴嬭瘯棰戠巼(MHZ)")) {
+                if (s2.equals("绔彛") || s2.equals("娴嬭瘯棰戠巼(MHZ)") || s2.equals("娴嬮噺棰戠巼(MHz)")) {
                     continue;
                 }
                 List<Map<String, Object>> mapList = aggregatedMap.get(s2);
-                // 鍒涘缓涓�涓〃鏍�
-
-                XWPFTable table = document.createTable(row, cell);
-                table.setWidth("100%");
-
-
-
-
-
-           /* // 鍚堝苟鍗曞厓鏍�
-            mergeCellsHorizontally(table, 0, 0, 7);*/
-
-
+                int checkItemRowNum = row;
+                for (int i = 0; i < checkItemRowNum; i++) {
+                    // 鍒涘缓鏂拌 骞惰缃眳涓�
+                    XWPFTableRow tableRow = table1.createRow();
+                    for (XWPFTableCell tableCell : tableRow.getTableCells()) {
+                        // 璁剧疆鍗曞厓鏍煎唴瀹瑰眳涓榻�
+                        for (XWPFParagraph paragraph : tableCell.getParagraphs()) {
+                            paragraph.setAlignment(ParagraphAlignment.CENTER);
+                        }
+                    }
+                }
+//            XWPFTable table = document.createTable(row, cell);
                 //鍨傜洿
-                mergeCellsVertically(table, 0, 0, row - 1);
-                mergeCellsVertically(table, 1, 0, row - 1);
-                mergeCellsVertically(table, 2, 0, row - 1);
-                mergeCellsVertically(table, 3, 0, row - 1);
-                mergeCellsVertically(table, 4, 0, 1);
-                mergeCellsVertically(table, cell - 1, 0, 1);
-                mergeCellsVertically(table, cell - 1, 2, row - 2);
+                mergeCellsVertically(table1, 0, rowNum, rowNum +  checkItemRowNum - 1);
+                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, rowNum+1);
+                mergeCellsVertically(table1, cell - 1, rowNum, rowNum+1);
+                mergeCellsVertically(table1, cell - 1, rowNum+2, rowNum +  checkItemRowNum - 1);
                 //姘村钩
-                mergeCellsHorizontally(table, 0, 5, cell - 2);
-                mergeCellsHorizontally(table, row - 1, 5, cell - 2);
+                mergeCellsHorizontally(table1, rowNum, 5, cell - 2);
+                mergeCellsHorizontally(table1, rowNum + checkItemRowNum - 1, 5, cell - 2);
 
                 // 璁剧疆鍗曞厓鏍兼枃鏈苟灞呬腑
-                XWPFParagraph paragraph = table.getRow(0).getCell(0).getParagraphArray(0);
+                XWPFParagraph paragraph = table1.getRow(rowNum).getCell(0).getParagraphArray(0);
                 XWPFRun run = paragraph.createRun();
                 run.setText(String.valueOf(size));
 
 
-                XWPFParagraph paragraph1 = table.getRow(0).getCell(1).getParagraphArray(0);
+                XWPFParagraph paragraph1 = table1.getRow(rowNum).getCell(1).getParagraphArray(0);
                 XWPFRun run1 = paragraph1.createRun();
                 run1.setText(s2);
 
-                // 璋冪敤鏂规硶鎻愬彇绗竴涓嫭鍙峰唴鐨勫唴瀹�
-                String firstContent = extractFirstContentFromBrackets(s2);
-                if (firstContent != null) {
-                    XWPFParagraph paragraph2 = table.getRow(0).getCell(2).getParagraphArray(0);
-                    XWPFRun run2 = paragraph2.createRun();
-                    run2.setText(firstContent);
+                // 鍗曚綅
+                XWPFParagraph paragraph2 = table1.getRow(rowNum).getCell(2).getParagraphArray(0);
+                XWPFRun run2 = paragraph2.createRun();
+                if (s2.contains("澧炵泭")) {
+                    run2.setText("dBi");
+                } else if (s2.contains("娉㈢摚瀹藉害") || s2.contains("娉㈡潫瀹藉害") || s2.contains("涓嬪�捐")) {
+                    run2.setText("掳");
+                } else if (s2.contains("鍓嶅悗姣�") || s2.contains("浜ゅ弶鏋佸寲") || s2.contains("鏃佺摚鎶戝埗") || s2.contains("涓嬮檷") || s2.contains("闆剁偣濉厖") || s2.contains("鍓摚鐢靛钩")) {
+                    run2.setText("dB");
+                } else if (s2.contains("鏁堢巼") || s2.contains("鎵囧尯鍗犳瘮")) {
+                    run2.setText("%");
                 } else {
-                    System.out.println("娌℃湁鎵惧埌鎷彿鍐呯殑鍐呭銆�");
+                    run2.setText("");
                 }
 
 
-                XWPFParagraph paragraph3 = table.getRow(0).getCell(3).getParagraphArray(0);
+                // 瀹氫箟鏀规鏌ラ」鏍囧噯鍊�
+                String checkItemStandardStr = "";
+                XWPFParagraph paragraph3 = table1.getRow(rowNum).getCell(3).getParagraphArray(0);
                 XWPFRun run3 = paragraph3.createRun();
                 if (bz.get(s2) != null) {
                     run3.setText(bz.get(s2).toString());
-                }
+                    checkItemStandardStr = bz.get(s2).toString();
+                } else run3.setText("");
 
 
-                XWPFParagraph paragraph4 = table.getRow(0).getCell(4).getParagraphArray(0);
+                XWPFParagraph paragraph4 = table1.getRow(rowNum).getCell(4).getParagraphArray(0);
+                paragraph4.setAlignment(ParagraphAlignment.CENTER);
                 XWPFRun run4 = paragraph4.createRun();
                 run4.setText("棰戠巼锛圡Hz锛�");
 
-                XWPFParagraph paragraph5 = table.getRow(0).getCell(5).getParagraphArray(0);
+                XWPFParagraph paragraph5 = table1.getRow(rowNum).getCell(5).getParagraphArray(0);
+                paragraph5.setAlignment(ParagraphAlignment.CENTER);
                 XWPFRun run5 = paragraph5.createRun();
                 run5.setText("绔彛");
 
-                XWPFParagraph paragraph6 = table.getRow(0).getCell(cell - 1).getParagraphArray(0);
+                XWPFParagraph paragraph6 = table1.getRow(rowNum).getCell(cell - 1).getParagraphArray(0);
+                paragraph6.setAlignment(ParagraphAlignment.CENTER);
                 XWPFRun run6 = paragraph6.createRun();
-                run6.setText("/");
+                run6.setText("鍒ゅ畾");
 
-                XWPFParagraph paragraph7 = table.getRow(1).getCell(cell - 1).getParagraphArray(0);
+                XWPFParagraph paragraph7 = table1.getRow(rowNum+1).getCell(cell - 1).getParagraphArray(0);
+                paragraph7.setAlignment(ParagraphAlignment.CENTER);
                 XWPFRun run7 = paragraph7.createRun();
                 run7.setText("鍚堟牸");
 
 
-                XWPFParagraph paragraph8 = table.getRow(row - 1).getCell(4).getParagraphArray(0);
+                XWPFParagraph paragraph8 = table1.getRow(rowNum+checkItemRowNum - 1).getCell(4).getParagraphArray(0);
+                paragraph8.setAlignment(ParagraphAlignment.CENTER);
                 XWPFRun run8 = paragraph8.createRun();
                 run8.setText("骞冲潎鍊�");
 
-                XWPFParagraph paragraph9 = table.getRow(row - 1).getCell(cell - 1).getParagraphArray(0);
+                XWPFParagraph paragraph9 = table1.getRow(rowNum + checkItemRowNum - 1).getCell(cell - 1).getParagraphArray(0);
+                paragraph9.setAlignment(ParagraphAlignment.CENTER);
                 XWPFRun run9 = paragraph9.createRun();
-                run9.setText("/");
+                run9.setText("");
 
-                for (int i = 0; i < collect.size(); i++) {
+                for (int i = 0; i < collect.size() - 1; i++) {
                     String s3 = collect.get(i);
                     if (s3.contains("绔彛") || s3.contains("P")) {
-                        XWPFParagraph paragraph10 = table.getRow(1).getCell(5 + i).getParagraphArray(0);
+                        XWPFParagraph paragraph10 = table1.getRow(rowNum+1).getCell(5 + i).getParagraphArray(0);
+                        paragraph10.setAlignment(ParagraphAlignment.CENTER);
                         XWPFRun run10 = paragraph10.createRun();
                         run10.setText(s3);
                     }
                 }
 
-                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=BigDecimal.ZERO;
+                            if (item.containsKey("娴嬭瘯棰戠巼(MHZ)")) {
+                                 value = new BigDecimal(String.valueOf(item.get("娴嬭瘯棰戠巼(MHZ)")));
+                            }
+                            else if (item.containsKey("娴嬮噺棰戠巼(MHz)")){
+                                 value = new BigDecimal(String.valueOf(item.get("娴嬮噺棰戠巼(MHz)")));
+                            }
+                            if (value.scale() <= 0 || value.stripTrailingZeros().scale() <= 0) {
+                                // 娌℃湁灏忔暟閮ㄥ垎锛岃繑鍥炴暣鏁板瓧绗︿覆
+                                return new BigDecimal(value.intValue());
+                            } else {
+                                // 鏈夊皬鏁伴儴鍒嗭紝杩斿洖鍘熷鍊肩殑瀛楃涓插舰寮�
+                                return value;
+                            }
                         }));
 
 
                 int hang = 2;
                 Double count = 0.0;
-                for (Integer aDouble : group.keySet()) {
+                // 瀹氫箟 鏄惁鍚堟牸鏍囪
+                boolean passFlag = true;
+                // 瑙f瀽鍒ゅ畾鏉′欢骞惰В鏋愭瘮杈冩爣鍑嗗�� 0 鏃犻渶鍒ゅ畾 1 鍖洪棿鍒ゅ畾 2 灏忎簬绛変簬 3 澶т簬绛変簬
+                int checkType = 0;
+                double firstParam = 0.0;
+                double secondParam = 0.0 ;
+                checkItemStandardStr = checkItemStandardStr.trim();
+                if(checkItemStandardStr.contains("~") || checkItemStandardStr.contains("锝�") ){
+                    checkType = 1;
+                    String[] params = checkItemStandardStr.split("~");
+                    if (checkItemStandardStr.contains("锝�")) {
+                        params = checkItemStandardStr.split("锝�");
+                    }
+                    if(null != params && params.length == 2){
+                        firstParam = Double.valueOf(params[0]);
+                        secondParam = Double.valueOf(params[1]);
+                    }
+                } else if(checkItemStandardStr.contains("-") && !(checkItemStandardStr.contains("鈮�") || checkItemStandardStr.contains("鈮�") || checkItemStandardStr.contains(">") || checkItemStandardStr.contains("<"))){
+                    checkType = 1;
+                    String[] params = checkItemStandardStr.split("-");
+                    if(null != params && params.length == 2){
+                        firstParam = Double.valueOf(params[0]);
+                        secondParam = Double.valueOf(params[1]);
+                    }
+                } else if (checkItemStandardStr.contains("鈮�")) {
+                    checkType = 2;
+                    String[] params = checkItemStandardStr.split("鈮�");
+                    if(null != params && params.length == 1){
+                        if(params[1].contains("%")){
+                            firstParam = Double.valueOf(params[1].substring(0,params[1].length()-1))/100;
+                        }else{
+                            firstParam = Double.valueOf(params[1]);
+                        }
+                    }
+                }else if(checkItemStandardStr.contains("鈮�")){
+                    checkType = 3;
+                    String[] params = checkItemStandardStr.split("鈮�");
+                    if(null != params && params.length == 2){
+                        if(params[1].contains("%")){
+                            firstParam = Double.valueOf(params[1].substring(0,params[1].length()-1))/100;
+                        }else{
+                            firstParam = Double.valueOf(params[1]);
+                        }
+                    }
+                }else if(checkItemStandardStr.contains(">")){
+                    checkType = 4;
+                    String[] params = checkItemStandardStr.split(">");
+                    if(null != params && params.length == 2){
+                        if(params[1].contains("%")){
+                            firstParam = Double.valueOf(params[1].substring(0,params[1].length()-1))/100;
+                        }else{
+                            firstParam = Double.valueOf(params[1]);
+                        }
+                    }
+                }else if(checkItemStandardStr.contains("<")){
+                    checkType = 5;
+                    String[] params = checkItemStandardStr.split("<");
+                    if(null != params && params.length == 2){
+                        if(params[1].contains("%")){
+                            firstParam = Double.valueOf(params[1].substring(0,params[1].length()-1))/100;
+                        }else{
+                            firstParam = Double.valueOf(params[1]);
+                        }
+                    }
+                }
+
+                for (BigDecimal aDouble : group.keySet()) {
                     List<Map<String, Object>> mapList1 = group.get(aDouble);
                     for (Map<String, Object> stringObjectMap : mapList1) {
                         String port = stringObjectMap.get("绔彛").toString();
                         for (int i = 5; i < cell - 1; i++) {
-                            String text = table.getRow(1).getCell(i).getText();
+                            String text = table1.getRow(rowNum+1).getCell(i).getText();
                             if (text.equals(port)) {
-                                XWPFParagraph paragraph10 = table.getRow(hang).getCell(i).getParagraphArray(0);
+                                XWPFParagraph paragraph10 = table1.getRow(hang+rowNum).getCell(i).getParagraphArray(0);
                                 XWPFRun run10 = paragraph10.createRun();
-                                count = Double.parseDouble(stringObjectMap.get(s2).toString()) + count;
-                                String project = stringObjectMap.get(s2).toString();
-                                run10.setText(project);
+                                double value = Double.parseDouble(stringObjectMap.get(s2).toString());
+                                count = value + count;
+                                // 鏁版嵁鍒ゆ柇
+                                if(checkType == 1){
+                                    if(!(value >= firstParam && value <= secondParam)){
+                                        passFlag = false;
+                                    }
+                                }else if(checkType == 2){
+                                    if(value >= firstParam ){
+                                        passFlag = false;
+                                    }
+                                }else if(checkType == 3){
+                                    if(value <= firstParam ){
+                                        passFlag = false;
+                                    }
+                                }else if(checkType == 4){
+                                    if(value < firstParam ){
+                                        passFlag = false;
+                                    }
+                                }else if(checkType == 5){
+                                    if(value > firstParam ){
+                                        passFlag = false;
+                                    }
+                                }
+                                run10.setText(String.format("%.2f",value));
                             }
                         }
                     }
-                    XWPFParagraph paragraph10 = table.getRow(hang).getCell(4).getParagraphArray(0);
+                    XWPFParagraph paragraph10 = table1.getRow(hang+rowNum).getCell(4).getParagraphArray(0);
                     XWPFRun run10 = paragraph10.createRun();
                     run10.setText(String.valueOf(aDouble));
-
-
                     hang++;
                 }
+                // 姹囨�荤粨鏋�
+                if(checkType != 0){
+                    XWPFParagraph paragraph10 = table1.getRow(rowNum+2).getCell(cell - 1).getParagraphArray(0);
+                    XWPFRun run10 = paragraph10.createRun();
+                    if(passFlag){
+                        run10.setText("鍚堟牸");
+                    }else {
+                        run10.setText("涓嶅悎鏍�");
+                    }
+                }
 
-                XWPFParagraph paragraph11 = table.getRow(row - 1).getCell(5).getParagraphArray(0);
+                XWPFParagraph paragraph11 = table1.getRow(rowNum + checkItemRowNum - 1).getCell(5).getParagraphArray(0);
                 XWPFRun run11 = paragraph11.createRun();
                 double v = count / (Double.parseDouble(s1.toString()) * Double.parseDouble(i1.toString()));
-                run11.setText(o2.get(s2).toString());
-
+                run11.setText(String.format("%.2f",(double)o2.get(s2)));
+                rowNum += checkItemRowNum;
                 size++;
             }
         }
@@ -906,20 +1162,6 @@
                 table.getRow(i).getCell(col).getCTTc().addNewTcPr().addNewVMerge().setVal(STMerge.CONTINUE);
             }
         }
-    }
-
-    // 鎻愬彇绗竴涓嫭鍙峰唴鐨勫唴瀹�
-    public static String extractFirstContentFromBrackets(String str) {
-        // 瀹氫箟姝e垯琛ㄨ揪寮忥紝鍖归厤鎷彿鍐呯殑鍐呭锛屽悓鏃舵敮鎸佷腑鏂囧拰鑻辨枃鎷彿
-        Pattern pattern = Pattern.compile("\\锛�(.*?)\\锛墊\\((.*?)\\)");
-        Matcher matcher = pattern.matcher(str);
-
-        // 鏌ユ壘绗竴涓尮閰嶇殑鍐呭
-        if (matcher.find()) {
-            // 鑾峰彇鎷彿鍐呯殑鍐呭锛屽垽鏂槸涓枃鎷彿杩樻槸鑻辨枃鎷彿
-            return matcher.group(1) != null ? matcher.group(1) : matcher.group(2);
-        }
-        return null; // 濡傛灉娌℃湁鎵惧埌鍖归厤椤癸紝鍒欒繑鍥瀗ull
     }
 
 }

--
Gitblit v1.9.3