From 97bb7a8832281eafe0ef947ea095258d355e52f5 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期一, 30 十二月 2024 15:57:51 +0800 Subject: [PATCH] 无源器件的数采+电路模版查询 --- inspect-server/src/main/java/com/yuanchu/mom/utils/FuSheUtils.java | 520 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 501 insertions(+), 19 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 b95e6fa..97258fd 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,17 +1,21 @@ 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.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 org.apache.commons.lang3.StringUtils; import org.apache.poi.openxml4j.util.ZipSecureFile; @@ -27,8 +31,6 @@ import javax.annotation.Resource; import java.io.*; -import java.nio.file.Files; -import java.nio.file.Paths; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -43,9 +45,9 @@ InsOrderFileMapper insOrderFileMapper; @Resource - InsOrderMapper insOrderMapper; + InsSampleMapper insSampleMapper; - public void getFuSheWord(String sonLaboratory, InsOrderFile insOrderFile) { + public void getFuSheWord1(String sonLaboratory, InsOrderFile insOrderFile) { //璇诲彇excel鏂囦欢鍐呭 String excelFilePath = wordUrl + "/" + insOrderFile.getFileUrl(); // 鏇存柊涓轰綘鐨勬枃浠惰矾寰� FileInputStream fileInputStream = null; @@ -57,6 +59,7 @@ Exceldata exceldata = new Exceldata(); Map<Integer, Object> project = new HashMap<>(); HashMap<String, Object> datas1 = new HashMap<>(); + Boolean exitLoop = false; for (int i = 0; i < workbook.getNumberOfSheets(); i++) { String s = ""; Sheet sheet = workbook.getSheetAt(i); @@ -89,6 +92,10 @@ } else { switch (cell.getCellType()) { case STRING: + if (cell.getColumnIndex() == 1) { + exitLoop = true; + break; + } if (StringUtils.isNotEmpty(s)) { datas.put(s, list); } @@ -113,6 +120,10 @@ System.out.print("NULL\t"); } } + if (exitLoop) { + exitLoop = false; + break; + } if (map.isEmpty()) { list.add(map); } @@ -126,7 +137,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); @@ -136,15 +146,17 @@ for (Map<String, Object> number : hashMaps) { number.put("绔彛", s1); Double o = (Double) number.get("棰戠巼"); - floatList.add(o); + if (o != null) { + floatList.add(o); + } } Double maxValue = Collections.max(floatList); Double minValue = Collections.min(floatList); - if (map.get(minValue + "-" + maxValue + "-" + s) == null) { - map.put(minValue + "-" + maxValue + "-" + s, s1); + 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); + Object o = map.get(minValue + "," + maxValue + "," + s); + map.put(minValue + "," + maxValue + "," + s, s1 + "," + o); } } } @@ -188,6 +200,261 @@ } } + public void getFuSheWord2(String sonLaboratory, InsOrderFile insOrderFile) { + //璇诲彇excel鏂囦欢鍐呭 + String excelFilePath = wordUrl + "/" + insOrderFile.getFileUrl(); // 鏇存柊涓轰綘鐨勬枃浠惰矾寰� + FileInputStream fileInputStream = null; + Workbook workbook = null; + + try { + 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<>(); + 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<>(); + String jiaodu = ""; + String port = ""; + Integer count = 0; + Sheet sheet = workbook.getSheetAt(i); + 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: + project.put(cell.getColumnIndex(), cell.getStringCellValue()); + System.out.print(cell.getStringCellValue() + "\t"); + 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() == 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); + map2 = new HashMap<>(); + } + datas1.put(cell.getStringCellValue(), ""); + jiaodu = cell.getStringCellValue(); + } else if (cell.getColumnIndex() == 1 && StringUtils.isNotEmpty(cell.getStringCellValue())) { + if (list.size() != 0) { + map2.put(port, list); + list = new ArrayList<>(); + } + map2.put(cell.getStringCellValue(), ""); + port = cell.getStringCellValue(); + + } else { + switch (cell.getCellType()) { + case STRING: + String value = cell.getStringCellValue(); + if (value.equals("avg")) { + for (Cell cell1 : row) { + switch (cell1.getCellType()) { + case STRING: + + break; + case NUMERIC: + pingjun.put(project.get(cell1.getColumnIndex()).toString(), cell1.getNumericCellValue()); + System.out.print(cell1.getNumericCellValue() + "\t"); + break; + case BOOLEAN: + System.out.print(cell1.getBooleanCellValue() + "\t"); + break; + case FORMULA: + String cellFormula = cell1.getCellFormula(); + Double numericCellValue = cell1.getNumericCellValue(); + pingjun.put(project.get(cell1.getColumnIndex()).toString(), cell1.getNumericCellValue()); + System.out.print(cellFormula); + break; + default: + System.out.print("NULL\t"); + } + + } + } else { + biaoji = true; + } + break; + case NUMERIC: + map1.put(project.get(cell.getColumnIndex()).toString(), cell.getNumericCellValue()); + 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"); + } + + } + } + if (biaoji) { + biaoji = false; + break; + } + } + + if (map1.size() != 0) { + list.add(map1); + } + if (pingjun.size() != 0) { + pingjunzhi.put(jiaodu, pingjun); + } + + if (count == lastRowNum + 1) { + map2.put(port, list); + datas1.put(jiaodu, map2); + } + System.out.println(); + } + 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); + Double o = (Double) number.get("娴嬭瘯棰戠巼(MHZ)"); + floatList.add(o.intValue()); + } + 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); + + createWord2(sonLaboratory, document, exceldata, map, pingjunzhi, biaozhun, insOrderFile); + + } + // 杈撳嚭鍒版枃浠� + InsSample insSample = insSampleMapper.selectById(insOrderFile.getInsSampleId()); + 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("#", "&"); + FileOutputStream out = new FileOutputStream(wordUrl + "/" + url); + document.write(out); + out.close(); + document.close(); + InsOrderFile orderFile = new InsOrderFile(); + orderFile.setInsOrderId(insOrderFile.getInsOrderId()); + orderFile.setInsSampleId(insOrderFile.getInsSampleId()); + orderFile.setFileUrl(url); + orderFile.setType(2); + orderFile.setFileName(insSample.getSampleCode() + "&" + sonLaboratory + name + "瑙f瀽鐨勮緪灏勭珯鐐规姤鍛�.docx"); + orderFile.setSonLaboratory(sonLaboratory); + insOrderFileMapper.insert(orderFile); + + } catch (IOException e) { + e.printStackTrace(); + } finally { + // 鍏抽棴璧勬簮 + try { + if (workbook != null) { + workbook.close(); + } + if (fileInputStream != null) { + fileInputStream.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + + } + } + public void createWord(String sonLaboratory, XWPFDocument document, Exceldata exceldata, HashMap<String, Object> map, InsOrderFile insOrderFile) throws IOException { int size = 1; @@ -197,8 +464,8 @@ runs.setText("杈愬皠鏂瑰悜鍥惧弬鏁�"); 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 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]); @@ -324,7 +591,7 @@ paragraph6.setAlignment(ParagraphAlignment.CENTER); XWPFRun run6 = paragraph6.createRun(); run6.setText("/"); - XWPFParagraph paragraph7 = table.getRow(1).getCell(cell - 1).getParagraphArray(0); + XWPFParagraph paragraph7 = table.getRow(2).getCell(cell - 1).getParagraphArray(0); paragraph7.setAlignment(ParagraphAlignment.CENTER); XWPFRun run7 = paragraph7.createRun(); run7.setText("鍚堟牸"); @@ -376,24 +643,27 @@ 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)); + run11.setText(String.format("%.2f", v)); size++; } } // 杈撳嚭鍒版枃浠� try { - InsOrder insOrder = insOrderMapper.selectById(insOrderFile.getInsOrderId()); + InsSample insSample = insSampleMapper.selectById(insOrderFile.getInsSampleId()); String[] split = insOrderFile.getFileName().split("\\."); - String name = insOrderFile.getFileName().substring(0, (insOrderFile.getFileName().length() - split[split.length - 1].length())); - FileOutputStream out = new FileOutputStream(wordUrl + "/" + insOrder.getEntrustCode() + "&" + sonLaboratory + name + "瑙f瀽鐨勮緪灏勭珯鐐规姤鍛�.docx"); + 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.replace("#", "&"); + FileOutputStream out = new FileOutputStream(wordUrl + "/" + url); document.write(out); out.close(); document.close(); InsOrderFile orderFile = new InsOrderFile(); orderFile.setInsOrderId(insOrderFile.getInsOrderId()); - orderFile.setFileUrl(insOrder.getEntrustCode() + "&" + sonLaboratory + name + "瑙f瀽鐨勮緪灏勭珯鐐规姤鍛�.docx"); + orderFile.setInsSampleId(insOrderFile.getInsSampleId()); + orderFile.setFileUrl(url); orderFile.setType(2); - orderFile.setFileName(insOrder.getEntrustCode() + "&" + sonLaboratory + name + "瑙f瀽鐨勮緪灏勭珯鐐规姤鍛�.docx"); + orderFile.setFileName(insSample.getSampleCode() + "&" + sonLaboratory + name + "瑙f瀽鐨勮緪灏勭珯鐐规姤鍛�.docx"); orderFile.setSonLaboratory(sonLaboratory); insOrderFileMapper.insert(orderFile); } catch (IOException e) { @@ -401,6 +671,218 @@ } } + 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()); + 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<>(); + + + // 瀵规墍鏈夌殑閿仛鍚� + 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(); + if (bz.get(s2) != null) { + 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 -> { + Double aDouble = (Double) item.get("娴嬭瘯棰戠巼(MHZ)"); + return aDouble.intValue(); + })); + + + 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++; + } + } + } + // 姘村钩鍚堝苟鍗曞厓鏍� private static void mergeCellsHorizontally(XWPFTable table, int row, int fromCol, int toCol) { -- Gitblit v1.9.3