zss
2025-04-12 393d6fbb340fd880740564b1624e1c3e60495284
inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java
@@ -1,5 +1,6 @@
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;
@@ -10,23 +11,31 @@
import com.deepoove.poi.config.ConfigureBuilder;
import com.deepoove.poi.data.*;
import com.deepoove.poi.data.style.*;
import com.deepoove.poi.data.style.Style;
import com.deepoove.poi.util.TableTools;
import com.yuanchu.mom.dto.InsReportDto1;
import com.yuanchu.mom.dto.SampleProductDto;
import com.spire.doc.FileFormat;
import com.yuanchu.mom.dto.*;
import com.yuanchu.mom.exception.ErrorException;
import com.yuanchu.mom.mapper.*;
import com.yuanchu.mom.pojo.*;
import com.yuanchu.mom.vo.InsProductResult2VO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
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.docx4j.XmlUtils;
import org.docx4j.jaxb.Context;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
import org.docx4j.wml.*;
import org.docx4j.wml.STBrType;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.*;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import javax.xml.bind.JAXBElement;
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Paths;
@@ -35,8 +44,11 @@
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@Slf4j
@Component
public class WordUtils {
@@ -64,9 +76,6 @@
    @Resource
    StandardMethodListMapper standardMethodListMapper;
    @Value("${twoCode}")
    private String twoCode;
    @Resource
    private InsProductMapper insProductMapper;
@@ -88,8 +97,11 @@
    @Resource
    InsSampleUserMapper insSampleUserMapper;
    @Resource
    GiveCode giveCode;
    //生成站点电路试验报告
    //生成站点电路试验报告(天线)
    public void generateWord(String term, InsOrderState insOrderState) {
        AtomicInteger lable = new AtomicInteger(1);
        AtomicInteger index = new AtomicInteger();
@@ -97,255 +109,867 @@
        List<Map<String, Object>> tables = new ArrayList<>();
        //查询订单
        InsOrder insOrder = insOrderMapper.selectById(insOrderState.getInsOrderId());
        //查询且过滤出有电路试验的样品
        List<InsSample> insSamples = insSampleMapper.selectSample(insOrderState.getInsOrderId());
        insSamples.forEach(insSample -> {
            //查询项目
            List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                    .eq(InsProduct::getInsSampleId, insSample.getId())
                    .eq(InsProduct::getSonLaboratory, "电路试验"));
            //获取最大端口数量,角度数量,频段数量
            List<InsProductResult2> insProductResult2s = insProductResult2Mapper.selectList(Wrappers.<InsProductResult2>lambdaQuery()
                    .eq(InsProductResult2::getNum, insOrderState.getNum())
                    .in(InsProductResult2::getInsProductId, insProducts.stream().map(InsProduct::getId).collect(Collectors.toList())));
            //按照频段分表(查询所有频段)
            List<String> frequencys = insProductResult2s.stream().map(InsProductResult2::getFrequency).distinct().collect(Collectors.toList());
            frequencys.forEach(s -> {
                int ports = 0;//端口数
                int angles = 0;//角度数
                for (InsProductResult2 insProductResult2 : insProductResult2s) {
                    if (insProductMapper.selectById(insProductResult2.getInsProductId()).getInspectionItemSubclass().equals("电压驻波比") && insProductResult2.getPort().split(",").length > ports) {
                        ports = insProductResult2.getPort().split(",").length;
                    }
                    if (insProductResult2.getAngle().split(",").length > angles) {
                        angles = insProductResult2.getAngle().split(",").length;
                    }
        //查询样品
        InsSample insSample = insSampleMapper.selectById(insOrderState.getInsSampleId());
        //查询项目
        List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                .eq(InsProduct::getState, 1)
                .eq(InsProduct::getInsSampleId, insSample.getId())
                .eq(InsProduct::getSonLaboratory, "电路试验"));
        //获取最大端口数量,角度数量,频段数量
        List<InsProductResult2> insProductResult2s = insProductResult2Mapper.selectList(Wrappers.<InsProductResult2>lambdaQuery()
                .eq(InsProductResult2::getNum, insOrderState.getNum())
                .in(InsProductResult2::getInsProductId, insProducts.stream().map(InsProduct::getId).collect(Collectors.toList())));
        //按照频段分表(查询所有频段)
        List<String> frequencys = insProductResult2s.stream().map(InsProductResult2::getFrequency).distinct().collect(Collectors.toList());
        frequencys.forEach(s -> {
            int ports = 0;//端口数
            int angles = 0;//角度数
            List<InsProductResult2> 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;
                }
                //频点数
                long often = insProductResult2s.stream().filter(insProductResult2 -> insProductResult2.getFrequency().equals(s))
                        .filter(insProductResult2 ->
                                insProductMapper.selectById(insProductResult2.getInsProductId()).getInspectionItemSubclass().equals("互调")
                        ).filter(insProductResult2 -> ObjectUtils.isNotEmpty(insProductResult2.getOften())).distinct().count();
                List<String> inspectionItemSubclass = insProducts.stream().map(InsProduct::getInspectionItemSubclass).collect(Collectors.toList());
                //行数
                int aa = 0;
                int portRow = ports % 8 == 0 ? ports / 8 : ports / 8 + 1;
                //先判断是1简单版还是0复杂版
                if (insOrderState.getVersion() == 1) {
                    if (inspectionItemSubclass.contains("电压驻波比")) {
                        aa += 2 * portRow;
                    }
                    if (inspectionItemSubclass.contains("同极化隔离度")) {
                        aa += 1 * portRow;
                    }
                    if (inspectionItemSubclass.contains("异极化隔离度")) {
                        aa += 1 * portRow;
                    }
                    if (inspectionItemSubclass.contains("互调")) {
                        aa += (angles + 1) * portRow * often;
                    }
                } else {
                    if (inspectionItemSubclass.contains("电压驻波比")) {
                        aa += (angles + 1) * portRow;
                    }
                    if (inspectionItemSubclass.contains("同极化隔离度")) {
                        List<InsProductResult2> result2s = insProductResult2s.stream().filter(insProductResult2 ->
                                insProductMapper.selectById(insProductResult2.getInsProductId())
                                        .getInspectionItemSubclass().equals("同极化隔离度")
                        ).collect(Collectors.toList());
                        int length = result2s.get(0).getPort().split(",").length;
                        aa += (angles + 1) * (length % (ports > 8 ? 4 : (ports + 1) / 2) == 0 ? length / (ports > 8 ? 4 : (ports + 1) / 2) : length / (ports > 8 ? 4 : (ports + 1) / 2) + 1);
                    }
                    if (inspectionItemSubclass.contains("异极化隔离度")) {
                        List<InsProductResult2> result2s = insProductResult2s.stream().filter(insProductResult2 ->
                                insProductMapper.selectById(insProductResult2.getInsProductId())
                                        .getInspectionItemSubclass().equals("异极化隔离度")
                        ).collect(Collectors.toList());
                        int length = result2s.get(0).getPort().split(",").length;
                        aa += (angles + 1) * (length % (ports > 8 ? 4 : (ports + 1) / 2) == 0 ? length / (ports > 8 ? 4 : (ports + 1) / 2) : length / (ports > 8 ? 4 : (ports + 1) / 2) + 1);
                    }
                    if (inspectionItemSubclass.contains("互调")) {
                        aa += (angles + 1) * portRow * often;
                    }
                    if (inspectionItemSubclass.contains("最大耦合度")) {
                        aa += (angles + 1);
                    }
                    if (inspectionItemSubclass.contains("最小耦合度")) {
                        aa += (angles + 1);
                    }
                    if (inspectionItemSubclass.contains("幅度偏差")) {
                        List<InsProductResult2> result2s = insProductResult2s.stream().filter(insProductResult2 ->
                                insProductMapper.selectById(insProductResult2.getInsProductId())
                                        .getInspectionItemSubclass().equals("幅度偏差")
                        ).collect(Collectors.toList());
                        int length = result2s.get(0).getPort().split(",").length;
                        aa += (angles + 1) * (length % 8 == 0 ? length / 8 : length / 8 + 1);
                    }
                    if (inspectionItemSubclass.contains("最大相位偏差")) {
                        List<InsProductResult2> result2s = insProductResult2s.stream().filter(insProductResult2 ->
                                insProductMapper.selectById(insProductResult2.getInsProductId())
                                        .getInspectionItemSubclass().equals("最大相位偏差")
                        ).collect(Collectors.toList());
                        int length = result2s.get(0).getPort().split(",").length;
                        aa += (angles + 1) * (length % 8 == 0 ? length / 8 : length / 8 + 1);
                    }
                if (insProductResult2.getAngle().split(",").length > angles) {
                    angles = insProductResult2.getAngle().split(",").length;
                }
                List<RowRenderData> rows = new ArrayList<>();
                Set<String> itemSet = new HashSet<>();
                int cc = 0;
                int dd = 0;
                int ee = 0;
                int ff = 0;
                int gg = 0;
                int hh = 0;
                int mm = 0;
                //表格的行数
                for (int i = 0; i <= aa; i++) {
                    RowRenderData rowRenderData = new RowRenderData();
                    RowStyle rowStyle = new RowStyle();
                    rowStyle.setHeight(40);
                    rowRenderData.setRowStyle(rowStyle);
                    List<CellRenderData> cells = new ArrayList<>();
                    //表格的列数
                    int bb = ports > 8 ? 14 : ports + 6;
                    for (int j = 0; j < bb; j++) {
                        CellRenderData cellRenderData = new CellRenderData();
                        CellStyle cellStyle = new CellStyle();
                        cellStyle.setVertAlign(XWPFTableCell.XWPFVertAlign.CENTER);
                        cellRenderData.setCellStyle(cellStyle);
                        List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>();
                        ParagraphRenderData paragraphRenderData = new ParagraphRenderData();
                        ParagraphStyle paragraphStyle = new ParagraphStyle();
                        paragraphStyle.setAlign(ParagraphAlignment.CENTER);
                        paragraphRenderData.setParagraphStyle(paragraphStyle);
                        List<RenderData> renderData = new ArrayList<>();
                        TextRenderData textRenderData = new TextRenderData();
                        Style style = new Style();
                        style.setFontFamily("宋体");
                        style.setColor("000000");
                        textRenderData.setStyle(style);
                        if (i == 0) {
                            //第一行
                            textRenderData.setText("频段:" + s + "∑0" + lable);
                            renderData.add(textRenderData);
                            paragraphRenderData.setContents(renderData);
                            paragraphRenderDataList.add(paragraphRenderData);
                            cellRenderData.setParagraphs(paragraphRenderDataList);
                            cells.add(cellRenderData);
                        } else {
                            if (insOrderState.getVersion() == 1) {
                                //非电调版本(简单版)
                                if (inspectionItemSubclass.contains("电压驻波比") && i <= 2 * portRow) {
                                    cc = 2 * portRow;
                                    if (itemSet.add("电压驻波比")) {
                                        index.getAndIncrement();
                                    }
                                    List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("电压驻波比")).collect(Collectors.toList());
                                    List<InsProductResult2> result2s = insProductResult2s.stream()
                                            .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
                                            .collect(Collectors.toList());
                                    //电压驻波比所在行
                                    if (j == 0) {
                                        //第一列
                                        textRenderData.setText(index + "∑1" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 1) {
                                        //第二列
                                        textRenderData.setText("电压驻波比∑2" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 2) {
                                        //第三列
                                        textRenderData.setText(products.get(0).getUnit() + "∑3" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 3) {
                                        //第四列
                                        textRenderData.setText(products.get(0).getAsk() + "∑4" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 4) {
                                        //第五列
                                        if (i % 2 == 0) {
                                            //最差值
                                            textRenderData.setText("最差值");
                                        } else {
                                            //端口
                                            textRenderData.setText("端口");
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == bb - 1) {
                                        //最后一列
                                        if (i % 2 == 0) {
                                            //结论
                                            if (products.get(0).getInsResult() == 1) {
                                                textRenderData.setText("合格");
                                            } else if (products.get(0).getInsResult() == 0) {
                                                textRenderData.setText("不合格");
                                            } else {
                                                textRenderData.setText("不判定");
                                            }
                                        } else {
                                            textRenderData.setText("/");
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else {
                                        //其余列
                                        if (i % 2 == 0) {
                                            //最差值
                                            String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", "");
                                            try {
                                                textRenderData.setText(value.split(",")[(j - 5) + (i - 1) / 2 * (Math.min(ports, 8))]);
                                            } catch (Exception e) {
                                                textRenderData.setText("");
                                            }
                                        } else {
                                            //端口
                                            try {
                                                textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) + (i / 2) * (Math.min(ports, 8))]);
                                            } catch (Exception e) {
                                                textRenderData.setText("");
                                            }
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
            }
            //频点数
            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<String> inspectionItemSubclass = insProducts.stream().map(InsProduct::getInspectionItemSubclass).collect(Collectors.toList());
            //行数
            int aa = 0;
            int portRow = ports % 8 == 0 ? ports / 8 : ports / 8 + 1;
            //先判断是1简单版还是0复杂版
            if (insOrderState.getVersion() == 1) {
                if (inspectionItemSubclass.contains("电压驻波比")) {
                    aa += 2 * portRow;
                }
                if (inspectionItemSubclass.contains("同极化隔离度")) {
                    aa += 1 * portRow;
                }
                if (inspectionItemSubclass.contains("同列隔离度")) {
                    aa += 1 * portRow;
                }
                if (inspectionItemSubclass.contains("端口间隔离度")) {
                    aa += 1 * portRow;
                }
                if (inspectionItemSubclass.contains("异极化隔离度")) {
                    aa += 1 * portRow;
                }
                if (inspectionItemSubclass.contains("互调")) {
                    aa += (angles + 1) * portRow * often;
                }
            }
            else {
                if (inspectionItemSubclass.contains("电压驻波比")) {
                    aa += (angles + 1) * portRow;
                }
                if (inspectionItemSubclass.contains("同极化隔离度")) {
                    List<InsProductResult2> result2s = 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<InsProductResult2> 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<InsProductResult2> 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<InsProductResult2> 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<InsProductResult2> 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<InsProductResult2> 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<InsProductResult2> 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<InsProductResult2> 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<RowRenderData> rows = new ArrayList<>();
            Set<String> itemSet = new HashSet<>();
            int cc = 0;
            int dd = 0;
            int ee = 0;
            int ff = 0;
            int gg = 0;
            int hh = 0;
            int mm = 0;
            int nn = 0;
            int pp = 0;
            int qq = 0;
            int ss = 0;
            //表格的行数
            for (int i = 0; i <= aa; i++) {
                RowRenderData rowRenderData = new RowRenderData();
                RowStyle rowStyle = new RowStyle();
                rowStyle.setHeight(40);
                rowRenderData.setRowStyle(rowStyle);
                List<CellRenderData> cells = new ArrayList<>();
                //表格的列数
                int bb = ports > 8 ? 14 : ports + 6;
                for (int j = 0; j < bb; j++) {
                    CellRenderData cellRenderData = new CellRenderData();
                    CellStyle cellStyle = new CellStyle();
                    cellStyle.setVertAlign(XWPFTableCell.XWPFVertAlign.CENTER);
                    cellRenderData.setCellStyle(cellStyle);
                    List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>();
                    ParagraphRenderData paragraphRenderData = new ParagraphRenderData();
                    ParagraphStyle paragraphStyle = new ParagraphStyle();
                    paragraphStyle.setAlign(ParagraphAlignment.CENTER);
                    paragraphRenderData.setParagraphStyle(paragraphStyle);
                    List<RenderData> renderData = new ArrayList<>();
                    TextRenderData textRenderData = new TextRenderData();
                    Style style = new Style();
                    style.setFontFamily("宋体");
                    style.setColor("000000");
                    textRenderData.setStyle(style);
                    if (i == 1) {
                        //第一行
                        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();
                                }
                                if (inspectionItemSubclass.contains("同极化隔离度") && i > cc && i <= cc + portRow) {
                                    dd = cc + portRow;
                                List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("电压驻波比")).collect(Collectors.toList());
                                List<InsProductResult2> 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<InsProduct> products = insProducts.stream()
                                        .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("同极化隔离度"))
                                        .collect(Collectors.toList());
                                List<InsProductResult2> 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<InsProduct> products = insProducts.stream()
                                        .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("同列隔离度"))
                                        .collect(Collectors.toList());
                                List<InsProductResult2> 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<InsProduct> products = insProducts.stream()
                                        .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("端口间隔离度"))
                                        .collect(Collectors.toList());
                                List<InsProductResult2> 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<InsProduct> products = insProducts.stream()
                                        .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("异极化隔离度"))
                                        .collect(Collectors.toList());
                                List<InsProductResult2> 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<InsProduct> products = insProducts.stream()
                                        .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("互调"))
                                        .collect(Collectors.toList());
                                List<InsProductResult2> 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<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("电压驻波比")).collect(Collectors.toList());
                                List<InsProductResult2> 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<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("同极化隔离度")).collect(Collectors.toList());
                                List<InsProductResult2> 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();
                                    }
                                    List<InsProduct> products = insProducts.stream()
                                            .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("同极化隔离度"))
                                            .collect(Collectors.toList());
                                    List<InsProductResult2> result2s = insProductResult2s.stream()
                                            .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
                                            .collect(Collectors.toList());
                                    //同极化隔离度所在行
                                    if (j == 0) {
                                        //第一列
@@ -381,7 +1005,13 @@
                                        cells.add(cellRenderData);
                                    } else if (j == 4) {
                                        //第五列
                                        textRenderData.setText("最差值");
                                        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);
@@ -389,24 +1019,17 @@
                                        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("不合格");
                                        if ((i - cc) % (angles + 1) == 1) {
                                            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("");
                                            //结论
                                            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);
@@ -414,11 +1037,40 @@
                                        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("");
                                        //其余列
                                        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);
@@ -427,17 +1079,266 @@
                                        cells.add(cellRenderData);
                                    }
                                }
                                if (inspectionItemSubclass.contains("异极化隔离度") && i > (dd == 0 ? cc : dd) && i <= (dd == 0 ? cc : dd) + portRow) {
                                    ee = (dd == 0 ? cc : dd) + portRow;
                            }
                            if (inspectionItemSubclass.contains("同列隔离度")) {
                                List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("同列隔离度")).collect(Collectors.toList());
                                List<InsProductResult2> 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<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("端口间隔离度")).collect(Collectors.toList());
                                List<InsProductResult2> 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<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("异极化隔离度")).collect(Collectors.toList());
                                List<InsProductResult2> 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();
                                    }
                                    List<InsProduct> products = insProducts.stream()
                                            .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("异极化隔离度"))
                                            .collect(Collectors.toList());
                                    List<InsProductResult2> result2s = insProductResult2s.stream()
                                            .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
                                            .collect(Collectors.toList());
                                    //异极化隔离度所在行
                                    if (j == 0) {
                                        //第一列
@@ -473,191 +1374,7 @@
                                        cells.add(cellRenderData);
                                    } else if (j == 4) {
                                        //第五列
                                        textRenderData.setText("最差值");
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == bb - 1) {
                                        //最后一列
                                        if (products.get(0).getInsResult() == 1) {
                                            textRenderData.setText("合格");
                                        } else if (products.get(0).getInsResult() == 0) {
                                            textRenderData.setText("不合格");
                                        } else {
                                            textRenderData.setText("不判定");
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j % 2 == 0) {
                                        String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", "");
                                        try {
                                            textRenderData.setText(value.split(",")[(j - 6) / 2 + (i - (dd == 0 ? cc : dd) - 1) * 4] + "∑5" + i + (j - 6));
                                        } catch (Exception e) {
                                            textRenderData.setText("");
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else {
                                        String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", "");
                                        try {
                                            textRenderData.setText(value.split(",")[(j - 5) / 2 + (i - (dd == 0 ? cc : dd) - 1) * 4] + "∑5" + i + (j - 5));
                                        } catch (Exception e) {
                                            textRenderData.setText("");
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                }
                                if (inspectionItemSubclass.contains("互调") && i > (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) {
                                    if (itemSet.add("互调")) {
                                        index.getAndIncrement();
                                    }
                                    List<InsProduct> products = insProducts.stream()
                                            .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("互调"))
                                            .collect(Collectors.toList());
                                    List<InsProductResult2> result2s = insProductResult2s.stream()
                                            .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
                                            .collect(Collectors.toList());
                                    //互调所在行
                                    if (j == 0) {
                                        //第一列
                                        textRenderData.setText(index + "∑1" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 1) {
                                        //第二列
                                        textRenderData.setText("互调∑2" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 2) {
                                        //第三列
                                        textRenderData.setText(products.get(0).getUnit() + "∑3" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 3) {
                                        //第四列
                                        textRenderData.setText(products.get(0).getAsk() + "∑4" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 4) {
                                        //第五列
                                        if ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) % (angles + 1) == 1) {
                                            textRenderData.setText("角度");
                                        } else {
                                            textRenderData.setText(result2s.get(0).getAngle().split(",")[(i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 2) % (angles + 1)]);
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == bb - 1) {
                                        //最后一列
                                        if ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) % (angles + 1) == 1) {
                                            textRenderData.setText("/");
                                        } else {
                                            if (products.get(0).getInsResult() == 1) {
                                                textRenderData.setText("合格∑8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles - 1)) / (angles + 1) - 1));
                                            } else if (products.get(0).getInsResult() == 0) {
                                                textRenderData.setText("不合格∑8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles - 1)) / (angles + 1) - 1));
                                            } else {
                                                textRenderData.setText("不判定∑8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles - 1)) / (angles + 1) - 1));
                                            }
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else {
                                        if ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) % (angles + 1) == 1) {
                                            textRenderData.setText(result2s.get((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / portRow / (angles + 1)).getOften() + "∑6" + i + index);
                                        } else {
                                            String[] value = result2s.get((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / portRow / (angles + 2)).getValue().split("\\],\\[");
                                            String[] split = value[(i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 2) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
                                            try {
                                                textRenderData.setText(split[((j - 5) + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 1) / (angles + 1) % portRow) * (Math.min(ports, 8)))]);
                                            } catch (Exception e) {
                                                textRenderData.setText("");
                                            }
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                }
                            } else {
                                //电调版本(复杂版)
                                if (inspectionItemSubclass.contains("电压驻波比") && i <= (angles + 1) * portRow) {
                                    cc = (angles + 1) * portRow;
                                    if (itemSet.add("电压驻波比")) {
                                        index.getAndIncrement();
                                    }
                                    List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("电压驻波比")).collect(Collectors.toList());
                                    List<InsProductResult2> result2s = insProductResult2s.stream()
                                            .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
                                            .collect(Collectors.toList());
                                    //电压驻波比所在行
                                    if (j == 0) {
                                        //第一列
                                        textRenderData.setText(index + "∑1" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 1) {
                                        //第二列
                                        textRenderData.setText("电压驻波比∑2" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 2) {
                                        //第三列
                                        textRenderData.setText(products.get(0).getUnit() + "∑3" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 3) {
                                        //第四列
                                        textRenderData.setText(products.get(0).getAsk() + "∑4" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 4) {
                                        //第五列
                                        if (i % (angles + 1) == 1) {
                                        if ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) % (angles + 1) == 1) {
                                            //端口
                                            textRenderData.setText("端口");
                                        } else {
@@ -671,16 +1388,16 @@
                                        cells.add(cellRenderData);
                                    } else if (j == bb - 1) {
                                        //最后一列
                                        if (i % (angles + 1) == 1) {
                                            textRenderData.setText("/");
                                        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 + (angles - 1)) / (angles + 1) - 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 + (angles - 1)) / (angles + 1) - 1));
                                                textRenderData.setText("不合格∑8" + index + ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (angles + 2)));
                                            } else {
                                                textRenderData.setText("不判定∑8" + index + ((i + (angles - 1)) / (angles + 1) - 1));
                                                textRenderData.setText("不判定∑8" + index + ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (angles + 2)));
                                            }
                                        }
                                        renderData.add(textRenderData);
@@ -690,10 +1407,629 @@
                                        cells.add(cellRenderData);
                                    } else {
                                        //其余列
                                        if (i % (angles + 1) == 1) {
                                        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<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("互调")).collect(Collectors.toList());
                                List<InsProductResult2> 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<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("最大耦合度")).collect(Collectors.toList());
                                List<InsProductResult2> 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<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("最小耦合度")).collect(Collectors.toList());
                                List<InsProductResult2> 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<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("幅度偏差")).collect(Collectors.toList());
                                List<InsProductResult2> 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<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("幅度不平衡度")).collect(Collectors.toList());
                                List<InsProductResult2> 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)
                                        && 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) + k) {
                                    qq = (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) + 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 - (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);
                                    }
                                }
                            }
                            if (inspectionItemSubclass.contains("最大相位偏差")) {
                                List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("最大相位偏差")).collect(Collectors.toList());
                                List<InsProductResult2> 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;
                                int rr = qq == 0 ? (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) : qq;
                                if (i > rr && i <= rr + k) {
                                    ss = (rr + 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 - rr) % (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 - rr) % (angles + 1) == 1) {
                                            textRenderData.setText("判定");
                                        } else {
                                            //结论
                                            if (products.get(0).getInsResult() == 1) {
                                                textRenderData.setText("合格∑8" + index + ((i - rr) / (angles + 2)));
                                            } else if (products.get(0).getInsResult() == 0) {
                                                textRenderData.setText("不合格∑8" + index + ((i - rr) / (angles + 2)));
                                            } else {
                                                textRenderData.setText("不判定∑8" + index + ((i - rr) / (angles + 2)));
                                            }
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else {
                                        //其余列
                                        if ((i - rr) % (angles + 1) == 1) {
                                            //端口
                                            try {
                                                textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) + (i / (angles + 1)) * (Math.min(ports, 8))]);
                                                textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) + ((i - rr) / (angles + 2)) * Math.min(length, 8)]);
                                            } catch (Exception e) {
                                                textRenderData.setText("");
                                            }
@@ -702,7 +2038,7 @@
                                            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))]);
                                                textRenderData.setText(split[(j - 5) + ((i - rr) / (angles + 2)) * Math.min(length, 8)]);
                                            } catch (Exception e) {
                                                textRenderData.setText("");
                                            }
@@ -714,261 +2050,21 @@
                                        cells.add(cellRenderData);
                                    }
                                }
                                if (inspectionItemSubclass.contains("同极化隔离度")) {
                                    List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("同极化隔离度")).collect(Collectors.toList());
                                    List<InsProductResult2> result2s = insProductResult2s.stream()
                                            .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
                                            .collect(Collectors.toList());
                                    int length = result2s.get(0).getPort().split(",").length;
                                    int portRow2 = (length % (ports > 8 ? 4 : (ports + 1) / 2) == 0 ? length / (ports > 8 ? 4 : (ports + 1) / 2) : length / (ports > 8 ? 4 : (ports + 1) / 2) + 1);
                                    int k = (angles + 1) * portRow2;
                                    if (i > cc && i <= cc + k) {
                                        dd = cc + k;
                                        if (itemSet.add("同极化隔离度")) {
                                            index.getAndIncrement();
                                        }
                                        //同极化隔离度所在行
                                        if (j == 0) {
                                            //第一列
                                            textRenderData.setText(index + "∑1" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 1) {
                                            //第二列
                                            textRenderData.setText("同极化隔离度∑2" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 2) {
                                            //第三列
                                            textRenderData.setText(products.get(0).getUnit() + "∑3" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 3) {
                                            //第四列
                                            textRenderData.setText(products.get(0).getAsk() + "∑4" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 4) {
                                            //第五列
                                            if ((i - cc) % (angles + 1) == 1) {
                                                //端口
                                                textRenderData.setText("端口");
                                            } else {
                                                //角度
                                                textRenderData.setText(result2s.get(0).getAngle().split(",")[(i + (angles - 1)) % (angles + 1)]);
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == bb - 1) {
                                            //最后一列
                                            if ((i - cc) % (angles + 1) == 1) {
                                                textRenderData.setText("/");
                                            } else {
                                                //结论
                                                if (products.get(0).getInsResult() == 1) {
                                                    textRenderData.setText("合格∑8" + index + ((i - cc) / (angles + 2)));
                                                } else if (products.get(0).getInsResult() == 0) {
                                                    textRenderData.setText("不合格∑8" + index + ((i - cc) / (angles + 2)));
                                                } else {
                                                    textRenderData.setText("不判定∑8" + index + ((i - cc) / (angles + 2)));
                                                }
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else {
                                            //其余列
                                            if ((i - cc) % (angles + 1) == 1) {
                                                //端口
                                                if (j % 2 == 0) {
                                                    try {
                                                        textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 6) / 2 + ((i - cc) / (angles + 1)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "∑5" + i + (j - 6));
                                                    } catch (Exception e) {
                                                        textRenderData.setText("");
                                                    }
                                                } else {
                                                    try {
                                                        textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) / 2 + ((i - cc) / (angles + 1)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "∑5" + i + (j - 5));
                                                    } catch (Exception e) {
                                                        textRenderData.setText("");
                                                    }
                                                }
                                            } else {
                                                //最差值
                                                String[] value = result2s.get(0).getValue().split("\\],\\[");
                                                String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
                                                if (j % 2 == 0) {
                                                    try {
                                                        textRenderData.setText(split[(j - 6) / 2 + ((i - cc) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "∑5" + i + (j - 6));
                                                    } catch (Exception e) {
                                                        textRenderData.setText("");
                                                    }
                                                } else {
                                                    try {
                                                        textRenderData.setText(split[(j - 5) / 2 + ((i - cc) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "∑5" + i + (j - 5));
                                                    } catch (Exception e) {
                                                        textRenderData.setText("");
                                                    }
                                                }
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        }
                                    }
                                }
                                if (inspectionItemSubclass.contains("异极化隔离度")) {
                                    List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("异极化隔离度")).collect(Collectors.toList());
                                    List<InsProductResult2> result2s = insProductResult2s.stream()
                                            .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
                                            .collect(Collectors.toList());
                                    int length = result2s.get(0).getPort().split(",").length;
                                    int portRow2 = (length % (ports > 8 ? 4 : (ports + 1) / 2) == 0 ? length / (ports > 8 ? 4 : (ports + 1) / 2) : length / (ports > 8 ? 4 : (ports + 1) / 2) + 1);
                                    int k = (angles + 1) * portRow2;
                                    if (i > (dd == 0 ? cc : dd) && i <= (dd == 0 ? cc : dd) + k) {
                                        ee = (dd == 0 ? cc : dd) + k;
                                        if (itemSet.add("异极化隔离度")) {
                                            index.getAndIncrement();
                                        }
                                        //异极化隔离度所在行
                                        if (j == 0) {
                                            //第一列
                                            textRenderData.setText(index + "∑1" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 1) {
                                            //第二列
                                            textRenderData.setText("异极化隔离度∑2" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 2) {
                                            //第三列
                                            textRenderData.setText(products.get(0).getUnit() + "∑3" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 3) {
                                            //第四列
                                            textRenderData.setText(products.get(0).getAsk() + "∑4" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 4) {
                                            //第五列
                                            if ((i - (dd == 0 ? cc : dd)) % (angles + 1) == 1) {
                                                //端口
                                                textRenderData.setText("端口");
                                            } else {
                                                //角度
                                                textRenderData.setText(result2s.get(0).getAngle().split(",")[(i + (angles - 1)) % (angles + 1)]);
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == bb - 1) {
                                            //最后一列
                                            if ((i - (dd == 0 ? cc : dd)) % (angles + 1) == 1) {
                                                textRenderData.setText("/");
                                            } else {
                                                //结论
                                                if (products.get(0).getInsResult() == 1) {
                                                    textRenderData.setText("合格∑8" + index + ((i - (dd == 0 ? cc : dd)) / (angles + 2)));
                                                } else if (products.get(0).getInsResult() == 0) {
                                                    textRenderData.setText("不合格∑8" + index + ((i - (dd == 0 ? cc : dd)) / (angles + 2)));
                                                } else {
                                                    textRenderData.setText("不判定∑8" + index + ((i - (dd == 0 ? cc : dd)) / (angles + 2)));
                                                }
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else {
                                            //其余列
                                            if ((i - (dd == 0 ? cc : dd)) % (angles + 1) == 1) {
                                                //端口
                                                if (j % 2 == 0) {
                                                    try {
                                                        textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 6) / 2 + ((i - (dd == 0 ? cc : dd)) / (angles + 1)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "∑5" + i + (j - 6));
                                                    } catch (Exception e) {
                                                        textRenderData.setText("");
                                                    }
                                                } else {
                                                    try {
                                                        textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) / 2 + ((i - (dd == 0 ? cc : dd)) / (angles + 1)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "∑5" + i + (j - 5));
                                                    } catch (Exception e) {
                                                        textRenderData.setText("");
                                                    }
                                                }
                                            } else {
                                                //最差值
                                                String[] value = result2s.get(0).getValue().split("\\],\\[");
                                                String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
                                                if (j % 2 == 0) {
                                                    try {
                                                        textRenderData.setText(split[(j - 6) / 2 + ((i - (dd == 0 ? cc : dd)) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "∑5" + i + (j - 6));
                                                    } catch (Exception e) {
                                                        textRenderData.setText("");
                                                    }
                                                } else {
                                                    try {
                                                        textRenderData.setText(split[(j - 5) / 2 + ((i - (dd == 0 ? cc : dd)) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "∑5" + i + (j - 5));
                                                    } catch (Exception e) {
                                                        textRenderData.setText("");
                                                    }
                                                }
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        }
                                    }
                                }
                                if (inspectionItemSubclass.contains("互调") && i > (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) && i <= ((ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles + 1) * portRow * often)) {
                                    ff = (int) ((ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles + 1) * portRow * often);
                                    if (itemSet.add("互调")) {
                            }
                            if (inspectionItemSubclass.contains("相位绝对值")) {
                                List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("相位绝对值")).collect(Collectors.toList());
                                List<InsProductResult2> 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;
                                int rr = ss == 0 ? (qq == 0 ? (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) : qq) : ss;
                                if (i > ss) {
                                    if (itemSet.add("相位绝对值")) {
                                        index.getAndIncrement();
                                    }
                                    List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("互调")).collect(Collectors.toList());
                                    List<InsProductResult2> result2s = insProductResult2s.stream()
                                            .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
                                            .collect(Collectors.toList());
                                    //互调所在行
                                    //最大相位偏差所在行
                                    if (j == 0) {
                                        //第一列
                                        textRenderData.setText(index + "∑1" + index);
@@ -979,7 +2075,7 @@
                                        cells.add(cellRenderData);
                                    } else if (j == 1) {
                                        //第二列
                                        textRenderData.setText("互调∑2" + index);
                                        textRenderData.setText("最大相位偏差∑2" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
@@ -1003,11 +2099,11 @@
                                        cells.add(cellRenderData);
                                    } else if (j == 4) {
                                        //第五列
                                        if ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) % (angles + 1) == 1) {
                                            //角度
                                            textRenderData.setText("角度");
                                        if ((i - ss) % (angles + 1) == 1) {
                                            //频段
                                            textRenderData.setText("频段");
                                        } else {
                                            //值
                                            //角度
                                            textRenderData.setText(result2s.get(0).getAngle().split(",")[(i + (angles - 1)) % (angles + 1)]);
                                        }
                                        renderData.add(textRenderData);
@@ -1017,16 +2113,16 @@
                                        cells.add(cellRenderData);
                                    } else if (j == bb - 1) {
                                        //最后一列
                                        if ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) % (angles + 1) == 1) {
                                            textRenderData.setText("/");
                                        if ((i - ss) % (angles + 1) == 1) {
                                            textRenderData.setText("判定");
                                        } else {
                                            //结论
                                            if (products.get(0).getInsResult() == 1) {
                                                textRenderData.setText("合格∑8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles - 1)) / (angles + 1) - 1));
                                                textRenderData.setText("合格∑8" + index + ((i - ss) / (angles + 2)));
                                            } else if (products.get(0).getInsResult() == 0) {
                                                textRenderData.setText("不合格∑8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles - 1)) / (angles + 1) - 1));
                                                textRenderData.setText("不合格∑8" + index + ((i - ss) / (angles + 2)));
                                            } else {
                                                textRenderData.setText("不判定∑8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles - 1)) / (angles + 1) - 1));
                                                textRenderData.setText("不判定∑8" + index + ((i - ss) / (angles + 2)));
                                            }
                                        }
                                        renderData.add(textRenderData);
@@ -1036,15 +2132,19 @@
                                        cells.add(cellRenderData);
                                    } else {
                                        //其余列
                                        if ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) % (angles + 1) == 1) {
                                            //频点
                                            textRenderData.setText(result2s.get((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / portRow / (angles + 1)).getOften() + "∑6" + i + index);
                                        if ((i - ss) % (angles + 1) == 1) {
                                            //端口
                                            try {
                                                textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) + ((i - ss) / (angles + 2)) * Math.min(length, 8)]);
                                            } catch (Exception e) {
                                                textRenderData.setText("");
                                            }
                                        } else {
                                            //最差值
                                            String[] value = result2s.get((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / portRow / (angles + 2)).getValue().split("\\],\\[");
                                            String[] value = result2s.get(0).getValue().split("\\],\\[");
                                            String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
                                            try {
                                                textRenderData.setText(split[((j - 5) + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 1) / (angles + 1) % portRow) * (Math.min(ports, 8)))]);
                                                textRenderData.setText(split[(j - 5) + ((i - ss) / (angles + 2)) * Math.min(length, 8)]);
                                            } catch (Exception e) {
                                                textRenderData.setText("");
                                            }
@@ -1054,440 +2154,42 @@
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                }
                                if (inspectionItemSubclass.contains("最大耦合度") && i > (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) && i <= ((ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) + (angles + 1))) {
                                    gg = ((ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) + (angles + 1));
                                    if (itemSet.add("最大耦合度")) {
                                        index.getAndIncrement();
                                    }
                                    List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("最大耦合度")).collect(Collectors.toList());
                                    List<InsProductResult2> result2s = insProductResult2s.stream()
                                            .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
                                            .collect(Collectors.toList());
                                    //最大耦合度所在行
                                    if (j == 0) {
                                        //第一列
                                        textRenderData.setText(index + "∑1" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 1) {
                                        //第二列
                                        textRenderData.setText("最大耦合度∑2" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 2) {
                                        //第三列
                                        textRenderData.setText(products.get(0).getUnit() + "∑3" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 3) {
                                        //第四列
                                        textRenderData.setText(products.get(0).getAsk() + "∑4" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 4) {
                                        //第五列
                                        if ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) % (angles + 1) == 1) {
                                            //角度
                                            textRenderData.setText("角度");
                                        } else {
                                            //值
                                            textRenderData.setText(result2s.get(0).getAngle().split(",")[(i + (angles - 1)) % (angles + 1)]);
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == bb - 1) {
                                        //最后一列
                                        if ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) % (angles + 1) == 1) {
                                            textRenderData.setText("/");
                                        } else {
                                            //结论
                                            if (products.get(0).getInsResult() == 1) {
                                                textRenderData.setText("合格∑8" + index);
                                            } else if (products.get(0).getInsResult() == 0) {
                                                textRenderData.setText("不合格∑8" + index);
                                            } else {
                                                textRenderData.setText("不判定∑8" + index);
                                            }
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else {
                                        //其余列
                                        if ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) % (angles + 1) == 1) {
                                            //频点
                                            textRenderData.setText(result2s.get(0).getOften() + "∑6" + index);
                                        } else {
                                            //最差值
                                            String[] value = result2s.get(0).getValue().split("\\],\\[");
                                            String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
                                            textRenderData.setText(split[0] + "∑7" + i);
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                }
                                if (inspectionItemSubclass.contains("最小耦合度") && i > (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) && i <= ((gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles + 1))) {
                                    hh = (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles + 1);
                                    if (itemSet.add("最小耦合度")) {
                                        index.getAndIncrement();
                                    }
                                    List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("最小耦合度")).collect(Collectors.toList());
                                    List<InsProductResult2> result2s = insProductResult2s.stream()
                                            .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
                                            .collect(Collectors.toList());
                                    //最小耦合度所在行
                                    if (j == 0) {
                                        //第一列
                                        textRenderData.setText(index + "∑1" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 1) {
                                        //第二列
                                        textRenderData.setText("最小耦合度∑2" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 2) {
                                        //第三列
                                        textRenderData.setText(products.get(0).getUnit() + "∑3" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 3) {
                                        //第四列
                                        textRenderData.setText(products.get(0).getAsk() + "∑4" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 4) {
                                        //第五列
                                        if ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) % (angles + 1) == 1) {
                                            //角度
                                            textRenderData.setText("角度");
                                        } else {
                                            //值
                                            textRenderData.setText(result2s.get(0).getAngle().split(",")[(i + (angles - 1)) % (angles + 1)]);
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == bb - 1) {
                                        //最后一列
                                        if ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) % (angles + 1) == 1) {
                                            textRenderData.setText("/");
                                        } else {
                                            //结论
                                            if (products.get(0).getInsResult() == 1) {
                                                textRenderData.setText("合格∑8" + index);
                                            } else if (products.get(0).getInsResult() == 0) {
                                                textRenderData.setText("不合格∑8" + index);
                                            } else {
                                                textRenderData.setText("不判定∑8" + index);
                                            }
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else {
                                        //其余列
                                        if ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) % (angles + 1) == 1) {
                                            //频点
                                            textRenderData.setText(result2s.get(0).getOften() + "∑6" + index);
                                        } else {
                                            //最差值
                                            String[] value = result2s.get(0).getValue().split("\\],\\[");
                                            String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
                                            textRenderData.setText(split[0] + "∑7" + i);
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                }
                                if (inspectionItemSubclass.contains("幅度偏差")) {
                                    List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("幅度偏差")).collect(Collectors.toList());
                                    List<InsProductResult2> result2s = insProductResult2s.stream()
                                            .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
                                            .collect(Collectors.toList());
                                    int length = result2s.get(0).getPort().split(",").length;
                                    int portRow2 = (length % 8 == 0 ? length / 8 : length / 8 + 1);
                                    int k = (angles + 1) * portRow2;
                                    if (i > (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) && i <= (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) + k) {
                                        mm = (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) + k;
                                        if (itemSet.add("幅度偏差")) {
                                            index.getAndIncrement();
                                        }
                                        //幅度偏差所在行
                                        if (j == 0) {
                                            //第一列
                                            textRenderData.setText(index + "∑1" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 1) {
                                            //第二列
                                            textRenderData.setText("幅度偏差∑2" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 2) {
                                            //第三列
                                            textRenderData.setText(products.get(0).getUnit() + "∑3" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 3) {
                                            //第四列
                                            textRenderData.setText(products.get(0).getAsk() + "∑4" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 4) {
                                            //第五列
                                            if ((i - (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh)) % (angles + 1) == 1) {
                                                //频段
                                                textRenderData.setText("频段");
                                            } else {
                                                //角度
                                                textRenderData.setText(result2s.get(0).getAngle().split(",")[(i + (angles - 1)) % (angles + 1)]);
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == bb - 1) {
                                            //最后一列
                                            if ((i - (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh)) % (angles + 1) == 1) {
                                                textRenderData.setText("/");
                                            } else {
                                                //结论
                                                if (products.get(0).getInsResult() == 1) {
                                                    textRenderData.setText("合格∑8" + index + ((i - (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh)) / (angles + 2)));
                                                } else if (products.get(0).getInsResult() == 0) {
                                                    textRenderData.setText("不合格∑8" + index + ((i - (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh)) / (angles + 2)));
                                                } else {
                                                    textRenderData.setText("不判定∑8" + index + ((i - (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh)) / (angles + 2)));
                                                }
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else {
                                            //其余列
                                            if ((i - (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh)) % (angles + 1) == 1) {
                                                //频段
                                                try {
                                                    textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) + ((i - (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh)) / (angles + 2)) * Math.min(length, 8)]);
                                                } catch (Exception e) {
                                                    textRenderData.setText("");
                                                }
                                            } else {
                                                //最差值
                                                String[] value = result2s.get(0).getValue().split("\\],\\[");
                                                String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
                                                try {
                                                    textRenderData.setText(split[(j - 5) + ((i - (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh)) / (angles + 2)) * Math.min(length, 8)]);
                                                } catch (Exception e) {
                                                    textRenderData.setText("");
                                                }
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        }
                                    }
                                }
                                if (inspectionItemSubclass.contains("最大相位偏差")) {
                                    List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("最大相位偏差")).collect(Collectors.toList());
                                    List<InsProductResult2> result2s = insProductResult2s.stream()
                                            .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
                                            .collect(Collectors.toList());
                                    int length = result2s.get(0).getPort().split(",").length;
                                    int portRow2 = (length % 8 == 0 ? length / 8 : length / 8 + 1);
                                    int k = (angles + 1) * portRow2;
                                    if (i > (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm)) {
                                        if (itemSet.add("最大相位偏差")) {
                                            index.getAndIncrement();
                                        }
                                        //最大相位偏差所在行
                                        if (j == 0) {
                                            //第一列
                                            textRenderData.setText(index + "∑1" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 1) {
                                            //第二列
                                            textRenderData.setText("最大相位偏差∑2" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 2) {
                                            //第三列
                                            textRenderData.setText(products.get(0).getUnit() + "∑3" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 3) {
                                            //第四列
                                            textRenderData.setText(products.get(0).getAsk() + "∑4" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 4) {
                                            //第五列
                                            if ((i - (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm)) % (angles + 1) == 1) {
                                                //频段
                                                textRenderData.setText("频段");
                                            } else {
                                                //角度
                                                textRenderData.setText(result2s.get(0).getAngle().split(",")[(i + (angles - 1)) % (angles + 1)]);
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == bb - 1) {
                                            //最后一列
                                            if ((i - (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm)) % (angles + 1) == 1) {
                                                textRenderData.setText("/");
                                            } else {
                                                //结论
                                                if (products.get(0).getInsResult() == 1) {
                                                    textRenderData.setText("合格∑8" + index + ((i - (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm)) / (angles + 2)));
                                                } else if (products.get(0).getInsResult() == 0) {
                                                    textRenderData.setText("不合格∑8" + index + ((i - (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm)) / (angles + 2)));
                                                } else {
                                                    textRenderData.setText("不判定∑8" + index + ((i - (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm)) / (angles + 2)));
                                                }
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else {
                                            //其余列
                                            if ((i - (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm)) % (angles + 1) == 1) {
                                                //端口
                                                try {
                                                    textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) + ((i - (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm)) / (angles + 2)) * Math.min(length, 8)]);
                                                } catch (Exception e) {
                                                    textRenderData.setText("");
                                                }
                                            } else {
                                                //最差值
                                                String[] value = result2s.get(0).getValue().split("\\],\\[");
                                                String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
                                                try {
                                                    textRenderData.setText(split[(j - 5) + ((i - (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm)) / (angles + 2)) * Math.min(length, 8)]);
                                                } catch (Exception e) {
                                                    textRenderData.setText("");
                                                }
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    rowRenderData.setCells(cells);
                    if (rowRenderData.getCells().size() != 0) {
                        rows.add(rowRenderData);
                    }
                }
                TableRenderData tableRenderData = new TableRenderData();
                tableRenderData.setRows(rows);
                int countSize = tableRenderData.getRows().get(0).getCells().size();
                for (RowRenderData row : tableRenderData.getRows()) {
                    if (row.getCells().size() != countSize) {
                        throw new ErrorException("每行单元格不相等");
                    }
                rowRenderData.setCells(cells);
                if (rowRenderData.getCells().size() != 0) {
                    rows.add(rowRenderData);
                }
                TableStyle tableStyle = new TableStyle();
                tableStyle.setWidth(XWPFTable.DEFAULT_PERCENTAGE_WIDTH);
                tableStyle.setAlign(TableRowAlign.CENTER);
                BorderStyle borderStyle = new BorderStyle();
                borderStyle.setColor("000000");
                borderStyle.setType(XWPFTable.XWPFBorderType.THICK);
                borderStyle.setSize(4);
                tableStyle.setLeftBorder(borderStyle);
                tableStyle.setTopBorder(borderStyle);
                tableStyle.setRightBorder(borderStyle);
                tableStyle.setBottomBorder(borderStyle);
                tableRenderData.setTableStyle(tableStyle);
                Map<String, Object> table = new HashMap<>();
                table.put("table", tableRenderData);
                tables.add(table);
                lable.getAndIncrement();
            });
            }
            TableRenderData tableRenderData = new TableRenderData();
            tableRenderData.setRows(rows);
            int countSize = tableRenderData.getRows().get(0).getCells().size();
            for (RowRenderData row : tableRenderData.getRows()) {
                if (row.getCells().size() != countSize) {
                    throw new ErrorException("每行单元格不相等");
                }
            }
            TableStyle tableStyle = new TableStyle();
            tableStyle.setWidth(XWPFTable.DEFAULT_PERCENTAGE_WIDTH);
            tableStyle.setAlign(TableRowAlign.CENTER);
            BorderStyle borderStyle = new BorderStyle();
            borderStyle.setColor("000000");
            borderStyle.setType(XWPFTable.XWPFBorderType.THICK);
            borderStyle.setSize(4);
            tableStyle.setLeftBorder(borderStyle);
            tableStyle.setTopBorder(borderStyle);
            tableStyle.setRightBorder(borderStyle);
            tableStyle.setBottomBorder(borderStyle);
            tableRenderData.setTableStyle(tableStyle);
            Map<String, Object> table = new HashMap<>();
            table.put("table", tableRenderData);
            tables.add(table);
            lable.getAndIncrement();
        });
        ZipSecureFile.setMinInflateRatio(0.0001);
        InputStream inputStream = this.getClass().getResourceAsStream("/static/word1.docx");
@@ -1498,14 +2200,15 @@
                    put("title", title);
                    put("tables", tables);
                }});
        String name = insOrder.getEntrustCode().replace("/", "") + "-" + title + ".docx";
        String name = insOrder.getEntrustCode().replace("/", "") + "-" + insSample.getSampleCode() + "-" + title + ".docx";
        String url = UUID.randomUUID() + "_" + name;
        try {
            template.writeAndClose(Files.newOutputStream(Paths.get(wordUrl + "/" + name)));
            template.writeAndClose(Files.newOutputStream(Paths.get(wordUrl + "/" + url)));
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        // 处理合并单元格的问题
        String path = wordUrl + "/" + name;
        String path = wordUrl + "/" + url;
        try {
            ZipSecureFile.setMinInflateRatio(0.0001);
            FileInputStream stream = new FileInputStream(path);
@@ -1581,567 +2284,332 @@
        } 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(name);
        insOrderFile.setFileUrl(url);
        insOrderFile.setSonLaboratory("电路试验");
        insOrderFileMapper.insert(insOrderFile);
    }
    //生成站点电路试验报告(无源器件)
    public void generateWord2(String term, InsOrderState insOrderState) {
        AtomicInteger index = new AtomicInteger();
        String title = term + "电路参数";
        List<Map<String, Object>> tables = new ArrayList<>();
        //查询订单
        InsOrder insOrder = insOrderMapper.selectById(insOrderState.getInsOrderId());
        //查询样品
        InsSample insSample = insSampleMapper.selectById(insOrderState.getInsSampleId());
        //查询项目
        List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                .eq(InsProduct::getState, 1)
                .eq(InsProduct::getInsSampleId, insSample.getId())
                .eq(InsProduct::getSonLaboratory, "电路试验"));
        //计算行数
        List<InsProductResult2VO> result2VOS = new ArrayList<>();
        List<InsProductResult2VO> insProductResult2VOS = insProductResult2Mapper.selectWordHang(insOrderState.getNum(), insProducts.stream().map(InsProduct::getId).collect(Collectors.toList()));
        for (InsProductResult2VO insProductResult2VO : insProductResult2VOS) {
            String[] split = insProductResult2VO.getPort().split(",");
            String value = insProductResult2VO.getValue().replace("[[", "").replace("]]", "");
            if (split.length > 1) {
                for (int i = 0; i < split.length; i++) {
                    InsProductResult2VO insProductResult2VO1 = new InsProductResult2VO();
                    BeanUtils.copyProperties(insProductResult2VO, insProductResult2VO1);
                    //端口
                    insProductResult2VO1.setPort(split[i]);
                    //值
                    try {
                        insProductResult2VO1.setValue(value.split(",")[i].replace("\"", ""));
                    } catch (Exception e) {
                        insProductResult2VO1.setValue("");
                    }
                    result2VOS.add(insProductResult2VO1);
                }
            }
            else {
                insProductResult2VO.setValue(value.replace("\"", ""));
                result2VOS.add(insProductResult2VO);
            }
        }
        List<RowRenderData> rows = new ArrayList<>();
        Set<String> itemSet = new HashSet<>();
        //表格的行数
        for (int i = 0; i < result2VOS.size(); i++) {
            RowRenderData rowRenderData = new RowRenderData();
            RowStyle rowStyle = new RowStyle();
            rowStyle.setHeight(40);
            rowRenderData.setRowStyle(rowStyle);
            List<CellRenderData> cells = new ArrayList<>();
            //表格的列数
            for (int j = 0; j < 8; j++) {
                CellRenderData cellRenderData = new CellRenderData();
                CellStyle cellStyle = new CellStyle();
                cellStyle.setVertAlign(XWPFTableCell.XWPFVertAlign.CENTER);
                cellRenderData.setCellStyle(cellStyle);
                List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>();
                ParagraphRenderData paragraphRenderData = new ParagraphRenderData();
                ParagraphStyle paragraphStyle = new ParagraphStyle();
                paragraphStyle.setAlign(ParagraphAlignment.CENTER);
                paragraphRenderData.setParagraphStyle(paragraphStyle);
                List<RenderData> renderData = new ArrayList<>();
                TextRenderData textRenderData = new TextRenderData();
                Style style = new Style();
                style.setFontFamily("宋体");
                style.setColor("000000");
                textRenderData.setStyle(style);
                if (j == 0) {
                    //第一列(序号)
                    if (itemSet.add(result2VOS.get(i).getInspectionItemSubclass())) {
                        index.getAndIncrement();
                    }
                    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(result2VOS.get(i).getInspectionItemSubclass() + "∑2" + index);
                    renderData.add(textRenderData);
                    paragraphRenderData.setContents(renderData);
                    paragraphRenderDataList.add(paragraphRenderData);
                    cellRenderData.setParagraphs(paragraphRenderDataList);
                    cells.add(cellRenderData);
                } else if (j == 2) {
                    //第三列(单位)
                    textRenderData.setText(result2VOS.get(i).getUnit() + "∑3" + index);
                    renderData.add(textRenderData);
                    paragraphRenderData.setContents(renderData);
                    paragraphRenderDataList.add(paragraphRenderData);
                    cellRenderData.setParagraphs(paragraphRenderDataList);
                    cells.add(cellRenderData);
                } else if (j == 3) {
                    //第四列(标准与要求)
                    textRenderData.setText(result2VOS.get(i).getAsk());
                    renderData.add(textRenderData);
                    paragraphRenderData.setContents(renderData);
                    paragraphRenderDataList.add(paragraphRenderData);
                    cellRenderData.setParagraphs(paragraphRenderDataList);
                    cells.add(cellRenderData);
                } else if (j == 4) {
                    //第五列(端口)
                    try {
                        textRenderData.setText(result2VOS.get(i).getPort());
                    } catch (Exception e) {
                        textRenderData.setText("");
                    }
                    renderData.add(textRenderData);
                    paragraphRenderData.setContents(renderData);
                    paragraphRenderDataList.add(paragraphRenderData);
                    cellRenderData.setParagraphs(paragraphRenderDataList);
                    cells.add(cellRenderData);
                } else if (j == 5) {
                    //第六列(频段)
                    try {
                        textRenderData.setText(result2VOS.get(i).getFrequency());
                    } catch (Exception e) {
                        textRenderData.setText("");
                    }
                    renderData.add(textRenderData);
                    paragraphRenderData.setContents(renderData);
                    paragraphRenderDataList.add(paragraphRenderData);
                    cellRenderData.setParagraphs(paragraphRenderDataList);
                    cells.add(cellRenderData);
                } else if (j == 6) {
                    //第七列(检验值)
                    try {
                        textRenderData.setText(result2VOS.get(i).getValue());
                    } catch (Exception e) {
                        textRenderData.setText("");
                    }
                    renderData.add(textRenderData);
                    paragraphRenderData.setContents(renderData);
                    paragraphRenderDataList.add(paragraphRenderData);
                    cellRenderData.setParagraphs(paragraphRenderDataList);
                    cells.add(cellRenderData);
                } else {
                    //最后一列(结论)
                    try {
                        if (result2VOS.get(i).getResult().equals("1")) {
                            textRenderData.setText("合格");
                        } else if (result2VOS.get(i).getResult().equals("0")) {
                            textRenderData.setText("不合格");
                        } else {
                            textRenderData.setText("不判定");
                        }
                    } catch (Exception e) {
                        textRenderData.setText("");
                    }
                    renderData.add(textRenderData);
                    paragraphRenderData.setContents(renderData);
                    paragraphRenderDataList.add(paragraphRenderData);
                    cellRenderData.setParagraphs(paragraphRenderDataList);
                    cells.add(cellRenderData);
                }
            }
            rowRenderData.setCells(cells);
            if (rowRenderData.getCells().size() != 0) {
                rows.add(rowRenderData);
            }
        }
        TableRenderData tableRenderData = new TableRenderData();
        tableRenderData.setRows(rows);
        int countSize = tableRenderData.getRows().get(0).getCells().size();
        for (RowRenderData row : tableRenderData.getRows()) {
            if (row.getCells().size() != countSize) {
                throw new ErrorException("每行单元格不相等");
            }
        }
        TableStyle tableStyle = new TableStyle();
        tableStyle.setWidth(XWPFTable.DEFAULT_PERCENTAGE_WIDTH);
        tableStyle.setAlign(TableRowAlign.CENTER);
        BorderStyle borderStyle = new BorderStyle();
        borderStyle.setColor("000000");
        borderStyle.setType(XWPFTable.XWPFBorderType.THICK);
        borderStyle.setSize(4);
        tableStyle.setLeftBorder(borderStyle);
        tableStyle.setTopBorder(borderStyle);
        tableStyle.setRightBorder(borderStyle);
        tableStyle.setBottomBorder(borderStyle);
        tableRenderData.setTableStyle(tableStyle);
        Map<String, Object> table = new HashMap<>();
        table.put("table", tableRenderData);
        tables.add(table);
        ZipSecureFile.setMinInflateRatio(0.0001);
        InputStream inputStream = this.getClass().getResourceAsStream("/static/word2.docx");
        ConfigureBuilder builder = Configure.builder();
        builder.useSpringEL(true);
        XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render(
                new HashMap<String, Object>() {{
                    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<XWPFTable> xwpfTables = document.getTables();
            for (int i = 0; i < xwpfTables.size(); i++) {
                Set<String> set1 = new HashSet<>();
                Map<String, Map<String, Integer>> 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<String, Integer> 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<String, Integer> 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<Map.Entry<String, Map<String, Integer>>> entries = new ArrayList<>(maps.entrySet());
                entries.sort((o1, o2) -> o1.getValue().get("sc") - o2.getValue().get("sc"));
                // 按照顺序添加进集合
                List<String> list = new ArrayList<>();
                for (Map.Entry<String, Map<String, Integer>> entry : entries) {
                    list.add(entry.getKey());
                }
                /*List<String> list = new ArrayList<>();
                for (String s : maps.keySet()) {
                    list.add(s);
                }*/
                for (int a = list.size() - 1; a >= 0; a--) {
                    Map<String, Integer> v = maps.get(list.get(a));
                    for (int j = 0; j < v.get("er") - v.get("sr") + 1; j++) {
                        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, List<InsReportDto1> insReportDto1s) {
        LocalDateTime now = LocalDateTime.now();
    public void generateReport(Integer orderId, InsReportDto1 insReportDto1) {
        InsOrder insOrder = insOrderMapper.selectById(orderId);
        //委托部门 departLims
        String departLims = userMapper.selectDepartLims(insOrder.getPrepareUser());
        //samples是过滤掉没有检验项目的样品
        List<SampleProductDto> samples = insSampleMapper.selectSampleProductListByOrderId(orderId);
        String sampleCode = samples.get(0).getSampleCode();
        InsReport insReport = new InsReport();
        insReport.setCode(insOrder.getEntrustCode().replace("WT", "TXJC"));
        insReport.setInsOrderId(orderId);
        Set<String> standardMethod = new HashSet<>();
        Set<String> deviceSet = new HashSet<>();
        Set<String> models = new HashSet<>();
        AtomicReference<Integer> productSize = new AtomicReference<>(0);
        AtomicReference<Integer> productSize1 = new AtomicReference<>(0);
        AtomicReference<Integer> productSize2 = new AtomicReference<>(0);
        AtomicReference<Integer> productSize3 = new AtomicReference<>(0);
        String[] monthNames = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
        samples.forEach(s -> {
            models.add(s.getModel());
            standardMethod.addAll(standardMethodListMapper.selectList(Wrappers.<StandardMethodList>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.<InsProduct>lambdaQuery()
                    .eq(InsProduct::getInsSampleId, s.getId()));
            productSize.set(productSize.get() + Integer.parseInt(productCount + ""));
            //不判定
            Long productCount1 = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery()
                    .eq(InsProduct::getInsSampleId, s.getId())
                    .eq(InsProduct::getInsResult, 3));
            productSize1.set(productSize1.get() + Integer.parseInt(productCount1 + ""));
            //不合格
            Long productCount2 = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery()
                    .eq(InsProduct::getInsSampleId, s.getId())
                    .eq(InsProduct::getInsResult, 0));
            productSize2.set(productSize2.get() + Integer.parseInt(productCount2 + ""));
            //合格
            Long productCount3 = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery()
                    .eq(InsProduct::getInsSampleId, s.getId())
                    .eq(InsProduct::getInsResult, 1));
            productSize3.set(productSize3.get() + Integer.parseInt(productCount3 + ""));
            //将项目按照站点进行分类
            Map<String, List<InsProduct>> listMap = s.getInsProduct().stream().collect(Collectors.groupingBy(InsProduct::getSonLaboratory));
            // 创建一个 Map 将站点和项目ID的映射关系
            Map<String, Set<Integer>> labToDeviceMap = new HashMap<>();
            // 获取所有站点的项目ID 列表
            for (Map.Entry<String, List<InsProduct>> entry : listMap.entrySet()) {
                Set<Integer> productIds = entry.getValue().stream()
                        .map(InsProduct::getId)
                        .collect(Collectors.toSet());
                labToDeviceMap.put(entry.getKey(), productIds);
            }
            for (InsReportDto1 insReportDto1 : insReportDto1s) {
                String laboratory = insReportDto1.getLaboratory();
                if (!labToDeviceMap.containsKey(laboratory)) {
                    continue;
                }
                Set<Integer> productIds = labToDeviceMap.get(laboratory);
                Integer num = insReportDto1.getNum();
                //普通试验结果表
                List<InsProductResult> insProductResults = insProductResultMapper.selectList(
                        Wrappers.<InsProductResult>lambdaQuery()
                                .eq(InsProductResult::getNum, num)
                                .in(InsProductResult::getInsProductId, productIds));
                for (InsProductResult insProductResult : insProductResults) {
                    List<JSONObject> 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<InsProductResult2> insProductResult2s = insProductResult2Mapper.selectList(
                        Wrappers.<InsProductResult2>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<Map<String, String>> tables = new ArrayList<>();
        List<Map<String, Object>> tables2 = new ArrayList<>();
        List<Map<String, Object>> tables3 = new ArrayList<>();
        List<Map<String, Object>> tables4 = new ArrayList<>();
        Integer indexs = 1;
        //判断是否有电路试验,环境试验
        List<String> strings = insReportDto1s.stream().map(InsReportDto1::getLaboratory).distinct().collect(Collectors.toList());
        if (strings.contains("近场") || strings.contains("远场")) {
            Map<String, String> table = new HashMap<>();
            table.put("indexs", indexs + "");
            indexs += 1;
            table.put("term", "辐射方向图参数");
            table.put("result", "不判定");
            tables.add(table);
            /*辐射的试验表*/
            List<InsOrderFile> insOrderFiles = insOrderFileMapper.selectList(Wrappers.<InsOrderFile>lambdaQuery()
                    .eq(InsOrderFile::getInsOrderId, orderId)
                    .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<String, Object> table3 = new HashMap<>();
                            TableRenderData tableData = new TableRenderData();
                            List<RowRenderData> rows = new ArrayList<>();
                            if (element instanceof XWPFTable) {
                                aa += 1;
                                XWPFTable tab = (XWPFTable) element;
                                List<XWPFTableRow> row = tab.getRows();
                                for (int i = 0; i < row.size(); i++) {
                                    RowRenderData rowRenderData = new RowRenderData();
                                    List<CellRenderData> cells = new ArrayList<>();
                                    List<XWPFTableCell> cell = row.get(i).getTableCells();
                                    for (int j = 0; j < cell.size(); j++) {
                                        CellRenderData cellRenderData = new CellRenderData();
                                        List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>();
                                        ParagraphRenderData paragraphRenderData = new ParagraphRenderData();
                                        ParagraphStyle paragraphStyle = new ParagraphStyle();
                                        paragraphStyle.setAlign(ParagraphAlignment.CENTER);
                                        paragraphRenderData.setParagraphStyle(paragraphStyle);
                                        List<RenderData> renderData = new ArrayList<>();
                                        TextRenderData textRenderData = new TextRenderData();
                                        Style style = new Style();
                                        style.setFontFamily("宋体");
                                        style.setColor("000000");
                                        textRenderData.setStyle(style);
                                        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<Integer> productIdes = samples.stream().flatMap(sampleProductDto ->
                    sampleProductDto.getInsProduct().stream().map(InsProduct::getId)).collect(Collectors.toList());
            List<Integer> collect = insProductResult2Mapper.selectList(Wrappers.<InsProductResult2>lambdaQuery()
                    .in(InsProductResult2::getInsProductId, productIdes))
                    .stream().map(InsProductResult2::getResult).distinct().collect(Collectors.toList());
            //如果有环境试验
            if (strings.size() > 0) {
                Map<String, String> 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<String, String> table2 = new HashMap<>();
                table2.put("indexs", "环境试验:" + String.join("、", strings) + "∑1");
                table2.put("term", "环境试验:" + String.join("、", strings) + "∑1");
                table2.put("result", "环境试验:" + String.join("、", strings) + "∑1");
                tables.add(table2);
                Map<String, String> 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<InsProduct> products = samples.stream().flatMap(sampleProductDto -> sampleProductDto.getInsProduct().stream()
                        .filter(insProduct -> !insProduct.getInspectionItem().equals("电路试验"))
                        .filter(insProduct -> !insProduct.getInspectionItem().equals("辐射试验")))
                        .map(insProduct -> {
                            InsProduct product = new InsProduct();
                            product.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());
                            product.setTell(insProduct.getTell());
                            return product;
                        }).distinct().collect(Collectors.toList());
                List<RowRenderData> rows = new ArrayList<>();
                //行数
                for (int i = 0; i < products.size() + 1; i++) {
                    RowRenderData rowRenderData = new RowRenderData();
                    RowStyle rowStyle = new RowStyle();
                    rowStyle.setHeight(40);
                    rowRenderData.setRowStyle(rowStyle);
                    List<CellRenderData> cells = new ArrayList<>();
                    //列数
                    for (int j = 0; j < 2; j++) {
                        CellRenderData cellRenderData = new CellRenderData();
                        CellStyle cellStyle = new CellStyle();
                        cellStyle.setVertAlign(XWPFTableCell.XWPFVertAlign.CENTER);
                        cellRenderData.setCellStyle(cellStyle);
                        List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>();
                        ParagraphRenderData paragraphRenderData = new ParagraphRenderData();
                        ParagraphStyle paragraphStyle = new ParagraphStyle();
                        paragraphStyle.setAlign(ParagraphAlignment.CENTER);
                        paragraphRenderData.setParagraphStyle(paragraphStyle);
                        List<RenderData> renderData = new ArrayList<>();
                        TextRenderData textRenderData = new TextRenderData();
                        Style style = new Style();
                        style.setFontFamily("宋体");
                        style.setColor("000000");
                        textRenderData.setStyle(style);
                        if (i == 0) {
                            //第一行
                            if (j == 0) {
                                //第一列
                                textRenderData.setText("项目");
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else {
                                //第二列
                                textRenderData.setText("试验要求");
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            }
                        } else {
                            //其余行
                            if (j == 0) {
                                //第一列
                                textRenderData.setText(products.get(i - 1).getInspectionItemSubclass());
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else {
                                textRenderData.setText(products.get(i - 1).getTell());
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            }
                        }
                    }
                    rowRenderData.setCells(cells);
                    if (rowRenderData.getCells().size() != 0) {
                        rows.add(rowRenderData);
                    }
                }
                TableRenderData tableRenderData = new TableRenderData();
                tableRenderData.setRows(rows);
                int countSize = tableRenderData.getRows().get(0).getCells().size();
                for (RowRenderData row : tableRenderData.getRows()) {
                    if (row.getCells().size() != countSize) {
                        throw new ErrorException("每行单元格不相等");
                    }
                }
                TableStyle tableStyle = new TableStyle();
                tableStyle.setWidth(XWPFTable.DEFAULT_PERCENTAGE_WIDTH);
                tableStyle.setAlign(TableRowAlign.CENTER);
                BorderStyle borderStyle = new BorderStyle();
                borderStyle.setColor("000000");
                borderStyle.setType(XWPFTable.XWPFBorderType.THICK);
                borderStyle.setSize(4);
                tableStyle.setLeftBorder(borderStyle);
                tableStyle.setTopBorder(borderStyle);
                tableStyle.setRightBorder(borderStyle);
                tableStyle.setBottomBorder(borderStyle);
                tableRenderData.setTableStyle(tableStyle);
                Map<String, Object> table4 = new HashMap<>();
                table4.put("table4", tableRenderData);
                tables4.add(table4);
            } else {
                Map<String, String> 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;
            }
            /*勾选的电路试验表*/
            List<InsSample> insSamples = insSampleMapper.selectSample(orderId);
            for (InsReportDto1 insReportDto1 : insReportDto1s) {
                InsOrderUser insOrderUser = insOrderUserMapper.selectById(insReportDto1.getInsOrderUsersId());
                InsOrderState orderState = insOrderStateMapper.selectById(insOrderUser.getInsOrderStateId());
                if (orderState.getLaboratory().equals("电路试验")) {
                    orderState.setNum(insOrderUser.getNum());
                    getWord1(insOrderUser.getTerm(), orderState, insSamples, tables2);
                }
            }
        } else {
            //如果只有环境试验没有电路试验
            strings.remove("近场");
            strings.remove("远场");
            if (strings.size() > 0) {
                Map<String, String> table2 = new HashMap<>();
                table2.put("indexs", "环境试验:" + String.join("、", strings) + "∑1");
                table2.put("term", "环境试验:" + String.join("、", strings) + "∑1");
                table2.put("result", "环境试验:" + String.join("、", strings) + "∑1");
                tables.add(table2);
                /*创建环境试验条件表2*(项目数+1)*/
                List<InsProduct> products = samples.stream().flatMap(sampleProductDto -> sampleProductDto.getInsProduct().stream()
                        .filter(insProduct -> !insProduct.getInspectionItem().equals("电路试验"))
                        .filter(insProduct -> !insProduct.getInspectionItem().equals("辐射试验")))
                        .map(insProduct -> {
                            InsProduct product = new InsProduct();
                            product.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());
                            product.setTell(insProduct.getTell());
                            return product;
                        }).distinct().collect(Collectors.toList());
                List<RowRenderData> rows = new ArrayList<>();
                //行数
                for (int i = 0; i < products.size() + 1; i++) {
                    RowRenderData rowRenderData = new RowRenderData();
                    RowStyle rowStyle = new RowStyle();
                    rowStyle.setHeight(40);
                    rowRenderData.setRowStyle(rowStyle);
                    List<CellRenderData> cells = new ArrayList<>();
                    //列数
                    for (int j = 0; j < 2; j++) {
                        CellRenderData cellRenderData = new CellRenderData();
                        CellStyle cellStyle = new CellStyle();
                        cellStyle.setVertAlign(XWPFTableCell.XWPFVertAlign.CENTER);
                        cellRenderData.setCellStyle(cellStyle);
                        List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>();
                        ParagraphRenderData paragraphRenderData = new ParagraphRenderData();
                        ParagraphStyle paragraphStyle = new ParagraphStyle();
                        paragraphStyle.setAlign(ParagraphAlignment.CENTER);
                        paragraphRenderData.setParagraphStyle(paragraphStyle);
                        List<RenderData> renderData = new ArrayList<>();
                        TextRenderData textRenderData = new TextRenderData();
                        Style style = new Style();
                        style.setFontFamily("宋体");
                        style.setColor("000000");
                        textRenderData.setStyle(style);
                        if (i == 0) {
                            //第一行
                            if (j == 0) {
                                //第一列
                                textRenderData.setText("项目");
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else {
                                //第二列
                                textRenderData.setText("试验要求");
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            }
                        } else {
                            //其余行
                            if (j == 0) {
                                //第一列
                                textRenderData.setText(products.get(i - 1).getInspectionItemSubclass());
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else {
                                textRenderData.setText(products.get(i - 1).getTell());
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            }
                        }
                    }
                    rowRenderData.setCells(cells);
                    if (rowRenderData.getCells().size() != 0) {
                        rows.add(rowRenderData);
                    }
                }
                TableRenderData tableRenderData = new TableRenderData();
                tableRenderData.setRows(rows);
                int countSize = tableRenderData.getRows().get(0).getCells().size();
                for (RowRenderData row : tableRenderData.getRows()) {
                    if (row.getCells().size() != countSize) {
                        throw new ErrorException("每行单元格不相等");
                    }
                }
                TableStyle tableStyle = new TableStyle();
                tableStyle.setWidth(XWPFTable.DEFAULT_PERCENTAGE_WIDTH);
                tableStyle.setAlign(TableRowAlign.CENTER);
                BorderStyle borderStyle = new BorderStyle();
                borderStyle.setColor("000000");
                borderStyle.setType(XWPFTable.XWPFBorderType.THICK);
                borderStyle.setSize(4);
                tableStyle.setLeftBorder(borderStyle);
                tableStyle.setTopBorder(borderStyle);
                tableStyle.setRightBorder(borderStyle);
                tableStyle.setBottomBorder(borderStyle);
                tableRenderData.setTableStyle(tableStyle);
                Map<String, Object> table4 = new HashMap<>();
                table4.put("table4", tableRenderData);
                tables4.add(table4);
            }
        }
        ZipSecureFile.setMinInflateRatio(0.0001);
        InputStream inputStream = this.getClass().getResourceAsStream("/static/report-template.docx");
        StringBuilder standardMethod2 = new StringBuilder();
        for (String s : standardMethod) {
            standardMethod2.append(";\n").append(s);
        }
        standardMethod2.append(";\n").append("GB/T 9410-2008 《移动通信天线通用技术规范》");
        standardMethod2.replace(0, 1, "");
        List<Map<String, String>> deviceList = null;
        if (deviceSet.size() != 0) {
            deviceList = insOrderMapper.selectDeviceList(deviceSet);
        }
        Map<String, String> codeStr = new HashMap<>();
        codeStr.put("报告编号", insReport.getCode());
        codeStr.put("样品名称", insOrder.getSample());
        codeStr.put("规格型号", samples.get(0).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<Map<String, String>> finalDeviceList = deviceList;
        List<Map<String, String>> sampleList = insSampleMapper.selectSampleList(orderId);
        Integer userId = insSampleUserMapper.selectOne(Wrappers.<InsSampleUser>lambdaQuery()
                .eq(InsSampleUser::getInsSampleId, orderId).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("找不到检验人的签名");
        }
        SampleProductDto insSample = insSampleMapper.selectSampleProductListByOrderId(insReportDto1.getSampleId());
        SampleProductDto s = insSample;
        List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                .eq(InsProduct::getInsSampleId, insSample.getId())
                .eq(InsProduct::getState, 1));
        /*首页*/
        //产品名称
        String sampleName = insSample.getSample();
        //型号规格
        int indexOf = s.getModel().indexOf("-");
        String models = (indexOf!=-1?s.getModel().substring(indexOf + 1):s.getModel());
        //委托单位
        Custom custom = customMapper.selectById(insOrder.getCompanyId());
        //报告发布日期
        LocalDateTime now = LocalDateTime.now();
        //报告编号
        InsReport insReport = new InsReport();
        insReport.setCode(giveCode.giveCode("TXJC-", "ins_report", "-", "yyMMdd"));
        insReport.setInsSampleId(insSample.getId());
        insReport.setInsOrderId(orderId);
        /*获取附件图片类型*/
        List<Map<String, Object>> images = new ArrayList<>();
        List<InsOrderFile> insOrderFiles = insOrderFileMapper.selectList(Wrappers.<InsOrderFile>lambdaQuery().eq(InsOrderFile::getType, 1).eq(InsOrderFile::getInsOrderId, orderId));
        if (CollectionUtils.isNotEmpty(insOrderFiles)) {
            insOrderFiles.forEach(insOrderFile -> {
                Map<String, Object> 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);
            });
        }
        /*检测报告描述*/
        //样品名称,型号规格,时间按照首页的来,order里面的信息有insOrder
        //委托人和电话字段判断
        if (ObjectUtils.isEmpty(insOrder.getPrepareUser())) {
            insOrder.setPrepareUser("/");
@@ -2149,57 +2617,490 @@
        if (ObjectUtils.isEmpty(insOrder.getPhone())) {
            insOrder.setPhone("/");
        }
        //检验项目的环境
        InsProduct insProduct = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getState, 1).eq(InsProduct::getInsSampleId, samples.get(0).getId())).get(0);
        String environment = "";
        environment = (ObjectUtils.isNotEmpty(insProduct.getTemperature()) ? insProduct.getTemperature() + "℃ " : "") + (ObjectUtils.isNotEmpty(insProduct.getHumidity()) ? insProduct.getHumidity() + "%" : "");
        String finalEnvironment = environment;
        List<SampleProductDto> finalSamples = samples;
        String title3 = "";
        if (tables3.size() > 0) {
            title3 = "辐射方向图参数";
        //委托部门
        String departLims = userMapper.selectDepartLims(insOrder.getPrepareUser());
        //样品编号
        String sampleCode = insSample.getSampleCode();
        //检测依据
        Set<String> standardMethod = new HashSet<>();
        standardMethod.addAll(insProducts.stream()
                .map(insProduct -> {
                    String standardMethodName = standardMethodListMapper.getStandardMethodName(insProduct.getMethodS());
                    return insProduct.getMethodS()+" "+standardMethodName;
                }).distinct().collect(Collectors.toList()));
        StringBuilder standardMethod2 = new StringBuilder();
        for (String s1 : standardMethod) {
            standardMethod2.append(";\n").append(s1);
        }
        standardMethod2.replace(0, 1, "");
        //检测结论
        AtomicReference<Integer> productSize = new AtomicReference<>(0);
        AtomicReference<Integer> productSize2 = new AtomicReference<>(0);
        AtomicReference<Integer> productSize3 = new AtomicReference<>(0);
        //总数
        long productCount = insProducts.size();
        //不合格
        long productCount2 = insProducts.stream().filter(insProduct -> insProduct.getInsResult() == 0).count();
        //合格=(不判定+合格)
        long productCount1 = insProducts.stream().filter(insProduct -> insProduct.getInsResult() == 3).count();
        long productCount3 = productCount1 + insProducts.stream().filter(insProduct -> insProduct.getInsResult() == 1).count();
        //判断是否有辐射项目
        List<InsProduct> fusheProducts = insProducts.stream().filter(insProduct -> insProduct.getInspectionItem().equals("辐射试验")).collect(Collectors.toList());
        if (fusheProducts.size() > 0) {
            for (InsProduct fusheProduct : fusheProducts) {
                List<Long> vValues = new ArrayList<>();
                String insValue = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery()
                        .eq(InsProductResult::getInsProductId, fusheProduct.getId())).get(0).getInsValue();
                Pattern pattern = Pattern.compile("\"v\":\"(\\d+)\"");
                Matcher matcher = pattern.matcher(insValue);
                while (matcher.find()) {
                    vValues.add(Long.parseLong(matcher.group(1)));
                }
                if (vValues.size() > 0) {
                    //不合格
                    if (vValues.get(1) != 0) {
                        productCount2 = productCount2 + vValues.get(1);
                    }
                    //合格
                    if (vValues.get(0) != 0) {
                        if (fusheProduct.getInsResult() == 1) {
                            productCount3 = productCount3  + vValues.get(0);
                        }
                    }
                    // 判定是否减掉辐射检验项本身
                    if (fusheProduct.getInsResult() == 1) {
                        productCount3 = productCount3 - 1;
                    }else if(fusheProduct.getInsResult() == 0){
                        productCount2 = productCount2 - 1;
                    }
                    //总数=项目总数-辐射项目数量+辐射具体的(合格+不合格)数量
                    productCount = productCount - 1 + vValues.stream().mapToLong(Long::longValue).sum();
                }
            }
        }
        productSize.set(productSize.get() + Integer.parseInt(productCount + ""));
        productSize2.set(productSize2.get() + Integer.parseInt(productCount2 + ""));
        productSize3.set(productSize3.get() + Integer.parseInt(productCount3 + ""));
        /*检验情况一览表*/
        List<InsProductWordDto> insProductList = new ArrayList<>();
        int index1=1;
        for (InsProduct insPro : insProducts) {
            InsProductWordDto insProductWordDto = new InsProductWordDto();
            insProductWordDto.setIndex(index1+"");//序号
            if (insPro.getInspectionItem().contains("电路试验")){
                insProductWordDto.setTerm("电性能参数-"+insPro.getInspectionItemSubclass());//检验项目
            }else if (insPro.getInspectionItem().contains("辐射试验")){
                insProductWordDto.setTerm("辐射性能参数"+insPro.getInspectionItemSubclass());//检验项目
            }else {
                insProductWordDto.setTerm(insPro.getInspectionItem()+"-"+insPro.getInspectionItemSubclass());//检验项目
            }
            if (ObjectUtils.isNotNull(insPro.getInsResult()) && insPro.getInsResult()==0) {
                insProductWordDto.setResult("不合格");//结论
            } else {
                insProductWordDto.setResult("合格");//结论
            }
            insProductList.add(insProductWordDto);
            index1++;
        }
        /*检测结果*/
        //获取所有检验的站点信息
        List<String> strings = insReportDto1.getInsReportDto2s().stream()
                .map(InsReportDto2::getLaboratory).distinct().collect(Collectors.toList());
        //电路表格
        List<Map<String, Object>> tables2 = new ArrayList<>();
        if (strings.contains("电路试验")) {
            /*勾选的电路试验表*/
            List<InsReportDto2> dto2s = insReportDto1.getInsReportDto2s().stream().filter(insReportDto2 -> insReportDto2.getLaboratory().equals("电路试验")).collect(Collectors.toList());
            for (InsReportDto2 insReportDto2 : dto2s) {
                InsOrderUser insOrderUser = insOrderUserMapper.selectById(insReportDto2.getInsOrderUsersId());
                InsOrderState orderState = insOrderStateMapper.selectById(insOrderUser.getInsOrderStateId());
                orderState.setNum(insOrderUser.getNum());
                if (!insOrder.getSampleType().equals("无源器件")) {
                    getWord1(insOrderUser.getTerm(), orderState, tables2);
                } else {
                    getWord2(insOrderUser.getTerm(), orderState, tables2);
                }
            }
        }
        //辐射表格
        List<Map<String, Object>> tables3 = new ArrayList<>();
        List<InsOrderFile> insOrderDocFiles = new ArrayList<>();;  // 暂存需要合并表单到生成word文件的docx文件
        // 统计辐射实验表数量
        int radiationReportNum = 0;
        if (strings.contains("近场") || strings.contains("远场")) {
            /*辐射的试验表*/
            List<InsOrderFile> insOrderFiles  = insOrderFileMapper.selectList(Wrappers.<InsOrderFile>lambdaQuery()
                    .eq(InsOrderFile::getInsOrderId, orderId)
                    .eq(InsOrderFile::getInsSampleId, insReportDto1.getSampleId())
                    .like(InsOrderFile::getFileName, "解析的辐射站点报告")
                    .and(wrapper -> wrapper
                            .eq(InsOrderFile::getSonLaboratory, "远场")
                            .or()
                            .eq(InsOrderFile::getSonLaboratory, "近场")
                    ));
            insOrderDocFiles.addAll(insOrderFiles);
            radiationReportNum = insOrderFiles.size();
//            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<String, Object> table3 = new HashMap<>();
//                            TableRenderData tableData = new TableRenderData();
//                            List<RowRenderData> rows = new ArrayList<>();
//                            if (element instanceof XWPFTable) {
//                                aa += 1;
//                                XWPFTable tab = (XWPFTable) element;
//                                List<XWPFTableRow> row = tab.getRows();
//                                for (int i = 0; i < row.size(); i++) {
//                                    RowRenderData rowRenderData = new RowRenderData();
//                                    List<CellRenderData> cells = new ArrayList<>();
//                                    List<XWPFTableCell> cell = row.get(i).getTableCells();
//                                    for (int j = 0; j < cell.size(); j++) {
//                                        CellRenderData cellRenderData = new CellRenderData();
//                                        List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>();
//                                        ParagraphRenderData paragraphRenderData = new ParagraphRenderData();
//                                        ParagraphStyle paragraphStyle = new ParagraphStyle();
//                                        paragraphStyle.setAlign(ParagraphAlignment.CENTER);
//                                        paragraphRenderData.setParagraphStyle(paragraphStyle);
//                                        List<RenderData> renderData = new ArrayList<>();
//                                        TextRenderData textRenderData = new TextRenderData();
//                                        Style style = new Style();
//                                        style.setFontFamily("宋体");
//                                        style.setColor("000000");
//                                        textRenderData.setStyle(style);
//                                        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();
//                    }
//                }
//            }
        }
        //辐射的标题
        String title3 = "";
        if (radiationReportNum > 0) {
            title3 = "辐射性能参数";
        }
        //环境表格
        List<Map<String, Object>> tables4 = new ArrayList<>();
        //创建环境试验条件表2*(项目数+1)
        List<InsProduct> 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());
        if (products.size()>0) {
            List<RowRenderData> rows = new ArrayList<>();
            //行数
            for (int i = 0; i < products.size() + 1; i++) {
                RowRenderData rowRenderData = new RowRenderData();
                RowStyle rowStyle = new RowStyle();
                rowStyle.setHeight(40);
                rowRenderData.setRowStyle(rowStyle);
                List<CellRenderData> cells = new ArrayList<>();
                //列数
                for (int j = 0; j < 3; j++) {
                    CellRenderData cellRenderData = new CellRenderData();
                    CellStyle cellStyle = new CellStyle();
                    cellStyle.setVertAlign(XWPFTableCell.XWPFVertAlign.CENTER);
                    cellRenderData.setCellStyle(cellStyle);
                    List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>();
                    ParagraphRenderData paragraphRenderData = new ParagraphRenderData();
                    ParagraphStyle paragraphStyle = new ParagraphStyle();
                    paragraphStyle.setAlign(ParagraphAlignment.CENTER);
                    paragraphRenderData.setParagraphStyle(paragraphStyle);
                    List<RenderData> renderData = new ArrayList<>();
                    TextRenderData textRenderData = new TextRenderData();
                    Style style = new Style();
                    style.setFontFamily("宋体");
                    style.setColor("000000");
                    textRenderData.setStyle(style);
                    if (i == 0) {
                        //第一行
                        if (j == 0) {
                            //第一列
                            textRenderData.setText("项目");
                            renderData.add(textRenderData);
                            paragraphRenderData.setContents(renderData);
                            paragraphRenderDataList.add(paragraphRenderData);
                            cellRenderData.setParagraphs(paragraphRenderDataList);
                            cells.add(cellRenderData);
                        } else if (j == 1) {
                            //第二列
                            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 if (j == 1) {
                            //第二列
                            textRenderData.setText(products.get(i - 1).getTell());
                            renderData.add(textRenderData);
                            paragraphRenderData.setContents(renderData);
                            paragraphRenderDataList.add(paragraphRenderData);
                            cellRenderData.setParagraphs(paragraphRenderDataList);
                            cells.add(cellRenderData);
                        } else {
                            //第三列
                            //获取检验项目和结论
                            InsProduct insProduct = products.get(i - 1);
                            String shiyanjieguo = "无异常";
                            if (ObjectUtils.isNotNull(insProduct.getInsResult())) {
                                shiyanjieguo = insProduct.getInsResult() == 0 ? "不合格" : "无异常";
                            }
                            textRenderData.setText("经过" + insProduct.getInspectionItemSubclass() + "之后,样品" + shiyanjieguo + "。");
                            renderData.add(textRenderData);
                            paragraphRenderData.setContents(renderData);
                            paragraphRenderDataList.add(paragraphRenderData);
                            cellRenderData.setParagraphs(paragraphRenderDataList);
                            cells.add(cellRenderData);
                        }
                    }
                }
                rowRenderData.setCells(cells);
                if (rowRenderData.getCells().size() != 0) {
                    rows.add(rowRenderData);
                }
            }
            TableRenderData tableRenderData = new TableRenderData();
            tableRenderData.setRows(rows);
            int countSize = tableRenderData.getRows().get(0).getCells().size();
            for (RowRenderData row : tableRenderData.getRows()) {
                if (row.getCells().size() != countSize) {
                    throw new ErrorException("每行单元格不相等");
                }
            }
            TableStyle tableStyle = new TableStyle();
            tableStyle.setWidth(XWPFTable.DEFAULT_PERCENTAGE_WIDTH);
            tableStyle.setAlign(TableRowAlign.CENTER);
            BorderStyle borderStyle = new BorderStyle();
            borderStyle.setColor("000000");
            borderStyle.setType(XWPFTable.XWPFBorderType.THICK);
            borderStyle.setSize(4);
            tableStyle.setLeftBorder(borderStyle);
            tableStyle.setTopBorder(borderStyle);
            tableStyle.setRightBorder(borderStyle);
            tableStyle.setBottomBorder(borderStyle);
            tableRenderData.setTableStyle(tableStyle);
            Map<String, Object> table4 = new HashMap<>();
            table4.put("table4", tableRenderData);
            tables4.add(table4);
        }
        /*检验样品信息*/
        //样品照片
        List<UrlListDto> urlList = new ArrayList<>();
        //获取附件图片类型
        List<InsOrderFile> insOrderFiles = insOrderFileMapper.selectList(Wrappers.<InsOrderFile>lambdaQuery()
                .eq(InsOrderFile::getType, 1)
                .eq(InsOrderFile::getInsSampleId,insReportDto1.getSampleId())
                .eq(InsOrderFile::getInsOrderId, orderId));
        if (CollectionUtils.isNotEmpty(insOrderFiles)) {
            UrlListDto urlListDto = new UrlListDto();
            for (int i = 0; i < insOrderFiles.size(); i++) {
                if (i % 2 == 0) {
                    urlListDto = new UrlListDto();
                    urlListDto.setImageOne(Pictures.ofLocal(imgUrl + "/" + insOrderFiles.get(i).getFileUrl()).create());
                    if (i == insOrderFiles.size() - 1) {
                        urlList.add(urlListDto);
                    }
                } else {
                    urlListDto.setImageTwo(Pictures.ofLocal(imgUrl + "/" + insOrderFiles.get(i).getFileUrl()).create());
                    urlList.add(urlListDto);
                }
            }
        }
        //样品编号参照上述sampleCode
        /*检测人员信息*/
        List<InsUserDto> insUsers = new ArrayList<>();
        //查询每个站点的检验人员与复核人员
        List<InsSampleUser> insSampleUsers = insSampleUserMapper.selectList(Wrappers.<InsSampleUser>lambdaQuery()
                .eq(InsSampleUser::getInsSampleId, insReportDto1.getSampleId()));
        //根据站点进行分类
        Map<String, List<InsSampleUser>> listMap = insSampleUsers.stream().collect(Collectors.groupingBy(InsSampleUser::getSonLaboratory));
        int index2=1;
        for (Map.Entry<String, List<InsSampleUser>> entry : listMap.entrySet()) {
            InsUserDto insUserDto = new InsUserDto();
            insUserDto.setIndex(index2+"");//序号
            insUserDto.setInsProduct(entry.getKey());//项目
            List<InsSampleUser> insUserList = entry.getValue().stream().filter(insSampleUser -> insSampleUser.getState() == 0).collect(Collectors.toList());//检验人
            String insUser = insUserList.stream().map(insSampleUser -> {
                User user = userMapper.selectById(insSampleUser.getUserId());
                return user.getName();
            }).distinct().collect(Collectors.joining(","));
            insUserDto.setInsUser(insUser);//测试人员
            List<InsSampleUser> checkUserList = entry.getValue().stream().filter(insSampleUser -> insSampleUser.getState() == 1).collect(Collectors.toList());//复核人
            String checkUser = checkUserList.stream().map(insSampleUser -> {
                User user = userMapper.selectById(insSampleUser.getUserId());
                return user.getName();
            }).distinct().collect(Collectors.joining(","));
            insUserDto.setCheckUser(checkUser);//审核人员
            insUsers.add(insUserDto);
            index2++;
        }
        /*测试仪表*/
        Set<String> deviceSet = new HashSet<>();
        //查询所有项目的设备
        List<Integer> productIds = insProducts.stream().map(InsProduct::getId).collect(Collectors.toList());
        //普通
        List<InsProductResult> results = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery()
                .in(InsProductResult::getInsProductId, productIds));
        if (results.size()>0){
            for (InsProductResult result : results) {
                List<JSONObject> jsonObjects = JSON.parseArray(result.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<InsProductResult2> result2s = insProductResult2Mapper.selectList(Wrappers.<InsProductResult2>lambdaQuery()
                .in(InsProductResult2::getInsProductId, productIds));
        if (result2s.size()>0){
            for (InsProductResult2 result2 : result2s) {
                String equipValue = result2.getEquipValue();
                if (equipValue != null && !equipValue.isEmpty()) {
                    deviceSet.add(equipValue);
                }
            }
        }
        List<DevListDto> devList = new ArrayList<>();
        if (deviceSet.size() != 0) {
            devList = insOrderMapper.selectDeviceList(deviceSet);
        }
        /*生成报告*/
        ZipSecureFile.setMinInflateRatio(0.0001);
        InputStream inputStream = this.getClass().getResourceAsStream("/static/report-template.docx");
        Configure configure = Configure.builder()
                .bind("insProductList", new HackLoopTableRenderPolicy())
                .bind("devList", new HackLoopTableRenderPolicy())
                .bind("insUsers", new HackLoopTableRenderPolicy())
                .bind("urlList", new HackLoopTableRenderPolicy())
                .build();
        List<DevListDto> finalDevList = devList;
        String finalTitle = title3;
        XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render(
        XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
                new HashMap<String, Object>() {{
                    put("order", insOrder);
                    put("report", insReport);
                    put("departLims", departLims);
                    put("sampleCode", sampleCode);
                    put("environment", finalEnvironment);
                    put("custom", custom);
                    put("sampleSize", finalSamples.size());
                    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());
                    put("sampleName", sampleName);  //产品名称
                    put("models",models);           //型号规格
                    put("custom", custom);          //委托单位
                    put("createTime", now.format(DateTimeFormatter.ofPattern("yyyy年MM月dd日")));   //报告发布日期
                    put("departLims", departLims);   //委托部门
                    put("sampleCode", sampleCode);     //样品编号
                    put("order", insOrder);         //订单主体信息
                    put("getTime", insOrder.getExamineTime().format(DateTimeFormatter.ofPattern("yyyy年MM月dd日")));  //来样日期
                    put("insTime", insOrder.getInsTime().format(DateTimeFormatter.ofPattern("yyyy年MM月dd日")));       //检测日期
                    put("standardMethod", (standardMethod2.toString().equals("null") ? "" : standardMethod2));     //检测依据
                    put("productSize", productSize);        //检测结论
                    put("productSize2", productSize2);          //检测结论
                    put("productSize3", productSize3);          //检测结论
                    put("report", insReport);                   //报告编号
                    put("insProductList", insProductList);      //检验情况一览表
                    put("tables2", tables2);                    //检测结果
                    put("title3", finalTitle);                  //检测结果
                    put("tables3", null);                    //检测结果
                    put("tables4", tables4);                    //检测结果
                    put("urlList", urlList);                   //样品照片
                    put("insUsers", insUsers);                //检测人员信息
                    put("devList", finalDevList);                //测试仪表
                    put("writeUrl", null);                      //提交人
                    put("examineUrl", null);                    //审核人
                    put("ratifyUrl", null);                     //批准人
                    put("seal1", null);                         //印章
                    put("seal2", null);                         //印章
                }});
        try {
            ZipSecureFile.setMinInflateRatio(0.0001);
@@ -2219,7 +3120,7 @@
            FileInputStream stream = new FileInputStream(path);
            XWPFDocument document = new XWPFDocument(stream);
            List<XWPFTable> xwpfTables = document.getTables();
            for (int i = 1; i < xwpfTables.size() - (deviceList == null ? 1 : 2); i++) {
            for (int i = 1; i < xwpfTables.size() - (devList == null ? 1 : 2); i++) {
                Set<String> set1 = new HashSet<>();
                Map<String, Map<String, Integer>> maps = new HashMap<>();
                for (int j = 0; j < xwpfTables.get(i).getRows().size(); j++) {
@@ -2291,7 +3192,7 @@
            FileInputStream stream1 = new FileInputStream(path);
            XWPFDocument document1 = new XWPFDocument(stream1);
            List<XWPFTable> xwpfTables1 = document1.getTables();
            for (int i = 1; i < xwpfTables1.size() - (deviceList == null ? 1 : 2); i++) {
            for (int i = 1; i < xwpfTables1.size() - (devList == 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("@")) {
@@ -2318,261 +3219,981 @@
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        // 更新表单
        try {
            WordprocessingMLPackage targetDoc = WordprocessingMLPackage.load(new File(path));
            List<Object> targetContent = targetDoc.getMainDocumentPart().getContent();
            int targetIndex = findFirstTargetIndex(targetDoc, title3);
            if (targetIndex != -1) {
                List<Object> forms = new ArrayList<>();
                for (InsOrderFile insOrderFile : insOrderDocFiles) {
                    // 加载源文档并提取表单内容(假设为表格)
                    WordprocessingMLPackage sourceDoc = WordprocessingMLPackage.load(new File(wordUrl + "/" + insOrderFile.getFileUrl()));
                    List<Object> sourceContent = sourceDoc.getMainDocumentPart().getContent();
                    for (Object obj : sourceContent) {
                        if (obj instanceof JAXBElement) { // 检查是否为 JAXBElement
                            JAXBElement jaxbElement = (JAXBElement)obj;
                            Tbl table = (Tbl) XmlUtils.deepCopy(jaxbElement.getValue());
                            targetIndex++;
                            // 插入到目标段落之后
                            targetContent.add(targetIndex, table);
                            forms.add(table);
                            // 插入分页符
                            P paragraphWithPageBreak = Context.getWmlObjectFactory().createP();
                            R run = Context.getWmlObjectFactory().createR();
                            Br br = Context.getWmlObjectFactory().createBr();
                            br.setType(STBrType.PAGE); // 设置分页符类型
                            run.getContent().add(br);
                            paragraphWithPageBreak.getContent().add(run);
                            targetIndex++;
                            targetContent.add(targetIndex, paragraphWithPageBreak);
                        }
                    }
                }
            }
            // 保存修改后的文档
            targetDoc.save(new File(path));
            com.spire.doc.Document document = new com.spire.doc.Document();
            document.loadFromFile(path);
            // 更新目录
            document.updateTableOfContents();
            // 保存文档
            document.saveToFile(path, FileFormat.Docx);
            document.close();
        }catch (Exception e){
            log.error(e.getMessage());
        }
    }
    //电路报告用于总报告的方法
    private void getWord1(String term, InsOrderState insOrderState, List<InsSample> insSamples, List<Map<String, Object>> tables2) {
    //电路报告用于总报告的方法(天线)
    private void getWord1(String term, InsOrderState insOrderState, List<Map<String, Object>> tables2) {
        AtomicInteger lable = new AtomicInteger(1);
        AtomicInteger index = new AtomicInteger();
        String title = term + "电路参数";
        insSamples.forEach(insSample -> {
            //查询项目
            List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                    .eq(InsProduct::getInsSampleId, insSample.getId())
                    .eq(InsProduct::getSonLaboratory, "电路试验"));
            //获取最大端口数量,角度数量,频段数量
            List<InsProductResult2> insProductResult2s = insProductResult2Mapper.selectList(Wrappers.<InsProductResult2>lambdaQuery()
                    .eq(InsProductResult2::getNum, insOrderState.getNum())
                    .in(InsProductResult2::getInsProductId, insProducts.stream().map(InsProduct::getId).collect(Collectors.toList())));
            //按照频段分表(查询所有频段)
            List<String> frequencys = insProductResult2s.stream().map(InsProductResult2::getFrequency).distinct().collect(Collectors.toList());
            frequencys.forEach(s -> {
                int ports = 0;//端口数
                int angles = 0;//角度数
                for (InsProductResult2 insProductResult2 : insProductResult2s) {
                    if (insProductMapper.selectById(insProductResult2.getInsProductId()).getInspectionItemSubclass().equals("电压驻波比") && insProductResult2.getPort().split(",").length > ports) {
                        ports = insProductResult2.getPort().split(",").length;
                    }
                    if (insProductResult2.getAngle().split(",").length > angles) {
                        angles = insProductResult2.getAngle().split(",").length;
                    }
        String title = term + "电性能参数";
        InsSample insSample = insSampleMapper.selectById(insOrderState.getInsSampleId());
        //查询项目
        List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                .eq(InsProduct::getState, 1)
                .eq(InsProduct::getInsSampleId, insSample.getId())
                .eq(InsProduct::getSonLaboratory, "电路试验"));
        //获取最大端口数量,角度数量,频段数量
        List<InsProductResult2> insProductResult2s = insProductResult2Mapper.selectList(Wrappers.<InsProductResult2>lambdaQuery()
                .eq(InsProductResult2::getNum, insOrderState.getNum())
                .in(InsProductResult2::getInsProductId, insProducts.stream().map(InsProduct::getId).collect(Collectors.toList())));
        //按照频段分表(查询所有频段)
        List<String> frequencys = insProductResult2s.stream().map(InsProductResult2::getFrequency).distinct().collect(Collectors.toList());
        frequencys.forEach(s -> {
            int ports = 0;//端口数
            int angles = 0;//角度数
            List<InsProductResult2> 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;
                }
                //频点数
                long often = insProductResult2s.stream().filter(insProductResult2 -> insProductResult2.getFrequency().equals(s))
                        .filter(insProductResult2 ->
                                insProductMapper.selectById(insProductResult2.getInsProductId()).getInspectionItemSubclass().equals("互调")
                        ).filter(insProductResult2 -> ObjectUtils.isNotEmpty(insProductResult2.getOften())).distinct().count();
                List<String> inspectionItemSubclass = insProducts.stream().map(InsProduct::getInspectionItemSubclass).collect(Collectors.toList());
                //行数
                int aa = 0;
                int portRow = ports % 8 == 0 ? ports / 8 : ports / 8 + 1;
                //先判断是1简单版还是0复杂版
                if (insOrderState.getVersion() == 1) {
                    if (inspectionItemSubclass.contains("电压驻波比")) {
                        aa += 2 * portRow;
                    }
                    if (inspectionItemSubclass.contains("同极化隔离度")) {
                        aa += 1 * portRow;
                    }
                    if (inspectionItemSubclass.contains("异极化隔离度")) {
                        aa += 1 * portRow;
                    }
                    if (inspectionItemSubclass.contains("互调")) {
                        aa += (angles + 1) * portRow * often;
                    }
                } else {
                    if (inspectionItemSubclass.contains("电压驻波比")) {
                        aa += (angles + 1) * portRow;
                    }
                    if (inspectionItemSubclass.contains("同极化隔离度")) {
                        List<InsProductResult2> result2s = insProductResult2s.stream().filter(insProductResult2 ->
                                insProductMapper.selectById(insProductResult2.getInsProductId())
                                        .getInspectionItemSubclass().equals("同极化隔离度")
                        ).collect(Collectors.toList());
                        int length = result2s.get(0).getPort().split(",").length;
                        aa += (angles + 1) * (length % (ports > 8 ? 4 : (ports + 1) / 2) == 0 ? length / (ports > 8 ? 4 : (ports + 1) / 2) : length / (ports > 8 ? 4 : (ports + 1) / 2) + 1);
                    }
                    if (inspectionItemSubclass.contains("异极化隔离度")) {
                        List<InsProductResult2> result2s = insProductResult2s.stream().filter(insProductResult2 ->
                                insProductMapper.selectById(insProductResult2.getInsProductId())
                                        .getInspectionItemSubclass().equals("异极化隔离度")
                        ).collect(Collectors.toList());
                        int length = result2s.get(0).getPort().split(",").length;
                        aa += (angles + 1) * (length % (ports > 8 ? 4 : (ports + 1) / 2) == 0 ? length / (ports > 8 ? 4 : (ports + 1) / 2) : length / (ports > 8 ? 4 : (ports + 1) / 2) + 1);
                    }
                    if (inspectionItemSubclass.contains("互调")) {
                        aa += (angles + 1) * portRow * often;
                    }
                    if (inspectionItemSubclass.contains("最大耦合度")) {
                        aa += (angles + 1);
                    }
                    if (inspectionItemSubclass.contains("最小耦合度")) {
                        aa += (angles + 1);
                    }
                    if (inspectionItemSubclass.contains("幅度偏差")) {
                        List<InsProductResult2> result2s = insProductResult2s.stream().filter(insProductResult2 ->
                                insProductMapper.selectById(insProductResult2.getInsProductId())
                                        .getInspectionItemSubclass().equals("幅度偏差")
                        ).collect(Collectors.toList());
                        int length = result2s.get(0).getPort().split(",").length;
                        aa += (angles + 1) * (length % 8 == 0 ? length / 8 : length / 8 + 1);
                    }
                    if (inspectionItemSubclass.contains("最大相位偏差")) {
                        List<InsProductResult2> result2s = insProductResult2s.stream().filter(insProductResult2 ->
                                insProductMapper.selectById(insProductResult2.getInsProductId())
                                        .getInspectionItemSubclass().equals("最大相位偏差")
                        ).collect(Collectors.toList());
                        int length = result2s.get(0).getPort().split(",").length;
                        aa += (angles + 1) * (length % 8 == 0 ? length / 8 : length / 8 + 1);
                    }
                if (insProductResult2.getAngle().split(",").length > angles) {
                    angles = insProductResult2.getAngle().split(",").length;
                }
                List<RowRenderData> rows = new ArrayList<>();
                Set<String> itemSet = new HashSet<>();
                int cc = 0;
                int dd = 0;
                int ee = 0;
                int ff = 0;
                int gg = 0;
                int hh = 0;
                int mm = 0;
                //表格的行数
                for (int i = 0; i <= aa; i++) {
                    RowRenderData rowRenderData = new RowRenderData();
                    RowStyle rowStyle = new RowStyle();
                    rowStyle.setHeight(40);
                    rowRenderData.setRowStyle(rowStyle);
                    List<CellRenderData> cells = new ArrayList<>();
                    //表格的列数
                    int bb = ports > 8 ? 14 : ports + 6;
                    for (int j = 0; j < bb; j++) {
                        CellRenderData cellRenderData = new CellRenderData();
                        CellStyle cellStyle = new CellStyle();
                        cellStyle.setVertAlign(XWPFTableCell.XWPFVertAlign.CENTER);
                        cellRenderData.setCellStyle(cellStyle);
                        List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>();
                        ParagraphRenderData paragraphRenderData = new ParagraphRenderData();
                        ParagraphStyle paragraphStyle = new ParagraphStyle();
                        paragraphStyle.setAlign(ParagraphAlignment.CENTER);
                        paragraphRenderData.setParagraphStyle(paragraphStyle);
                        List<RenderData> renderData = new ArrayList<>();
                        TextRenderData textRenderData = new TextRenderData();
                        Style style = new Style();
                        style.setFontFamily("宋体");
                        style.setColor("000000");
                        textRenderData.setStyle(style);
                        if (i == 0) {
                            //第一行
                            textRenderData.setText("频段:" + s + "∑0" + lable);
            }
            //频点数
            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<String> inspectionItemSubclass = insProducts.stream().map(InsProduct::getInspectionItemSubclass).collect(Collectors.toList());
            //行数
            int aa = 0;
            int portRow = ports % 8 == 0 ? ports / 8 : ports / 8 + 1;
            //先判断是1简单版还是0复杂版
            if (insOrderState.getVersion() == 1) {
                if (inspectionItemSubclass.contains("电压驻波比")) {
                    aa += 2 * portRow;
                }
                if (inspectionItemSubclass.contains("同极化隔离度")) {
                    aa += 1 * portRow;
                }
                if (inspectionItemSubclass.contains("同列隔离度")) {
                    aa += 1 * portRow;
                }
                if (inspectionItemSubclass.contains("端口间隔离度")) {
                    aa += 1 * portRow;
                }
                if (inspectionItemSubclass.contains("异极化隔离度")) {
                    aa += 1 * portRow;
                }
                if (inspectionItemSubclass.contains("互调")) {
                    aa += (angles + 1) * portRow * often;
                }
            }
            else {
                if (inspectionItemSubclass.contains("电压驻波比")) {
                    aa += (angles + 1) * portRow;
                }
                if (inspectionItemSubclass.contains("同极化隔离度")) {
                    List<InsProductResult2> result2s = 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<InsProductResult2> 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<InsProductResult2> 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<InsProductResult2> 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<InsProductResult2> 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<InsProductResult2> 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<InsProductResult2> 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<InsProductResult2> 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<RowRenderData> rows = new ArrayList<>();
            Set<String> itemSet = new HashSet<>();
            int cc = 0;
            int dd = 0;
            int ee = 0;
            int ff = 0;
            int gg = 0;
            int hh = 0;
            int mm = 0;
            int nn = 0;
            int pp = 0;
            int qq = 0;
            int ss = 0;
            //表格的行数
         for (int i = 0; i <= aa+1; i++) {
                RowRenderData rowRenderData = new RowRenderData();
                RowStyle rowStyle = new RowStyle();
                rowStyle.setHeight(40);
                rowRenderData.setRowStyle(rowStyle);
                List<CellRenderData> cells = new ArrayList<>();
                //表格的列数
                int bb = ports > 8 ? 14 : ports + 6;
                for (int j = 0; j < bb; j++) {
                    CellRenderData cellRenderData = new CellRenderData();
                    CellStyle cellStyle = new CellStyle();
                    cellStyle.setVertAlign(XWPFTableCell.XWPFVertAlign.CENTER);
                    cellRenderData.setCellStyle(cellStyle);
                    List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>();
                    ParagraphRenderData paragraphRenderData = new ParagraphRenderData();
                    ParagraphStyle paragraphStyle = new ParagraphStyle();
                    paragraphStyle.setAlign(ParagraphAlignment.CENTER);
                    paragraphRenderData.setParagraphStyle(paragraphStyle);
                    List<RenderData> renderData = new ArrayList<>();
                    TextRenderData textRenderData = new TextRenderData();
                    Style style = new Style();
                    style.setFontFamily("宋体");
                    style.setColor("000000");
                    textRenderData.setStyle(style);
                    if (i==0){
                        if (j==0){
                            textRenderData.setText("序号");
                            renderData.add(textRenderData);
                            paragraphRenderData.setContents(renderData);
                            paragraphRenderDataList.add(paragraphRenderData);
                            cellRenderData.setParagraphs(paragraphRenderDataList);
                            cells.add(cellRenderData);
                        } else {
                            if (insOrderState.getVersion() == 1) {
                                //非电调版本(简单版)
                                if (inspectionItemSubclass.contains("电压驻波比") && i <= 2 * portRow) {
                                    cc = 2 * portRow;
                                    if (itemSet.add("电压驻波比")) {
                                        index.getAndIncrement();
                                    }
                                    List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("电压驻波比")).collect(Collectors.toList());
                                    List<InsProductResult2> result2s = insProductResult2s.stream()
                                            .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
                                            .collect(Collectors.toList());
                                    //电压驻波比所在行
                                    if (j == 0) {
                                        //第一列
                                        textRenderData.setText(index + "∑1" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 1) {
                                        //第二列
                                        textRenderData.setText("电压驻波比∑2" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 2) {
                                        //第三列
                                        textRenderData.setText(products.get(0).getUnit() + "∑3" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 3) {
                                        //第四列
                                        textRenderData.setText(products.get(0).getAsk() + "∑4" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 4) {
                                        //第五列
                                        if (i % 2 == 0) {
                                            //最差值
                                            textRenderData.setText("最差值");
                                        } else {
                                            //端口
                                            textRenderData.setText("端口");
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == bb - 1) {
                                        //最后一列
                                        if (i % 2 == 0) {
                                            //结论
                                            if (products.get(0).getInsResult() == 1) {
                                                textRenderData.setText("合格");
                                            } else if (products.get(0).getInsResult() == 0) {
                                                textRenderData.setText("不合格");
                                            } else {
                                                textRenderData.setText("不判定");
                                            }
                                        } else {
                                            textRenderData.setText("/");
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else {
                                        //其余列
                                        if (i % 2 == 0) {
                                            //最差值
                                            String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", "");
                                            try {
                                                textRenderData.setText(value.split(",")[(j - 5) + (i - 1) / 2 * (Math.min(ports, 8))]);
                                            } catch (Exception e) {
                                                textRenderData.setText("");
                                            }
                                        } else {
                                            //端口
                                            try {
                                                textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) + (i / 2) * (Math.min(ports, 8))]);
                                            } catch (Exception e) {
                                                textRenderData.setText("");
                                            }
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                        }
                        else if (j == 1) {
                            textRenderData.setText("检验项目");
                            renderData.add(textRenderData);
                            paragraphRenderData.setContents(renderData);
                            paragraphRenderDataList.add(paragraphRenderData);
                            cellRenderData.setParagraphs(paragraphRenderDataList);
                            cells.add(cellRenderData);
                        }
                        else if (j == 2) {
                            textRenderData.setText("单位");
                            renderData.add(textRenderData);
                            paragraphRenderData.setContents(renderData);
                            paragraphRenderDataList.add(paragraphRenderData);
                            cellRenderData.setParagraphs(paragraphRenderDataList);
                            cells.add(cellRenderData);
                        }
                        else if (j == 3) {
                            textRenderData.setText("标准与要求");
                            renderData.add(textRenderData);
                            paragraphRenderData.setContents(renderData);
                            paragraphRenderDataList.add(paragraphRenderData);
                            cellRenderData.setParagraphs(paragraphRenderDataList);
                            cells.add(cellRenderData);
                        }
                        else if (j == bb-1) {
                            textRenderData.setText("检验结论");
                            renderData.add(textRenderData);
                            paragraphRenderData.setContents(renderData);
                            paragraphRenderDataList.add(paragraphRenderData);
                            cellRenderData.setParagraphs(paragraphRenderDataList);
                            cells.add(cellRenderData);
                        }
                        else {
                            textRenderData.setText("检验结果∑5476" + i);
                            renderData.add(textRenderData);
                            paragraphRenderData.setContents(renderData);
                            paragraphRenderDataList.add(paragraphRenderData);
                            cellRenderData.setParagraphs(paragraphRenderDataList);
                            cells.add(cellRenderData);
                        }
                    }
                    else if (i == 1) {
                        //第一行
                        textRenderData.setText("频段:" + s + "∑0" + lable);
                        renderData.add(textRenderData);
                        paragraphRenderData.setContents(renderData);
                        paragraphRenderDataList.add(paragraphRenderData);
                        cellRenderData.setParagraphs(paragraphRenderDataList);
                        cells.add(cellRenderData);
                    }
                    else {
                        int u = i;
                        i=i-1;
                        if (insOrderState.getVersion() == 1) {
                            //非电调版本(简单版)
                            if (inspectionItemSubclass.contains("电压驻波比") && i <= 2 * portRow) {
                                cc = 2 * portRow;
                                if (itemSet.add("电压驻波比")) {
                                    index.getAndIncrement();
                                }
                                if (inspectionItemSubclass.contains("同极化隔离度") && i > cc && i <= cc + portRow) {
                                    dd = cc + portRow;
                                List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("电压驻波比")).collect(Collectors.toList());
                                List<InsProductResult2> 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("[\\[\\]\"]", "");
                                        String text = value.split(",")[(j - 5) + (i - 1) / 2 * (Math.min(ports, 8))];
                                        try {
                                            textRenderData.setText(String.format("%.2f",Double.parseDouble(text)));
                                        } catch (Exception e) {
                                            textRenderData.setText("");
                                        }
                                    } else {
                                        //端口
                                        try {
                                            textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) + (i / 2) * (Math.min(ports, 8))]);
                                        } catch (Exception e) {
                                            textRenderData.setText("");
                                        }
                                    }
                                    renderData.add(textRenderData);
                                    paragraphRenderData.setContents(renderData);
                                    paragraphRenderDataList.add(paragraphRenderData);
                                    cellRenderData.setParagraphs(paragraphRenderDataList);
                                    cells.add(cellRenderData);
                                }
                            }
                            if (inspectionItemSubclass.contains("同极化隔离度") && i > cc && i <= cc + portRow) {
                                dd = cc + portRow;
                                if (itemSet.add("同极化隔离度")) {
                                    index.getAndIncrement();
                                }
                                List<InsProduct> products = insProducts.stream()
                                        .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("同极化隔离度"))
                                        .collect(Collectors.toList());
                                List<InsProductResult2> result2s = 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 {
                                        String text = value.split(",")[(j - 6) / 2 + (i - cc - 1) * 4];
                                        textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "∑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 {
                                        String text = value.split(",")[(j - 5) / 2 + (i - cc - 1) * 4];
                                        textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "∑5" + i + (j - 5));
                                    } catch (Exception e) {
                                        textRenderData.setText("");
                                    }
                                    renderData.add(textRenderData);
                                    paragraphRenderData.setContents(renderData);
                                    paragraphRenderDataList.add(paragraphRenderData);
                                    cellRenderData.setParagraphs(paragraphRenderDataList);
                                    cells.add(cellRenderData);
                                }
                            }
                            if (inspectionItemSubclass.contains("同列隔离度") && i > (dd == 0 ? cc : dd) && i <= (dd == 0 ? cc : dd) + portRow) {
                                ee = (dd == 0 ? cc : dd) + portRow;
                                if (itemSet.add("同列隔离度")) {
                                    index.getAndIncrement();
                                }
                                List<InsProduct> products = insProducts.stream()
                                        .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("同列隔离度"))
                                        .collect(Collectors.toList());
                                List<InsProductResult2> result2s = 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 {
                                        String text = value.split(",")[(j - 6) / 2 + (i - (dd == 0 ? cc : dd) - 1) * 4];
                                        textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "∑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 {
                                        String text = value.split(",")[(j - 5) / 2 + (i - (dd == 0 ? cc : dd) - 1) * 4];
                                        textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "∑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<InsProduct> products = insProducts.stream()
                                        .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("端口间隔离度"))
                                        .collect(Collectors.toList());
                                List<InsProductResult2> 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 {
                                        String text = value.split(",")[(j - 6) / 2 + (i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 1) * 4];
                                        textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "∑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 {
                                        String text = value.split(",")[(j - 5) / 2 + (i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 1) * 4];
                                        textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "∑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<InsProduct> products = insProducts.stream()
                                        .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("异极化隔离度"))
                                        .collect(Collectors.toList());
                                List<InsProductResult2> 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 {
                                        String text = value.split(",")[(j - 6) / 2 + (i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) - 1) * 4];
                                        textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "∑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 {
                                        String text = value.split(",")[(j - 5) / 2 + (i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) - 1) * 4];
                                        textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "∑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<InsProduct> products = insProducts.stream()
                                        .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("互调"))
                                        .collect(Collectors.toList());
                                List<InsProductResult2> 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 {
                                            String text = 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)))];
                                            textRenderData.setText(String.format("%.2f",Double.parseDouble(text)));
                                        } catch (Exception e) {
                                            textRenderData.setText("");
                                        }
                                    }
                                    renderData.add(textRenderData);
                                    paragraphRenderData.setContents(renderData);
                                    paragraphRenderDataList.add(paragraphRenderData);
                                    cellRenderData.setParagraphs(paragraphRenderDataList);
                                    cells.add(cellRenderData);
                                }
                            }
                        }
                        else {
                            //电调版本(复杂版)
                            if (inspectionItemSubclass.contains("电压驻波比") && i <= (angles + 1) * portRow) {
                                cc = (angles + 1) * portRow;
                                if (itemSet.add("电压驻波比")) {
                                    index.getAndIncrement();
                                }
                                List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("电压驻波比")).collect(Collectors.toList());
                                List<InsProductResult2> result2s = 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 {
                                            String text = split[(j - 5) + ((i + (angles - 1)) / (angles + 1) - 1) * (Math.min(ports, 8))];
                                            textRenderData.setText(String.format("%.2f",Double.parseDouble(text)));
                                        } catch (Exception e) {
                                            textRenderData.setText("");
                                        }
                                    }
                                    renderData.add(textRenderData);
                                    paragraphRenderData.setContents(renderData);
                                    paragraphRenderDataList.add(paragraphRenderData);
                                    cellRenderData.setParagraphs(paragraphRenderDataList);
                                    cells.add(cellRenderData);
                                }
                            }
                            if (inspectionItemSubclass.contains("同极化隔离度")) {
                                List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("同极化隔离度")).collect(Collectors.toList());
                                List<InsProductResult2> result2s = 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();
                                    }
                                    List<InsProduct> products = insProducts.stream()
                                            .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("同极化隔离度"))
                                            .collect(Collectors.toList());
                                    List<InsProductResult2> result2s = insProductResult2s.stream()
                                            .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
                                            .collect(Collectors.toList());
                                    //同极化隔离度所在行
                                    if (j == 0) {
                                        //第一列
@@ -2608,7 +4229,13 @@
                                        cells.add(cellRenderData);
                                    } else if (j == 4) {
                                        //第五列
                                        textRenderData.setText("最差值");
                                        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);
@@ -2616,24 +4243,17 @@
                                        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("不合格");
                                        if ((i - cc) % (angles + 1) == 1) {
                                            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("");
                                            //结论
                                            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);
@@ -2641,11 +4261,42 @@
                                        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("");
                                        //其余列
                                        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 {
                                                    String text = split[(j - 6) / 2 + ((i - cc) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)];
                                                    textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "∑5" + i + (j - 6));
                                                } catch (Exception e) {
                                                    textRenderData.setText("");
                                                }
                                            } else {
                                                try {
                                                    String text = split[(j - 5) / 2 + ((i - cc) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)];
                                                    textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "∑5" + i + (j - 5));
                                                } catch (Exception e) {
                                                    textRenderData.setText("");
                                                }
                                            }
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
@@ -2654,17 +4305,270 @@
                                        cells.add(cellRenderData);
                                    }
                                }
                                if (inspectionItemSubclass.contains("异极化隔离度") && i > (dd == 0 ? cc : dd) && i <= (dd == 0 ? cc : dd) + portRow) {
                                    ee = (dd == 0 ? cc : dd) + portRow;
                            }
                            if (inspectionItemSubclass.contains("同列隔离度")) {
                                List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("同列隔离度")).collect(Collectors.toList());
                                List<InsProductResult2> 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 {
                                                    String text = split[(j - 6) / 2 + ((i - (dd == 0 ? cc : dd)) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)];
                                                    textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "∑5" + i + (j - 6));
                                                } catch (Exception e) {
                                                    textRenderData.setText("");
                                                }
                                            } else {
                                                try {
                                                    String text = split[(j - 5) / 2 + ((i - (dd == 0 ? cc : dd)) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)];
                                                    textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "∑5" + i + (j - 5));
                                                } catch (Exception e) {
                                                    textRenderData.setText("");
                                                }
                                            }
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                }
                            }
                            if (inspectionItemSubclass.contains("端口间隔离度")) {
                                List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("端口间隔离度")).collect(Collectors.toList());
                                List<InsProductResult2> result2s = 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 {
                                                    String text = split[(j - 6) / 2 + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)];
                                                    textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "∑5" + i + (j - 6));
                                                } catch (Exception e) {
                                                    textRenderData.setText("");
                                                }
                                            } else {
                                                try {
                                                    String text = split[(j - 5) / 2 + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)];
                                                    textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "∑5" + i + (j - 5));
                                                } catch (Exception e) {
                                                    textRenderData.setText("");
                                                }
                                            }
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                }
                            }
                            if (inspectionItemSubclass.contains("异极化隔离度")) {
                                List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("异极化隔离度")).collect(Collectors.toList());
                                List<InsProductResult2> result2s = 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();
                                    }
                                    List<InsProduct> products = insProducts.stream()
                                            .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("异极化隔离度"))
                                            .collect(Collectors.toList());
                                    List<InsProductResult2> result2s = insProductResult2s.stream()
                                            .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
                                            .collect(Collectors.toList());
                                    //异极化隔离度所在行
                                    if (j == 0) {
                                        //第一列
@@ -2700,191 +4604,7 @@
                                        cells.add(cellRenderData);
                                    } else if (j == 4) {
                                        //第五列
                                        textRenderData.setText("最差值");
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == bb - 1) {
                                        //最后一列
                                        if (products.get(0).getInsResult() == 1) {
                                            textRenderData.setText("合格");
                                        } else if (products.get(0).getInsResult() == 0) {
                                            textRenderData.setText("不合格");
                                        } else {
                                            textRenderData.setText("不判定");
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j % 2 == 0) {
                                        String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", "");
                                        try {
                                            textRenderData.setText(value.split(",")[(j - 6) / 2 + (i - (dd == 0 ? cc : dd) - 1) * 4] + "∑5" + i + (j - 6));
                                        } catch (Exception e) {
                                            textRenderData.setText("");
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else {
                                        String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", "");
                                        try {
                                            textRenderData.setText(value.split(",")[(j - 5) / 2 + (i - (dd == 0 ? cc : dd) - 1) * 4] + "∑5" + i + (j - 5));
                                        } catch (Exception e) {
                                            textRenderData.setText("");
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                }
                                if (inspectionItemSubclass.contains("互调") && i > (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) {
                                    if (itemSet.add("互调")) {
                                        index.getAndIncrement();
                                    }
                                    List<InsProduct> products = insProducts.stream()
                                            .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("互调"))
                                            .collect(Collectors.toList());
                                    List<InsProductResult2> result2s = insProductResult2s.stream()
                                            .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
                                            .collect(Collectors.toList());
                                    //互调所在行
                                    if (j == 0) {
                                        //第一列
                                        textRenderData.setText(index + "∑1" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 1) {
                                        //第二列
                                        textRenderData.setText("互调∑2" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 2) {
                                        //第三列
                                        textRenderData.setText(products.get(0).getUnit() + "∑3" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 3) {
                                        //第四列
                                        textRenderData.setText(products.get(0).getAsk() + "∑4" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 4) {
                                        //第五列
                                        if ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) % (angles + 1) == 1) {
                                            textRenderData.setText("角度");
                                        } else {
                                            textRenderData.setText(result2s.get(0).getAngle().split(",")[(i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 2) % (angles + 1)]);
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == bb - 1) {
                                        //最后一列
                                        if ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) % (angles + 1) == 1) {
                                            textRenderData.setText("/");
                                        } else {
                                            if (products.get(0).getInsResult() == 1) {
                                                textRenderData.setText("合格∑8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles - 1)) / (angles + 1) - 1));
                                            } else if (products.get(0).getInsResult() == 0) {
                                                textRenderData.setText("不合格∑8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles - 1)) / (angles + 1) - 1));
                                            } else {
                                                textRenderData.setText("不判定∑8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles - 1)) / (angles + 1) - 1));
                                            }
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else {
                                        if ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) % (angles + 1) == 1) {
                                            textRenderData.setText(result2s.get((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / portRow / (angles + 1)).getOften() + "∑6" + i + index);
                                        } else {
                                            String[] value = result2s.get((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / portRow / (angles + 2)).getValue().split("\\],\\[");
                                            String[] split = value[(i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 2) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
                                            try {
                                                textRenderData.setText(split[((j - 5) + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 1) / (angles + 1) % portRow) * (Math.min(ports, 8)))]);
                                            } catch (Exception e) {
                                                textRenderData.setText("");
                                            }
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                }
                            } else {
                                //电调版本(复杂版)
                                if (inspectionItemSubclass.contains("电压驻波比") && i <= (angles + 1) * portRow) {
                                    cc = (angles + 1) * portRow;
                                    if (itemSet.add("电压驻波比")) {
                                        index.getAndIncrement();
                                    }
                                    List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("电压驻波比")).collect(Collectors.toList());
                                    List<InsProductResult2> result2s = insProductResult2s.stream()
                                            .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
                                            .collect(Collectors.toList());
                                    //电压驻波比所在行
                                    if (j == 0) {
                                        //第一列
                                        textRenderData.setText(index + "∑1" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 1) {
                                        //第二列
                                        textRenderData.setText("电压驻波比∑2" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 2) {
                                        //第三列
                                        textRenderData.setText(products.get(0).getUnit() + "∑3" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 3) {
                                        //第四列
                                        textRenderData.setText(products.get(0).getAsk() + "∑4" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 4) {
                                        //第五列
                                        if (i % (angles + 1) == 1) {
                                        if ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) % (angles + 1) == 1) {
                                            //端口
                                            textRenderData.setText("端口");
                                        } else {
@@ -2898,16 +4618,16 @@
                                        cells.add(cellRenderData);
                                    } else if (j == bb - 1) {
                                        //最后一列
                                        if (i % (angles + 1) == 1) {
                                            textRenderData.setText("/");
                                        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 + (angles - 1)) / (angles + 1) - 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 + (angles - 1)) / (angles + 1) - 1));
                                                textRenderData.setText("不合格∑8" + index + ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (angles + 2)));
                                            } else {
                                                textRenderData.setText("不判定∑8" + index + ((i + (angles - 1)) / (angles + 1) - 1));
                                                textRenderData.setText("不判定∑8" + index + ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (angles + 2)));
                                            }
                                        }
                                        renderData.add(textRenderData);
@@ -2917,10 +4637,636 @@
                                        cells.add(cellRenderData);
                                    } else {
                                        //其余列
                                        if (i % (angles + 1) == 1) {
                                        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 {
                                                    String text = split[(j - 6) / 2 + ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)];
                                                    textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "∑5" + i + (j - 6));
                                                } catch (Exception e) {
                                                    textRenderData.setText("");
                                                }
                                            } else {
                                                try {
                                                    String text = split[(j - 5) / 2 + ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)];
                                                    textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "∑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<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("互调")).collect(Collectors.toList());
                                List<InsProductResult2> 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 {
                                            String text = 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)))];
                                            textRenderData.setText(String.format("%.2f",Double.parseDouble(text)));
                                        } 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<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("最大耦合度")).collect(Collectors.toList());
                                List<InsProductResult2> 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(",");
                                        String text = split[0];
                                        textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "∑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<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("最小耦合度")).collect(Collectors.toList());
                                List<InsProductResult2> 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(",");
                                        String text = split[0];
                                        textRenderData.setText(String.format("%.2f",Double.parseDouble(text)) + "∑7" + i);
                                    }
                                    renderData.add(textRenderData);
                                    paragraphRenderData.setContents(renderData);
                                    paragraphRenderDataList.add(paragraphRenderData);
                                    cellRenderData.setParagraphs(paragraphRenderDataList);
                                    cells.add(cellRenderData);
                                }
                            }
                            if (inspectionItemSubclass.contains("幅度偏差")) {
                                List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("幅度偏差")).collect(Collectors.toList());
                                List<InsProductResult2> result2s = 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 {
                                                String text = 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)];
                                                textRenderData.setText(String.format("%.2f",Double.parseDouble(text)));
                                            } catch (Exception e) {
                                                textRenderData.setText("");
                                            }
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                }
                            }
                            if (inspectionItemSubclass.contains("幅度不平衡度")) {
                                List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("幅度不平衡度")).collect(Collectors.toList());
                                List<InsProductResult2> result2s = 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)
                                        && 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) + k) {
                                    qq = (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) + 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 - (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 {
                                                String text = 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)];
                                                textRenderData.setText(String.format("%.2f",Double.parseDouble(text)));
                                            } catch (Exception e) {
                                                textRenderData.setText("");
                                            }
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                }
                            }
                            if (inspectionItemSubclass.contains("最大相位偏差")) {
                                List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("最大相位偏差")).collect(Collectors.toList());
                                List<InsProductResult2> result2s = 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;
                                int rr = qq == 0 ? (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) : qq;
                                if (i > rr && i <= rr + k) {
                                    ss = (rr + 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 - rr) % (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 - rr) % (angles + 1) == 1) {
                                            textRenderData.setText("判定");
                                        } else {
                                            //结论
                                            if (products.get(0).getInsResult() == 1) {
                                                textRenderData.setText("合格∑8" + index + ((i - rr) / (angles + 2)));
                                            } else if (products.get(0).getInsResult() == 0) {
                                                textRenderData.setText("不合格∑8" + index + ((i - rr) / (angles + 2)));
                                            } else {
                                                textRenderData.setText("不判定∑8" + index + ((i - rr) / (angles + 2)));
                                            }
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else {
                                        //其余列
                                        if ((i - rr) % (angles + 1) == 1) {
                                            //端口
                                            try {
                                                textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) + (i / (angles + 1)) * (Math.min(ports, 8))]);
                                                textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) + ((i - rr) / (angles + 2)) * Math.min(length, 8)]);
                                            } catch (Exception e) {
                                                textRenderData.setText("");
                                            }
@@ -2929,7 +5275,8 @@
                                            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))]);
                                                String text = split[(j - 5) + ((i - rr) / (angles + 2)) * Math.min(length, 8)];
                                                textRenderData.setText(String.format("%.2f",Double.parseDouble(text)));
                                            } catch (Exception e) {
                                                textRenderData.setText("");
                                            }
@@ -2941,261 +5288,21 @@
                                        cells.add(cellRenderData);
                                    }
                                }
                                if (inspectionItemSubclass.contains("同极化隔离度")) {
                                    List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("同极化隔离度")).collect(Collectors.toList());
                                    List<InsProductResult2> result2s = insProductResult2s.stream()
                                            .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
                                            .collect(Collectors.toList());
                                    int length = result2s.get(0).getPort().split(",").length;
                                    int portRow2 = (length % (ports > 8 ? 4 : (ports + 1) / 2) == 0 ? length / (ports > 8 ? 4 : (ports + 1) / 2) : length / (ports > 8 ? 4 : (ports + 1) / 2) + 1);
                                    int k = (angles + 1) * portRow2;
                                    if (i > cc && i <= cc + k) {
                                        dd = cc + k;
                                        if (itemSet.add("同极化隔离度")) {
                                            index.getAndIncrement();
                                        }
                                        //同极化隔离度所在行
                                        if (j == 0) {
                                            //第一列
                                            textRenderData.setText(index + "∑1" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 1) {
                                            //第二列
                                            textRenderData.setText("同极化隔离度∑2" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 2) {
                                            //第三列
                                            textRenderData.setText(products.get(0).getUnit() + "∑3" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 3) {
                                            //第四列
                                            textRenderData.setText(products.get(0).getAsk() + "∑4" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 4) {
                                            //第五列
                                            if ((i - cc) % (angles + 1) == 1) {
                                                //端口
                                                textRenderData.setText("端口");
                                            } else {
                                                //角度
                                                textRenderData.setText(result2s.get(0).getAngle().split(",")[(i + (angles - 1)) % (angles + 1)]);
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == bb - 1) {
                                            //最后一列
                                            if ((i - cc) % (angles + 1) == 1) {
                                                textRenderData.setText("/");
                                            } else {
                                                //结论
                                                if (products.get(0).getInsResult() == 1) {
                                                    textRenderData.setText("合格∑8" + index + ((i - cc) / (angles + 2)));
                                                } else if (products.get(0).getInsResult() == 0) {
                                                    textRenderData.setText("不合格∑8" + index + ((i - cc) / (angles + 2)));
                                                } else {
                                                    textRenderData.setText("不判定∑8" + index + ((i - cc) / (angles + 2)));
                                                }
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else {
                                            //其余列
                                            if ((i - cc) % (angles + 1) == 1) {
                                                //端口
                                                if (j % 2 == 0) {
                                                    try {
                                                        textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 6) / 2 + ((i - cc) / (angles + 1)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "∑5" + i + (j - 6));
                                                    } catch (Exception e) {
                                                        textRenderData.setText("");
                                                    }
                                                } else {
                                                    try {
                                                        textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) / 2 + ((i - cc) / (angles + 1)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "∑5" + i + (j - 5));
                                                    } catch (Exception e) {
                                                        textRenderData.setText("");
                                                    }
                                                }
                                            } else {
                                                //最差值
                                                String[] value = result2s.get(0).getValue().split("\\],\\[");
                                                String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
                                                if (j % 2 == 0) {
                                                    try {
                                                        textRenderData.setText(split[(j - 6) / 2 + ((i - cc) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "∑5" + i + (j - 6));
                                                    } catch (Exception e) {
                                                        textRenderData.setText("");
                                                    }
                                                } else {
                                                    try {
                                                        textRenderData.setText(split[(j - 5) / 2 + ((i - cc) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "∑5" + i + (j - 5));
                                                    } catch (Exception e) {
                                                        textRenderData.setText("");
                                                    }
                                                }
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        }
                                    }
                                }
                                if (inspectionItemSubclass.contains("异极化隔离度")) {
                                    List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("异极化隔离度")).collect(Collectors.toList());
                                    List<InsProductResult2> result2s = insProductResult2s.stream()
                                            .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
                                            .collect(Collectors.toList());
                                    int length = result2s.get(0).getPort().split(",").length;
                                    int portRow2 = (length % (ports > 8 ? 4 : (ports + 1) / 2) == 0 ? length / (ports > 8 ? 4 : (ports + 1) / 2) : length / (ports > 8 ? 4 : (ports + 1) / 2) + 1);
                                    int k = (angles + 1) * portRow2;
                                    if (i > (dd == 0 ? cc : dd) && i <= (dd == 0 ? cc : dd) + k) {
                                        ee = (dd == 0 ? cc : dd) + k;
                                        if (itemSet.add("异极化隔离度")) {
                                            index.getAndIncrement();
                                        }
                                        //异极化隔离度所在行
                                        if (j == 0) {
                                            //第一列
                                            textRenderData.setText(index + "∑1" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 1) {
                                            //第二列
                                            textRenderData.setText("异极化隔离度∑2" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 2) {
                                            //第三列
                                            textRenderData.setText(products.get(0).getUnit() + "∑3" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 3) {
                                            //第四列
                                            textRenderData.setText(products.get(0).getAsk() + "∑4" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 4) {
                                            //第五列
                                            if ((i - (dd == 0 ? cc : dd)) % (angles + 1) == 1) {
                                                //端口
                                                textRenderData.setText("端口");
                                            } else {
                                                //角度
                                                textRenderData.setText(result2s.get(0).getAngle().split(",")[(i + (angles - 1)) % (angles + 1)]);
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == bb - 1) {
                                            //最后一列
                                            if ((i - (dd == 0 ? cc : dd)) % (angles + 1) == 1) {
                                                textRenderData.setText("/");
                                            } else {
                                                //结论
                                                if (products.get(0).getInsResult() == 1) {
                                                    textRenderData.setText("合格∑8" + index + ((i - (dd == 0 ? cc : dd)) / (angles + 2)));
                                                } else if (products.get(0).getInsResult() == 0) {
                                                    textRenderData.setText("不合格∑8" + index + ((i - (dd == 0 ? cc : dd)) / (angles + 2)));
                                                } else {
                                                    textRenderData.setText("不判定∑8" + index + ((i - (dd == 0 ? cc : dd)) / (angles + 2)));
                                                }
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else {
                                            //其余列
                                            if ((i - (dd == 0 ? cc : dd)) % (angles + 1) == 1) {
                                                //端口
                                                if (j % 2 == 0) {
                                                    try {
                                                        textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 6) / 2 + ((i - (dd == 0 ? cc : dd)) / (angles + 1)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "∑5" + i + (j - 6));
                                                    } catch (Exception e) {
                                                        textRenderData.setText("");
                                                    }
                                                } else {
                                                    try {
                                                        textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) / 2 + ((i - (dd == 0 ? cc : dd)) / (angles + 1)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "∑5" + i + (j - 5));
                                                    } catch (Exception e) {
                                                        textRenderData.setText("");
                                                    }
                                                }
                                            } else {
                                                //最差值
                                                String[] value = result2s.get(0).getValue().split("\\],\\[");
                                                String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
                                                if (j % 2 == 0) {
                                                    try {
                                                        textRenderData.setText(split[(j - 6) / 2 + ((i - (dd == 0 ? cc : dd)) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "∑5" + i + (j - 6));
                                                    } catch (Exception e) {
                                                        textRenderData.setText("");
                                                    }
                                                } else {
                                                    try {
                                                        textRenderData.setText(split[(j - 5) / 2 + ((i - (dd == 0 ? cc : dd)) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "∑5" + i + (j - 5));
                                                    } catch (Exception e) {
                                                        textRenderData.setText("");
                                                    }
                                                }
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        }
                                    }
                                }
                                if (inspectionItemSubclass.contains("互调") && i > (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) && i <= ((ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles + 1) * portRow * often)) {
                                    ff = (int) ((ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles + 1) * portRow * often);
                                    if (itemSet.add("互调")) {
                            }
                            if (inspectionItemSubclass.contains("相位绝对值")) {
                                List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("相位绝对值")).collect(Collectors.toList());
                                List<InsProductResult2> 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;
                                int rr = ss == 0 ? (qq == 0 ? (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) : qq) : ss;
                                if (i > ss) {
                                    if (itemSet.add("相位绝对值")) {
                                        index.getAndIncrement();
                                    }
                                    List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("互调")).collect(Collectors.toList());
                                    List<InsProductResult2> result2s = insProductResult2s.stream()
                                            .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
                                            .collect(Collectors.toList());
                                    //互调所在行
                                    //最大相位偏差所在行
                                    if (j == 0) {
                                        //第一列
                                        textRenderData.setText(index + "∑1" + index);
@@ -3206,7 +5313,7 @@
                                        cells.add(cellRenderData);
                                    } else if (j == 1) {
                                        //第二列
                                        textRenderData.setText("互调∑2" + index);
                                        textRenderData.setText("最大相位偏差∑2" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
@@ -3230,11 +5337,11 @@
                                        cells.add(cellRenderData);
                                    } else if (j == 4) {
                                        //第五列
                                        if ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) % (angles + 1) == 1) {
                                            //角度
                                            textRenderData.setText("角度");
                                        if ((i - ss) % (angles + 1) == 1) {
                                            //频段
                                            textRenderData.setText("频段");
                                        } else {
                                            //值
                                            //角度
                                            textRenderData.setText(result2s.get(0).getAngle().split(",")[(i + (angles - 1)) % (angles + 1)]);
                                        }
                                        renderData.add(textRenderData);
@@ -3244,16 +5351,16 @@
                                        cells.add(cellRenderData);
                                    } else if (j == bb - 1) {
                                        //最后一列
                                        if ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) % (angles + 1) == 1) {
                                            textRenderData.setText("/");
                                        if ((i - ss) % (angles + 1) == 1) {
                                            textRenderData.setText("判定");
                                        } else {
                                            //结论
                                            if (products.get(0).getInsResult() == 1) {
                                                textRenderData.setText("合格∑8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles - 1)) / (angles + 1) - 1));
                                                textRenderData.setText("合格∑8" + index + ((i - ss) / (angles + 2)));
                                            } else if (products.get(0).getInsResult() == 0) {
                                                textRenderData.setText("不合格∑8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles - 1)) / (angles + 1) - 1));
                                                textRenderData.setText("不合格∑8" + index + ((i - ss) / (angles + 2)));
                                            } else {
                                                textRenderData.setText("不判定∑8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles - 1)) / (angles + 1) - 1));
                                                textRenderData.setText("不判定∑8" + index + ((i - ss) / (angles + 2)));
                                            }
                                        }
                                        renderData.add(textRenderData);
@@ -3263,15 +5370,20 @@
                                        cells.add(cellRenderData);
                                    } else {
                                        //其余列
                                        if ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) % (angles + 1) == 1) {
                                            //频点
                                            textRenderData.setText(result2s.get((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / portRow / (angles + 1)).getOften() + "∑6" + i + index);
                                        if ((i - ss) % (angles + 1) == 1) {
                                            //端口
                                            try {
                                                textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) + ((i - ss) / (angles + 2)) * Math.min(length, 8)]);
                                            } catch (Exception e) {
                                                textRenderData.setText("");
                                            }
                                        } else {
                                            //最差值
                                            String[] value = result2s.get((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / portRow / (angles + 2)).getValue().split("\\],\\[");
                                            String[] value = result2s.get(0).getValue().split("\\],\\[");
                                            String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
                                            try {
                                                textRenderData.setText(split[((j - 5) + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 1) / (angles + 1) % portRow) * (Math.min(ports, 8)))]);
                                                String text = split[(j - 5) + ((i - ss) / (angles + 2)) * Math.min(length, 8)];
                                                textRenderData.setText(String.format("%.2f",Double.parseDouble(text)));
                                            } catch (Exception e) {
                                                textRenderData.setText("");
                                            }
@@ -3281,440 +5393,226 @@
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                }
                                if (inspectionItemSubclass.contains("最大耦合度") && i > (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) && i <= ((ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) + (angles + 1))) {
                                    gg = ((ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) + (angles + 1));
                                    if (itemSet.add("最大耦合度")) {
                                        index.getAndIncrement();
                                    }
                                    List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("最大耦合度")).collect(Collectors.toList());
                                    List<InsProductResult2> result2s = insProductResult2s.stream()
                                            .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
                                            .collect(Collectors.toList());
                                    //最大耦合度所在行
                                    if (j == 0) {
                                        //第一列
                                        textRenderData.setText(index + "∑1" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 1) {
                                        //第二列
                                        textRenderData.setText("最大耦合度∑2" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 2) {
                                        //第三列
                                        textRenderData.setText(products.get(0).getUnit() + "∑3" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 3) {
                                        //第四列
                                        textRenderData.setText(products.get(0).getAsk() + "∑4" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 4) {
                                        //第五列
                                        if ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) % (angles + 1) == 1) {
                                            //角度
                                            textRenderData.setText("角度");
                                        } else {
                                            //值
                                            textRenderData.setText(result2s.get(0).getAngle().split(",")[(i + (angles - 1)) % (angles + 1)]);
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == bb - 1) {
                                        //最后一列
                                        if ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) % (angles + 1) == 1) {
                                            textRenderData.setText("/");
                                        } else {
                                            //结论
                                            if (products.get(0).getInsResult() == 1) {
                                                textRenderData.setText("合格∑8" + index);
                                            } else if (products.get(0).getInsResult() == 0) {
                                                textRenderData.setText("不合格∑8" + index);
                                            } else {
                                                textRenderData.setText("不判定∑8" + index);
                                            }
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else {
                                        //其余列
                                        if ((i - (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff)) % (angles + 1) == 1) {
                                            //频点
                                            textRenderData.setText(result2s.get(0).getOften() + "∑6" + index);
                                        } else {
                                            //最差值
                                            String[] value = result2s.get(0).getValue().split("\\],\\[");
                                            String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
                                            textRenderData.setText(split[0] + "∑7" + i);
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                }
                                if (inspectionItemSubclass.contains("最小耦合度") && i > (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) && i <= ((gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles + 1))) {
                                    hh = (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) + (angles + 1);
                                    if (itemSet.add("最小耦合度")) {
                                        index.getAndIncrement();
                                    }
                                    List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("最小耦合度")).collect(Collectors.toList());
                                    List<InsProductResult2> result2s = insProductResult2s.stream()
                                            .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
                                            .collect(Collectors.toList());
                                    //最小耦合度所在行
                                    if (j == 0) {
                                        //第一列
                                        textRenderData.setText(index + "∑1" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 1) {
                                        //第二列
                                        textRenderData.setText("最小耦合度∑2" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 2) {
                                        //第三列
                                        textRenderData.setText(products.get(0).getUnit() + "∑3" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 3) {
                                        //第四列
                                        textRenderData.setText(products.get(0).getAsk() + "∑4" + index);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == 4) {
                                        //第五列
                                        if ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) % (angles + 1) == 1) {
                                            //角度
                                            textRenderData.setText("角度");
                                        } else {
                                            //值
                                            textRenderData.setText(result2s.get(0).getAngle().split(",")[(i + (angles - 1)) % (angles + 1)]);
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else if (j == bb - 1) {
                                        //最后一列
                                        if ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) % (angles + 1) == 1) {
                                            textRenderData.setText("/");
                                        } else {
                                            //结论
                                            if (products.get(0).getInsResult() == 1) {
                                                textRenderData.setText("合格∑8" + index);
                                            } else if (products.get(0).getInsResult() == 0) {
                                                textRenderData.setText("不合格∑8" + index);
                                            } else {
                                                textRenderData.setText("不判定∑8" + index);
                                            }
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else {
                                        //其余列
                                        if ((i - (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg)) % (angles + 1) == 1) {
                                            //频点
                                            textRenderData.setText(result2s.get(0).getOften() + "∑6" + index);
                                        } else {
                                            //最差值
                                            String[] value = result2s.get(0).getValue().split("\\],\\[");
                                            String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
                                            textRenderData.setText(split[0] + "∑7" + i);
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                }
                                if (inspectionItemSubclass.contains("幅度偏差")) {
                                    List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("幅度偏差")).collect(Collectors.toList());
                                    List<InsProductResult2> result2s = insProductResult2s.stream()
                                            .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
                                            .collect(Collectors.toList());
                                    int length = result2s.get(0).getPort().split(",").length;
                                    int portRow2 = (length % 8 == 0 ? length / 8 : length / 8 + 1);
                                    int k = (angles + 1) * portRow2;
                                    if (i > (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) && i <= (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) + k) {
                                        mm = (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) + k;
                                        if (itemSet.add("幅度偏差")) {
                                            index.getAndIncrement();
                                        }
                                        //幅度偏差所在行
                                        if (j == 0) {
                                            //第一列
                                            textRenderData.setText(index + "∑1" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 1) {
                                            //第二列
                                            textRenderData.setText("幅度偏差∑2" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 2) {
                                            //第三列
                                            textRenderData.setText(products.get(0).getUnit() + "∑3" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 3) {
                                            //第四列
                                            textRenderData.setText(products.get(0).getAsk() + "∑4" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 4) {
                                            //第五列
                                            if ((i - (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh)) % (angles + 1) == 1) {
                                                //频段
                                                textRenderData.setText("频段");
                                            } else {
                                                //角度
                                                textRenderData.setText(result2s.get(0).getAngle().split(",")[(i + (angles - 1)) % (angles + 1)]);
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == bb - 1) {
                                            //最后一列
                                            if ((i - (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh)) % (angles + 1) == 1) {
                                                textRenderData.setText("/");
                                            } else {
                                                //结论
                                                if (products.get(0).getInsResult() == 1) {
                                                    textRenderData.setText("合格∑8" + index + ((i - (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh)) / (angles + 2)));
                                                } else if (products.get(0).getInsResult() == 0) {
                                                    textRenderData.setText("不合格∑8" + index + ((i - (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh)) / (angles + 2)));
                                                } else {
                                                    textRenderData.setText("不判定∑8" + index + ((i - (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh)) / (angles + 2)));
                                                }
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else {
                                            //其余列
                                            if ((i - (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh)) % (angles + 1) == 1) {
                                                //频段
                                                try {
                                                    textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) + ((i - (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh)) / (angles + 2)) * Math.min(length, 8)]);
                                                } catch (Exception e) {
                                                    textRenderData.setText("");
                                                }
                                            } else {
                                                //最差值
                                                String[] value = result2s.get(0).getValue().split("\\],\\[");
                                                String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
                                                try {
                                                    textRenderData.setText(split[(j - 5) + ((i - (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh)) / (angles + 2)) * Math.min(length, 8)]);
                                                } catch (Exception e) {
                                                    textRenderData.setText("");
                                                }
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        }
                                    }
                                }
                                if (inspectionItemSubclass.contains("最大相位偏差")) {
                                    List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("最大相位偏差")).collect(Collectors.toList());
                                    List<InsProductResult2> result2s = insProductResult2s.stream()
                                            .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId()))
                                            .collect(Collectors.toList());
                                    int length = result2s.get(0).getPort().split(",").length;
                                    int portRow2 = (length % 8 == 0 ? length / 8 : length / 8 + 1);
                                    int k = (angles + 1) * portRow2;
                                    if (i > (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm)) {
                                        if (itemSet.add("最大相位偏差")) {
                                            index.getAndIncrement();
                                        }
                                        //最大相位偏差所在行
                                        if (j == 0) {
                                            //第一列
                                            textRenderData.setText(index + "∑1" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 1) {
                                            //第二列
                                            textRenderData.setText("最大相位偏差∑2" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 2) {
                                            //第三列
                                            textRenderData.setText(products.get(0).getUnit() + "∑3" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 3) {
                                            //第四列
                                            textRenderData.setText(products.get(0).getAsk() + "∑4" + index);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == 4) {
                                            //第五列
                                            if ((i - (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm)) % (angles + 1) == 1) {
                                                //频段
                                                textRenderData.setText("频段");
                                            } else {
                                                //角度
                                                textRenderData.setText(result2s.get(0).getAngle().split(",")[(i + (angles - 1)) % (angles + 1)]);
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (j == bb - 1) {
                                            //最后一列
                                            if ((i - (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm)) % (angles + 1) == 1) {
                                                textRenderData.setText("/");
                                            } else {
                                                //结论
                                                if (products.get(0).getInsResult() == 1) {
                                                    textRenderData.setText("合格∑8" + index + ((i - (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm)) / (angles + 2)));
                                                } else if (products.get(0).getInsResult() == 0) {
                                                    textRenderData.setText("不合格∑8" + index + ((i - (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm)) / (angles + 2)));
                                                } else {
                                                    textRenderData.setText("不判定∑8" + index + ((i - (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm)) / (angles + 2)));
                                                }
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else {
                                            //其余列
                                            if ((i - (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm)) % (angles + 1) == 1) {
                                                //端口
                                                try {
                                                    textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) + ((i - (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm)) / (angles + 2)) * Math.min(length, 8)]);
                                                } catch (Exception e) {
                                                    textRenderData.setText("");
                                                }
                                            } else {
                                                //最差值
                                                String[] value = result2s.get(0).getValue().split("\\],\\[");
                                                String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(",");
                                                try {
                                                    textRenderData.setText(split[(j - 5) + ((i - (mm == 0 ? (hh == 0 ? (gg == 0 ? (ff == 0 ? (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) : ff) : gg) : hh) : mm)) / (angles + 2)) * Math.min(length, 8)]);
                                                } catch (Exception e) {
                                                    textRenderData.setText("");
                                                }
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    rowRenderData.setCells(cells);
                    if (rowRenderData.getCells().size() != 0) {
                        rows.add(rowRenderData);
                        i=u;
                    }
                }
                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("每行单元格不相等");
                    }
                rowRenderData.setCells(cells);
                if (rowRenderData.getCells().size() != 0) {
                    rows.add(rowRenderData);
                }
                TableStyle tableStyle = new TableStyle();
                tableStyle.setWidth(XWPFTable.DEFAULT_PERCENTAGE_WIDTH);
                tableStyle.setAlign(TableRowAlign.CENTER);
                BorderStyle borderStyle = new BorderStyle();
                borderStyle.setColor("000000");
                borderStyle.setType(XWPFTable.XWPFBorderType.THICK);
                borderStyle.setSize(4);
                tableStyle.setLeftBorder(borderStyle);
                tableStyle.setTopBorder(borderStyle);
                tableStyle.setRightBorder(borderStyle);
                tableStyle.setBottomBorder(borderStyle);
                tableRenderData.setTableStyle(tableStyle);
                Map<String, Object> table2 = new HashMap<>();
                table2.put("table2", tableRenderData);
                table2.put("title", title);
                tables2.add(table2);
                lable.getAndIncrement();
            });
            }
            TableRenderData tableRenderData = new TableRenderData();
            tableRenderData.setRows(rows);
            int countSize = tableRenderData.getRows().get(0).getCells().size();
            for (RowRenderData row : tableRenderData.getRows()) {
                if (row.getCells().size() != countSize) {
                    throw new ErrorException("每行单元格不相等");
                }
            }
            TableStyle tableStyle = new TableStyle();
            tableStyle.setWidth(XWPFTable.DEFAULT_PERCENTAGE_WIDTH);
            tableStyle.setAlign(TableRowAlign.CENTER);
            BorderStyle borderStyle = new BorderStyle();
            borderStyle.setColor("000000");
            borderStyle.setType(XWPFTable.XWPFBorderType.THICK);
            borderStyle.setSize(4);
            tableStyle.setLeftBorder(borderStyle);
            tableStyle.setTopBorder(borderStyle);
            tableStyle.setRightBorder(borderStyle);
            tableStyle.setBottomBorder(borderStyle);
            tableRenderData.setTableStyle(tableStyle);
            Map<String, Object> table2 = new HashMap<>();
            table2.put("table2", tableRenderData);
            table2.put("title", title);
            tables2.add(table2);
            lable.getAndIncrement();
        });
    }
    //电路报告用于总报告的方法(无源器件)
    private void getWord2(String term, InsOrderState insOrderState, List<Map<String, Object>> tables2) {
        AtomicInteger index = new AtomicInteger();
        String title = term + "电性能参数";
        //查询样品
        InsSample insSample = insSampleMapper.selectById(insOrderState.getInsSampleId());
        //查询项目
        List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                .eq(InsProduct::getState, 1)
                .eq(InsProduct::getInsSampleId, insSample.getId())
                .eq(InsProduct::getSonLaboratory, "电路试验"));
        //计算行数
        List<InsProductResult2VO> result2VOS = new ArrayList<>();
        List<InsProductResult2VO> insProductResult2VOS = insProductResult2Mapper.selectWordHang(insOrderState.getNum(), insProducts.stream().map(InsProduct::getId).collect(Collectors.toList()));
        for (InsProductResult2VO insProductResult2VO : insProductResult2VOS) {
            String[] split = insProductResult2VO.getPort().split(",");
            String value = insProductResult2VO.getValue().replace("[[", "").replace("]]", "");
            if (split.length > 1) {
                for (int i = 0; i < split.length; i++) {
                    InsProductResult2VO insProductResult2VO1 = new InsProductResult2VO();
                    BeanUtils.copyProperties(insProductResult2VO, insProductResult2VO1);
                    //端口
                    insProductResult2VO1.setPort(split[i]);
                    //值
                    insProductResult2VO1.setValue(value.split(",")[i].replace("\"", ""));
                    result2VOS.add(insProductResult2VO1);
                }
            } else {
                insProductResult2VO.setValue(value.replace("\"", ""));
                result2VOS.add(insProductResult2VO);
            }
        }
        List<RowRenderData> rows = new ArrayList<>();
        Set<String> itemSet = new HashSet<>();
        //表格的行数
        for (int i = 0; i < result2VOS.size(); i++) {
            RowRenderData rowRenderData = new RowRenderData();
            RowStyle rowStyle = new RowStyle();
            rowStyle.setHeight(40);
            rowRenderData.setRowStyle(rowStyle);
            List<CellRenderData> cells = new ArrayList<>();
            //表格的列数
            for (int j = 0; j < 8; j++) {
                CellRenderData cellRenderData = new CellRenderData();
                CellStyle cellStyle = new CellStyle();
                cellStyle.setVertAlign(XWPFTableCell.XWPFVertAlign.CENTER);
                cellRenderData.setCellStyle(cellStyle);
                List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>();
                ParagraphRenderData paragraphRenderData = new ParagraphRenderData();
                ParagraphStyle paragraphStyle = new ParagraphStyle();
                paragraphStyle.setAlign(ParagraphAlignment.CENTER);
                paragraphRenderData.setParagraphStyle(paragraphStyle);
                List<RenderData> renderData = new ArrayList<>();
                TextRenderData textRenderData = new TextRenderData();
                Style style = new Style();
                style.setFontFamily("宋体");
                style.setColor("000000");
                textRenderData.setStyle(style);
                if (j == 0) {
                    //第一列(序号)
                    if (itemSet.add(result2VOS.get(i).getInspectionItemSubclass())) {
                        index.getAndIncrement();
                    }
                    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(result2VOS.get(i).getInspectionItemSubclass() + "∑2" + index);
                    renderData.add(textRenderData);
                    paragraphRenderData.setContents(renderData);
                    paragraphRenderDataList.add(paragraphRenderData);
                    cellRenderData.setParagraphs(paragraphRenderDataList);
                    cells.add(cellRenderData);
                }
                else if (j == 2) {
                    //第三列(单位)
                    textRenderData.setText(result2VOS.get(i).getUnit() + "∑3" + index);
                    renderData.add(textRenderData);
                    paragraphRenderData.setContents(renderData);
                    paragraphRenderDataList.add(paragraphRenderData);
                    cellRenderData.setParagraphs(paragraphRenderDataList);
                    cells.add(cellRenderData);
                } else if (j == 3) {
                    //第四列(标准与要求)
                    textRenderData.setText(result2VOS.get(i).getAsk());
                    renderData.add(textRenderData);
                    paragraphRenderData.setContents(renderData);
                    paragraphRenderDataList.add(paragraphRenderData);
                    cellRenderData.setParagraphs(paragraphRenderDataList);
                    cells.add(cellRenderData);
                } else if (j == 4) {
                    //第五列(端口)
                    try {
                        textRenderData.setText(result2VOS.get(i).getPort());
                    } catch (Exception e) {
                        textRenderData.setText("");
                    }
                    renderData.add(textRenderData);
                    paragraphRenderData.setContents(renderData);
                    paragraphRenderDataList.add(paragraphRenderData);
                    cellRenderData.setParagraphs(paragraphRenderDataList);
                    cells.add(cellRenderData);
                } else if (j == 5) {
                    //第六列(频段)
                    try {
                        textRenderData.setText(result2VOS.get(i).getFrequency());
                    } catch (Exception e) {
                        textRenderData.setText("");
                    }
                    renderData.add(textRenderData);
                    paragraphRenderData.setContents(renderData);
                    paragraphRenderDataList.add(paragraphRenderData);
                    cellRenderData.setParagraphs(paragraphRenderDataList);
                    cells.add(cellRenderData);
                } else if (j == 6) {
                    //第七列(检验值)
                    try {
                        textRenderData.setText(result2VOS.get(i).getValue());
                    } catch (Exception e) {
                        textRenderData.setText("");
                    }
                    renderData.add(textRenderData);
                    paragraphRenderData.setContents(renderData);
                    paragraphRenderDataList.add(paragraphRenderData);
                    cellRenderData.setParagraphs(paragraphRenderDataList);
                    cells.add(cellRenderData);
                } else {
                    //最后一列(结论)
                    try {
                        if (result2VOS.get(i).getResult().equals("1")) {
                            textRenderData.setText("合格");
                        } else if (result2VOS.get(i).getResult().equals("0")) {
                            textRenderData.setText("不合格");
                        } else {
                            textRenderData.setText("不判定");
                        }
                    } catch (Exception e) {
                        textRenderData.setText("");
                    }
                    renderData.add(textRenderData);
                    paragraphRenderData.setContents(renderData);
                    paragraphRenderDataList.add(paragraphRenderData);
                    cellRenderData.setParagraphs(paragraphRenderDataList);
                    cells.add(cellRenderData);
                }
            }
            rowRenderData.setCells(cells);
            if (rowRenderData.getCells().size() != 0) {
                rows.add(rowRenderData);
            }
        }
        TableRenderData tableRenderData = new TableRenderData();
        tableRenderData.setRows(rows);
        int countSize = tableRenderData.getRows().get(0).getCells().size();
        for (RowRenderData row : tableRenderData.getRows()) {
            if (row.getCells().size() != countSize) {
                throw new ErrorException("每行单元格不相等");
            }
        }
        TableStyle tableStyle = new TableStyle();
        tableStyle.setWidth(XWPFTable.DEFAULT_PERCENTAGE_WIDTH);
        tableStyle.setAlign(TableRowAlign.CENTER);
        BorderStyle borderStyle = new BorderStyle();
        borderStyle.setColor("000000");
        borderStyle.setType(XWPFTable.XWPFBorderType.THICK);
        borderStyle.setSize(4);
        tableStyle.setLeftBorder(borderStyle);
        tableStyle.setTopBorder(borderStyle);
        tableStyle.setRightBorder(borderStyle);
        tableStyle.setBottomBorder(borderStyle);
        tableRenderData.setTableStyle(tableStyle);
        Map<String, Object> table2 = new HashMap<>();
        table2.put("table2", tableRenderData);
        table2.put("title", title);
        tables2.add(table2);
    }
    // 水平合并单元格
@@ -3738,4 +5636,43 @@
            }
        }
    }
}
    // 查找文本首次出现行
    private int findFirstTargetIndex(WordprocessingMLPackage targetDoc,String textStr){
        int targetIndex = -1;
        if(StringUtils.isEmpty(textStr)){
            return targetIndex;
        }
        try {
            List<Object> targetContent = targetDoc.getMainDocumentPart().getContent();
            // 查找目标段落
            for (int i = 0; i < targetContent.size(); i++) {
                Object obj = targetContent.get(i);
                if (obj instanceof P) {
                    P paragraph = (P) obj;
                    for (Object runObj : paragraph.getContent()) {
                        if (runObj instanceof R) {
                            R run = (R) runObj;
                            for (Object textObj : run.getContent()) {
                                if (textObj instanceof JAXBElement) {
                                    JAXBElement jaxbElement = (JAXBElement) textObj;
                                    if(jaxbElement.getValue() instanceof Text){
                                        Text text = (Text) jaxbElement.getValue();
                                        if (text.getValue().contains(textStr)) {
                                            targetIndex = i;
                                            return targetIndex;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        } catch (Exception e) {
            log.error("findFirstTargetIndex<<<<<<<<<<:{}",e.getMessage());
        }finally {
            return targetIndex;
        }
    }
}