From a00890e840b80a741f62eb6cb31b46f13be6202f Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期四, 24 十月 2024 16:46:45 +0800
Subject: [PATCH] 附件调试修改+辐射站点报告生成
---
inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java | 1637 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 1,598 insertions(+), 39 deletions(-)
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java b/inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java
index 62239b9..e28d68e 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java
@@ -17,6 +17,7 @@
import com.yuanchu.mom.mapper.*;
import com.yuanchu.mom.pojo.*;
import org.apache.commons.io.IOUtils;
+import org.apache.poi.openxml4j.util.ZipSecureFile;
import org.apache.poi.xwpf.usermodel.*;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTcPr;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STMerge;
@@ -73,6 +74,12 @@
private InsProductResult2Mapper insProductResult2Mapper;
@Resource
+ InsOrderUserMapper insOrderUserMapper;
+
+ @Resource
+ InsOrderStateMapper insOrderStateMapper;
+
+ @Resource
private InsProductResultMapper insProductResultMapper;
@Resource
@@ -83,7 +90,7 @@
//鐢熸垚绔欑偣鐢佃矾璇曢獙鎶ュ憡
- public void generateWord(String note, String term, InsOrderState insOrderState) {
+ public void generateWord(String term, InsOrderState insOrderState) {
AtomicInteger lable = new AtomicInteger(1);
AtomicInteger index = new AtomicInteger();
String title = term + "鐢佃矾鍙傛暟";
@@ -137,7 +144,8 @@
if (inspectionItemSubclass.contains("浜掕皟")) {
aa += (angles + 1) * portRow * often;
}
- } else {
+ }
+ else {
if (inspectionItemSubclass.contains("鐢靛帇椹绘尝姣�")) {
aa += (angles + 1) * portRow;
}
@@ -225,7 +233,8 @@
paragraphRenderDataList.add(paragraphRenderData);
cellRenderData.setParagraphs(paragraphRenderDataList);
cells.add(cellRenderData);
- } else {
+ }
+ else {
if (insOrderState.getVersion() == 1) {
//闈炵數璋冪増鏈�(绠�鍗曠増)
if (inspectionItemSubclass.contains("鐢靛帇椹绘尝姣�") && i <= 2 * portRow) {
@@ -604,7 +613,8 @@
cells.add(cellRenderData);
}
}
- } else {
+ }
+ else {
//鐢佃皟鐗堟湰(澶嶆潅鐗�)
if (inspectionItemSubclass.contains("鐢靛帇椹绘尝姣�") && i <= (angles + 1) * portRow) {
cc = (angles + 1) * portRow;
@@ -1037,7 +1047,7 @@
String[] value = result2s.get((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / portRow / (angles + 2)).getValue().split("\\],\\[");
String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
try {
- textRenderData.setText(split[((j - 5) + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 1) / (angles + 1) % portRow)* (Math.min(ports, 8)))]);
+ textRenderData.setText(split[((j - 5) + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 1) / (angles + 1) % portRow) * (Math.min(ports, 8)))]);
} catch (Exception e) {
textRenderData.setText("");
}
@@ -1133,7 +1143,7 @@
//鏈�宸��
String[] value = result2s.get(0).getValue().split("\\],\\[");
String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
- textRenderData.setText(split[0] + "鈭�7" + i );
+ textRenderData.setText(split[0] + "鈭�7" + i);
}
renderData.add(textRenderData);
paragraphRenderData.setContents(renderData);
@@ -1226,7 +1236,7 @@
//鏈�宸��
String[] value = result2s.get(0).getValue().split("\\],\\[");
String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
- textRenderData.setText(split[0] + "鈭�7" + i );
+ textRenderData.setText(split[0] + "鈭�7" + i);
}
renderData.add(textRenderData);
paragraphRenderData.setContents(renderData);
@@ -1478,11 +1488,11 @@
table.put("table", tableRenderData);
tables.add(table);
lable.getAndIncrement();
- index.getAndIncrement();
});
});
String url;
try {
+ ZipSecureFile.setMinInflateRatio(0.0001);
InputStream inputStream = this.getClass().getResourceAsStream("/static/word1.docx");
File file = File.createTempFile("temp", ".tmp");
OutputStream outputStream = new FileOutputStream(file);
@@ -1509,6 +1519,7 @@
// 澶勭悊鍚堝苟鍗曞厓鏍肩殑闂
String path = wordUrl + "/" + name;
try {
+ ZipSecureFile.setMinInflateRatio(0.0001);
FileInputStream stream = new FileInputStream(path);
XWPFDocument document = new XWPFDocument(stream);
List<XWPFTable> xwpfTables = document.getTables();
@@ -1588,6 +1599,7 @@
insOrderFile.setFileName(name);
insOrderFile.setType(2);
insOrderFile.setFileUrl(name);
+ insOrderFile.setSonLaboratory("鐢佃矾璇曢獙");
insOrderFileMapper.insert(insOrderFile);
}
@@ -1639,7 +1651,7 @@
.eq(InsProduct::getInsResult, 1));
productSize3.set(productSize3.get() + Integer.parseInt(productCount3 + ""));
//灏嗛」鐩寜鐓х珯鐐硅繘琛屽垎绫�
- Map<String, List<InsProduct>> listMap = s.getInsProduct().stream().collect(Collectors.groupingBy(InsProduct::getLaboratory));
+ Map<String, List<InsProduct>> listMap = s.getInsProduct().stream().collect(Collectors.groupingBy(InsProduct::getSonLaboratory));
// 鍒涘缓涓�涓� Map 灏嗙珯鐐瑰拰椤圭洰ID鐨勬槧灏勫叧绯�
Map<String, Set<Integer>> labToDeviceMap = new HashMap<>();
// 鑾峰彇鎵�鏈夌珯鐐圭殑椤圭洰ID 鍒楄〃
@@ -1685,14 +1697,21 @@
});
/*妫�楠屾儏鍐典竴瑙堣〃*/
- List<Map<String, String>> tables = null;
- List<Map<String, Object>> tables2 = null;
- List<Map<String, Object>> tables3 = null;
- List<Map<String, Object>> tables4 = null;
- Map<String, String> table = null;
+ List<Map<String, String>> tables = new ArrayList<>();
+ List<Map<String, Object>> tables2 = new ArrayList<>();
+ List<Map<String, Object>> tables3 = new ArrayList<>();
+ List<Map<String, Object>> tables4 = new ArrayList<>();
Integer indexs = 1;
//鍒ゆ柇鏄惁鏈夌數璺瘯楠�,鐜璇曢獙
List<String> strings = insReportDto1s.stream().map(InsReportDto1::getLaboratory).distinct().collect(Collectors.toList());
+ if (strings.contains("杩戝満") || strings.contains("杩滃満")) {
+ Map<String, String> table = new HashMap<>();
+ table.put("indexs", indexs + "");
+ table.put("term", "杈愬皠鏂瑰悜鍥惧弬鏁�");
+ table.put("result", "涓嶅垽瀹�");
+ tables.add(table);
+ /*杈愬皠鐨勮瘯楠岃〃*/
+ }
if (strings.contains("鐢佃矾璇曢獙")) {
strings.remove("鐢佃矾璇曢獙");
strings.remove("杩戝満");
@@ -1704,35 +1723,44 @@
.stream().map(InsProductResult2::getResult).distinct().collect(Collectors.toList());
//濡傛灉鏈夌幆澧冭瘯楠�
if (strings.size() > 0) {
- table.put("indexs", indexs + "");
- table.put("term", "鐜璇曢獙鍓嶇數璺弬鏁�");
+ Map<String, String> table1 = new HashMap<>();
+ table1.put("indexs", indexs + "");
+ table1.put("term", "鐜璇曢獙鍓嶇數璺弬鏁�");
if (collect.contains(0)) {
- table.put("result", "涓嶅悎鏍�");
+ table1.put("result", "涓嶅悎鏍�");
} else {
- table.put("result", "鍚堟牸");
+ table1.put("result", "鍚堟牸");
}
- tables.add(table);
+ tables.add(table1);
indexs += 1;
- table.put("indexs", "鐜璇曢獙:" + String.join("銆�", strings) + "鈭�1");
- table.put("term", "鐜璇曢獙:" + String.join("銆�", strings) + "鈭�1");
- table.put("result", "鐜璇曢獙:" + String.join("銆�", strings) + "鈭�1");
- tables.add(table);
+ Map<String, String> table2 = new HashMap<>();
+ table2.put("indexs", "鐜璇曢獙:" + String.join("銆�", strings) + "鈭�1");
+ table2.put("term", "鐜璇曢獙:" + String.join("銆�", strings) + "鈭�1");
+ table2.put("result", "鐜璇曢獙:" + String.join("銆�", strings) + "鈭�1");
+ tables.add(table2);
- table.put("indexs", indexs + "");
- table.put("term", "鐜璇曢獙鍚庣數璺弬鏁�");
+ Map<String, String> table3 = new HashMap<>();
+ table3.put("indexs", indexs + "");
+ table3.put("term", "鐜璇曢獙鍚庣數璺弬鏁�");
if (collect.contains(0)) {
- table.put("result", "涓嶅悎鏍�");
+ table3.put("result", "涓嶅悎鏍�");
} else {
- table.put("result", "鍚堟牸");
+ table3.put("result", "鍚堟牸");
}
- tables.add(table);
+ tables.add(table3);
indexs += 1;
/*鍒涘缓鐜璇曢獙鏉′欢琛�2*(椤圭洰鏁�+1)*/
List<InsProduct> products = samples.stream().flatMap(sampleProductDto -> sampleProductDto.getInsProduct().stream()
.filter(insProduct -> !insProduct.getInspectionItem().equals("鐢佃矾璇曢獙"))
- .filter(insProduct -> !insProduct.getInspectionItem().equals("杈愬皠璇曢獙"))).collect(Collectors.toList());
+ .filter(insProduct -> !insProduct.getInspectionItem().equals("杈愬皠璇曢獙")))
+ .map(insProduct -> {
+ InsProduct product = new InsProduct();
+ product.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());
+ product.setTell(insProduct.getTell());
+ return product;
+ }).distinct().collect(Collectors.toList());
List<RowRenderData> rows = new ArrayList<>();
//琛屾暟
for (int i = 0; i < products.size() + 1; i++) {
@@ -1825,7 +1853,9 @@
Map<String, Object> table4 = new HashMap<>();
table4.put("table4", tableRenderData);
tables4.add(table4);
- } else {
+ }
+ else {
+ Map<String, String> table = new HashMap<>();
table.put("indexs", indexs + "");
table.put("term", "鐢佃矾鍙傛暟");
if (collect.contains(0)) {
@@ -1836,18 +1866,136 @@
tables.add(table);
indexs += 1;
}
- /*鎷兼帴鍕鹃�夌殑鐢佃矾璇曢獙琛�*/
+ /*鍕鹃�夌殑鐢佃矾璇曢獙琛�*/
+ List<InsSample> insSamples = insSampleMapper.selectSample(orderId);
+ for (InsReportDto1 insReportDto1 : insReportDto1s) {
+ InsOrderUser insOrderUser = insOrderUserMapper.selectById(insReportDto1.getInsOrderUsersId());
+ InsOrderState orderState = insOrderStateMapper.selectById(insOrderUser.getInsOrderStateId());
+ if (orderState.getLaboratory().equals("鐢佃矾璇曢獙")){
+ orderState.setNum(insOrderUser.getNum());
+ getWord1(insOrderUser.getTerm(),orderState,insSamples,tables2);
+ }
+ }
}
- if (strings.contains("杩戝満") || strings.contains("杩滃満")) {
- table.put("indexs", indexs + "");
- table.put("term", "杈愬皠鏂瑰悜鍥惧弬鏁�");
- table.put("result", "涓嶅垽瀹�");
- tables.add(table);
- }
+ else {
+ //濡傛灉鍙湁鐜璇曢獙娌℃湁鐢佃矾璇曢獙
+ strings.remove("杩戝満");
+ strings.remove("杩滃満");
+ if (strings.size() > 0) {
+ Map<String, String> table2 = new HashMap<>();
+ table2.put("indexs", "鐜璇曢獙:" + String.join("銆�", strings) + "鈭�1");
+ table2.put("term", "鐜璇曢獙:" + String.join("銆�", strings) + "鈭�1");
+ table2.put("result", "鐜璇曢獙:" + String.join("銆�", strings) + "鈭�1");
+ tables.add(table2);
+ /*鍒涘缓鐜璇曢獙鏉′欢琛�2*(椤圭洰鏁�+1)*/
+ List<InsProduct> products = samples.stream().flatMap(sampleProductDto -> sampleProductDto.getInsProduct().stream()
+ .filter(insProduct -> !insProduct.getInspectionItem().equals("鐢佃矾璇曢獙"))
+ .filter(insProduct -> !insProduct.getInspectionItem().equals("杈愬皠璇曢獙")))
+ .map(insProduct -> {
+ InsProduct product = new InsProduct();
+ product.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());
+ product.setTell(insProduct.getTell());
+ return product;
+ }).distinct().collect(Collectors.toList());
+ List<RowRenderData> rows = new ArrayList<>();
+ //琛屾暟
+ for (int i = 0; i < products.size() + 1; i++) {
+ RowRenderData rowRenderData = new RowRenderData();
+ RowStyle rowStyle = new RowStyle();
+ rowStyle.setHeight(40);
+ rowRenderData.setRowStyle(rowStyle);
+ List<CellRenderData> cells = new ArrayList<>();
+ //鍒楁暟
+ for (int j = 0; j < 2; j++) {
+ CellRenderData cellRenderData = new CellRenderData();
+ CellStyle cellStyle = new CellStyle();
+ cellStyle.setVertAlign(XWPFTableCell.XWPFVertAlign.CENTER);
+ cellRenderData.setCellStyle(cellStyle);
+ List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>();
+ ParagraphRenderData paragraphRenderData = new ParagraphRenderData();
+ ParagraphStyle paragraphStyle = new ParagraphStyle();
+ paragraphStyle.setAlign(ParagraphAlignment.CENTER);
+ paragraphRenderData.setParagraphStyle(paragraphStyle);
+ List<RenderData> renderData = new ArrayList<>();
+ TextRenderData textRenderData = new TextRenderData();
+ Style style = new Style();
+ style.setFontFamily("瀹嬩綋");
+ style.setColor("000000");
+ textRenderData.setStyle(style);
+ if (i == 0) {
+ //绗竴琛�
+ if (j == 0) {
+ //绗竴鍒�
+ textRenderData.setText("椤圭洰");
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else {
+ //绗簩鍒�
+ textRenderData.setText("璇曢獙瑕佹眰");
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ } else {
+ //鍏朵綑琛�
+ if (j == 0) {
+ //绗竴鍒�
+ textRenderData.setText(products.get(i - 1).getInspectionItemSubclass());
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else {
+ textRenderData.setText(products.get(i - 1).getTell());
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ }
+ }
+ rowRenderData.setCells(cells);
+ if (rowRenderData.getCells().size() != 0) {
+ rows.add(rowRenderData);
+ }
+ }
+ TableRenderData tableRenderData = new TableRenderData();
+ tableRenderData.setRows(rows);
+ int countSize = tableRenderData.getRows().get(0).getCells().size();
+ for (RowRenderData row : tableRenderData.getRows()) {
+ if (row.getCells().size() != countSize) {
+ throw new ErrorException("姣忚鍗曞厓鏍间笉鐩哥瓑");
+ }
+ }
+ TableStyle tableStyle = new TableStyle();
+ tableStyle.setWidth(XWPFTable.DEFAULT_PERCENTAGE_WIDTH);
+ tableStyle.setAlign(TableRowAlign.CENTER);
+ BorderStyle borderStyle = new BorderStyle();
+ borderStyle.setColor("000000");
+ borderStyle.setType(XWPFTable.XWPFBorderType.THICK);
+ borderStyle.setSize(4);
+ tableStyle.setLeftBorder(borderStyle);
+ tableStyle.setTopBorder(borderStyle);
+ tableStyle.setRightBorder(borderStyle);
+ tableStyle.setBottomBorder(borderStyle);
+ tableRenderData.setTableStyle(tableStyle);
+ Map<String, Object> table4 = new HashMap<>();
+ table4.put("table4", tableRenderData);
+ tables4.add(table4);
+ }
+ }
String url;
try {
+ ZipSecureFile.setMinInflateRatio(0.0001);
InputStream inputStream = this.getClass().getResourceAsStream("/static/report-template.docx");
File file = File.createTempFile("temp", ".tmp");
OutputStream outputStream = new FileOutputStream(file);
@@ -1971,6 +2119,7 @@
put("formTypeEn", insOrder.getFormType());
}});
try {
+ ZipSecureFile.setMinInflateRatio(0.0001);
String name = insReport.getCode().replace("/", "") + ".docx";
template.writeAndClose(Files.newOutputStream(Paths.get(wordUrl + "/" + name)));
insReport.setUrl("/word/" + name);
@@ -1983,6 +2132,7 @@
// 澶勭悊鍚堝苟鍗曞厓鏍肩殑闂
String path = wordUrl + "/" + insReport.getCode().replace("/", "") + ".docx";
try {
+ ZipSecureFile.setMinInflateRatio(0.0001);
FileInputStream stream = new FileInputStream(path);
XWPFDocument document = new XWPFDocument(stream);
List<XWPFTable> xwpfTables = document.getTables();
@@ -2016,10 +2166,17 @@
}
}
}
+
+ // 鍗曞厓鏍兼帓搴�, 閬垮厤鏍煎紡閿欎贡
+ List<Map.Entry<String, Map<String, Integer>>> entries = new ArrayList<>(maps.entrySet());
+ entries.sort((o1, o2) -> o1.getValue().get("sc") - o2.getValue().get("sc"));
+
+ // 鎸夌収椤哄簭娣诲姞杩涢泦鍚�
List<String> list = new ArrayList<>();
- for (String s : maps.keySet()) {
- list.add(s);
+ for (Map.Entry<String, Map<String, Integer>> entry : entries) {
+ list.add(entry.getKey());
}
+
for (int a = list.size() - 1; a >= 0; a--) {
Map<String, Integer> v = maps.get(list.get(a));
for (int j = 0; j < v.get("er") - v.get("sr") + 1; j++) {
@@ -2048,6 +2205,7 @@
}
//澶勭悊涓嫳鏂囨崲琛岀殑闂
try {
+ ZipSecureFile.setMinInflateRatio(0.0001);
FileInputStream stream1 = new FileInputStream(path);
XWPFDocument document1 = new XWPFDocument(stream1);
List<XWPFTable> xwpfTables1 = document1.getTables();
@@ -2079,4 +2237,1405 @@
throw new RuntimeException(e);
}
}
+
+
+
+ //鐢佃矾鎶ュ憡鐢ㄤ簬鎬绘姤鍛婄殑鏂规硶
+ private void getWord1(String term, InsOrderState insOrderState,List<InsSample> insSamples,List<Map<String, Object>> tables2){
+ AtomicInteger lable = new AtomicInteger(1);
+ AtomicInteger index = new AtomicInteger();
+ String title = term + "鐢佃矾鍙傛暟";
+ insSamples.forEach(insSample -> {
+ //鏌ヨ椤圭洰
+ List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
+ .eq(InsProduct::getInsSampleId, insSample.getId())
+ .eq(InsProduct::getSonLaboratory, "鐢佃矾璇曢獙"));
+ //鑾峰彇鏈�澶х鍙f暟閲�,瑙掑害鏁伴噺,棰戞鏁伴噺
+ List<InsProductResult2> insProductResult2s = insProductResult2Mapper.selectList(Wrappers.<InsProductResult2>lambdaQuery()
+ .eq(InsProductResult2::getNum, insOrderState.getNum())
+ .in(InsProductResult2::getInsProductId, insProducts.stream().map(InsProduct::getId).collect(Collectors.toList())));
+ //鎸夌収棰戞鍒嗚〃(鏌ヨ鎵�鏈夐娈�)
+ List<String> frequencys = insProductResult2s.stream().map(InsProductResult2::getFrequency).distinct().collect(Collectors.toList());
+ frequencys.forEach(s -> {
+ int ports = 0;//绔彛鏁�
+ int angles = 0;//瑙掑害鏁�
+ for (InsProductResult2 insProductResult2 : insProductResult2s) {
+ if (insProductMapper.selectById(insProductResult2.getInsProductId()).getInspectionItemSubclass().equals("鐢靛帇椹绘尝姣�") && insProductResult2.getPort().split(",").length > ports) {
+ ports = insProductResult2.getPort().split(",").length;
+ }
+ if (insProductResult2.getAngle().split(",").length > angles) {
+ angles = insProductResult2.getAngle().split(",").length;
+ }
+ }
+ //棰戠偣鏁�
+ long often = insProductResult2s.stream().filter(insProductResult2 -> insProductResult2.getFrequency().equals(s))
+ .filter(insProductResult2 ->
+ insProductMapper.selectById(insProductResult2.getInsProductId()).getInspectionItemSubclass().equals("浜掕皟")
+ ).filter(insProductResult2 -> ObjectUtils.isNotEmpty(insProductResult2.getOften())).distinct().count();
+ List<String> inspectionItemSubclass = insProducts.stream().map(InsProduct::getInspectionItemSubclass).collect(Collectors.toList());
+ //琛屾暟
+ int aa = 0;
+ int portRow = ports % 8 == 0 ? ports / 8 : ports / 8 + 1;
+ //鍏堝垽鏂槸1绠�鍗曠増杩樻槸0澶嶆潅鐗�
+ if (insOrderState.getVersion() == 1) {
+ if (inspectionItemSubclass.contains("鐢靛帇椹绘尝姣�")) {
+ aa += 2 * portRow;
+ }
+ if (inspectionItemSubclass.contains("鍚屾瀬鍖栭殧绂诲害")) {
+ aa += 1 * portRow;
+ }
+ if (inspectionItemSubclass.contains("寮傛瀬鍖栭殧绂诲害")) {
+ aa += 1 * portRow;
+ }
+ if (inspectionItemSubclass.contains("浜掕皟")) {
+ aa += (angles + 1) * portRow * often;
+ }
+ }
+ else {
+ if (inspectionItemSubclass.contains("鐢靛帇椹绘尝姣�")) {
+ aa += (angles + 1) * portRow;
+ }
+ if (inspectionItemSubclass.contains("鍚屾瀬鍖栭殧绂诲害")) {
+ List<InsProductResult2> result2s = insProductResult2s.stream().filter(insProductResult2 ->
+ insProductMapper.selectById(insProductResult2.getInsProductId())
+ .getInspectionItemSubclass().equals("鍚屾瀬鍖栭殧绂诲害")
+ ).collect(Collectors.toList());
+ int length = result2s.get(0).getPort().split(",").length;
+ aa += (angles + 1) * (length % (ports > 8 ? 4 : (ports + 1) / 2) == 0 ? length / (ports > 8 ? 4 : (ports + 1) / 2) : length / (ports > 8 ? 4 : (ports + 1) / 2) + 1);
+ }
+ if (inspectionItemSubclass.contains("寮傛瀬鍖栭殧绂诲害")) {
+ List<InsProductResult2> result2s = insProductResult2s.stream().filter(insProductResult2 ->
+ insProductMapper.selectById(insProductResult2.getInsProductId())
+ .getInspectionItemSubclass().equals("寮傛瀬鍖栭殧绂诲害")
+ ).collect(Collectors.toList());
+ int length = result2s.get(0).getPort().split(",").length;
+ aa += (angles + 1) * (length % (ports > 8 ? 4 : (ports + 1) / 2) == 0 ? length / (ports > 8 ? 4 : (ports + 1) / 2) : length / (ports > 8 ? 4 : (ports + 1) / 2) + 1);
+ }
+ if (inspectionItemSubclass.contains("浜掕皟")) {
+ aa += (angles + 1) * portRow * often;
+ }
+ if (inspectionItemSubclass.contains("鏈�澶ц�﹀悎搴�")) {
+ aa += (angles + 1);
+ }
+ if (inspectionItemSubclass.contains("鏈�灏忚�﹀悎搴�")) {
+ aa += (angles + 1);
+ }
+ if (inspectionItemSubclass.contains("骞呭害鍋忓樊")) {
+ List<InsProductResult2> result2s = insProductResult2s.stream().filter(insProductResult2 ->
+ insProductMapper.selectById(insProductResult2.getInsProductId())
+ .getInspectionItemSubclass().equals("骞呭害鍋忓樊")
+ ).collect(Collectors.toList());
+ int length = result2s.get(0).getPort().split(",").length;
+ aa += (angles + 1) * (length % 8 == 0 ? length / 8 : length / 8 + 1);
+ }
+ if (inspectionItemSubclass.contains("鏈�澶х浉浣嶅亸宸�")) {
+ List<InsProductResult2> result2s = insProductResult2s.stream().filter(insProductResult2 ->
+ insProductMapper.selectById(insProductResult2.getInsProductId())
+ .getInspectionItemSubclass().equals("鏈�澶х浉浣嶅亸宸�")
+ ).collect(Collectors.toList());
+ int length = result2s.get(0).getPort().split(",").length;
+ aa += (angles + 1) * (length % 8 == 0 ? length / 8 : length / 8 + 1);
+ }
+ }
+ List<RowRenderData> rows = new ArrayList<>();
+ Set<String> itemSet = new HashSet<>();
+ int cc = 0;
+ int dd = 0;
+ int ee = 0;
+ int ff = 0;
+ int gg = 0;
+ int hh = 0;
+ int mm = 0;
+ //琛ㄦ牸鐨勮鏁�
+ for (int i = 0; i <= aa; i++) {
+ RowRenderData rowRenderData = new RowRenderData();
+ RowStyle rowStyle = new RowStyle();
+ rowStyle.setHeight(40);
+ rowRenderData.setRowStyle(rowStyle);
+ List<CellRenderData> cells = new ArrayList<>();
+ //琛ㄦ牸鐨勫垪鏁�
+ int bb = ports > 8 ? 14 : ports + 6;
+ for (int j = 0; j < bb; j++) {
+ CellRenderData cellRenderData = new CellRenderData();
+ CellStyle cellStyle = new CellStyle();
+ cellStyle.setVertAlign(XWPFTableCell.XWPFVertAlign.CENTER);
+ cellRenderData.setCellStyle(cellStyle);
+ List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>();
+ ParagraphRenderData paragraphRenderData = new ParagraphRenderData();
+ ParagraphStyle paragraphStyle = new ParagraphStyle();
+ paragraphStyle.setAlign(ParagraphAlignment.CENTER);
+ paragraphRenderData.setParagraphStyle(paragraphStyle);
+ List<RenderData> renderData = new ArrayList<>();
+ TextRenderData textRenderData = new TextRenderData();
+ Style style = new Style();
+ style.setFontFamily("瀹嬩綋");
+ style.setColor("000000");
+ textRenderData.setStyle(style);
+ if (i == 0) {
+ //绗竴琛�
+ textRenderData.setText("棰戞锛�" + s + "鈭�0" + lable);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ else {
+ if (insOrderState.getVersion() == 1) {
+ //闈炵數璋冪増鏈�(绠�鍗曠増)
+ if (inspectionItemSubclass.contains("鐢靛帇椹绘尝姣�") && i <= 2 * portRow) {
+ cc = 2 * portRow;
+ if (itemSet.add("鐢靛帇椹绘尝姣�")) {
+ index.getAndIncrement();
+ }
+ List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("鐢靛帇椹绘尝姣�")).collect(Collectors.toList());
+ List<InsProductResult2> result2s = insProductResult2s.stream()
+ .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
+ .collect(Collectors.toList());
+ //鐢靛帇椹绘尝姣旀墍鍦ㄨ
+ if (j == 0) {
+ //绗竴鍒�
+ textRenderData.setText(index + "鈭�1" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 1) {
+ //绗簩鍒�
+ textRenderData.setText("鐢靛帇椹绘尝姣斺垜2" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 2) {
+ //绗笁鍒�
+ textRenderData.setText(products.get(0).getUnit() + "鈭�3" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 3) {
+ //绗洓鍒�
+ textRenderData.setText(products.get(0).getAsk() + "鈭�4" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 4) {
+ //绗簲鍒�
+ if (i % 2 == 0) {
+ //鏈�宸��
+ textRenderData.setText("鏈�宸��");
+ } else {
+ //绔彛
+ textRenderData.setText("绔彛");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == bb - 1) {
+ //鏈�鍚庝竴鍒�
+ if (i % 2 == 0) {
+ //缁撹
+ if (products.get(0).getInsResult() == 1) {
+ textRenderData.setText("鍚堟牸");
+ } else if (products.get(0).getInsResult() == 0) {
+ textRenderData.setText("涓嶅悎鏍�");
+ } else {
+ textRenderData.setText("涓嶅垽瀹�");
+ }
+ } else {
+ textRenderData.setText("/");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else {
+ //鍏朵綑鍒�
+ if (i % 2 == 0) {
+ //鏈�宸��
+ String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", "");
+ try {
+ textRenderData.setText(value.split(",")[(j - 5) + (i - 1) / 2 * (Math.min(ports, 8))]);
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ } else {
+ //绔彛
+ try {
+ textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) + (i / 2) * (Math.min(ports, 8))]);
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ }
+ if (inspectionItemSubclass.contains("鍚屾瀬鍖栭殧绂诲害") && i > cc && i <= cc + portRow) {
+ dd = cc + portRow;
+ if (itemSet.add("鍚屾瀬鍖栭殧绂诲害")) {
+ index.getAndIncrement();
+ }
+ List<InsProduct> products = insProducts.stream()
+ .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("鍚屾瀬鍖栭殧绂诲害"))
+ .collect(Collectors.toList());
+ List<InsProductResult2> result2s = insProductResult2s.stream()
+ .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
+ .collect(Collectors.toList());
+ //鍚屾瀬鍖栭殧绂诲害鎵�鍦ㄨ
+ if (j == 0) {
+ //绗竴鍒�
+ textRenderData.setText(index + "鈭�1" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 1) {
+ //绗簩鍒�
+ textRenderData.setText("鍚屾瀬鍖栭殧绂诲害鈭�2" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 2) {
+ //绗笁鍒�
+ textRenderData.setText(products.get(0).getUnit() + "鈭�3" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 3) {
+ //绗洓鍒�
+ textRenderData.setText(products.get(0).getAsk() + "鈭�4" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 4) {
+ //绗簲鍒�
+ textRenderData.setText("鏈�宸��");
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == bb - 1) {
+ //鏈�鍚庝竴鍒�
+ if (products.get(0).getInsResult() == 1) {
+ textRenderData.setText("鍚堟牸");
+ } else if (products.get(0).getInsResult() == 0) {
+ textRenderData.setText("涓嶅悎鏍�");
+ } else {
+ textRenderData.setText("涓嶅垽瀹�");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j % 2 == 0) {
+ String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", "");
+ try {
+ textRenderData.setText(value.split(",")[(j - 6) / 2 + (i - cc - 1) * 4] + "鈭�5" + i + (j - 6));
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else {
+ String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", "");
+ try {
+ textRenderData.setText(value.split(",")[(j - 5) / 2 + (i - cc - 1) * 4] + "鈭�5" + i + (j - 5));
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ }
+ if (inspectionItemSubclass.contains("寮傛瀬鍖栭殧绂诲害") && i > (dd == 0 ? cc : dd) && i <= (dd == 0 ? cc : dd) + portRow) {
+ ee = (dd == 0 ? cc : dd) + portRow;
+ if (itemSet.add("寮傛瀬鍖栭殧绂诲害")) {
+ index.getAndIncrement();
+ }
+ List<InsProduct> products = insProducts.stream()
+ .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("寮傛瀬鍖栭殧绂诲害"))
+ .collect(Collectors.toList());
+ List<InsProductResult2> result2s = insProductResult2s.stream()
+ .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
+ .collect(Collectors.toList());
+ //寮傛瀬鍖栭殧绂诲害鎵�鍦ㄨ
+ if (j == 0) {
+ //绗竴鍒�
+ textRenderData.setText(index + "鈭�1" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 1) {
+ //绗簩鍒�
+ textRenderData.setText("寮傛瀬鍖栭殧绂诲害鈭�2" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 2) {
+ //绗笁鍒�
+ textRenderData.setText(products.get(0).getUnit() + "鈭�3" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 3) {
+ //绗洓鍒�
+ textRenderData.setText(products.get(0).getAsk() + "鈭�4" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 4) {
+ //绗簲鍒�
+ textRenderData.setText("鏈�宸��");
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == bb - 1) {
+ //鏈�鍚庝竴鍒�
+ if (products.get(0).getInsResult() == 1) {
+ textRenderData.setText("鍚堟牸");
+ } else if (products.get(0).getInsResult() == 0) {
+ textRenderData.setText("涓嶅悎鏍�");
+ } else {
+ textRenderData.setText("涓嶅垽瀹�");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j % 2 == 0) {
+ String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", "");
+ try {
+ textRenderData.setText(value.split(",")[(j - 6) / 2 + (i - (dd == 0 ? cc : dd) - 1) * 4] + "鈭�5" + i + (j - 6));
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else {
+ String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", "");
+ try {
+ textRenderData.setText(value.split(",")[(j - 5) / 2 + (i - (dd == 0 ? cc : dd) - 1) * 4] + "鈭�5" + i + (j - 5));
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ }
+ if (inspectionItemSubclass.contains("浜掕皟") && i > (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) {
+ if (itemSet.add("浜掕皟")) {
+ index.getAndIncrement();
+ }
+ List<InsProduct> products = insProducts.stream()
+ .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("浜掕皟"))
+ .collect(Collectors.toList());
+ List<InsProductResult2> result2s = insProductResult2s.stream()
+ .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
+ .collect(Collectors.toList());
+ //浜掕皟鎵�鍦ㄨ
+ if (j == 0) {
+ //绗竴鍒�
+ textRenderData.setText(index + "鈭�1" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 1) {
+ //绗簩鍒�
+ textRenderData.setText("浜掕皟鈭�2" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 2) {
+ //绗笁鍒�
+ textRenderData.setText(products.get(0).getUnit() + "鈭�3" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 3) {
+ //绗洓鍒�
+ textRenderData.setText(products.get(0).getAsk() + "鈭�4" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 4) {
+ //绗簲鍒�
+ if ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) % (angles + 1) == 1) {
+ textRenderData.setText("瑙掑害");
+ } else {
+ textRenderData.setText(result2s.get(0).getAngle().split(",")[(i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 2) % (angles + 1)]);
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == bb - 1) {
+ //鏈�鍚庝竴鍒�
+ if ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) % (angles + 1) == 1) {
+ textRenderData.setText("/");
+ } else {
+ if (products.get(0).getInsResult() == 1) {
+ textRenderData.setText("鍚堟牸鈭�8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles - 1)) / (angles + 1) - 1));
+ } else if (products.get(0).getInsResult() == 0) {
+ textRenderData.setText("涓嶅悎鏍尖垜8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles - 1)) / (angles + 1) - 1));
+ } else {
+ textRenderData.setText("涓嶅垽瀹氣垜8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles - 1)) / (angles + 1) - 1));
+ }
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else {
+ if ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) % (angles + 1) == 1) {
+ textRenderData.setText(result2s.get((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / portRow / (angles + 1)).getOften() + "鈭�6" + i + index);
+ } else {
+ String[] value = result2s.get((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / portRow / (angles + 2)).getValue().split("\\],\\[");
+ String[] split = value[(i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 2) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
+ try {
+ textRenderData.setText(split[((j - 5) + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 1) / (angles + 1) % portRow) * (Math.min(ports, 8)))]);
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ }
+ }
+ else {
+ //鐢佃皟鐗堟湰(澶嶆潅鐗�)
+ if (inspectionItemSubclass.contains("鐢靛帇椹绘尝姣�") && i <= (angles + 1) * portRow) {
+ cc = (angles + 1) * portRow;
+ if (itemSet.add("鐢靛帇椹绘尝姣�")) {
+ index.getAndIncrement();
+ }
+ List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("鐢靛帇椹绘尝姣�")).collect(Collectors.toList());
+ List<InsProductResult2> result2s = insProductResult2s.stream()
+ .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
+ .collect(Collectors.toList());
+ //鐢靛帇椹绘尝姣旀墍鍦ㄨ
+ if (j == 0) {
+ //绗竴鍒�
+ textRenderData.setText(index + "鈭�1" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 1) {
+ //绗簩鍒�
+ textRenderData.setText("鐢靛帇椹绘尝姣斺垜2" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 2) {
+ //绗笁鍒�
+ textRenderData.setText(products.get(0).getUnit() + "鈭�3" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 3) {
+ //绗洓鍒�
+ textRenderData.setText(products.get(0).getAsk() + "鈭�4" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 4) {
+ //绗簲鍒�
+ if (i % (angles + 1) == 1) {
+ //绔彛
+ textRenderData.setText("绔彛");
+ } else {
+ //瑙掑害
+ textRenderData.setText(result2s.get(0).getAngle().split(",")[(i + (angles - 1)) % (angles + 1)]);
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == bb - 1) {
+ //鏈�鍚庝竴鍒�
+ if (i % (angles + 1) == 1) {
+ textRenderData.setText("/");
+ } else {
+ //缁撹
+ if (products.get(0).getInsResult() == 1) {
+ textRenderData.setText("鍚堟牸鈭�8" + index + ((i + (angles - 1)) / (angles + 1) - 1));
+ } else if (products.get(0).getInsResult() == 0) {
+ textRenderData.setText("涓嶅悎鏍尖垜8" + index + ((i + (angles - 1)) / (angles + 1) - 1));
+ } else {
+ textRenderData.setText("涓嶅垽瀹氣垜8" + index + ((i + (angles - 1)) / (angles + 1) - 1));
+ }
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else {
+ //鍏朵綑鍒�
+ if (i % (angles + 1) == 1) {
+ //绔彛
+ try {
+ textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) + (i / (angles + 1)) * (Math.min(ports, 8))]);
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ } else {
+ //鏈�宸��
+ String[] value = result2s.get(0).getValue().split("\\],\\[");
+ String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
+ try {
+ textRenderData.setText(split[(j - 5) + ((i + (angles - 1)) / (angles + 1) - 1) * (Math.min(ports, 8))]);
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ }
+ if (inspectionItemSubclass.contains("鍚屾瀬鍖栭殧绂诲害")) {
+ List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("鍚屾瀬鍖栭殧绂诲害")).collect(Collectors.toList());
+ List<InsProductResult2> result2s = insProductResult2s.stream()
+ .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
+ .collect(Collectors.toList());
+ int length = result2s.get(0).getPort().split(",").length;
+ int portRow2 = (length % (ports > 8 ? 4 : (ports + 1) / 2) == 0 ? length / (ports > 8 ? 4 : (ports + 1) / 2) : length / (ports > 8 ? 4 : (ports + 1) / 2) + 1);
+ int k = (angles + 1) * portRow2;
+ if (i > cc && i <= cc + k) {
+ dd = cc + k;
+ if (itemSet.add("鍚屾瀬鍖栭殧绂诲害")) {
+ index.getAndIncrement();
+ }
+ //鍚屾瀬鍖栭殧绂诲害鎵�鍦ㄨ
+ if (j == 0) {
+ //绗竴鍒�
+ textRenderData.setText(index + "鈭�1" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 1) {
+ //绗簩鍒�
+ textRenderData.setText("鍚屾瀬鍖栭殧绂诲害鈭�2" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 2) {
+ //绗笁鍒�
+ textRenderData.setText(products.get(0).getUnit() + "鈭�3" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 3) {
+ //绗洓鍒�
+ textRenderData.setText(products.get(0).getAsk() + "鈭�4" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 4) {
+ //绗簲鍒�
+ if ((i - cc) % (angles + 1) == 1) {
+ //绔彛
+ textRenderData.setText("绔彛");
+ } else {
+ //瑙掑害
+ textRenderData.setText(result2s.get(0).getAngle().split(",")[(i + (angles - 1)) % (angles + 1)]);
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == bb - 1) {
+ //鏈�鍚庝竴鍒�
+ if ((i - cc) % (angles + 1) == 1) {
+ textRenderData.setText("/");
+ } else {
+ //缁撹
+ if (products.get(0).getInsResult() == 1) {
+ textRenderData.setText("鍚堟牸鈭�8" + index + ((i - cc) / (angles + 2)));
+ } else if (products.get(0).getInsResult() == 0) {
+ textRenderData.setText("涓嶅悎鏍尖垜8" + index + ((i - cc) / (angles + 2)));
+ } else {
+ textRenderData.setText("涓嶅垽瀹氣垜8" + index + ((i - cc) / (angles + 2)));
+ }
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else {
+ //鍏朵綑鍒�
+ if ((i - cc) % (angles + 1) == 1) {
+ //绔彛
+ if (j % 2 == 0) {
+ try {
+ textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 6) / 2 + ((i - cc) / (angles + 1)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "鈭�5" + i + (j - 6));
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ } else {
+ try {
+ textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) / 2 + ((i - cc) / (angles + 1)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "鈭�5" + i + (j - 5));
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ }
+
+ } else {
+ //鏈�宸��
+ String[] value = result2s.get(0).getValue().split("\\],\\[");
+ String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
+ if (j % 2 == 0) {
+ try {
+ textRenderData.setText(split[(j - 6) / 2 + ((i - cc) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "鈭�5" + i + (j - 6));
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ } else {
+ try {
+ textRenderData.setText(split[(j - 5) / 2 + ((i - cc) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "鈭�5" + i + (j - 5));
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ }
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ }
+ }
+ if (inspectionItemSubclass.contains("寮傛瀬鍖栭殧绂诲害")) {
+ List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("寮傛瀬鍖栭殧绂诲害")).collect(Collectors.toList());
+ List<InsProductResult2> result2s = insProductResult2s.stream()
+ .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
+ .collect(Collectors.toList());
+ int length = result2s.get(0).getPort().split(",").length;
+ int portRow2 = (length % (ports > 8 ? 4 : (ports + 1) / 2) == 0 ? length / (ports > 8 ? 4 : (ports + 1) / 2) : length / (ports > 8 ? 4 : (ports + 1) / 2) + 1);
+ int k = (angles + 1) * portRow2;
+ if (i > (dd == 0 ? cc : dd) && i <= (dd == 0 ? cc : dd) + k) {
+ ee = (dd == 0 ? cc : dd) + k;
+ if (itemSet.add("寮傛瀬鍖栭殧绂诲害")) {
+ index.getAndIncrement();
+ }
+ //寮傛瀬鍖栭殧绂诲害鎵�鍦ㄨ
+ if (j == 0) {
+ //绗竴鍒�
+ textRenderData.setText(index + "鈭�1" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 1) {
+ //绗簩鍒�
+ textRenderData.setText("寮傛瀬鍖栭殧绂诲害鈭�2" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 2) {
+ //绗笁鍒�
+ textRenderData.setText(products.get(0).getUnit() + "鈭�3" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 3) {
+ //绗洓鍒�
+ textRenderData.setText(products.get(0).getAsk() + "鈭�4" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 4) {
+ //绗簲鍒�
+ if ((i - (dd == 0 ? cc : dd)) % (angles + 1) == 1) {
+ //绔彛
+ textRenderData.setText("绔彛");
+ } else {
+ //瑙掑害
+ textRenderData.setText(result2s.get(0).getAngle().split(",")[(i + (angles - 1)) % (angles + 1)]);
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == bb - 1) {
+ //鏈�鍚庝竴鍒�
+ if ((i - (dd == 0 ? cc : dd)) % (angles + 1) == 1) {
+ textRenderData.setText("/");
+ } else {
+ //缁撹
+ if (products.get(0).getInsResult() == 1) {
+ textRenderData.setText("鍚堟牸鈭�8" + index + ((i - (dd == 0 ? cc : dd)) / (angles + 2)));
+ } else if (products.get(0).getInsResult() == 0) {
+ textRenderData.setText("涓嶅悎鏍尖垜8" + index + ((i - (dd == 0 ? cc : dd)) / (angles + 2)));
+ } else {
+ textRenderData.setText("涓嶅垽瀹氣垜8" + index + ((i - (dd == 0 ? cc : dd)) / (angles + 2)));
+ }
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else {
+ //鍏朵綑鍒�
+ if ((i - (dd == 0 ? cc : dd)) % (angles + 1) == 1) {
+ //绔彛
+ if (j % 2 == 0) {
+ try {
+ textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 6) / 2 + ((i - (dd == 0 ? cc : dd)) / (angles + 1)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "鈭�5" + i + (j - 6));
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ } else {
+ try {
+ textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) / 2 + ((i - (dd == 0 ? cc : dd)) / (angles + 1)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "鈭�5" + i + (j - 5));
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ }
+ } else {
+ //鏈�宸��
+ String[] value = result2s.get(0).getValue().split("\\],\\[");
+ String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
+ if (j % 2 == 0) {
+ try {
+ textRenderData.setText(split[(j - 6) / 2 + ((i - (dd == 0 ? cc : dd)) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "鈭�5" + i + (j - 6));
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ } else {
+ try {
+ textRenderData.setText(split[(j - 5) / 2 + ((i - (dd == 0 ? cc : dd)) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "鈭�5" + i + (j - 5));
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ }
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ }
+ }
+ if (inspectionItemSubclass.contains("浜掕皟") && i > (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) && i <= ((ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles + 1) * portRow * often)) {
+ ff = (int) ((ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles + 1) * portRow * often);
+ if (itemSet.add("浜掕皟")) {
+ index.getAndIncrement();
+ }
+ List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("浜掕皟")).collect(Collectors.toList());
+ List<InsProductResult2> result2s = insProductResult2s.stream()
+ .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
+ .collect(Collectors.toList());
+ //浜掕皟鎵�鍦ㄨ
+ if (j == 0) {
+ //绗竴鍒�
+ textRenderData.setText(index + "鈭�1" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 1) {
+ //绗簩鍒�
+ textRenderData.setText("浜掕皟鈭�2" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 2) {
+ //绗笁鍒�
+ textRenderData.setText(products.get(0).getUnit() + "鈭�3" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 3) {
+ //绗洓鍒�
+ textRenderData.setText(products.get(0).getAsk() + "鈭�4" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 4) {
+ //绗簲鍒�
+ if ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) % (angles + 1) == 1) {
+ //瑙掑害
+ textRenderData.setText("瑙掑害");
+ } else {
+ //鍊�
+ textRenderData.setText(result2s.get(0).getAngle().split(",")[(i + (angles - 1)) % (angles + 1)]);
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == bb - 1) {
+ //鏈�鍚庝竴鍒�
+ if ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) % (angles + 1) == 1) {
+ textRenderData.setText("/");
+ } else {
+ //缁撹
+ if (products.get(0).getInsResult() == 1) {
+ textRenderData.setText("鍚堟牸鈭�8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles - 1)) / (angles + 1) - 1));
+ } else if (products.get(0).getInsResult() == 0) {
+ textRenderData.setText("涓嶅悎鏍尖垜8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles - 1)) / (angles + 1) - 1));
+ } else {
+ textRenderData.setText("涓嶅垽瀹氣垜8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles - 1)) / (angles + 1) - 1));
+ }
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else {
+ //鍏朵綑鍒�
+ if ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) % (angles + 1) == 1) {
+ //棰戠偣
+ textRenderData.setText(result2s.get((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / portRow / (angles + 1)).getOften() + "鈭�6" + i + index);
+ } else {
+ //鏈�宸��
+ String[] value = result2s.get((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / portRow / (angles + 2)).getValue().split("\\],\\[");
+ String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
+ try {
+ textRenderData.setText(split[((j - 5) + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 1) / (angles + 1) % portRow) * (Math.min(ports, 8)))]);
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ }
+ if (inspectionItemSubclass.contains("鏈�澶ц�﹀悎搴�") && i > (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) && i <= ((ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) + (angles + 1))) {
+ gg = ((ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) + (angles + 1));
+ if (itemSet.add("鏈�澶ц�﹀悎搴�")) {
+ index.getAndIncrement();
+ }
+ List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("鏈�澶ц�﹀悎搴�")).collect(Collectors.toList());
+ List<InsProductResult2> result2s = insProductResult2s.stream()
+ .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
+ .collect(Collectors.toList());
+ //鏈�澶ц�﹀悎搴︽墍鍦ㄨ
+ if (j == 0) {
+ //绗竴鍒�
+ textRenderData.setText(index + "鈭�1" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 1) {
+ //绗簩鍒�
+ textRenderData.setText("鏈�澶ц�﹀悎搴︹垜2" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 2) {
+ //绗笁鍒�
+ textRenderData.setText(products.get(0).getUnit() + "鈭�3" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 3) {
+ //绗洓鍒�
+ textRenderData.setText(products.get(0).getAsk() + "鈭�4" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 4) {
+ //绗簲鍒�
+ if ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) % (angles + 1) == 1) {
+ //瑙掑害
+ textRenderData.setText("瑙掑害");
+ } else {
+ //鍊�
+ textRenderData.setText(result2s.get(0).getAngle().split(",")[(i + (angles - 1)) % (angles + 1)]);
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == bb - 1) {
+ //鏈�鍚庝竴鍒�
+ if ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) % (angles + 1) == 1) {
+ textRenderData.setText("/");
+ } else {
+ //缁撹
+ if (products.get(0).getInsResult() == 1) {
+ textRenderData.setText("鍚堟牸鈭�8" + index);
+ } else if (products.get(0).getInsResult() == 0) {
+ textRenderData.setText("涓嶅悎鏍尖垜8" + index);
+ } else {
+ textRenderData.setText("涓嶅垽瀹氣垜8" + index);
+ }
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else {
+ //鍏朵綑鍒�
+ if ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) % (angles + 1) == 1) {
+ //棰戠偣
+ textRenderData.setText(result2s.get(0).getOften() + "鈭�6" + index);
+ } else {
+ //鏈�宸��
+ String[] value = result2s.get(0).getValue().split("\\],\\[");
+ String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
+ textRenderData.setText(split[0] + "鈭�7" + i);
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ }
+ if (inspectionItemSubclass.contains("鏈�灏忚�﹀悎搴�") && i > (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) && i <= ((gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles + 1))) {
+ hh = (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles + 1);
+ if (itemSet.add("鏈�灏忚�﹀悎搴�")) {
+ index.getAndIncrement();
+ }
+ List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("鏈�灏忚�﹀悎搴�")).collect(Collectors.toList());
+ List<InsProductResult2> result2s = insProductResult2s.stream()
+ .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
+ .collect(Collectors.toList());
+ //鏈�灏忚�﹀悎搴︽墍鍦ㄨ
+ if (j == 0) {
+ //绗竴鍒�
+ textRenderData.setText(index + "鈭�1" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 1) {
+ //绗簩鍒�
+ textRenderData.setText("鏈�灏忚�﹀悎搴︹垜2" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 2) {
+ //绗笁鍒�
+ textRenderData.setText(products.get(0).getUnit() + "鈭�3" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 3) {
+ //绗洓鍒�
+ textRenderData.setText(products.get(0).getAsk() + "鈭�4" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 4) {
+ //绗簲鍒�
+ if ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) % (angles + 1) == 1) {
+ //瑙掑害
+ textRenderData.setText("瑙掑害");
+ } else {
+ //鍊�
+ textRenderData.setText(result2s.get(0).getAngle().split(",")[(i + (angles - 1)) % (angles + 1)]);
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == bb - 1) {
+ //鏈�鍚庝竴鍒�
+ if ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) % (angles + 1) == 1) {
+ textRenderData.setText("/");
+ } else {
+ //缁撹
+ if (products.get(0).getInsResult() == 1) {
+ textRenderData.setText("鍚堟牸鈭�8" + index);
+ } else if (products.get(0).getInsResult() == 0) {
+ textRenderData.setText("涓嶅悎鏍尖垜8" + index);
+ } else {
+ textRenderData.setText("涓嶅垽瀹氣垜8" + index);
+ }
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else {
+ //鍏朵綑鍒�
+ if ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) % (angles + 1) == 1) {
+ //棰戠偣
+ textRenderData.setText(result2s.get(0).getOften() + "鈭�6" + index);
+ } else {
+ //鏈�宸��
+ String[] value = result2s.get(0).getValue().split("\\],\\[");
+ String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
+ textRenderData.setText(split[0] + "鈭�7" + i);
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ }
+ if (inspectionItemSubclass.contains("骞呭害鍋忓樊")) {
+ List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("骞呭害鍋忓樊")).collect(Collectors.toList());
+ List<InsProductResult2> result2s = insProductResult2s.stream()
+ .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
+ .collect(Collectors.toList());
+ int length = result2s.get(0).getPort().split(",").length;
+ int portRow2 = (length % 8 == 0 ? length / 8 : length / 8 + 1);
+ int k = (angles + 1) * portRow2;
+ if (i > (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) && i <= (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) + k) {
+ mm = (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) + k;
+ if (itemSet.add("骞呭害鍋忓樊")) {
+ index.getAndIncrement();
+ }
+ //骞呭害鍋忓樊鎵�鍦ㄨ
+ if (j == 0) {
+ //绗竴鍒�
+ textRenderData.setText(index + "鈭�1" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 1) {
+ //绗簩鍒�
+ textRenderData.setText("骞呭害鍋忓樊鈭�2" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 2) {
+ //绗笁鍒�
+ textRenderData.setText(products.get(0).getUnit() + "鈭�3" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 3) {
+ //绗洓鍒�
+ textRenderData.setText(products.get(0).getAsk() + "鈭�4" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 4) {
+ //绗簲鍒�
+ if ((i - (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh)) % (angles + 1) == 1) {
+ //棰戞
+ textRenderData.setText("棰戞");
+ } else {
+ //瑙掑害
+ textRenderData.setText(result2s.get(0).getAngle().split(",")[(i + (angles - 1)) % (angles + 1)]);
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == bb - 1) {
+ //鏈�鍚庝竴鍒�
+ if ((i - (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh)) % (angles + 1) == 1) {
+ textRenderData.setText("/");
+ } else {
+ //缁撹
+ if (products.get(0).getInsResult() == 1) {
+ textRenderData.setText("鍚堟牸鈭�8" + index + ((i - (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh)) / (angles + 2)));
+ } else if (products.get(0).getInsResult() == 0) {
+ textRenderData.setText("涓嶅悎鏍尖垜8" + index + ((i - (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh)) / (angles + 2)));
+ } else {
+ textRenderData.setText("涓嶅垽瀹氣垜8" + index + ((i - (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh)) / (angles + 2)));
+ }
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else {
+ //鍏朵綑鍒�
+ if ((i - (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh)) % (angles + 1) == 1) {
+ //棰戞
+ try {
+ textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) + ((i - (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh)) / (angles + 2)) * Math.min(length, 8)]);
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ } else {
+ //鏈�宸��
+ String[] value = result2s.get(0).getValue().split("\\],\\[");
+ String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
+ try {
+ textRenderData.setText(split[(j - 5) + ((i - (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh)) / (angles + 2)) * Math.min(length, 8)]);
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ }
+ }
+ if (inspectionItemSubclass.contains("鏈�澶х浉浣嶅亸宸�")) {
+ List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("鏈�澶х浉浣嶅亸宸�")).collect(Collectors.toList());
+ List<InsProductResult2> result2s = insProductResult2s.stream()
+ .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
+ .collect(Collectors.toList());
+ int length = result2s.get(0).getPort().split(",").length;
+ int portRow2 = (length % 8 == 0 ? length / 8 : length / 8 + 1);
+ int k = (angles + 1) * portRow2;
+ if (i > (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm)) {
+ if (itemSet.add("鏈�澶х浉浣嶅亸宸�")) {
+ index.getAndIncrement();
+ }
+ //鏈�澶х浉浣嶅亸宸墍鍦ㄨ
+ if (j == 0) {
+ //绗竴鍒�
+ textRenderData.setText(index + "鈭�1" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 1) {
+ //绗簩鍒�
+ textRenderData.setText("鏈�澶х浉浣嶅亸宸垜2" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 2) {
+ //绗笁鍒�
+ textRenderData.setText(products.get(0).getUnit() + "鈭�3" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 3) {
+ //绗洓鍒�
+ textRenderData.setText(products.get(0).getAsk() + "鈭�4" + index);
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 4) {
+ //绗簲鍒�
+ if ((i - (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm)) % (angles + 1) == 1) {
+ //棰戞
+ textRenderData.setText("棰戞");
+ } else {
+ //瑙掑害
+ textRenderData.setText(result2s.get(0).getAngle().split(",")[(i + (angles - 1)) % (angles + 1)]);
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == bb - 1) {
+ //鏈�鍚庝竴鍒�
+ if ((i - (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm)) % (angles + 1) == 1) {
+ textRenderData.setText("/");
+ } else {
+ //缁撹
+ if (products.get(0).getInsResult() == 1) {
+ textRenderData.setText("鍚堟牸鈭�8" + index + ((i - (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm)) / (angles + 2)));
+ } else if (products.get(0).getInsResult() == 0) {
+ textRenderData.setText("涓嶅悎鏍尖垜8" + index + ((i - (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm)) / (angles + 2)));
+ } else {
+ textRenderData.setText("涓嶅垽瀹氣垜8" + index + ((i - (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm)) / (angles + 2)));
+ }
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else {
+ //鍏朵綑鍒�
+ if ((i - (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm)) % (angles + 1) == 1) {
+ //绔彛
+ try {
+ textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) + ((i - (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm)) / (angles + 2)) * Math.min(length, 8)]);
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ } else {
+ //鏈�宸��
+ String[] value = result2s.get(0).getValue().split("\\],\\[");
+ String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
+ try {
+ textRenderData.setText(split[(j - 5) + ((i - (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm)) / (angles + 2)) * Math.min(length, 8)]);
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ }
+ }
+ }
+ }
+ }
+ rowRenderData.setCells(cells);
+ if (rowRenderData.getCells().size() != 0) {
+ rows.add(rowRenderData);
+ }
+ }
+ TableRenderData tableRenderData = new TableRenderData();
+ tableRenderData.setRows(rows);
+ int countSize = tableRenderData.getRows().get(0).getCells().size();
+ for (RowRenderData row : tableRenderData.getRows()) {
+ if (row.getCells().size() != countSize) {
+ throw new ErrorException("姣忚鍗曞厓鏍间笉鐩哥瓑");
+ }
+ }
+ TableStyle tableStyle = new TableStyle();
+ tableStyle.setWidth(XWPFTable.DEFAULT_PERCENTAGE_WIDTH);
+ tableStyle.setAlign(TableRowAlign.CENTER);
+ BorderStyle borderStyle = new BorderStyle();
+ borderStyle.setColor("000000");
+ borderStyle.setType(XWPFTable.XWPFBorderType.THICK);
+ borderStyle.setSize(4);
+ tableStyle.setLeftBorder(borderStyle);
+ tableStyle.setTopBorder(borderStyle);
+ tableStyle.setRightBorder(borderStyle);
+ tableStyle.setBottomBorder(borderStyle);
+ tableRenderData.setTableStyle(tableStyle);
+ Map<String, Object> table2 = new HashMap<>();
+ table2.put("table2", tableRenderData);
+ table2.put("title", title);
+ tables2.add(table2);
+ lable.getAndIncrement();
+ });
+ });
+ }
}
--
Gitblit v1.9.3