From ad8f321d123f7ccf6793e550dd1eff9fc48faa31 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期五, 15 十一月 2024 13:43:13 +0800
Subject: [PATCH] 辐射试验的文件上传csv文件有第二种样式,需要不同形式不同解析

---
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java |   23 +-
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java     |   30 +-
 inspect-server/pom.xml                                                                 |    6 
 inspect-server/src/main/java/com/yuanchu/mom/utils/FuSheUtils.java                     |  379 +++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 411 insertions(+), 27 deletions(-)

diff --git a/inspect-server/pom.xml b/inspect-server/pom.xml
index e87287c..952844b 100644
--- a/inspect-server/pom.xml
+++ b/inspect-server/pom.xml
@@ -77,5 +77,11 @@
             <groupId>org.springframework</groupId>
             <artifactId>spring-test</artifactId>
         </dependency>
+
+        <dependency>
+            <groupId>com.opencsv</groupId>
+            <artifactId>opencsv</artifactId>
+            <version>5.5.2</version>
+        </dependency>
     </dependencies>
 </project>
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
index b4c8a56..32fbe1b 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
@@ -327,7 +327,7 @@
             if (!realpath.exists()) {
                 realpath.mkdirs();
             }
-            pathName = file.getOriginalFilename().replace("#","&");
+            pathName = file.getOriginalFilename().replace("#", "&");
             urlString = realpath + "/" + pathName;
             file.transferTo(new File(urlString));
             insOrderFile.setFileUrl(pathName);
@@ -354,7 +354,12 @@
             String[] split = filename.split("\\.");
             if (ObjectUtils.isNotEmpty(sonLaboratory) && (sonLaboratory.equals("杩戝満") || sonLaboratory.equals("杩滃満")) &&
                     split[split.length - 1].equals("csv")) {
-                fuSheUtils.getFuSheWord(sonLaboratory, insOrderFile);
+                //鍒ゆ柇鏄摢绉峜sv鏂囦欢,鏄惁鏈夆�斺��
+                if (!file.getOriginalFilename().contains("鈥斺��")) {
+                    fuSheUtils.getFuSheWord1(sonLaboratory, insOrderFile);
+                } else {
+                    fuSheUtils.getFuSheWord2(sonLaboratory, insOrderFile);
+                }
             }
         } catch (Exception e) {
             System.err.println("闄勪欢涓婁紶閿欒");
@@ -826,8 +831,8 @@
         insProductResultMapper.delete(Wrappers.<InsProductResult>lambdaQuery()
                 .eq(InsProductResult::getInsProductId, insProductResult.getInsProductId())
                 .eq(InsProductResult::getNum, insProductResult.getNum()));
-        insProductResult.setEquipValue("[{\"v\":\""+insProductResult.getEquipValue()+"\"}]");
-        insProductResult.setEquipName("[{\"v\":\""+insProductResult.getEquipName()+"\"}]");
+        insProductResult.setEquipValue("[{\"v\":\"" + insProductResult.getEquipValue() + "\"}]");
+        insProductResult.setEquipName("[{\"v\":\"" + insProductResult.getEquipName() + "\"}]");
         insProductResultMapper.insert(insProductResult);
         return 0;
     }
@@ -1113,7 +1118,7 @@
         info.setJumpPath("b1-inspect-order-plan");
         informationNotificationService.addInformationNotification(info);
         // todo 浼佷笟寰俊娑堟伅鎺ㄩ�丂zss
-            /*HashMap<String, Object> map = new HashMap<>();
+            HashMap<String, Object> map = new HashMap<>();
             String account = userMapper.selectById(userId).getAccount();
             map.put("touser", account);//鎺ユ敹娑堟伅鎴愬憳鐨勮处鍙�'ZT-031292'杩欑绫诲瀷(濡傛灉鏈夊涓敤'|'鍒嗛殧)
             map.put("toparty", "");//鎺ユ敹閮ㄩ棬id
@@ -1126,7 +1131,7 @@
             map.put("safe", 0);//鏄惁淇濆瘑娑堟伅.0鍚�
             map.put("enable_id_trans", 0);//鏄惁寮�鍚痠d杞瘧.0鍚�
             map.put("enable_duplicate_check", 0);//鏄惁寮�鍚噸澶嶆秷鎭鏌�.0鍚�
-            qywxApi.send(map);*/
+            qywxApi.send(map);
 //        }
         //澶嶆牳浜�--妫�楠屽崟鐩稿叧璐熻矗浜�
         InsSampleUser insSampleUser = new InsSampleUser();
@@ -1137,13 +1142,13 @@
         insSampleUserMapper.insert(insSampleUser);
         /*鐢熸垚鐢佃矾璇曢獙鐨勭珯鐐规姤鍛婂苟涓婁紶鍒伴檮浠朵腑*/
         if (submitPlanDto.getLaboratory().equals("鐢佃矾璇曢獙")) {
-            wordUtils.generateWord(submitPlanDto.getTerm(), orderState);
+            //wordUtils.generateWord(submitPlanDto.getTerm(), orderState);
             //todo 鐢佃矾绔欑偣鎶ュ憡 姝e紡搴撻儴缃叉斁寮�
-            /*try {
+            try {
                 wordUtils.generateWord(submitPlanDto.getTerm(), orderState);
             } catch (Exception e) {
                 throw new ErrorException("鐢佃矾璇曢獙鐨勭珯鐐规姤鍛婄敓鎴愭湁璇�,璇疯仈绯诲紑鍙戜汉鍛樿皟鏁�!");
-            }*/
+            }
         }
         /*// 鍒犻櫎鏁伴噰閲囬泦娆℃暟
         String key = "frequency" + ":" + submitPlanDto.getEntrustCode() + ":*";
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java
index ea5a8f4..c8f9b42 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java
@@ -287,6 +287,21 @@
                 }
             }
         }
+        //todo 鏍规嵁璁㈠崟绫诲瀷鍒ゆ柇鏄惁闇�瑕佹帹閫佷紒涓氬井淇� @zss
+        if (!insOrder.getFormType().equals("鍏朵粬鎴愬搧")) {
+            String account = userMapper.selectById(insOrder.getIssueUser()).getAccount();
+            HashMap<String, Object> map = new HashMap<>();
+            map.put("touser", account);//鎺ユ敹娑堟伅鎴愬憳鐨勮处鍙�'ZT-031292'杩欑绫诲瀷(濡傛灉鏈夊涓敤'|'鍒嗛殧)
+            map.put("msgtype", "text");//娑堟伅绫诲瀷 text:鏂囨湰
+            map.put("agentid", 1000517);//搴旂敤id
+            HashMap<String, Object> hashMap = new HashMap<>();
+            hashMap.put("content", "鎮ㄦ湁涓�鏉¤鍗曢渶瑕佸畬鎴�,璇峰墠寰�LIMS绯荤粺鏌ョ湅銆傝鍗曞彿鏄細"+insOrder.getEntrustCode()+",璇峰墠寰�LIMS绯荤粺鏌ョ湅銆�<a href=\"https://ztwxlims.ztt.cn:7443/enter\">涓ぉ閫氫俊LIMS绯荤粺 </a>");
+            map.put("text", hashMap);//娑堟伅鍐呭
+            map.put("safe", 0);//鏄惁淇濆瘑娑堟伅.0鍚�
+            map.put("enable_id_trans", 0);//鏄惁寮�鍚痠d杞瘧.0鍚�
+            map.put("enable_duplicate_check", 0);//鏄惁寮�鍚噸澶嶆秷鎭鏌�.0鍚�
+            qywxApi.send(map);
+        }
         return insOrder.getId();
     }
 
@@ -329,21 +344,6 @@
             //瀹℃牳閫氳繃鎵嶄細鐢熸垚濮旀墭缂栧彿
             insOrder.setEntrustCode(giveCode.giveCode2("WT-", "ins_order", "-", "yyMMdd"));
             insOrder.setSendTime(LocalDateTime.now());
-            //todo 鏍规嵁璁㈠崟绫诲瀷鍒ゆ柇鏄惁闇�瑕佹帹閫佷紒涓氬井淇� @zss
-           /* if (!order.getFormType().equals("鍏朵粬鎴愬搧")) {
-                String account = userMapper.selectById(order.getIssueUser()).getAccount();
-                HashMap<String, Object> map = new HashMap<>();
-                map.put("touser", account);//鎺ユ敹娑堟伅鎴愬憳鐨勮处鍙�'ZT-031292'杩欑绫诲瀷(濡傛灉鏈夊涓敤'|'鍒嗛殧)
-                map.put("msgtype", "text");//娑堟伅绫诲瀷 text:鏂囨湰
-                map.put("agentid", 1000517);//搴旂敤id
-                HashMap<String, Object> hashMap = new HashMap<>();
-                hashMap.put("content", "鎮ㄦ湁涓�鏉¤鍗曢渶瑕佸畬鎴�,璇峰墠寰�LIMS绯荤粺鏌ョ湅銆傝鍗曞彿鏄細"+order.getEntrustCode()+",璇峰墠寰�LIMS绯荤粺鏌ョ湅銆�<a href=\"https://ztwxlims.ztt.cn:7443/enter\">涓ぉ閫氫俊LIMS绯荤粺 </a>");
-                map.put("text", hashMap);//娑堟伅鍐呭
-                map.put("safe", 0);//鏄惁淇濆瘑娑堟伅.0鍚�
-                map.put("enable_id_trans", 0);//鏄惁寮�鍚痠d杞瘧.0鍚�
-                map.put("enable_duplicate_check", 0);//鏄惁寮�鍚噸澶嶆秷鎭鏌�.0鍚�
-                qywxApi.send(map);
-            }*/
         }
         return insOrderMapper.updateById(insOrder);
     }
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 4ac1c70..6249c85 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
@@ -6,6 +6,7 @@
 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;
@@ -45,7 +46,7 @@
     @Resource
     InsOrderMapper insOrderMapper;
 
-    public void getFuSheWord(String sonLaboratory, InsOrderFile insOrderFile) {
+    public void getFuSheWord1(String sonLaboratory, InsOrderFile insOrderFile) {
         //璇诲彇excel鏂囦欢鍐呭
         String excelFilePath = wordUrl + "/" + insOrderFile.getFileUrl(); // 鏇存柊涓轰綘鐨勬枃浠惰矾寰�
         FileInputStream fileInputStream = null;
@@ -86,7 +87,8 @@
                                     default:
                                         System.out.print("NULL\t");
                                 }
-                            } else {
+                            }
+                            else {
                                 switch (cell.getCellType()) {
                                     case STRING:
                                         if (StringUtils.isNotEmpty(s)) {
@@ -126,7 +128,6 @@
             exceldata.setProject(project);
             exceldata.setDataRow(datas1);
             System.out.println(exceldata);
-
             HashMap<String, Object> map = new HashMap<>();
             for (String s : datas1.keySet()) {
                 Map<String, List<HashMap<String, Object>>> numbers = (Map<String, List<HashMap<String, Object>>>) datas1.get(s);
@@ -186,6 +187,149 @@
                 e.printStackTrace();
             }
         }
+    }
+
+    public void getFuSheWord2(String sonLaboratory, InsOrderFile insOrderFile) {
+        //璇诲彇excel鏂囦欢鍐呭
+        String excelFilePath = wordUrl + "/" + insOrderFile.getFileUrl(); // 鏇存柊涓轰綘鐨勬枃浠惰矾寰�
+        String fileEncoding = "GBK"; // 鎴栧叾浠栫紪鐮佹牸寮忥紝濡侴BK, ISO-8859-1 绛�
+        Exceldata exceldata = new Exceldata();
+        HashMap<Integer, Object> project = new HashMap<>();
+        HashMap<String, Object> biaozhun = new HashMap<>();
+        HashMap<String, Object> pingjunzhi = new HashMap<>();
+        HashMap<String, Object> datas1 = new HashMap<>();
+        HashMap<String, Object> map2 = new HashMap<>();
+        List<Map<String, Object>> list = new ArrayList<>();
+        XWPFDocument document = new XWPFDocument();
+        String jiaodu="";
+        String port="";
+        try (CSVReader reader = new CSVReader(new InputStreamReader(new FileInputStream(excelFilePath), fileEncoding))) {
+            List<String[]> records = reader.readAll();
+            for (int i = 0; i < records.size(); i++) {
+                HashMap<String, Object> map1 = new HashMap<>();
+                HashMap<String, Object> pingjun = new HashMap<>();
+                String[] record = records.get(i);
+
+                for (int i1 = 0; i1 < record.length; i1++) {
+                    String value = record[i1];
+                    if (i == 0) {
+                        project.put(i1,value);
+                    }
+                    if (i == 1) {
+                        biaozhun.put(project.get(i1).toString(),value);
+                    }
+                    if (i>2) {
+                        if (i1==0&&StringUtils.isNotEmpty(value)) {
+
+                            if (map2.size() != 0) {
+                                map2.put(port, list);
+                                datas1.put(jiaodu, map2);
+                                map2 = new HashMap<>();
+                            }
+                            datas1.put(value, "");
+                            jiaodu=value;
+                        } else if (i1 == 1 && StringUtils.isNotEmpty(value)) {
+                            if (list.size() != 0) {
+                                map2.put(port, list);
+                                list = new ArrayList<>();
+                            }
+                            map2.put(value, "");
+                            port=value;
+                        } else if (StringUtils.isNotEmpty(value)) {
+                            if (value.equals("鏈�澶у��")||value.equals("鏈�灏忓��")||value.equals("鎸囨爣")||value.equals("绫诲埆")) {
+                                break;
+                            } else if (value.equals("骞冲潎鍊�")) {
+                                for (int i2 = 0; i2 < record.length; i2++) {
+                                    String value1 = record[i2];
+                                    if (value1.equals("骞冲潎鍊�")) {
+                                        continue;
+                                    }
+                                    pingjun.put(project.get(i2).toString(),value1);
+                                }
+                                break;
+                            }
+                            map1.put(project.get(i1).toString(),value);
+                        }
+                    }
+                    System.out.print(value + " ");
+                }
+                if (map1.size()!=0) {
+                    list.add(map1);
+                }
+                if (pingjun.size()!=0) {
+                    pingjunzhi.put(jiaodu,pingjun);
+                }
+                if (i==records.size()-1) {
+                    map2.put(port,list);
+                    datas1.put(jiaodu,map2);
+                }
+                System.out.println();
+            }
+            System.out.println("-----------------");
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        exceldata.setProject(project);
+        exceldata.setDataRow(datas1);
+        System.out.println(exceldata);
+
+
+        HashMap<String, Object> map = new HashMap<>();
+        for (String s : datas1.keySet()) {
+            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);
+                    floatList.add( Integer.parseInt((String) number.get("娴嬭瘯棰戠巼(MHZ)")));
+                }
+                Integer maxValue = Collections.max(floatList);
+                Integer minValue = Collections.min(floatList);
+
+                if (map.get(minValue + "-" + maxValue+"-"+s) == null) {
+                    map.put(minValue + "-" + maxValue+"-"+s, s1);
+                } else {
+                    Object o = map.get(minValue + "-" + maxValue+"-"+s);
+                    map.put(minValue + "-" + maxValue+"-"+s, s1 + "," + o);
+                }
+            }
+
+        }
+        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()) {
+                    List<HashMap<String, Object>> numbers =  o1.get(s3);
+                    for (String s2 : collect) {
+                        if (s3.equals(s2)) {
+                            if (numbers.size() > size1) {
+                                size1 = numbers.size();
+                            }
+                        }
+                    }
+                    map.put(s1, o + "," + size1);
+                }
+            }
+
+        }
+        System.out.println(map);
+
+        try {
+            createWord2(sonLaboratory,document,exceldata, map,pingjunzhi,biaozhun,insOrderFile);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
     }
 
 
@@ -401,6 +545,235 @@
         }
     }
 
+    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]);
+            Integer i1 = split.length - 1;
+            int row = 3 + s1;
+            int cell = 6 + i1;
+            HashMap<String,Object> o2 =(HashMap<String,Object>) pj.get(result);
+
+            XWPFTable table1 = document.createTable(2, cell);
+
+            mergeCellsHorizontally(table1, 1, 0, cell - 1);
+            mergeCellsHorizontally(table1, 0, 4, cell - 2);
+
+            XWPFParagraph paragraph12 = table1.getRow(0).getCell(0).getParagraphArray(0);
+            XWPFRun run12 = paragraph12.createRun();
+            run12.setText("搴忓彿");
+
+            XWPFParagraph paragraph13 = table1.getRow(0).getCell(1).getParagraphArray(0);
+            XWPFRun run13 = paragraph13.createRun();
+            run13.setText("妫�楠岄」鐩�");
+
+            XWPFParagraph paragraph14 = table1.getRow(0).getCell(2).getParagraphArray(0);
+            XWPFRun run14 = paragraph14.createRun();
+            run14.setText("鍗曚綅");
+
+            XWPFParagraph paragraph15 = table1.getRow(0).getCell(3).getParagraphArray(0);
+            XWPFRun run15 = paragraph15.createRun();
+            run15.setText("鏍囧噯瑕佹眰");
+
+            XWPFParagraph paragraph16 = table1.getRow(0).getCell(cell-1).getParagraphArray(0);
+            XWPFRun run16 = paragraph16.createRun();
+            run16.setText("妫�楠岀粨璁�");
+
+            XWPFParagraph paragraph17 = table1.getRow(0).getCell(4).getParagraphArray(0);
+            XWPFRun run17 = paragraph17.createRun();
+            run17.setText("妫�楠岀粨鏋�");
+
+            XWPFParagraph paragraph18 = table1.getRow(1).getCell(0).getParagraphArray(0);
+            XWPFRun run18 = paragraph18.createRun();
+            run18.setText("棰戞锛� "+result1+"MHz "+"涓嬪�捐"+result);
+
+
+
+            List<String> collect = Arrays.stream(split).collect(Collectors.toList());
+
+            int size1 = 0;
+
+            List<Map<String, Object>> list = new ArrayList<>();
+
+
+            // 瀵规墍鏈夌殑閿仛鍚�
+            Map<String, List<Map<String, Object>>> aggregatedMap = new HashMap<>();
+
+            Map<String, List<Map<String, Object>>> o1 = (Map<String, List<Map<String, Object>>>) dataRow.get(result);
+            for (String s2 : collect) {
+                if (s2.contains("绔彛")||s2.contains("P")) {
+                    List<Map<String, Object>> mapList = o1.get(s2);
+                    list.addAll(mapList);
+                }
+            }
+
+            // 閬嶅巻姣忎竴涓」鐩�
+            for (Map<String, Object> item : list) {
+                for (String key : item.keySet()) {
+                    // 濡傛灉璇ラ敭鍦� aggregatedMap 涓笉瀛樺湪锛屽垯鍒涘缓涓�涓柊鐨� List
+                    aggregatedMap.putIfAbsent(key, new ArrayList<>());
+                    // 灏嗗綋鍓嶉」鐩坊鍔犲埌瀵瑰簲閿殑 List 涓�
+                    aggregatedMap.get(key).add(item);
+                }
+            }
+
+
+            for (String s2 : aggregatedMap.keySet()) {
+                if (s2.equals("绔彛")||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);*/
+
+
+                //鍨傜洿
+                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);
+                //姘村钩
+                mergeCellsHorizontally(table, 0, 5, cell - 2);
+                mergeCellsHorizontally(table, row - 1, 5, cell - 2);
+
+                // 璁剧疆鍗曞厓鏍兼枃鏈苟灞呬腑
+                XWPFParagraph paragraph = table.getRow(0).getCell(0).getParagraphArray(0);
+                XWPFRun run = paragraph.createRun();
+                run.setText(String.valueOf(size));
+
+
+                XWPFParagraph paragraph1 = table.getRow(0).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);
+                } else {
+                    System.out.println("娌℃湁鎵惧埌鎷彿鍐呯殑鍐呭銆�");
+                }
+
+
+
+                XWPFParagraph paragraph3 = table.getRow(0).getCell(3).getParagraphArray(0);
+                XWPFRun run3 = paragraph3.createRun();
+                run3.setText(bz.get(s2).toString());
+
+                XWPFParagraph paragraph4 = table.getRow(0).getCell(4).getParagraphArray(0);
+                XWPFRun run4 = paragraph4.createRun();
+                run4.setText("棰戠巼锛圡Hz锛�");
+
+                XWPFParagraph paragraph5 = table.getRow(0).getCell(5).getParagraphArray(0);
+                XWPFRun run5 = paragraph5.createRun();
+                run5.setText("绔彛");
+
+                XWPFParagraph paragraph6 = table.getRow(0).getCell(cell - 1).getParagraphArray(0);
+                XWPFRun run6 = paragraph6.createRun();
+                run6.setText("/");
+
+                XWPFParagraph paragraph7 = table.getRow(1).getCell(cell - 1).getParagraphArray(0);
+                XWPFRun run7 = paragraph7.createRun();
+                run7.setText("鍚堟牸");
+
+
+                XWPFParagraph paragraph8 = table.getRow(row - 1).getCell(4).getParagraphArray(0);
+                XWPFRun run8 = paragraph8.createRun();
+                run8.setText("骞冲潎鍊�");
+
+                XWPFParagraph paragraph9 = table.getRow(row - 1).getCell(cell - 1).getParagraphArray(0);
+                XWPFRun run9 = paragraph9.createRun();
+                run9.setText("/");
+
+                for (int i = 0; i < collect.size(); i++) {
+                    String s3 = collect.get(i);
+                    if (s3.contains("绔彛")||s3.contains("P")) {
+                        XWPFParagraph paragraph10 = table.getRow(1).getCell(5 + i).getParagraphArray(0);
+                        XWPFRun run10 = paragraph10.createRun();
+                        run10.setText(s3);
+                    }
+                }
+
+                Map<Integer, List<Map<String, Object>>> group = mapList.stream()
+                        .collect(Collectors.groupingBy(item -> Integer.parseInt(item.get("娴嬭瘯棰戠巼(MHZ)").toString()) ));
+
+
+                int hang = 2;
+                Double count = 0.0;
+                for (Integer 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();
+                            if (text.equals(port)) {
+                                XWPFParagraph paragraph10 = table.getRow(hang).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);
+                            }
+                        }
+                    }
+                    XWPFParagraph paragraph10 = table.getRow(hang).getCell(4).getParagraphArray(0);
+                    XWPFRun run10 = paragraph10.createRun();
+                    run10.setText(String.valueOf(aDouble));
+
+
+                    hang++;
+                }
+
+                XWPFParagraph paragraph11 = table.getRow(row-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());
+
+                size++;
+            }
+        }
+
+
+        // 杈撳嚭鍒版枃浠�
+        try {
+            InsOrder insOrder = insOrderMapper.selectById(insOrderFile.getInsOrderId());
+            String[] split = insOrderFile.getFileName().split("\\.");
+            String name = insOrderFile.getFileName().replace("#","&").substring(0, (insOrderFile.getFileName().length() - split[split.length - 1].length()));
+            FileOutputStream out = new FileOutputStream(wordUrl + "/" + insOrder.getEntrustCode() + "&" + sonLaboratory + name + "瑙f瀽鐨勮緪灏勭珯鐐规姤鍛�.docx");
+            document.write(out);
+            out.close();
+            document.close();
+            InsOrderFile orderFile = new InsOrderFile();
+            orderFile.setInsOrderId(insOrderFile.getInsOrderId());
+            orderFile.setFileUrl(insOrder.getEntrustCode() + "&" + sonLaboratory + name + "瑙f瀽鐨勮緪灏勭珯鐐规姤鍛�.docx");
+            orderFile.setType(2);
+            orderFile.setFileName(insOrder.getEntrustCode() + "&" + sonLaboratory + name + "瑙f瀽鐨勮緪灏勭珯鐐规姤鍛�.docx");
+            orderFile.setSonLaboratory(sonLaboratory);
+            insOrderFileMapper.insert(orderFile);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+    }
+
 
     // 姘村钩鍚堝苟鍗曞厓鏍�
     private static void mergeCellsHorizontally(XWPFTable table, int row, int fromCol, int toCol) {

--
Gitblit v1.9.3