| | |
| | | package com.yuanchu.mom.utils; |
| | | |
| | | import cn.hutool.core.lang.UUID; |
| | | import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
| | | import com.deepoove.poi.data.*; |
| | | import com.deepoove.poi.data.style.*; |
| | | import com.yuanchu.mom.dto.Exceldata; |
| | |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.io.*; |
| | | import java.math.BigDecimal; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | } |
| | | System.out.println(map); |
| | | createWord(sonLaboratory, document, exceldata, map, biaozhun, insOrderFile); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } catch (Exception e) { |
| | | // e.printStackTrace(); |
| | | } finally { |
| | | // 关闭资源 |
| | | try { |
| | |
| | | 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); |
| | |
| | | orderFile.setSonLaboratory(sonLaboratory); |
| | | insOrderFileMapper.insert(orderFile); |
| | | |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } catch (Exception e) { |
| | | // e.printStackTrace(); |
| | | } finally { |
| | | // 关闭资源 |
| | | try { |
| | |
| | | // 创建一个表格 |
| | | int checkItemRowNum = row; |
| | | for (int i = 0; i < checkItemRowNum; i++) { |
| | | table1.createRow(); |
| | | XWPFTableRow tableRow = table1.createRow(); |
| | | for (XWPFTableCell tableCell : tableRow.getTableCells()) { |
| | | // 设置单元格内容居中对齐 |
| | | for (XWPFParagraph paragraph : tableCell.getParagraphs()) { |
| | | paragraph.setAlignment(ParagraphAlignment.CENTER); |
| | | } |
| | | } |
| | | } |
| | | //垂直 |
| | | mergeCellsVertically(table1, 0, rowNum, rowNum + checkItemRowNum - 1); |
| | |
| | | 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()) { |
| | | for (BigDecimal aDouble : group.keySet()) { |
| | | List<Map<String, Object>> mapList1 = group.get(aDouble); |
| | | for (Map<String, Object> stringObjectMap : mapList1) { |
| | | String port = stringObjectMap.get("端口").toString(); |
| | |
| | | passFlag = false; |
| | | } |
| | | } |
| | | String project = stringObjectMap.get(s2).toString(); |
| | | run10.setText(project); |
| | | run10.setText(String.format("%.2f", value)); |
| | | } |
| | | } |
| | | } |
| | |
| | | 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("检验结果"); |
| | | |
| | |
| | | |
| | | |
| | | List<String> collect = Arrays.stream(split).collect(Collectors.toList()); |
| | | collect.remove(collect.size() - 1); |
| | | collect.sort((o1, o21) -> Integer.parseInt(o1.substring((o1.length() - 1))) - Integer.parseInt(o21.substring(o21.length() - 1))); |
| | | |
| | | List<Map<String, Object>> list = new ArrayList<>(); |
| | |
| | | |
| | | 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")) { |
| | | if (s2.contains("端口") || s2.contains("P") || s2.contains("广播") || s2.contains("业务")) { |
| | | List<Map<String, Object>> mapList = o1.get(s2); |
| | | list.addAll(mapList); |
| | | } |
| | |
| | | // 初始化行数 |
| | | 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); |
| | | // 创建一个表格 |
| | | int checkItemRowNum = row; |
| | | for (int i = 0; i < checkItemRowNum; i++) { |
| | | table1.createRow(); // 创建新行 |
| | | // 创建新行 并设置居中 |
| | | XWPFTableRow tableRow = table1.createRow(); |
| | | for (XWPFTableCell tableCell : tableRow.getTableCells()) { |
| | | // 设置单元格内容居中对齐 |
| | | for (XWPFParagraph paragraph : tableCell.getParagraphs()) { |
| | | paragraph.setAlignment(ParagraphAlignment.CENTER); |
| | | } |
| | | } |
| | | } |
| | | // XWPFTable table = document.createTable(row, cell); |
| | | //垂直 |
| | |
| | | mergeCellsVertically(table1, 1, rowNum, rowNum + checkItemRowNum - 1); |
| | | mergeCellsVertically(table1, 2, rowNum, rowNum + checkItemRowNum - 1); |
| | | mergeCellsVertically(table1, 3, rowNum, rowNum + checkItemRowNum - 1); |
| | | mergeCellsVertically(table1, 4, rowNum, 1); |
| | | mergeCellsVertically(table1, 4, rowNum, rowNum+1); |
| | | mergeCellsVertically(table1, cell - 1, rowNum, rowNum+1); |
| | | mergeCellsVertically(table1, cell - 1, rowNum+2, rowNum + checkItemRowNum - 1); |
| | | //水平 |
| | |
| | | // 定义改检查项标准值 |
| | | String checkItemStandardStr = ""; |
| | | XWPFParagraph paragraph3 = table1.getRow(rowNum).getCell(3).getParagraphArray(0); |
| | | paragraph3.setAlignment(ParagraphAlignment.CENTER); |
| | | XWPFRun run3 = paragraph3.createRun(); |
| | | if (bz.get(s2) != null) { |
| | | run3.setText(bz.get(s2).toString()); |
| | |
| | | |
| | | |
| | | XWPFParagraph paragraph4 = table1.getRow(rowNum).getCell(4).getParagraphArray(0); |
| | | paragraph4.setAlignment(ParagraphAlignment.CENTER); |
| | | XWPFRun run4 = paragraph4.createRun(); |
| | | run4.setText("频率(MHz)"); |
| | | |
| | |
| | | run5.setText("端口"); |
| | | |
| | | XWPFParagraph paragraph6 = table1.getRow(rowNum).getCell(cell - 1).getParagraphArray(0); |
| | | paragraph6.setAlignment(ParagraphAlignment.CENTER); |
| | | XWPFRun run6 = paragraph6.createRun(); |
| | | run6.setText("判定"); |
| | | |
| | | XWPFParagraph paragraph7 = table1.getRow(rowNum+1).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 = table1.getRow(rowNum + checkItemRowNum - 1).getCell(cell - 1).getParagraphArray(0); |
| | | paragraph9.setAlignment(ParagraphAlignment.CENTER); |
| | | XWPFRun run9 = paragraph9.createRun(); |
| | | run9.setText(""); |
| | | |
| | | for (int i = 0; i < collect.size() - 1; i++) { |
| | | for (int i = 0; i < collect.size(); i++) { |
| | | String s3 = collect.get(i); |
| | | if (s3.contains("端口") || s3.contains("P")) { |
| | | if (s3.contains("端口") || s3.contains("P") || s3.contains("广播") || s3.contains("业务")) { |
| | | 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; |
| | | } |
| | | })); |
| | | |
| | | |
| | |
| | | double firstParam = 0.0; |
| | | double secondParam = 0.0 ; |
| | | checkItemStandardStr = checkItemStandardStr.trim(); |
| | | if(checkItemStandardStr.contains("~") ){ |
| | | 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]); |
| | |
| | | } |
| | | } |
| | | |
| | | for (Integer aDouble : group.keySet()) { |
| | | for (BigDecimal aDouble : group.keySet()) { |
| | | List<Map<String, Object>> mapList1 = group.get(aDouble); |
| | | for (Map<String, Object> stringObjectMap : mapList1) { |
| | | String port = stringObjectMap.get("端口").toString(); |
| | |
| | | passFlag = false; |
| | | } |
| | | } |
| | | String project = stringObjectMap.get(s2).toString(); |
| | | run10.setText(project); |
| | | run10.setText(String.format("%.2f",value)); |
| | | } |
| | | } |
| | | } |