From 54c480e3632fbc6fc821786e2b473bceb2f0ae4e Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期六, 22 三月 2025 15:35:29 +0800
Subject: [PATCH] 天线的电路总报告保留两位小数
---
inspect-server/src/main/java/com/yuanchu/mom/utils/FuSheUtils.java | 556 +++++++++++++++++++++++++++++++++++++------------------
1 files changed, 374 insertions(+), 182 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 9b083d5..baf937a 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,15 @@
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 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;
@@ -32,10 +23,9 @@
import javax.annotation.Resource;
import java.io.*;
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 +37,7 @@
@Resource
InsSampleMapper insSampleMapper;
+ //杩戝満
public void getFuSheWord1(String sonLaboratory, InsOrderFile insOrderFile) {
//璇诲彇excel鏂囦欢鍐呭
String excelFilePath = wordUrl + "/" + insOrderFile.getFileUrl(); // 鏇存柊涓轰綘鐨勬枃浠惰矾寰�
@@ -59,6 +50,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 +81,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 +151,7 @@
}
}
}
+ list=list.stream().filter(map -> !map.isEmpty()).collect(Collectors.toList());
datas.put(s, list);
map1.put(sheetName, datas);
datas1.putAll(map1);
@@ -161,7 +183,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 +203,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 +221,7 @@
}
}
+ //杩滃満
public void getFuSheWord2(String sonLaboratory, InsOrderFile insOrderFile) {
//璇诲彇excel鏂囦欢鍐呭
String excelFilePath = wordUrl + "/" + insOrderFile.getFileUrl(); // 鏇存柊涓轰綘鐨勬枃浠惰矾寰�
@@ -210,8 +232,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 +247,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 +269,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 +314,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 +350,6 @@
default:
System.out.print("NULL\t");
}
-
}
}
if (biaoji) {
@@ -343,7 +357,6 @@
break;
}
}
-
if (map1.size() != 0) {
list.add(map1);
}
@@ -367,7 +380,6 @@
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);
@@ -386,17 +398,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()) {
@@ -422,8 +429,8 @@
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.replace("#", "&");
+ String url = UUID.randomUUID() + "_" + insSample.getSampleCode() + "_" + sonLaboratory + name + "瑙f瀽鐨勮緪灏勭珯鐐规姤鍛�.docx";
+ url = url.replace("#", "&");
FileOutputStream out = new FileOutputStream(wordUrl + "/" + url);
document.write(out);
out.close();
@@ -455,8 +462,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 +515,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,84 +536,90 @@
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++) {
+ table1.createRow();
+ }
//鍨傜洿
- 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);
@@ -617,33 +630,130 @@
group = new TreeMap<>(group);
int hang = 2;
Double count = 0.0;
+ // 瀹氫箟 鏄惁鍚堟牸鏍囪
+ 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 (Double 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;
+ 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;
+ }
+ }
String project = stringObjectMap.get(s2).toString();
run10.setText(project);
}
}
}
- 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 +781,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,6 +796,7 @@
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);
@@ -716,13 +827,11 @@
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,95 +856,98 @@
aggregatedMap.get(key).add(item);
}
}
-
-
+ // 鍒濆鍖栬鏁�
+ int rowNum = 2;
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);*/
-
-
+ int checkItemRowNum = row;
+ for (int i = 0; i < checkItemRowNum; i++) {
+ table1.createRow(); // 鍒涘缓鏂拌
+ }
+// 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, 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);
+ paragraph3.setAlignment(ParagraphAlignment.CENTER);
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);
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);
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);
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);
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);
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);
XWPFRun run10 = paragraph10.createRun();
run10.setText(s3);
}
@@ -850,34 +962,128 @@
int hang = 2;
Double count = 0.0;
+ // 瀹氫箟 鏄惁鍚堟牸鏍囪
+ 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("~") ){
+ 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 (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();
+ 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;
+ 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;
+ }
+ }
String project = stringObjectMap.get(s2).toString();
run10.setText(project);
}
}
}
- 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 +1112,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