package com.yuanchu.mom.utils; import cn.hutool.core.lang.UUID; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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.yuanchu.mom.dto.InsReportDto1; import com.yuanchu.mom.dto.InsReportDto2; import com.yuanchu.mom.dto.SampleProductDto; import com.yuanchu.mom.exception.ErrorException; 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.CTHMerge; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTcPr; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTVMerge; import org.openxmlformats.schemas.wordprocessingml.x2006.main.STMerge; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.io.*; import java.nio.file.Files; import java.nio.file.Paths; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; @Component public class WordUtils { @Value("${wordUrl}") private String wordUrl; @Resource private InsOrderMapper insOrderMapper; @Resource private InsOrderFileMapper insOrderFileMapper; @Resource CustomMapper customMapper; @Value("${file.path}") private String imgUrl; @Resource InsReportMapper insReportMapper; @Resource private InsSampleMapper insSampleMapper; @Resource StandardMethodListMapper standardMethodListMapper; @Value("${twoCode}") private String twoCode; @Resource private InsProductMapper insProductMapper; @Resource private InsProductResult2Mapper insProductResult2Mapper; @Resource InsOrderUserMapper insOrderUserMapper; @Resource InsOrderStateMapper insOrderStateMapper; @Resource private InsProductResultMapper insProductResultMapper; @Resource UserMapper userMapper; @Resource InsSampleUserMapper insSampleUserMapper; @Resource GiveCode giveCode; //生成站点电路试验报告(天线) public void generateWord(String term, InsOrderState insOrderState) { AtomicInteger lable = new AtomicInteger(1); AtomicInteger index = new AtomicInteger(); String title = term + "电路参数"; List> tables = new ArrayList<>(); //查询订单 InsOrder insOrder = insOrderMapper.selectById(insOrderState.getInsOrderId()); //查询样品 InsSample insSample = insSampleMapper.selectById(insOrderState.getInsSampleId()); //查询项目 List insProducts = insProductMapper.selectList(Wrappers.lambdaQuery() .eq(InsProduct::getState,1) .eq(InsProduct::getInsSampleId, insSample.getId()) .eq(InsProduct::getSonLaboratory, "电路试验")); //获取最大端口数量,角度数量,频段数量 List insProductResult2s = insProductResult2Mapper.selectList(Wrappers.lambdaQuery() .eq(InsProductResult2::getNum, insOrderState.getNum()) .in(InsProductResult2::getInsProductId, insProducts.stream().map(InsProduct::getId).collect(Collectors.toList()))); //按照频段分表(查询所有频段) List frequencys = insProductResult2s.stream().map(InsProductResult2::getFrequency).distinct().collect(Collectors.toList()); frequencys.forEach(s -> { int ports = 0;//端口数 int angles = 0;//角度数 List productResult2s = insProductResult2s.stream().filter(insProductResult2 -> insProductResult2.getFrequency().equals(s)).collect(Collectors.toList()); for (InsProductResult2 insProductResult2 : productResult2s) { 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 = productResult2s.stream().filter(insProductResult2 -> insProductResult2.getFrequency().equals(s)) .filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()).getInspectionItemSubclass().equals("互调") ).filter(insProductResult2 -> ObjectUtils.isNotEmpty(insProductResult2.getOften())).distinct().count(); List 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 += 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 result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) .getInspectionItemSubclass().equals("同极化隔离度") && insProductResult2.getFrequency().equals(s) ).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 result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) .getInspectionItemSubclass().equals("同列隔离度") && insProductResult2.getFrequency().equals(s) ).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 result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) .getInspectionItemSubclass().equals("端口间隔离度") && insProductResult2.getFrequency().equals(s) ).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 result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) .getInspectionItemSubclass().equals("异极化隔离度") && insProductResult2.getFrequency().equals(s) ).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 result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) .getInspectionItemSubclass().equals("幅度偏差")&& insProductResult2.getFrequency().equals(s) ).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 result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) .getInspectionItemSubclass().equals("最大相位偏差")&& insProductResult2.getFrequency().equals(s) ).collect(Collectors.toList()); int length = result2s.get(0).getPort().split(",").length; aa += (angles + 1) * (length % 8 == 0 ? length / 8 : length / 8 + 1); } } List rows = new ArrayList<>(); Set itemSet = new HashSet<>(); int cc = 0; int dd = 0; int ee = 0; int ff = 0; int gg = 0; int hh = 0; int mm = 0; int nn = 0; int pp = 0; //表格的行数 for (int i = 0; i <= aa; i++) { RowRenderData rowRenderData = new RowRenderData(); RowStyle rowStyle = new RowStyle(); rowStyle.setHeight(40); rowRenderData.setRowStyle(rowStyle); List 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 paragraphRenderDataList = new ArrayList<>(); ParagraphRenderData paragraphRenderData = new ParagraphRenderData(); ParagraphStyle paragraphStyle = new ParagraphStyle(); paragraphStyle.setAlign(ParagraphAlignment.CENTER); paragraphRenderData.setParagraphStyle(paragraphStyle); List 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 products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("电压驻波比")).collect(Collectors.toList()); List result2s = productResult2s.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 products = insProducts.stream() .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("同极化隔离度")) .collect(Collectors.toList()); List result2s = productResult2s.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 products = insProducts.stream() .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("同列隔离度")) .collect(Collectors.toList()); List result2s = productResult2s.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) && i <= (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + portRow) { ff = (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + portRow; if (itemSet.add("端口间隔离度")) { index.getAndIncrement(); } List products = insProducts.stream() .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("端口间隔离度")) .collect(Collectors.toList()); List result2s = productResult2s.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 - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 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 - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 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 >(ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)&& i <= (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) + portRow) { gg = (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) + portRow; if (itemSet.add("异极化隔离度")) { index.getAndIncrement(); } List products = insProducts.stream() .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("异极化隔离度")) .collect(Collectors.toList()); List result2s = productResult2s.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 - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) - 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 - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) - 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 > (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) { if (itemSet.add("互调")) { index.getAndIncrement(); } List products = insProducts.stream() .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("互调")) .collect(Collectors.toList()); List result2s = productResult2s.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 - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) - 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 - (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 + ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles - 1)) / (angles + 1) - 1)); } else if (products.get(0).getInsResult() == 0) { textRenderData.setText("不合格∑8" + index + ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles - 1)) / (angles + 1) - 1)); } else { textRenderData.setText("不判定∑8" + index + ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles - 1)) / (angles + 1) - 1)); } } 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((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) / portRow / (angles + 1)).getOften() + "∑6" + i + index); } else { String[] value = result2s.get((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) / portRow / (angles + 2)).getValue().split("\\],\\["); String[] split = value[(i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) - 2) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(","); try { textRenderData.setText(split[((j - 5) + ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) - 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 products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("电压驻波比")).collect(Collectors.toList()); List result2s = productResult2s.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 products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("同极化隔离度")).collect(Collectors.toList()); List result2s = productResult2s.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 products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("同列隔离度")).collect(Collectors.toList()); List result2s = productResult2s.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("端口间隔离度")) { List products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("端口间隔离度")).collect(Collectors.toList()); List result2s = productResult2s.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 > (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) && i <= (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + k) { ff = (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + 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 - (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 + 2))); } else if (products.get(0).getInsResult() == 0) { textRenderData.setText("不合格∑8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / (angles + 2))); } else { textRenderData.setText("不判定∑8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / (angles + 2))); } } 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) { //端口 if (j % 2 == 0) { try { textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 6) / 2 + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / (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 - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / (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 - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / (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 - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / (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 products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("异极化隔离度")).collect(Collectors.toList()); List result2s = productResult2s.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 > (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) && i <= (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) + k) { gg = (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) + 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 - (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 + ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (angles + 2))); } else if (products.get(0).getInsResult() == 0) { textRenderData.setText("不合格∑8" + index + ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (angles + 2))); } else { textRenderData.setText("不判定∑8" + index + ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (angles + 2))); } } 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) { //端口 if (j % 2 == 0) { try { textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 6) / 2 + ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (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 - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (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 - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (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 - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (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 > (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) * portRow * often)) { hh = (int) ((gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles + 1) * portRow * often); if (itemSet.add("互调")) { index.getAndIncrement(); } List products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("互调")).collect(Collectors.toList()); List result2s = productResult2s.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 + ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles - 1)) / (angles + 1) - 1)); } else if (products.get(0).getInsResult() == 0) { textRenderData.setText("不合格∑8" + index + ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles - 1)) / (angles + 1) - 1)); } else { textRenderData.setText("不判定∑8" + index + ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles - 1)) / (angles + 1) - 1)); } } 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((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) / portRow / (angles + 1)).getOften() + "∑6" + i + index); } else { //最差值 String[] value = result2s.get((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) / portRow / (angles + 2)).getValue().split("\\],\\["); String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(","); try { textRenderData.setText(split[((j - 5) + ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) - 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 > (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) + (angles + 1))) { mm = ((hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) + (angles + 1)); if (itemSet.add("最大耦合度")) { index.getAndIncrement(); } List products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("最大耦合度")).collect(Collectors.toList()); List result2s = productResult2s.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 - (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); } 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 - (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh)) % (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 > (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) && i <= ((mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) + (angles + 1))) { nn = (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) + (angles + 1); if (itemSet.add("最小耦合度")) { index.getAndIncrement(); } List products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("最小耦合度")).collect(Collectors.toList()); List result2s = productResult2s.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 - (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); } 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 - (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm)) % (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 products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("幅度偏差")).collect(Collectors.toList()); List result2s = productResult2s.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 > (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) && i <= (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) + k) { pp = (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) + 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 - (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn)) % (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 - (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn)) % (angles + 1) == 1) { textRenderData.setText("/"); } else { //结论 if (products.get(0).getInsResult() == 1) { textRenderData.setText("合格∑8" + index + ((i - (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn)) / (angles + 2))); } else if (products.get(0).getInsResult() == 0) { textRenderData.setText("不合格∑8" + index + ((i - (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn)) / (angles + 2))); } else { textRenderData.setText("不判定∑8" + index + ((i - (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn)) / (angles + 2))); } } renderData.add(textRenderData); paragraphRenderData.setContents(renderData); paragraphRenderDataList.add(paragraphRenderData); cellRenderData.setParagraphs(paragraphRenderDataList); cells.add(cellRenderData); } else { //其余列 if ((i - (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn)) % (angles + 1) == 1) { //频段 try { textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) + ((i - (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn)) / (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 - (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn)) / (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 products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("最大相位偏差")).collect(Collectors.toList()); List result2s = productResult2s.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 > (pp == 0 ? (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) : pp)) { 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 - (pp == 0 ? (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) : pp)) % (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 - (pp == 0 ? (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) : pp)) % (angles + 1) == 1) { textRenderData.setText("/"); } else { //结论 if (products.get(0).getInsResult() == 1) { textRenderData.setText("合格∑8" + index + ((i - (pp == 0 ? (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) : pp)) / (angles + 2))); } else if (products.get(0).getInsResult() == 0) { textRenderData.setText("不合格∑8" + index + ((i - (pp == 0 ? (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) : pp)) / (angles + 2))); } else { textRenderData.setText("不判定∑8" + index + ((i - (pp == 0 ? (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) : pp)) / (angles + 2))); } } renderData.add(textRenderData); paragraphRenderData.setContents(renderData); paragraphRenderDataList.add(paragraphRenderData); cellRenderData.setParagraphs(paragraphRenderDataList); cells.add(cellRenderData); } else { //其余列 if ((i - (pp == 0 ? (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) : pp)) % (angles + 1) == 1) { //端口 try { textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) + ((i - (pp == 0 ? (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) : pp)) / (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 - (pp == 0 ? (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) : pp)) / (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 table = new HashMap<>(); table.put("table", tableRenderData); tables.add(table); lable.getAndIncrement(); }); ZipSecureFile.setMinInflateRatio(0.0001); InputStream inputStream = this.getClass().getResourceAsStream("/static/word1.docx"); ConfigureBuilder builder = Configure.builder(); builder.useSpringEL(true); XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render( new HashMap() {{ put("title", title); put("tables", tables); }}); String name = insOrder.getEntrustCode().replace("/", "") + "-" +insSample.getSampleCode()+"-"+ title + ".docx"; String url = UUID.randomUUID() + "_" + name; try { template.writeAndClose(Files.newOutputStream(Paths.get(wordUrl + "/" + url))); } catch (IOException e) { throw new RuntimeException(e); } // 处理合并单元格的问题 String path = wordUrl + "/" + url; try { ZipSecureFile.setMinInflateRatio(0.0001); FileInputStream stream = new FileInputStream(path); XWPFDocument document = new XWPFDocument(stream); List xwpfTables = document.getTables(); for (int i = 0; i < xwpfTables.size(); i++) { Set set1 = new HashSet<>(); Map> maps = new HashMap<>(); for (int j = 0; j < xwpfTables.get(i).getRows().size(); j++) { for (int k = 0; k < xwpfTables.get(i).getRows().get(j).getTableCells().size(); k++) { if (xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().indexOf("∑") > -1) { String[] split = xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().split("∑"); if (set1.add(split[1])) { Map map = new HashMap<>(); map.put("sr", j); map.put("sc", k); map.put("er", j + 0); map.put("ec", k + 0); maps.put(split[1], map); } else { Map map1 = maps.get(split[1]); if (j == map1.get("sr")) { map1.put("ec", map1.get("ec") + 1); } else if (k == map1.get("sc")) { map1.put("er", map1.get("er") + 1); } } String str = xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().split("∑")[0]; xwpfTables.get(i).getRows().get(j).getTableCells().get(k).removeParagraph(0); xwpfTables.get(i).getRows().get(j).getTableCells().get(k).setText(str); xwpfTables.get(i).getRows().get(j).getTableCells().get(k).setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER); xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getParagraphArray(0).setAlignment(org.apache.poi.xwpf.usermodel.ParagraphAlignment.CENTER); } } } // 单元格排序, 避免格式错乱 List>> entries = new ArrayList<>(maps.entrySet()); entries.sort((o1, o2) -> o1.getValue().get("sc") - o2.getValue().get("sc")); // 按照顺序添加进集合 List list = new ArrayList<>(); for (Map.Entry> entry : entries) { list.add(entry.getKey()); } /*List list = new ArrayList<>(); for (String s : maps.keySet()) { list.add(s); }*/ for (int a = list.size() - 1; a >= 0; a--) { Map v = maps.get(list.get(a)); for (int j = 0; j < v.get("er") - v.get("sr") + 1; j++) { if (v.get("ec") > v.get("sc")) { try { TableTools.mergeCellsHorizonal(xwpfTables.get(i), v.get("sr") + j, v.get("sc"), v.get("ec")); } catch (Exception e) { } } } if (v.get("er") > v.get("sr")) { try { TableTools.mergeCellsVertically(xwpfTables.get(i), v.get("sc"), v.get("sr"), v.get("er")); } catch (Exception e) { } } } } FileOutputStream fileOutputStream = new FileOutputStream(path); document.write(fileOutputStream); fileOutputStream.close(); } catch (FileNotFoundException e) { throw new RuntimeException(e); } catch (IOException e) { throw new RuntimeException(e); } InsOrderFile insOrderFile = new InsOrderFile(); insOrderFile.setInsOrderId(insOrderState.getInsOrderId()); insOrderFile.setInsSampleId(insOrderState.getInsSampleId()); insOrderFile.setFileName(name); insOrderFile.setType(2); insOrderFile.setFileUrl(url); insOrderFile.setSonLaboratory("电路试验"); insOrderFileMapper.insert(insOrderFile); } //生成站点电路试验报告(无源器件) public void generateWord2(String term, InsOrderState insOrderState) { AtomicInteger lable = new AtomicInteger(1); AtomicInteger index = new AtomicInteger(); String title = term + "电路参数"; List> tables = new ArrayList<>(); //查询订单 InsOrder insOrder = insOrderMapper.selectById(insOrderState.getInsOrderId()); //查询样品 InsSample insSample = insSampleMapper.selectById(insOrderState.getInsSampleId()); //查询项目 List insProducts = insProductMapper.selectList(Wrappers.lambdaQuery() .eq(InsProduct::getState,1) .eq(InsProduct::getInsSampleId, insSample.getId()) .eq(InsProduct::getSonLaboratory, "电路试验")); //获取最大端口数量,角度数量,频段数量 List insProductResult2s = insProductResult2Mapper.selectList(Wrappers.lambdaQuery() .eq(InsProductResult2::getNum, insOrderState.getNum()) .in(InsProductResult2::getInsProductId, insProducts.stream().map(InsProduct::getId).collect(Collectors.toList()))); //按照频段分表(查询所有频段) List frequencys = insProductResult2s.stream().map(InsProductResult2::getFrequency).distinct().collect(Collectors.toList()); frequencys.forEach(s -> { int ports = 0;//端口数 int angles = 0;//角度数 List productResult2s = insProductResult2s.stream().filter(insProductResult2 -> insProductResult2.getFrequency().equals(s)).collect(Collectors.toList()); for (InsProductResult2 insProductResult2 : productResult2s) { 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 = productResult2s.stream().filter(insProductResult2 -> insProductResult2.getFrequency().equals(s)) .filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()).getInspectionItemSubclass().equals("互调") ).filter(insProductResult2 -> ObjectUtils.isNotEmpty(insProductResult2.getOften())).distinct().count(); List 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 += 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 result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) .getInspectionItemSubclass().equals("同极化隔离度") && insProductResult2.getFrequency().equals(s) ).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 result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) .getInspectionItemSubclass().equals("同列隔离度") && insProductResult2.getFrequency().equals(s) ).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 result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) .getInspectionItemSubclass().equals("端口间隔离度") && insProductResult2.getFrequency().equals(s) ).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 result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) .getInspectionItemSubclass().equals("异极化隔离度") && insProductResult2.getFrequency().equals(s) ).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 result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) .getInspectionItemSubclass().equals("幅度偏差")&& insProductResult2.getFrequency().equals(s) ).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 result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) .getInspectionItemSubclass().equals("最大相位偏差")&& insProductResult2.getFrequency().equals(s) ).collect(Collectors.toList()); int length = result2s.get(0).getPort().split(",").length; aa += (angles + 1) * (length % 8 == 0 ? length / 8 : length / 8 + 1); } } List rows = new ArrayList<>(); Set itemSet = new HashSet<>(); int cc = 0; int dd = 0; int ee = 0; int ff = 0; int gg = 0; int hh = 0; int mm = 0; int nn = 0; int pp = 0; //表格的行数 for (int i = 0; i <= aa; i++) { RowRenderData rowRenderData = new RowRenderData(); RowStyle rowStyle = new RowStyle(); rowStyle.setHeight(40); rowRenderData.setRowStyle(rowStyle); List 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 paragraphRenderDataList = new ArrayList<>(); ParagraphRenderData paragraphRenderData = new ParagraphRenderData(); ParagraphStyle paragraphStyle = new ParagraphStyle(); paragraphStyle.setAlign(ParagraphAlignment.CENTER); paragraphRenderData.setParagraphStyle(paragraphStyle); List 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 products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("电压驻波比")).collect(Collectors.toList()); List result2s = productResult2s.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 products = insProducts.stream() .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("同极化隔离度")) .collect(Collectors.toList()); List result2s = productResult2s.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 products = insProducts.stream() .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("同列隔离度")) .collect(Collectors.toList()); List result2s = productResult2s.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) && i <= (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + portRow) { ff = (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + portRow; if (itemSet.add("端口间隔离度")) { index.getAndIncrement(); } List products = insProducts.stream() .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("端口间隔离度")) .collect(Collectors.toList()); List result2s = productResult2s.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 - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 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 - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 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 >(ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)&& i <= (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) + portRow) { gg = (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) + portRow; if (itemSet.add("异极化隔离度")) { index.getAndIncrement(); } List products = insProducts.stream() .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("异极化隔离度")) .collect(Collectors.toList()); List result2s = productResult2s.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 - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) - 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 - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) - 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 > (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) { if (itemSet.add("互调")) { index.getAndIncrement(); } List products = insProducts.stream() .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("互调")) .collect(Collectors.toList()); List result2s = productResult2s.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 - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) - 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 - (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 + ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles - 1)) / (angles + 1) - 1)); } else if (products.get(0).getInsResult() == 0) { textRenderData.setText("不合格∑8" + index + ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles - 1)) / (angles + 1) - 1)); } else { textRenderData.setText("不判定∑8" + index + ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles - 1)) / (angles + 1) - 1)); } } 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((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) / portRow / (angles + 1)).getOften() + "∑6" + i + index); } else { String[] value = result2s.get((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) / portRow / (angles + 2)).getValue().split("\\],\\["); String[] split = value[(i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) - 2) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(","); try { textRenderData.setText(split[((j - 5) + ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) - 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 products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("电压驻波比")).collect(Collectors.toList()); List result2s = productResult2s.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 products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("同极化隔离度")).collect(Collectors.toList()); List result2s = productResult2s.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 products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("同列隔离度")).collect(Collectors.toList()); List result2s = productResult2s.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("端口间隔离度")) { List products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("端口间隔离度")).collect(Collectors.toList()); List result2s = productResult2s.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 > (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) && i <= (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + k) { ff = (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + 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 - (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 + 2))); } else if (products.get(0).getInsResult() == 0) { textRenderData.setText("不合格∑8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / (angles + 2))); } else { textRenderData.setText("不判定∑8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / (angles + 2))); } } 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) { //端口 if (j % 2 == 0) { try { textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 6) / 2 + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / (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 - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / (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 - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / (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 - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / (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 products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("异极化隔离度")).collect(Collectors.toList()); List result2s = productResult2s.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 > (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) && i <= (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) + k) { gg = (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) + 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 - (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 + ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (angles + 2))); } else if (products.get(0).getInsResult() == 0) { textRenderData.setText("不合格∑8" + index + ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (angles + 2))); } else { textRenderData.setText("不判定∑8" + index + ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (angles + 2))); } } 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) { //端口 if (j % 2 == 0) { try { textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 6) / 2 + ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (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 - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (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 - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (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 - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (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 > (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) * portRow * often)) { hh = (int) ((gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles + 1) * portRow * often); if (itemSet.add("互调")) { index.getAndIncrement(); } List products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("互调")).collect(Collectors.toList()); List result2s = productResult2s.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 + ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles - 1)) / (angles + 1) - 1)); } else if (products.get(0).getInsResult() == 0) { textRenderData.setText("不合格∑8" + index + ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles - 1)) / (angles + 1) - 1)); } else { textRenderData.setText("不判定∑8" + index + ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles - 1)) / (angles + 1) - 1)); } } 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((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) / portRow / (angles + 1)).getOften() + "∑6" + i + index); } else { //最差值 String[] value = result2s.get((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) / portRow / (angles + 2)).getValue().split("\\],\\["); String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(","); try { textRenderData.setText(split[((j - 5) + ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) - 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 > (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) + (angles + 1))) { mm = ((hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) + (angles + 1)); if (itemSet.add("最大耦合度")) { index.getAndIncrement(); } List products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("最大耦合度")).collect(Collectors.toList()); List result2s = productResult2s.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 - (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); } 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 - (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh)) % (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 > (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) && i <= ((mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) + (angles + 1))) { nn = (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) + (angles + 1); if (itemSet.add("最小耦合度")) { index.getAndIncrement(); } List products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("最小耦合度")).collect(Collectors.toList()); List result2s = productResult2s.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 - (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); } 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 - (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm)) % (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 products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("幅度偏差")).collect(Collectors.toList()); List result2s = productResult2s.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 > (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) && i <= (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) + k) { pp = (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) + 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 - (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn)) % (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 - (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn)) % (angles + 1) == 1) { textRenderData.setText("/"); } else { //结论 if (products.get(0).getInsResult() == 1) { textRenderData.setText("合格∑8" + index + ((i - (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn)) / (angles + 2))); } else if (products.get(0).getInsResult() == 0) { textRenderData.setText("不合格∑8" + index + ((i - (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn)) / (angles + 2))); } else { textRenderData.setText("不判定∑8" + index + ((i - (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn)) / (angles + 2))); } } renderData.add(textRenderData); paragraphRenderData.setContents(renderData); paragraphRenderDataList.add(paragraphRenderData); cellRenderData.setParagraphs(paragraphRenderDataList); cells.add(cellRenderData); } else { //其余列 if ((i - (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn)) % (angles + 1) == 1) { //频段 try { textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) + ((i - (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn)) / (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 - (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn)) / (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 products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("最大相位偏差")).collect(Collectors.toList()); List result2s = productResult2s.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 > (pp == 0 ? (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) : pp)) { 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 - (pp == 0 ? (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) : pp)) % (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 - (pp == 0 ? (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) : pp)) % (angles + 1) == 1) { textRenderData.setText("/"); } else { //结论 if (products.get(0).getInsResult() == 1) { textRenderData.setText("合格∑8" + index + ((i - (pp == 0 ? (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) : pp)) / (angles + 2))); } else if (products.get(0).getInsResult() == 0) { textRenderData.setText("不合格∑8" + index + ((i - (pp == 0 ? (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) : pp)) / (angles + 2))); } else { textRenderData.setText("不判定∑8" + index + ((i - (pp == 0 ? (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) : pp)) / (angles + 2))); } } renderData.add(textRenderData); paragraphRenderData.setContents(renderData); paragraphRenderDataList.add(paragraphRenderData); cellRenderData.setParagraphs(paragraphRenderDataList); cells.add(cellRenderData); } else { //其余列 if ((i - (pp == 0 ? (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) : pp)) % (angles + 1) == 1) { //端口 try { textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) + ((i - (pp == 0 ? (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) : pp)) / (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 - (pp == 0 ? (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) : pp)) / (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 table = new HashMap<>(); table.put("table", tableRenderData); tables.add(table); lable.getAndIncrement(); }); ZipSecureFile.setMinInflateRatio(0.0001); InputStream inputStream = this.getClass().getResourceAsStream("/static/word1.docx"); ConfigureBuilder builder = Configure.builder(); builder.useSpringEL(true); XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render( new HashMap() {{ put("title", title); put("tables", tables); }}); String name = insOrder.getEntrustCode().replace("/", "") + "-" +insSample.getSampleCode()+"-"+ title + ".docx"; String url = UUID.randomUUID() + "_" + name; try { template.writeAndClose(Files.newOutputStream(Paths.get(wordUrl + "/" + url))); } catch (IOException e) { throw new RuntimeException(e); } // 处理合并单元格的问题 String path = wordUrl + "/" + url; try { ZipSecureFile.setMinInflateRatio(0.0001); FileInputStream stream = new FileInputStream(path); XWPFDocument document = new XWPFDocument(stream); List xwpfTables = document.getTables(); for (int i = 0; i < xwpfTables.size(); i++) { Set set1 = new HashSet<>(); Map> maps = new HashMap<>(); for (int j = 0; j < xwpfTables.get(i).getRows().size(); j++) { for (int k = 0; k < xwpfTables.get(i).getRows().get(j).getTableCells().size(); k++) { if (xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().indexOf("∑") > -1) { String[] split = xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().split("∑"); if (set1.add(split[1])) { Map map = new HashMap<>(); map.put("sr", j); map.put("sc", k); map.put("er", j + 0); map.put("ec", k + 0); maps.put(split[1], map); } else { Map map1 = maps.get(split[1]); if (j == map1.get("sr")) { map1.put("ec", map1.get("ec") + 1); } else if (k == map1.get("sc")) { map1.put("er", map1.get("er") + 1); } } String str = xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().split("∑")[0]; xwpfTables.get(i).getRows().get(j).getTableCells().get(k).removeParagraph(0); xwpfTables.get(i).getRows().get(j).getTableCells().get(k).setText(str); xwpfTables.get(i).getRows().get(j).getTableCells().get(k).setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER); xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getParagraphArray(0).setAlignment(org.apache.poi.xwpf.usermodel.ParagraphAlignment.CENTER); } } } // 单元格排序, 避免格式错乱 List>> entries = new ArrayList<>(maps.entrySet()); entries.sort((o1, o2) -> o1.getValue().get("sc") - o2.getValue().get("sc")); // 按照顺序添加进集合 List list = new ArrayList<>(); for (Map.Entry> entry : entries) { list.add(entry.getKey()); } /*List list = new ArrayList<>(); for (String s : maps.keySet()) { list.add(s); }*/ for (int a = list.size() - 1; a >= 0; a--) { Map v = maps.get(list.get(a)); for (int j = 0; j < v.get("er") - v.get("sr") + 1; j++) { if (v.get("ec") > v.get("sc")) { try { TableTools.mergeCellsHorizonal(xwpfTables.get(i), v.get("sr") + j, v.get("sc"), v.get("ec")); } catch (Exception e) { } } } if (v.get("er") > v.get("sr")) { try { TableTools.mergeCellsVertically(xwpfTables.get(i), v.get("sc"), v.get("sr"), v.get("er")); } catch (Exception e) { } } } } FileOutputStream fileOutputStream = new FileOutputStream(path); document.write(fileOutputStream); fileOutputStream.close(); } catch (FileNotFoundException e) { throw new RuntimeException(e); } catch (IOException e) { throw new RuntimeException(e); } InsOrderFile insOrderFile = new InsOrderFile(); insOrderFile.setInsOrderId(insOrderState.getInsOrderId()); insOrderFile.setInsSampleId(insOrderState.getInsSampleId()); insOrderFile.setFileName(name); insOrderFile.setType(2); insOrderFile.setFileUrl(url); insOrderFile.setSonLaboratory("电路试验"); insOrderFileMapper.insert(insOrderFile); } //生成总报告 public void generateReport(Integer orderId, InsReportDto1 insReportDto1) { LocalDateTime now = LocalDateTime.now(); InsOrder insOrder = insOrderMapper.selectById(orderId); //委托部门 departLims String departLims = userMapper.selectDepartLims(insOrder.getPrepareUser()); SampleProductDto insSample = insSampleMapper.selectSampleProductListByOrderId(insReportDto1.getSampleId()); String sampleCode = insSample.getSampleCode(); InsReport insReport = new InsReport(); insReport.setCode(giveCode.giveCode("TXJC-", "ins_report", "-", "yyMMdd")); insReport.setInsSampleId(insSample.getId()); insReport.setInsOrderId(orderId); Set standardMethod = new HashSet<>(); Set deviceSet = new HashSet<>(); Set models = new HashSet<>(); AtomicReference productSize = new AtomicReference<>(0); AtomicReference productSize1 = new AtomicReference<>(0); AtomicReference productSize2 = new AtomicReference<>(0); AtomicReference productSize3 = new AtomicReference<>(0); String[] monthNames = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}; SampleProductDto s=insSample; models.add(s.getModel()); standardMethod.addAll(standardMethodListMapper.selectList(Wrappers.lambdaQuery() .in(StandardMethodList::getId, Arrays.stream(s.getStandardMethodListId().replaceAll("[\\[\\]]", "").split(",")) .map(String::trim).map(Integer::parseInt).collect(Collectors.toList()))).stream().map(aa -> { return aa.getCode() + " " + aa.getName(); }).distinct().collect(Collectors.toList())); //总数 Long productCount = insProductMapper.selectCount(Wrappers.lambdaQuery() .eq(InsProduct::getInsSampleId, s.getId())); productSize.set(productSize.get() + Integer.parseInt(productCount + "")); //不判定 Long productCount1 = insProductMapper.selectCount(Wrappers.lambdaQuery() .eq(InsProduct::getInsSampleId, s.getId()) .eq(InsProduct::getInsResult, 3)); productSize1.set(productSize1.get() + Integer.parseInt(productCount1 + "")); //不合格 Long productCount2 = insProductMapper.selectCount(Wrappers.lambdaQuery() .eq(InsProduct::getInsSampleId, s.getId()) .eq(InsProduct::getInsResult, 0)); productSize2.set(productSize2.get() + Integer.parseInt(productCount2 + "")); //合格 Long productCount3 = insProductMapper.selectCount(Wrappers.lambdaQuery() .eq(InsProduct::getInsSampleId, s.getId()) .eq(InsProduct::getInsResult, 1)); productSize3.set(productSize3.get() + Integer.parseInt(productCount3 + "")); //将项目按照站点进行分类 Map> listMap = s.getInsProduct().stream().collect(Collectors.groupingBy(InsProduct::getSonLaboratory)); // 创建一个 Map 将站点和项目ID的映射关系 Map> labToDeviceMap = new HashMap<>(); // 获取所有站点的项目ID 列表 for (Map.Entry> entry : listMap.entrySet()) { Set productIds = entry.getValue().stream() .map(InsProduct::getId) .collect(Collectors.toSet()); labToDeviceMap.put(entry.getKey(), productIds); } for (InsReportDto2 insReportDto2 : insReportDto1.getInsReportDto2s()) { String laboratory = insReportDto2.getLaboratory(); if (!labToDeviceMap.containsKey(laboratory)) { continue; } Set productIds = labToDeviceMap.get(laboratory); Integer num = insReportDto2.getNum(); //普通试验结果表 List insProductResults = insProductResultMapper.selectList( Wrappers.lambdaQuery() .eq(InsProductResult::getNum, num) .in(InsProductResult::getInsProductId, productIds)); for (InsProductResult insProductResult : insProductResults) { List jsonObjects = JSON.parseArray(insProductResult.getEquipValue(), JSONObject.class); if (ObjectUtils.isNotEmpty(jsonObjects)) { for (JSONObject jsonObject : jsonObjects) { String value = jsonObject.getString("v"); if (value != null && !value.isEmpty()) { deviceSet.add(value); } } } } //电路试验结果表 List insProductResult2s = insProductResult2Mapper.selectList( Wrappers.lambdaQuery() .eq(InsProductResult2::getNum, num) .in(InsProductResult2::getInsProductId, productIds)); for (InsProductResult2 result2 : insProductResult2s) { String equipValue = result2.getEquipValue(); if (equipValue != null && !equipValue.isEmpty()) { deviceSet.add(equipValue); } } } /*检验情况一览表*/ List> tables = new ArrayList<>(); List> tables2 = new ArrayList<>(); List> tables3 = new ArrayList<>(); List> tables4 = new ArrayList<>(); Integer indexs = 1; //判断是否有电路试验,环境试验 List strings = insReportDto1.getInsReportDto2s().stream().map(InsReportDto2::getLaboratory).distinct().collect(Collectors.toList()); if (strings.contains("近场") || strings.contains("远场")) { Map table = new HashMap<>(); table.put("indexs", indexs + ""); indexs += 1; table.put("term", "辐射方向图参数"); table.put("result", "不判定"); tables.add(table); /*辐射的试验表*/ List insOrderFiles = insOrderFileMapper.selectList(Wrappers.lambdaQuery() .eq(InsOrderFile::getInsOrderId, orderId) .eq(InsOrderFile::getInsSampleId, insReportDto1.getSampleId()) .like(InsOrderFile::getFileName, "解析的辐射站点报告") .and(wrapper -> wrapper .eq(InsOrderFile::getSonLaboratory, "远场") .or() .eq(InsOrderFile::getSonLaboratory, "近场") )); if (insOrderFiles.size() > 0) { int aa = 0; for (InsOrderFile insOrderFile : insOrderFiles) { try { XWPFDocument circuitParamsDoc = new XWPFDocument(new FileInputStream(wordUrl + "/" + insOrderFile.getFileUrl())); // 遍历电路参数文件的所有元素,段落和表格 for (IBodyElement element : circuitParamsDoc.getBodyElements()) { Map table3 = new HashMap<>(); TableRenderData tableData = new TableRenderData(); List rows = new ArrayList<>(); if (element instanceof XWPFTable) { aa += 1; XWPFTable tab = (XWPFTable) element; List row = tab.getRows(); for (int i = 0; i < row.size(); i++) { RowRenderData rowRenderData = new RowRenderData(); List cells = new ArrayList<>(); List cell = row.get(i).getTableCells(); for (int j = 0; j < cell.size(); j++) { CellRenderData cellRenderData = new CellRenderData(); List paragraphRenderDataList = new ArrayList<>(); ParagraphRenderData paragraphRenderData = new ParagraphRenderData(); ParagraphStyle paragraphStyle = new ParagraphStyle(); paragraphStyle.setAlign(ParagraphAlignment.CENTER); paragraphRenderData.setParagraphStyle(paragraphStyle); List renderData = new ArrayList<>(); TextRenderData textRenderData = new TextRenderData(); Style style = new Style(); style.setFontFamily("宋体"); style.setColor("000000"); textRenderData.setStyle(style); CTTcPr tcPr = cell.get(j).getCTTc().getTcPr(); if (tcPr != null) { //合并列 CTHMerge hMerge = tcPr.getHMerge(); if (ObjectUtils.isNotEmpty(hMerge)) { if (STMerge.RESTART.equals(hMerge.getVal()) || STMerge.CONTINUE.equals(hMerge.getVal())) { int index = j; String text = null; while (text == null || text.equals("")) { if (index < 0) { text = "/"; } text = cell.get(index).getText(); index--; } textRenderData.setText(text + "∑88" + aa + i); } } //合并行 CTVMerge vMerge = tcPr.getVMerge(); if (ObjectUtils.isNotEmpty(vMerge)) { if (STMerge.RESTART.equals(vMerge.getVal()) || STMerge.CONTINUE.equals(vMerge.getVal())) { int index = i; String text = null; while (text == null || text.equals("")) { if (index < 0) { text = "/"; break; } text = row.get(index).getCell(j).getText(); index--; } if (text.equals("合格") || text.equals("不合格")) { textRenderData.setText(text + "∑25" + aa + j); } else { textRenderData.setText(text + "∑22" + aa + j); } } } } else { textRenderData.setText(cell.get(j).getText()); } renderData.add(textRenderData); paragraphRenderData.setContents(renderData); paragraphRenderDataList.add(paragraphRenderData); cellRenderData.setParagraphs(paragraphRenderDataList); cells.add(cellRenderData); } rowRenderData.setCells(cells); rows.add(rowRenderData); } tableData.setRows(rows); table3.put("table3", tableData); tables3.add(table3); } } } catch (IOException e) { e.printStackTrace(); } } } } if (strings.contains("电路试验")) { strings.remove("电路试验"); strings.remove("近场"); strings.remove("远场"); List productIdes = insSample.getInsProduct().stream().map(InsProduct::getId).collect(Collectors.toList()); List collect = insProductResult2Mapper.selectList(Wrappers.lambdaQuery() .in(InsProductResult2::getInsProductId, productIdes)) .stream().map(InsProductResult2::getResult).distinct().collect(Collectors.toList()); //如果有环境试验 if (strings.size() > 0) { Map table1 = new HashMap<>(); table1.put("indexs", indexs + ""); table1.put("term", "环境试验前电路参数"); if (collect.contains(0)) { table1.put("result", "不合格"); } else { table1.put("result", "合格"); } tables.add(table1); indexs += 1; Map 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); Map table3 = new HashMap<>(); table3.put("indexs", indexs + ""); table3.put("term", "环境试验后电路参数"); if (collect.contains(0)) { table3.put("result", "不合格"); } else { table3.put("result", "合格"); } tables.add(table3); indexs += 1; /*创建环境试验条件表2*(项目数+1)*/ List products = insSample.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 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 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 paragraphRenderDataList = new ArrayList<>(); ParagraphRenderData paragraphRenderData = new ParagraphRenderData(); ParagraphStyle paragraphStyle = new ParagraphStyle(); paragraphStyle.setAlign(ParagraphAlignment.CENTER); paragraphRenderData.setParagraphStyle(paragraphStyle); List 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 table4 = new HashMap<>(); table4.put("table4", tableRenderData); tables4.add(table4); } else { Map table = new HashMap<>(); table.put("indexs", indexs + ""); table.put("term", "电路参数"); if (collect.contains(0)) { table.put("result", "不合格"); } else { table.put("result", "合格"); } tables.add(table); indexs += 1; } /*勾选的电路试验表*/ for (InsReportDto2 insReportDto2 : insReportDto1.getInsReportDto2s()) { InsOrderUser insOrderUser = insOrderUserMapper.selectById(insReportDto2.getInsOrderUsersId()); InsOrderState orderState = insOrderStateMapper.selectById(insOrderUser.getInsOrderStateId()); if (orderState.getLaboratory().equals("电路试验")) { orderState.setNum(insOrderUser.getNum()); if(!insOrder.getSampleType().equals("无源器件")){ getWord1(insOrderUser.getTerm(), orderState, tables2); }else { getWord2(insOrderUser.getTerm(), orderState, tables2); } } } } else { //如果只有环境试验没有电路试验 strings.remove("近场"); strings.remove("远场"); if (strings.size() > 0) { Map 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 products = insSample.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 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 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 paragraphRenderDataList = new ArrayList<>(); ParagraphRenderData paragraphRenderData = new ParagraphRenderData(); ParagraphStyle paragraphStyle = new ParagraphStyle(); paragraphStyle.setAlign(ParagraphAlignment.CENTER); paragraphRenderData.setParagraphStyle(paragraphStyle); List 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 table4 = new HashMap<>(); table4.put("table4", tableRenderData); tables4.add(table4); } } ZipSecureFile.setMinInflateRatio(0.0001); InputStream inputStream = this.getClass().getResourceAsStream("/static/report-template.docx"); StringBuilder standardMethod2 = new StringBuilder(); for (String s1 : standardMethod) { standardMethod2.append(";\n").append(s1); } standardMethod2.append(";\n").append("GB/T 9410-2008 《移动通信天线通用技术规范》"); standardMethod2.replace(0, 1, ""); List> deviceList = null; if (deviceSet.size() != 0) { deviceList = insOrderMapper.selectDeviceList(deviceSet); } Map codeStr = new HashMap<>(); codeStr.put("报告编号", insReport.getCode()); codeStr.put("样品名称", insSample.getSample()); codeStr.put("规格型号", insSample.getModel()); codeStr.put("发放日期", now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); String codePath; try { codePath = new MatrixToImageWriter().code(JackSonUtil.marshal(codeStr).replaceAll("\\{", "") .replaceAll("}", "").replaceAll(",", "").replaceAll("\"", ""), twoCode); } catch (Exception e) { throw new RuntimeException(e); } String modelStr = ""; for (String model : models) { modelStr += "," + model; } String finalModelStr = modelStr; String sampleEn = insSampleMapper.getSampleEn(insOrder.getSample()); String orderType = insOrderMapper.getEnumLabelByValue(insOrder.getOrderType()); String formType = insOrderMapper.getEnumLabelByValue(insOrder.getFormType()); ConfigureBuilder builder = Configure.builder(); builder.useSpringEL(true); List> finalDeviceList = deviceList; List> sampleList = insSampleMapper.selectSampleList(orderId); Integer userId = insSampleUserMapper.selectOne(Wrappers.lambdaQuery() .eq(InsSampleUser::getInsSampleId, insReportDto1.getSampleId()) .eq(InsSampleUser::getState,0) .last("limit 1")).getUserId(); String signatureUrl; try { signatureUrl = userMapper.selectById(userId).getSignatureUrl(); } catch (Exception e) { throw new ErrorException("找不到检验人的签名"); } if (ObjectUtils.isEmpty(signatureUrl) || signatureUrl.equals("")) { throw new ErrorException("找不到检验人的签名"); } Custom custom = customMapper.selectById(insOrder.getCompanyId()); /*获取附件图片类型*/ List> images = new ArrayList<>(); List insOrderFiles = insOrderFileMapper.selectList(Wrappers.lambdaQuery().eq(InsOrderFile::getType, 1).eq(InsOrderFile::getInsOrderId, orderId)); if (CollectionUtils.isNotEmpty(insOrderFiles)) { insOrderFiles.forEach(insOrderFile -> { Map image = new HashMap<>(); PictureRenderData pictureRenderData = Pictures.ofLocal(imgUrl + "/" + insOrderFile.getFileUrl()).sizeInCm(17, 20).create(); image.put("url", pictureRenderData); image.put("report", insReport); images.add(image); }); } //委托人和电话字段判断 if (ObjectUtils.isEmpty(insOrder.getPrepareUser())) { insOrder.setPrepareUser("/"); } if (ObjectUtils.isEmpty(insOrder.getPhone())) { insOrder.setPhone("/"); } //检验项目的环境 InsProduct insProduct = insProductMapper.selectList(Wrappers.lambdaQuery() .eq(InsProduct::getState, 1) .eq(InsProduct::getInsSampleId, insReportDto1.getSampleId())).get(0); String environment = ""; environment = (ObjectUtils.isNotEmpty(insProduct.getTemperature()) ? insProduct.getTemperature() + "℃ " : "") + (ObjectUtils.isNotEmpty(insProduct.getHumidity()) ? insProduct.getHumidity() + "%" : ""); String finalEnvironment = environment; String title3 = ""; if (tables3.size() > 0) { title3 = "辐射方向图参数"; } String finalTitle = title3; XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render( new HashMap() {{ put("order", insOrder); put("report", insReport); put("departLims", departLims); put("sampleCode", sampleCode); put("environment", finalEnvironment); put("custom", custom); put("sampleSize", "1"); put("standardMethod", (standardMethod2.toString().equals("null") ? "" : standardMethod2)); put("deviceList", finalDeviceList); put("tables", tables); put("tables2", tables2); put("title3", finalTitle); put("tables3", tables3); put("tables4", tables4); put("sampleList", sampleList); put("twoCode", Pictures.ofLocal(codePath).create()); put("models", finalModelStr.replace(",", "")); put("productSize", productSize); put("productSize1", productSize1); put("productSize2", productSize2); put("productSize3", productSize3); put("createTime", now.format(DateTimeFormatter.ofPattern("yyyy年MM月dd日"))); // put("createTimeEn", monthNames[now.getMonthValue() - 1] + " " + now.getDayOfMonth() + ", " + now.getYear()); put("insTime", insOrder.getInsTime().format(DateTimeFormatter.ofPattern("yyyy年MM月dd日"))); put("insTimeEn", monthNames[insOrder.getInsTime().getMonthValue() - 1] + " " + insOrder.getInsTime().getDayOfMonth() + ", " + insOrder.getInsTime().getYear()); put("writeUrl", null); put("insUrl", Pictures.ofLocal(imgUrl + "/" + signatureUrl).create()); put("images", images); put("examineUrl", null); put("ratifyUrl", null); put("sampleEn", sampleEn); put("orderType", orderType); put("getTime", insOrder.getExamineTime().format(DateTimeFormatter.ofPattern("yyyy年MM月dd日"))); put("getTimeEn", monthNames[insOrder.getExamineTime().getMonthValue() - 1] + " " + insOrder.getExamineTime().getDayOfMonth() + ", " + insOrder.getExamineTime().getYear()); put("seal1", null); put("seal2", null); put("formTypeCh", formType); 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); insReportMapper.insert(insReport); insOrder.setInsState(5); insOrderMapper.updateById(insOrder); } catch (IOException e) { throw new RuntimeException(e); } String path = wordUrl + "/" + insReport.getCode().replace("/", "") + ".docx"; // 处理合并单元格的问题 try { ZipSecureFile.setMinInflateRatio(0.0001); FileInputStream stream = new FileInputStream(path); XWPFDocument document = new XWPFDocument(stream); List xwpfTables = document.getTables(); for (int i = 1; i < xwpfTables.size() - (deviceList == null ? 1 : 2); i++) { Set set1 = new HashSet<>(); Map> maps = new HashMap<>(); for (int j = 0; j < xwpfTables.get(i).getRows().size(); j++) { for (int k = 0; k < xwpfTables.get(i).getRows().get(j).getTableCells().size(); k++) { if (xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().indexOf("∑") > -1) { String[] split = xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().split("∑"); if (set1.add(split[1])) { Map map = new HashMap<>(); map.put("sr", j); map.put("sc", k); map.put("er", j + 0); map.put("ec", k + 0); maps.put(split[1], map); } else { Map map1 = maps.get(split[1]); if (j == map1.get("sr")) { map1.put("ec", map1.get("ec") + 1); } else if (k == map1.get("sc")) { map1.put("er", map1.get("er") + 1); } } String str = xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getText().split("∑")[0]; xwpfTables.get(i).getRows().get(j).getTableCells().get(k).removeParagraph(0); xwpfTables.get(i).getRows().get(j).getTableCells().get(k).setText(str); xwpfTables.get(i).getRows().get(j).getTableCells().get(k).setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER); xwpfTables.get(i).getRows().get(j).getTableCells().get(k).getParagraphArray(0).setAlignment(org.apache.poi.xwpf.usermodel.ParagraphAlignment.CENTER); } } } // 单元格排序, 避免格式错乱 List>> entries = new ArrayList<>(maps.entrySet()); entries.sort((o1, o2) -> o1.getValue().get("sc") - o2.getValue().get("sc")); // 按照顺序添加进集合 List list = new ArrayList<>(); for (Map.Entry> entry : entries) { list.add(entry.getKey()); } for (int a = list.size() - 1; a >= 0; a--) { Map v = maps.get(list.get(a)); for (int j = 0; j < v.get("er") - v.get("sr") + 1; j++) { if (v.get("ec") > v.get("sc")) { try { mergeCellsHorizontally(xwpfTables.get(i), v.get("sr") + j, v.get("sc"), v.get("ec")); // TableTools.mergeCellsHorizonal(xwpfTables.get(i), v.get("sr") + j, v.get("sc"), v.get("ec")); } catch (Exception e) { } } } if (v.get("er") > v.get("sr")) { try { mergeCellsVertically(xwpfTables.get(i), v.get("sc"), v.get("sr"), v.get("er")); // TableTools.mergeCellsVertically(xwpfTables.get(i), v.get("sc"), v.get("sr"), v.get("er")); } catch (Exception e) { } } } } FileOutputStream fileOutputStream = new FileOutputStream(path); document.write(fileOutputStream); fileOutputStream.close(); } catch (FileNotFoundException e) { throw new RuntimeException(e); } catch (IOException e) { throw new RuntimeException(e); } //处理中英文换行的问题 try { ZipSecureFile.setMinInflateRatio(0.0001); FileInputStream stream1 = new FileInputStream(path); XWPFDocument document1 = new XWPFDocument(stream1); List xwpfTables1 = document1.getTables(); for (int i = 1; i < xwpfTables1.size() - (deviceList == null ? 1 : 2); i++) { for (int j = 0; j < xwpfTables1.get(i).getRows().size(); j++) { for (int k = 0; k < xwpfTables1.get(i).getRows().get(j).getTableCells().size(); k++) { if (xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).getText().contains("@")) { String text = xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).getText(); String[] split = text.split("@"); xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).removeParagraph(0); XWPFParagraph xwpfParagraph = xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).addParagraph(); XWPFRun run = xwpfParagraph.createRun(); run.setText(split[0]); if (ObjectUtils.isNotNull(split[1])) { run.addBreak(); run.setText(split[1]); } xwpfParagraph.setAlignment(org.apache.poi.xwpf.usermodel.ParagraphAlignment.CENTER); } } } } FileOutputStream fileOutputStream1 = new FileOutputStream(path); document1.write(fileOutputStream1); fileOutputStream1.close(); } catch (FileNotFoundException e) { throw new RuntimeException(e); } catch (IOException e) { throw new RuntimeException(e); } } //电路报告用于总报告的方法(天线) private void getWord1(String term, InsOrderState insOrderState,List> tables2) { AtomicInteger lable = new AtomicInteger(1); AtomicInteger index = new AtomicInteger(); String title = term + "电路参数"; InsSample insSample = insSampleMapper.selectById(insOrderState.getInsSampleId()); //查询项目 List insProducts = insProductMapper.selectList(Wrappers.lambdaQuery() .eq(InsProduct::getState,1) .eq(InsProduct::getInsSampleId, insSample.getId()) .eq(InsProduct::getSonLaboratory, "电路试验")); //获取最大端口数量,角度数量,频段数量 List insProductResult2s = insProductResult2Mapper.selectList(Wrappers.lambdaQuery() .eq(InsProductResult2::getNum, insOrderState.getNum()) .in(InsProductResult2::getInsProductId, insProducts.stream().map(InsProduct::getId).collect(Collectors.toList()))); //按照频段分表(查询所有频段) List frequencys = insProductResult2s.stream().map(InsProductResult2::getFrequency).distinct().collect(Collectors.toList()); frequencys.forEach(s -> { int ports = 0;//端口数 int angles = 0;//角度数 List productResult2s = insProductResult2s.stream().filter(insProductResult2 -> insProductResult2.getFrequency().equals(s)).collect(Collectors.toList()); for (InsProductResult2 insProductResult2 : productResult2s) { 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 = productResult2s.stream().filter(insProductResult2 -> insProductResult2.getFrequency().equals(s)) .filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()).getInspectionItemSubclass().equals("互调") ).filter(insProductResult2 -> ObjectUtils.isNotEmpty(insProductResult2.getOften())).distinct().count(); List 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 += 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 result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) .getInspectionItemSubclass().equals("同极化隔离度") && insProductResult2.getFrequency().equals(s) ).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 result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) .getInspectionItemSubclass().equals("同列隔离度") && insProductResult2.getFrequency().equals(s) ).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 result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) .getInspectionItemSubclass().equals("端口间隔离度") && insProductResult2.getFrequency().equals(s) ).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 result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) .getInspectionItemSubclass().equals("异极化隔离度") && insProductResult2.getFrequency().equals(s) ).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 result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) .getInspectionItemSubclass().equals("幅度偏差")&& insProductResult2.getFrequency().equals(s) ).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 result2s = productResult2s.stream().filter(insProductResult2 -> insProductMapper.selectById(insProductResult2.getInsProductId()) .getInspectionItemSubclass().equals("最大相位偏差")&& insProductResult2.getFrequency().equals(s) ).collect(Collectors.toList()); int length = result2s.get(0).getPort().split(",").length; aa += (angles + 1) * (length % 8 == 0 ? length / 8 : length / 8 + 1); } } List rows = new ArrayList<>(); Set itemSet = new HashSet<>(); int cc = 0; int dd = 0; int ee = 0; int ff = 0; int gg = 0; int hh = 0; int mm = 0; int nn = 0; int pp = 0; //表格的行数 for (int i = 0; i <= aa; i++) { RowRenderData rowRenderData = new RowRenderData(); RowStyle rowStyle = new RowStyle(); rowStyle.setHeight(40); rowRenderData.setRowStyle(rowStyle); List 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 paragraphRenderDataList = new ArrayList<>(); ParagraphRenderData paragraphRenderData = new ParagraphRenderData(); ParagraphStyle paragraphStyle = new ParagraphStyle(); paragraphStyle.setAlign(ParagraphAlignment.CENTER); paragraphRenderData.setParagraphStyle(paragraphStyle); List 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 products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("电压驻波比")).collect(Collectors.toList()); List result2s = productResult2s.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 products = insProducts.stream() .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("同极化隔离度")) .collect(Collectors.toList()); List result2s = productResult2s.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 products = insProducts.stream() .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("同列隔离度")) .collect(Collectors.toList()); List result2s = productResult2s.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) && i <= (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + portRow) { ff = (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + portRow; if (itemSet.add("端口间隔离度")) { index.getAndIncrement(); } List products = insProducts.stream() .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("端口间隔离度")) .collect(Collectors.toList()); List result2s = productResult2s.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 - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 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 - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 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 >(ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)&& i <= (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) + portRow) { gg = (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) + portRow; if (itemSet.add("异极化隔离度")) { index.getAndIncrement(); } List products = insProducts.stream() .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("异极化隔离度")) .collect(Collectors.toList()); List result2s = productResult2s.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 - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) - 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 - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) - 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 > (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) { if (itemSet.add("互调")) { index.getAndIncrement(); } List products = insProducts.stream() .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("互调")) .collect(Collectors.toList()); List result2s = productResult2s.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 - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) - 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 - (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 + ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles - 1)) / (angles + 1) - 1)); } else if (products.get(0).getInsResult() == 0) { textRenderData.setText("不合格∑8" + index + ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles - 1)) / (angles + 1) - 1)); } else { textRenderData.setText("不判定∑8" + index + ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles - 1)) / (angles + 1) - 1)); } } 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((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) / portRow / (angles + 1)).getOften() + "∑6" + i + index); } else { String[] value = result2s.get((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) / portRow / (angles + 2)).getValue().split("\\],\\["); String[] split = value[(i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) - 2) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(","); try { textRenderData.setText(split[((j - 5) + ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) - 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 products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("电压驻波比")).collect(Collectors.toList()); List result2s = productResult2s.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 products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("同极化隔离度")).collect(Collectors.toList()); List result2s = productResult2s.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 products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("同列隔离度")).collect(Collectors.toList()); List result2s = productResult2s.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("端口间隔离度")) { List products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("端口间隔离度")).collect(Collectors.toList()); List result2s = productResult2s.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 > (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) && i <= (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + k) { ff = (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + 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 - (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 + 2))); } else if (products.get(0).getInsResult() == 0) { textRenderData.setText("不合格∑8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / (angles + 2))); } else { textRenderData.setText("不判定∑8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / (angles + 2))); } } 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) { //端口 if (j % 2 == 0) { try { textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 6) / 2 + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / (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 - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / (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 - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / (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 - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / (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 products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("异极化隔离度")).collect(Collectors.toList()); List result2s = productResult2s.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 > (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) && i <= (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) + k) { gg = (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) + 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 - (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 + ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (angles + 2))); } else if (products.get(0).getInsResult() == 0) { textRenderData.setText("不合格∑8" + index + ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (angles + 2))); } else { textRenderData.setText("不判定∑8" + index + ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (angles + 2))); } } 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) { //端口 if (j % 2 == 0) { try { textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 6) / 2 + ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (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 - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (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 - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (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 - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (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 > (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) * portRow * often)) { hh = (int) ((gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles + 1) * portRow * often); if (itemSet.add("互调")) { index.getAndIncrement(); } List products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("互调")).collect(Collectors.toList()); List result2s = productResult2s.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 + ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles - 1)) / (angles + 1) - 1)); } else if (products.get(0).getInsResult() == 0) { textRenderData.setText("不合格∑8" + index + ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles - 1)) / (angles + 1) - 1)); } else { textRenderData.setText("不判定∑8" + index + ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles - 1)) / (angles + 1) - 1)); } } 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((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) / portRow / (angles + 1)).getOften() + "∑6" + i + index); } else { //最差值 String[] value = result2s.get((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) / portRow / (angles + 2)).getValue().split("\\],\\["); String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(","); try { textRenderData.setText(split[((j - 5) + ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) - 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 > (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) + (angles + 1))) { mm = ((hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) + (angles + 1)); if (itemSet.add("最大耦合度")) { index.getAndIncrement(); } List products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("最大耦合度")).collect(Collectors.toList()); List result2s = productResult2s.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 - (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); } 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 - (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh)) % (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 > (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) && i <= ((mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) + (angles + 1))) { nn = (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) + (angles + 1); if (itemSet.add("最小耦合度")) { index.getAndIncrement(); } List products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("最小耦合度")).collect(Collectors.toList()); List result2s = productResult2s.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 - (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); } 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 - (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm)) % (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 products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("幅度偏差")).collect(Collectors.toList()); List result2s = productResult2s.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 > (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) && i <= (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) + k) { pp = (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) + 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 - (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn)) % (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 - (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn)) % (angles + 1) == 1) { textRenderData.setText("/"); } else { //结论 if (products.get(0).getInsResult() == 1) { textRenderData.setText("合格∑8" + index + ((i - (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn)) / (angles + 2))); } else if (products.get(0).getInsResult() == 0) { textRenderData.setText("不合格∑8" + index + ((i - (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn)) / (angles + 2))); } else { textRenderData.setText("不判定∑8" + index + ((i - (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn)) / (angles + 2))); } } renderData.add(textRenderData); paragraphRenderData.setContents(renderData); paragraphRenderDataList.add(paragraphRenderData); cellRenderData.setParagraphs(paragraphRenderDataList); cells.add(cellRenderData); } else { //其余列 if ((i - (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn)) % (angles + 1) == 1) { //频段 try { textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) + ((i - (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn)) / (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 - (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn)) / (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 products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("最大相位偏差")).collect(Collectors.toList()); List result2s = productResult2s.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 > (pp == 0 ? (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) : pp)) { 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 - (pp == 0 ? (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) : pp)) % (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 - (pp == 0 ? (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) : pp)) % (angles + 1) == 1) { textRenderData.setText("/"); } else { //结论 if (products.get(0).getInsResult() == 1) { textRenderData.setText("合格∑8" + index + ((i - (pp == 0 ? (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) : pp)) / (angles + 2))); } else if (products.get(0).getInsResult() == 0) { textRenderData.setText("不合格∑8" + index + ((i - (pp == 0 ? (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) : pp)) / (angles + 2))); } else { textRenderData.setText("不判定∑8" + index + ((i - (pp == 0 ? (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) : pp)) / (angles + 2))); } } renderData.add(textRenderData); paragraphRenderData.setContents(renderData); paragraphRenderDataList.add(paragraphRenderData); cellRenderData.setParagraphs(paragraphRenderDataList); cells.add(cellRenderData); } else { //其余列 if ((i - (pp == 0 ? (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) : pp)) % (angles + 1) == 1) { //端口 try { textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) + ((i - (pp == 0 ? (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) : pp)) / (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 - (pp == 0 ? (nn == 0 ? (mm == 0 ? (hh==0?(gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg):hh) : mm) : nn) : pp)) / (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 table2 = new HashMap<>(); table2.put("table2", tableRenderData); table2.put("title", title); tables2.add(table2); lable.getAndIncrement(); }); } //电路报告用于总报告的方法(无源器件) private void getWord2(String term, InsOrderState insOrderState,List> tables2){ } // 水平合并单元格 private static void mergeCellsHorizontally(XWPFTable table, int row, int fromCol, int toCol) { for (int i = fromCol; i <= toCol; i++) { if (i == fromCol) { table.getRow(row).getCell(i).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.RESTART); } else { table.getRow(row).getCell(i).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE); } } } // 垂直合并单元格 private static void mergeCellsVertically(XWPFTable table, int col, int fromRow, int toRow) { for (int i = fromRow; i <= toRow; i++) { if (i == fromRow) { table.getRow(i).getCell(col).getCTTc().addNewTcPr().addNewVMerge().setVal(STMerge.RESTART); } else { table.getRow(i).getCell(col).getCTTc().addNewTcPr().addNewVMerge().setVal(STMerge.CONTINUE); } } } }