zss
2024-07-11 a3ba94e23fec4281502a94221f65cc0567eb02a8
温度循环报告完成
已修改7个文件
1570 ■■■■■ 文件已修改
framework/src/main/java/com/yuanchu/mom/utils/GiveCode.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/mapper/InsProductResultMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java 1482 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardProductListServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InsProductResultMapper.xml 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/static/report-template.docx 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/com/yuanchu/mom/utils/GiveCode.java
@@ -33,7 +33,7 @@
        String date = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
        String date2 = LocalDate.now().format(DateTimeFormatter.ofPattern(patten));
        int num;
        num = systemLogMapper.countRowsByNow3(tableName, companyId, laboratory, LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))) + 1;
        num = systemLogMapper.countRowsByNow3(tableName, companyId, laboratory, LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM"))) + 1;
        String nums = num + "";
        if (nums.length() == 1) nums = "00" + num;
        else if (nums.length() == 2) nums = "0" + num;
inspect-server/src/main/java/com/yuanchu/mom/mapper/InsProductResultMapper.java
@@ -2,6 +2,9 @@
import com.yuanchu.mom.pojo.InsProductResult;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author Administrator
@@ -11,6 +14,7 @@
*/
public interface InsProductResultMapper extends BaseMapper<InsProductResult> {
    List<InsProductResult> selDetail(@Param("ips") List<Integer> ips);
}
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
@@ -499,6 +499,11 @@
                    insSample.setInsState(2);
                }
                insSampleMapper.updateById(insSample);
                /*校验一下result表*/
                List<InsProductResult> insProductResults = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, insProduct.getId()).orderByDesc(InsProductResult::getId));
                if (insProductResults.size() > 1) {
                    insProductResultMapper.deleteById(insProductResults.get(0));
                }
            });
            return insContext.keySet().stream().findFirst().orElse(null);
        }).thenAccept(res -> {
@@ -663,19 +668,19 @@
                            int count3 = 0;
                            String str = "";
                            String s = JSON.parseObject(JSON.toJSONString(v.get("ps"))).get("value") + "";
                            if ("检验值".equals(s) || "设备名称".equals(s) || "设备编码".equals(s) || "试验方法".equals(s) || "检测方法".equals(s)) {
                            if (s.contains("检验值") || s.contains("设备名称") || s.contains("设备编码") || s.contains("试验方法") || s.contains("检测方法")) {
                                delSet.add(jo1.get("c") + "");
                                continue;
                            }
                            for (JSONObject jo2 : temp) {
                                JSONObject v2 = JSON.parseObject(JSON.toJSONString(jo2.get("v")));
                                if (jo1.get("r").equals(jo2.get("r"))) {
                                    if (v2.get("ps") != null && JSON.parseObject(JSON.toJSONString(v2.get("ps"))).get("value").equals("检验项")) {
                                    if (v2.get("ps") != null && JSON.parseObject(JSON.toJSONString(v2.get("ps"))).get("value").toString().contains("检验项")) {
                                        if (count3 == 0) {
                                            str += v2.get("v");
                                            count3 += 1;
                                        }
                                    } else if (v2.get("ps") != null && JSON.parseObject(JSON.toJSONString(v2.get("ps"))).get("value").equals("检验子项")) {
                                    } else if (v2.get("ps") != null && JSON.parseObject(JSON.toJSONString(v2.get("ps"))).get("value").toString().contains("检验子项")) {
                                        if (count3 == 1) {
                                            str += v2.get("v");
                                            count3 += 1;
@@ -720,11 +725,11 @@
                        InsProduct p = pMap.get(jo1.get("r") + "");
                        if (p != null && v.get("ps") != null) {
                            String value = JSON.parseObject(JSON.toJSONString(v.get("ps"))).get("value") + "";
                            if (value.equals("要求值")) {
                            if (value.contains("要求值")) {
                                textRenderData.setText(ObjectUtils.isNotEmpty(p.getTell()) ? p.getTell() : "");
                            } else if (value.equals("单位")) {
                            } else if (value.contains("单位")) {
                                textRenderData.setText(p.getUnit());
                            } else if (value.equals("结论")) {
                            } else if (value.contains("结论")) {
                                switch (p.getInsResult()) {
                                    case 1:
                                        textRenderData.setText("√");
@@ -738,35 +743,35 @@
                                        textRenderData.setText("-");
                                        break;
                                }
                            } else if (value.equals("序号")) {
                            } else if (value.contains("序号")) {
                                if (itemSet.add(p.getInspectionItem())) {
                                    index.getAndIncrement();
                                }
                                textRenderData.setText(index + "");
                            } else if (value.equals("计算值")) {
                            } else if (value.contains("计算值")) {
                                JSONArray jsonArray = JSON.parseArray(p.getInsProductResult().getComValue());
                                textRenderData.setText((JSON.parseObject(JSON.toJSONString(jsonArray.get(0))).get("v") + "").equals("") ? "/" : JSON.parseObject(JSON.toJSONString(jsonArray.get(0))).get("v") + "");
                            } else if (value.equals("最终值")) {
                            } else if (value.contains("最终值")) {
                                textRenderData.setText(p.getLastValue());
                            } else if (value.equals("样品编号")) {
                            } else if (value.contains("样品编号")) {
                                textRenderData.setText(a.getSampleCode());
                            } else if (value.equals("样品型号")) {
                            } else if (value.contains("样品型号")) {
                                textRenderData.setText(a.getModel());
                            } else if (value.equals("样品名称")) {
                            } else if (value.contains("样品名称")) {
                                textRenderData.setText(a.getSample());
                            } else if (value.equals("试验方法")) {
                            } else if (value.contains("试验方法")) {
                                textRenderData.setText(p.getMethodS());
                            } else if (value.equals("检验项")) {
                            } else if (value.contains("检验项")) {
                                if (ObjectUtils.isEmpty(p.getInspectionItemEn())) {
                                    textRenderData.setText(p.getInspectionItem());
                                } else {
                                    textRenderData.setText(p.getInspectionItem() + "&" + p.getInspectionItemEn());
                                    textRenderData.setText(p.getInspectionItem() + "@" + p.getInspectionItemEn());
                                }
                            } else if (value.equals("检验子项")) {
                            } else if (value.contains("检验子项")) {
                                if (ObjectUtils.isEmpty(p.getInspectionItemSubclassEn())) {
                                    textRenderData.setText(p.getInspectionItemSubclass());
                                } else {
                                    textRenderData.setText(p.getInspectionItemSubclass() + "&" + p.getInspectionItemSubclassEn());
                                    textRenderData.setText(p.getInspectionItemSubclass() + "@" + p.getInspectionItemSubclassEn());
                                }
                            } else {
                                textRenderData.setText(v.get("v") == null ? "" : v.get("v") + "");
@@ -774,9 +779,9 @@
                        } else if (p == null && v.get("ps") != null) {
                            String value = JSON.parseObject(JSON.toJSONString(v.get("ps"))).get("value") + "";
                            p = pMap.get(pMap.keySet().iterator().next());
                            if (value.equals("最终值")) {
                            if (value.contains("最终值")) {
                                textRenderData.setText(p.getLastValue());
                            } else if (value.equals("结论")) {
                            } else if (value.contains("结论")) {
                                switch (p.getInsResult()) {
                                    case 1:
                                        textRenderData.setText("✔");
@@ -790,11 +795,11 @@
                                        textRenderData.setText("-");
                                        break;
                                }
                            } else if (value.equals("样品编号")) {
                            } else if (value.contains("样品编号")) {
                                textRenderData.setText(a.getSampleCode());
                            } else if (value.equals("样品型号")) {
                            } else if (value.contains("样品型号")) {
                                textRenderData.setText(a.getModel());
                            } else if (value.equals("样品名称")) {
                            } else if (value.contains("样品名称")) {
                                textRenderData.setText(a.getSample());
                            } else {
                                textRenderData.setText(v.get("v") == null ? "" : v.get("v") + "");
@@ -947,12 +952,15 @@
                resultCh.set("依据委托要求,所检项目均符合要求。");
                resultEn.set("According to commissioned requirements, all the tested items meet the requirements.");
            }
            /*光纤的检验报告*/
            /*光纤配置的检验报告*/
            //先判断是否有光纤配置
            List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getState, 1).in(InsProduct::getInsSampleId, insSamples.stream().map(InsSample::getId).distinct().collect(Collectors.toList())));
            List<Integer> collect = insProducts.stream().map(InsProduct::getInsFiberId).filter(str -> str != null).collect(Collectors.toList());
            List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                    .eq(InsProduct::getState, 1)
                    .in(InsProduct::getInsSampleId, insSamples.stream().map(InsSample::getId).distinct().collect(Collectors.toList()))
                    .isNotNull(InsProduct::getInsFiberId)
                    .isNull(InsProduct::getInspectionItemClass));//用检验分项字段区别光纤配置与温度循环
            List<Map<String, Object>> tables2 = new ArrayList<>();
            if (collect.size() > 0) {
            if (insProducts.size() > 0) {
                samples.forEach(sample -> {
                    List<InsProduct> insProducts1 = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                            .eq(InsProduct::getState, 1)
@@ -971,6 +979,7 @@
                    long size2 = insProducts1.stream().map(InsProduct::getInsFiberId).distinct().count();
                    long number = 7;
                    long k = 0;
                    long index2 = 1;
                    for (long c = 0; c < size; c++) {
                        if (c % number == 0) {
                            List<RowRenderData> rows = new ArrayList<>();
@@ -1014,7 +1023,7 @@
                                        //第一行
                                        if (j == 0) {
                                            //第一列
                                            textRenderData.setText("管色标&Pipe∑100");
                                            textRenderData.setText("管色标@Pipe∑100");
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
@@ -1022,7 +1031,7 @@
                                            cells.add(cellRenderData);
                                        } else if (j == 1) {
                                            //第二列
                                            textRenderData.setText("光纤色标&Scanning Number∑101");
                                            textRenderData.setText("光纤色标@Scanning Number∑101");
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
@@ -1035,7 +1044,7 @@
                                            } catch (Exception e) {
                                                continue;
                                            }
                                            textRenderData.setText(filteredProducts.get((int) (j - 2 + k)).getInspectionItem() + "&" + insProducts1.get((int) (j - 2 + k)).getInspectionItemEn() + "∑" + (j + 101 + k));
                                            textRenderData.setText(filteredProducts.get((int) (j - 2 + k)).getInspectionItem() + "@" + insProducts1.get((int) (j - 2 + k)).getInspectionItemEn() + "∑" + (j + 101 + k));
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
@@ -1046,7 +1055,7 @@
                                        //有父子项目关系的第三行
                                        if (j == 0) {
                                            //第一列
                                            textRenderData.setText("管色标&Pipe∑100");
                                            textRenderData.setText("管色标@Pipe∑100");
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
@@ -1054,7 +1063,7 @@
                                            cells.add(cellRenderData);
                                        } else if (j == 1) {
                                            //第二列
                                            textRenderData.setText("光纤色标&Scanning Number∑101");
                                            textRenderData.setText("光纤色标@Scanning Number∑101");
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
@@ -1069,9 +1078,9 @@
                                            }
                                            //判断是否有项目子类
                                            if (filteredProducts.get((int) (j - 2 + k)).getInspectionItemSubclass().equals("") || filteredProducts.get((int) (j - 2 + k)).getInspectionItemSubclass() == null) {
                                                textRenderData.setText(filteredProducts.get((int) (j - 2 + k)).getInspectionItem() + "&" + filteredProducts.get((int) (j - 2 + k)).getInspectionItemEn() + "∑" + (j + 101 + k));
                                                textRenderData.setText(filteredProducts.get((int) (j - 2 + k)).getInspectionItem() + "@" + filteredProducts.get((int) (j - 2 + k)).getInspectionItemEn() + "∑" + (j + 101 + k));
                                            } else {
                                                textRenderData.setText(filteredProducts.get((int) (j - 2 + k)).getInspectionItemSubclass() + "&" + filteredProducts.get((int) (j - 2 + k)).getInspectionItemSubclassEn());
                                                textRenderData.setText(filteredProducts.get((int) (j - 2 + k)).getInspectionItemSubclass() + "@" + filteredProducts.get((int) (j - 2 + k)).getInspectionItemSubclassEn());
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
@@ -1158,12 +1167,1331 @@
                            table.put("report", insReport);
                            table.put("sample_number", sample.getSampleCode());
                            table.put("type", sample.getModel());
                            table.put("index2", index2);
                            tables2.add(table);
                            k += 7;
                            index2++;
                        }
                    }
                });
            }
            tables2.forEach(table2 -> {
                table2.put("tableSize2", tables2.size());
            });
            /*温度循环的检验报告*/
            //先判断是否有温度循环
            List<InsProduct> insProducts3 = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                    .eq(InsProduct::getState, 1)
                    .in(InsProduct::getInsSampleId, insSamples.stream().map(InsSample::getId).distinct().collect(Collectors.toList()))
                    .isNotNull(InsProduct::getInspectionItemClass)//用检验分项字段区别光纤配置与温度循环
                    .isNotNull(InsProduct::getInsFiberId));
            List<Map<String, Object>> tables3 = new ArrayList<>();
            if (insProducts3.size() > 0) {
                samples.forEach(sample -> {
                    //查询温度循环下的检验项目
                    List<InsProduct> insPros = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                            .eq(InsProduct::getState, 1)
                            .eq(InsProduct::getInsSampleId, sample.getId())
                            .isNotNull(InsProduct::getInsFiberId)
                            .isNotNull(InsProduct::getInspectionItemClass));
                    //获取所有检验项目,按照循环次数,色标,温度,nm进行排序
                    Map<String, Integer> temperatureToIdMap = new HashMap<>();
                    for (InsProduct product : insPros) {
                        String temperature = product.getInspectionItemSubclass();
                        int id = product.getId();
                        temperatureToIdMap.putIfAbsent(temperature, id);
                        if (temperatureToIdMap.get(temperature) > id) {
                            temperatureToIdMap.put(temperature, id);
                        }
                    }
                    // 自定义排序
                    Collections.sort(insPros, new Comparator<InsProduct>() {
                        @Override
                        public int compare(InsProduct p1, InsProduct p2) {
                            // 首先按getInspectionItem排序
                            int result = p1.getInspectionItem().compareTo(p2.getInspectionItem());
                            if (result != 0) {
                                return result;
                            }
                            // 如果getInspectionItem相等,再按getInsFiberId排序
                            result = p1.getInsFiberId().compareTo(p2.getInsFiberId());
                            if (result != 0) {
                                return result;
                            }
                            // 如果getInsFiberId也相等,最后按getInspectionItemSubclass排序
                            return compareTemperature(p1.getInspectionItemSubclass(), p2.getInspectionItemSubclass());
                        }
                        private int compareTemperature(String temp1, String temp2) {
                            // 根据温度对应的id进行排序
                            int id1 = temperatureToIdMap.get(temp1);
                            int id2 = temperatureToIdMap.get(temp2);
                            return Integer.compare(id1, id2);
                        }
                    });
                    List<InsProduct> filteredProducts = insPros;
                    //获取所有光纤色标
                    List<InsFiber> insFibers = insFiberMapper.selectBatchIds(insPros.stream().map(InsProduct::getInsFiberId).collect(Collectors.toList()));
                    //获取所有的温度(除了第一个20℃(常温))
                    List<String> temperature = insPros.stream().map(InsProduct::getInspectionItemSubclass).filter(s -> !s.equals("20℃(常温)")).distinct().collect(Collectors.toList());
                    //获取所有的温度(除了第一个20℃(常温)和最后一个20℃)
                    List<String> temperature2 = insPros.stream().map(InsProduct::getInspectionItemSubclass).filter(s -> !s.equals("20℃(常温)")).filter(s -> !s.equals("20℃")).distinct().collect(Collectors.toList());
                    //获取所有的光纤项目(1310nm)
                    List<String> nm = insPros.stream().map(InsProduct::getInspectionItemClass).distinct().collect(Collectors.toList());
                    //获取所有检验项目的数量(列数)(这里需要注意两个温度,一个是20℃常温(只有第一次循环才有),另一个是20℃(只有最后一个循环才有))
                    long size = insPros.stream().map(insProduct -> {
                        return (insProduct.getInspectionItemSubclass() + insProduct.getInspectionItemClass());
                    }).distinct().collect(Collectors.toList()).size();
                    //获取循环次数(表格的数量)
                    int size1 = insPros.stream().map(InsProduct::getInspectionItem).distinct().collect(Collectors.toList()).size();
                    //获取光纤色标的数量(行数)
                    long size2 = insPros.stream().map(InsProduct::getInsFiberId).distinct().count();
                    long index3 = 1;
                    for (int i = 0; i < size1; i++) {
                        //按照循环次数生成对应数量的表格
                        List<RowRenderData> rows = new ArrayList<>();
                        //表格的行数(光纤色标的数量+8)
                        for (long j = 0; j < size2 + 8; j++) {
                            RowRenderData rowRenderData = new RowRenderData();
                            RowStyle rowStyle = new RowStyle();
                            rowStyle.setHeight(40);
                            rowRenderData.setRowStyle(rowStyle);
                            List<CellRenderData> cells = new ArrayList<>();
                            //表格的列数需要根据循环的次数对应的改变
                            if (size1 == 1) {
                                //如果只循环一次,那么列数包括20℃和20℃常温(2 * size - nm.size()+1)
                                for (long k = 0; k < 2 * size - nm.size() + 1; k++) {
                                    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 (k <= (2 * size - nm.size() + 1) / 4) {
                                            //第一列
                                            textRenderData.setText("样品编号@Sample number∑1000");
                                        } else if (k > (2 * size - nm.size() + 1) / 4 && k <= (2 * size - nm.size() + 1) / 2) {
                                            //第二列
                                            textRenderData.setText(sample.getSampleCode() + "∑998");
                                        } else if (k > (2 * size - nm.size() + 1) / 2 && k < 2 * size - nm.size()) {
                                            //第三列
                                            textRenderData.setText("规格型号@Type ∑999");
                                        } else {
                                            //第四列
                                            textRenderData.setText(sample.getModel());
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                    else if (j == 1) {
                                        //第二行
                                        if (k == 0) {
                                            //第一列
                                            textRenderData.setText("光纤色标@ScanningNumber∑1004");
                                        } else {
                                            textRenderData.setText("检测结果(循环" + (i + 1) + ")∑1005");
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                    else if (j == 2) {
                                        //第三行
                                        if (k == 0) {
                                            //第一列
                                            textRenderData.setText("光纤色标@ScanningNumber∑1004");
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (k > 0 && k <= nm.size()) {
                                            //第二列
                                            textRenderData.setText("20℃(常温)∑1006");
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else {
                                            //根据温度循环
                                            for (int i1 = 0; i1 < temperature.size(); i1++) {
                                                if (k > (2 * i1 + 1) * nm.size() && k <= (2 * i1 + 3) * nm.size()) {
                                                    //第三列
                                                    textRenderData.setText(temperature.get(i1) + "∑52" + i1);
                                                    renderData.add(textRenderData);
                                                    paragraphRenderData.setContents(renderData);
                                                    paragraphRenderDataList.add(paragraphRenderData);
                                                    cellRenderData.setParagraphs(paragraphRenderDataList);
                                                    cells.add(cellRenderData);
                                                }
                                            }
                                        }
                                    }
                                    else if (j == 3) {
                                        //第四行
                                        if (k == 0) {
                                            //第一列
                                            textRenderData.setText("光纤色标@ScanningNumber∑1004");
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (k > 0 && k <= nm.size()) {
                                            //第二列和第三列
                                            for (int i1 = 0; i1 < nm.size(); i1++) {
                                                if (k == i1 + 1) {
                                                    textRenderData.setText(nm.get(i1));
                                                    renderData.add(textRenderData);
                                                    paragraphRenderData.setContents(renderData);
                                                    paragraphRenderDataList.add(paragraphRenderData);
                                                    cellRenderData.setParagraphs(paragraphRenderDataList);
                                                    cells.add(cellRenderData);
                                                }
                                            }
                                        } else {
                                            for (int j1 = 0; j1 < temperature.size(); j1++) {
                                                for (int i1 = 0; i1 < nm.size(); i1++) {
                                                    if (k > (i1 + 1 + 2 * j1) * nm.size() && k <= (i1 + 1 + 2 * j1) * nm.size() + 2) {
                                                        textRenderData.setText(nm.get(i1));
                                                        renderData.add(textRenderData);
                                                        paragraphRenderData.setContents(renderData);
                                                        paragraphRenderDataList.add(paragraphRenderData);
                                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                                        cells.add(cellRenderData);
                                                    }
                                                }
                                            }
                                        }
                                    }
                                    else if (j == 4) {
                                        //第五行
                                        if (k == 0) {
                                            //第一列
                                            textRenderData.setText("光纤色标@ScanningNumber∑1004");
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (k > 0 && k <= nm.size()) {
                                            //第二列和第三列
                                            textRenderData.setText("衰减");
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (k > nm.size() && (k - (nm.size())) % 2 == 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 == size2 + 5) {
                                        //倒数第三行
                                        if (k == 0) {
                                            //第一列
                                            textRenderData.setText("|max|");
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (k <= nm.size()) {
                                            //计算20℃常温的第(k-1)个项目的所有色标的平均值的最大值
                                            List<Integer> ips = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                                                    .eq(InsProduct::getInsSampleId, sample.getId())
                                                    .isNotNull(InsProduct::getInsFiberId)
                                                    .eq(InsProduct::getInspectionItem, i + 1)
                                                    .eq(InsProduct::getInspectionItemSubclass, "20℃(常温)")
                                                    .eq(InsProduct::getInspectionItemClass, nm.get((int) (k - 1)))).stream().map(InsProduct::getId).collect(Collectors.toList());
                                            List<InsProductResult> insProductResults = insProductResultMapper.selDetail(ips);
                                            Optional<String> max = insProductResults.stream().map(insProductResult -> {
                                                return insProductResult.getComValue().split(":")[1].split("\"")[1];
                                            }).filter(value -> !value.isEmpty())
                                                    .max(String::compareTo);
                                            if (max.isPresent()) {
                                                textRenderData.setText(max.get());
                                            } else {
                                                textRenderData.setText("");
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if ((k - (nm.size())) % 2 == 0) {
                                            //计算第()温度的第()个项目的所有色标的最终值的最大值
                                            Optional<String> max = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                                                    .eq(InsProduct::getInsSampleId, sample.getId())
                                                    .isNotNull(InsProduct::getInsFiberId)
                                                    .eq(InsProduct::getInspectionItem, i + 1)
                                                    .eq(InsProduct::getInspectionItemSubclass, temperature.get((int) ((k / (nm.size() + 2)) - 1)))
                                                    .eq(InsProduct::getInspectionItemClass, nm.get((int) ((k - (nm.size() + 2)) / 2 % nm.size()))))
                                                    .stream().map(InsProduct::getLastValue)
                                                    .filter(value -> !value.isEmpty())
                                                    .max(String::compareTo);
                                            if (max.isPresent()) {
                                                textRenderData.setText(max.get());
                                            } else {
                                                textRenderData.setText("");
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else {
                                            //计算第()温度的第()个项目的所有色标的平均值的最大值
                                            List<Integer> ips = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                                                    .eq(InsProduct::getInsSampleId, sample.getId())
                                                    .isNotNull(InsProduct::getInsFiberId)
                                                    .eq(InsProduct::getInspectionItem, i + 1)
                                                    .eq(InsProduct::getInspectionItemSubclass, temperature.get((int) (((k + 1) / (nm.size() + 2)) - 1)))
                                                    .eq(InsProduct::getInspectionItemClass, nm.get((int) (((k + 1) - (nm.size() + 2)) / 2 % nm.size())))).stream().map(InsProduct::getId).collect(Collectors.toList());
                                            List<InsProductResult> insProductResults = insProductResultMapper.selDetail(ips);
                                            Optional<String> max = insProductResults.stream().map(insProductResult -> {
                                                return insProductResult.getComValue().split(":")[1].split("\"")[1];
                                            }).filter(value -> !value.isEmpty()).max(String::compareTo);
                                            if (max.isPresent()) {
                                                textRenderData.setText(max.get());
                                            } else {
                                                textRenderData.setText("");
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        }
                                    }
                                    else if (j == size2 + 6) {
                                        //倒数第二行
                                        if (k == 0) {
                                            //第一列
                                            textRenderData.setText("|∆ α max|");
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (k <= nm.size()) {
                                            textRenderData.setText("-");
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if ((k - (nm.size())) % 2 == 0) {
                                            Optional<String> max = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                                                    .eq(InsProduct::getInsSampleId, sample.getId())
                                                    .isNotNull(InsProduct::getInsFiberId)
                                                    .eq(InsProduct::getInspectionItem, i + 1)
                                                    .eq(InsProduct::getInspectionItemSubclass, temperature.get((int) ((k / (nm.size() + 2)) - 1)))
                                                    .eq(InsProduct::getInspectionItemClass, nm.get((int) ((k - (nm.size() + 2)) / 2 % nm.size()))))
                                                    .stream().map(InsProduct::getLastValue)
                                                    .filter(value -> !value.isEmpty())
                                                    .max(String::compareTo);
                                            if (max.isPresent()) {
                                                textRenderData.setText(max.get());
                                            } else {
                                                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 == size2 + 7) {
                                        //倒数第一行
                                        textRenderData.setText("“|∆ α|”表示附加衰减绝对值∑111111");
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                    else {
                                        //其余填写检验值的内容
                                        if (k == 0) {
                                            //第一列填写色标
                                            textRenderData.setText(insFibers.get((int) (j - 5)).getColor());
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if (k <= nm.size()) {
                                            //第二列和第三列填写20℃常温的平均值(result表里面的com_value)
                                            textRenderData.setText(insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, filteredProducts.get((int) ((j - 5) * (temperature.size() + 1) * nm.size() + k - 1)).getId())).getComValue().split(":")[1].split("\"")[1]);
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else if ((k - (nm.size())) % 2 == 0) {
                                            //填写衰减差就是last_value
                                            textRenderData.setText(filteredProducts.get((int) ((j - 5) * (temperature.size() + 1) * nm.size() + k / 2)).getLastValue());
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        } else {
                                            //填写其余正常温度的衰减(result表里面的com_value)
                                            textRenderData.setText(insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, filteredProducts.get((int) ((j - 5) * (temperature.size() + 1) * nm.size() + (k + 1) / 2)).getId())).getComValue().split(":")[1].split("\"")[1]);
                                            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);
                                }
                            }
                            else {
                                //如果有多次循环
                                if (i == 0) {
                                    //第一次循环的列数,那么列数包括20℃常温(2 * (size-nm.size()) -nm.size()+1)
                                    for (long k = 0; k < 2 * (size - nm.size()) - nm.size() + 1; k++) {
                                        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 (k <= (2 * (size - nm.size()) - nm.size() + 1) / 4) {
                                                //第一列
                                                textRenderData.setText("样品编号@Sample number∑1000");
                                            } else if (k > (2 * (size - nm.size()) - nm.size() + 1) / 4 && k <= (2 * (size - nm.size()) - nm.size() + 1) / 2) {
                                                //第二列
                                                textRenderData.setText(sample.getSampleCode() + "∑998");
                                            } else if (k > (2 * (size - nm.size()) - nm.size() + 1) / 2 && k < 2 * (size - nm.size()) - nm.size()) {
                                                //第三列
                                                textRenderData.setText("规格型号@Type∑999");
                                            } else {
                                                //第四列
                                                textRenderData.setText(sample.getModel());
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        }
                                        else if (j == 1) {
                                            //第二行
                                            if (k == 0) {
                                                //第一列
                                                textRenderData.setText("光纤色标@ScanningNumber∑1004");
                                            } else {
                                                textRenderData.setText("检测结果(循环" + (i + 1) + ")∑1005");
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        }
                                        else if (j == 2) {
                                            //第三行
                                            if (k == 0) {
                                                //第一列
                                                textRenderData.setText("光纤色标@ScanningNumber∑1004");
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            } else if (k > 0 && k <= nm.size()) {
                                                //第二列
                                                textRenderData.setText("20℃(常温)∑1006");
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            } else {
                                                //根据温度循环
                                                for (int i1 = 0; i1 < temperature2.size(); i1++) {
                                                    if (k > (2 * i1 + 1) * nm.size() && k <= (2 * i1 + 3) * nm.size()) {
                                                        //第三列
                                                        textRenderData.setText(temperature2.get(i1) + "∑52" + i1);
                                                        renderData.add(textRenderData);
                                                        paragraphRenderData.setContents(renderData);
                                                        paragraphRenderDataList.add(paragraphRenderData);
                                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                                        cells.add(cellRenderData);
                                                    }
                                                }
                                            }
                                        }
                                        else if (j == 3) {
                                            //第四行
                                            if (k == 0) {
                                                //第一列
                                                textRenderData.setText("光纤色标@ScanningNumber∑1004");
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            } else if (k > 0 && k <= nm.size()) {
                                                //第二列和第三列
                                                for (int i1 = 0; i1 < nm.size(); i1++) {
                                                    if (k == i1 + 1) {
                                                        textRenderData.setText(nm.get(i1));
                                                        renderData.add(textRenderData);
                                                        paragraphRenderData.setContents(renderData);
                                                        paragraphRenderDataList.add(paragraphRenderData);
                                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                                        cells.add(cellRenderData);
                                                    }
                                                }
                                            } else {
                                                for (int j1 = 0; j1 < temperature2.size(); j1++) {
                                                    for (int i1 = 0; i1 < nm.size(); i1++) {
                                                        if (k > (i1 + 1 + 2 * j1) * nm.size() && k <= (i1 + 1 + 2 * j1) * nm.size() + 2) {
                                                            textRenderData.setText(nm.get(i1));
                                                            renderData.add(textRenderData);
                                                            paragraphRenderData.setContents(renderData);
                                                            paragraphRenderDataList.add(paragraphRenderData);
                                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                                            cells.add(cellRenderData);
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                        else if (j == 4) {
                                            //第五行
                                            if (k == 0) {
                                                //第一列
                                                textRenderData.setText("光纤色标@ScanningNumber∑1004");
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            } else if (k > 0 && k <= nm.size()) {
                                                //第二列和第三列
                                                textRenderData.setText("衰减");
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            } else if (k > nm.size() && (k - (nm.size())) % 2 == 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 == size2 + 5) {
                                            //倒数第三行
                                            if (k == 0) {
                                                //第一列
                                                textRenderData.setText("|max|");
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            } else if (k <= nm.size()) {
                                                //计算20℃常温的第(k-1)个项目的所有色标的平均值的最大值
                                                List<Integer> ips = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                                                        .eq(InsProduct::getInsSampleId, sample.getId())
                                                        .isNotNull(InsProduct::getInsFiberId)
                                                        .eq(InsProduct::getInspectionItem, i + 1)
                                                        .eq(InsProduct::getInspectionItemSubclass, "20℃(常温)")
                                                        .eq(InsProduct::getInspectionItemClass, nm.get((int) (k - 1)))).stream().map(InsProduct::getId).collect(Collectors.toList());
                                                List<InsProductResult> insProductResults = insProductResultMapper.selDetail(ips);
                                                Optional<String> max = insProductResults.stream().map(insProductResult -> {
                                                    return insProductResult.getComValue().split(":")[1].split("\"")[1];
                                                }).filter(value -> !value.isEmpty())
                                                        .max(String::compareTo);
                                                if (max.isPresent()) {
                                                    textRenderData.setText(max.get());
                                                } else {
                                                    textRenderData.setText("");
                                                }
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            } else if ((k - (nm.size())) % 2 == 0) {
                                                //计算第()温度的第()个项目的所有色标的最终值的最大值
                                                Optional<String> max = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                                                        .eq(InsProduct::getInsSampleId, sample.getId())
                                                        .isNotNull(InsProduct::getInsFiberId)
                                                        .eq(InsProduct::getInspectionItem, i + 1)
                                                        .eq(InsProduct::getInspectionItemSubclass, temperature.get((int) ((k / (nm.size() + 2)) - 1)))
                                                        .eq(InsProduct::getInspectionItemClass, nm.get((int) ((k - (nm.size() + 2)) / 2 % nm.size()))))
                                                        .stream().map(InsProduct::getLastValue)
                                                        .filter(value -> !value.isEmpty())
                                                        .max(String::compareTo);
                                                if (max.isPresent()) {
                                                    textRenderData.setText(max.get());
                                                } else {
                                                    textRenderData.setText("");
                                                }
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            } else {
                                                //计算第()温度的第()个项目的所有色标的平均值的最大值
                                                List<Integer> ips = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                                                        .eq(InsProduct::getInsSampleId, sample.getId())
                                                        .isNotNull(InsProduct::getInsFiberId)
                                                        .eq(InsProduct::getInspectionItem, i + 1)
                                                        .eq(InsProduct::getInspectionItemSubclass, temperature.get((int) (((k + 1) / (nm.size() + 2)) - 1)))
                                                        .eq(InsProduct::getInspectionItemClass, nm.get((int) (((k + 1) - (nm.size() + 2)) / 2 % nm.size())))).stream().map(InsProduct::getId).collect(Collectors.toList());
                                                List<InsProductResult> insProductResults = insProductResultMapper.selDetail(ips);
                                                Optional<String> max = insProductResults.stream().map(insProductResult -> {
                                                    return insProductResult.getComValue().split(":")[1].split("\"")[1];
                                                }).filter(value -> !value.isEmpty()).max(String::compareTo);
                                                if (max.isPresent()) {
                                                    textRenderData.setText(max.get());
                                                } else {
                                                    textRenderData.setText("");
                                                }
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            }
                                        }
                                        else if (j == size2 + 6) {
                                            //倒数第二行
                                            if (k == 0) {
                                                //第一列
                                                textRenderData.setText("|∆ α max|");
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            } else if (k <= nm.size()) {
                                                textRenderData.setText("-");
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            } else if ((k - (nm.size())) % 2 == 0) {
                                                Optional<String> max = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                                                        .eq(InsProduct::getInsSampleId, sample.getId())
                                                        .isNotNull(InsProduct::getInsFiberId)
                                                        .eq(InsProduct::getInspectionItem, i + 1)
                                                        .eq(InsProduct::getInspectionItemSubclass, temperature.get((int) ((k / (nm.size() + 2)) - 1)))
                                                        .eq(InsProduct::getInspectionItemClass, nm.get((int) ((k - (nm.size() + 2)) / 2 % nm.size()))))
                                                        .stream().map(InsProduct::getLastValue)
                                                        .filter(value -> !value.isEmpty())
                                                        .max(String::compareTo);
                                                if (max.isPresent()) {
                                                    textRenderData.setText(max.get());
                                                } else {
                                                    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 == size2 + 7) {
                                            //倒数第一行
                                            textRenderData.setText("“|∆ α|”表示附加衰减绝对值∑111111");
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        }
                                        else {
                                            //其余填写检验值的内容
                                            if (k == 0) {
                                                //第一列填写色标
                                                textRenderData.setText(insFibers.get((int) (j - 5)).getColor());
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            } else if (k <= nm.size()) {
                                                //第二列和第三列填写20℃常温的平均值(result表里面的com_value)
                                                textRenderData.setText(insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, filteredProducts.get((int) ((j - 5) * (temperature.size() + 1) * nm.size() + k - 1)).getId())).getComValue().split(":")[1].split("\"")[1]);
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            } else if ((k - (nm.size())) % 2 == 0) {
                                                //填写衰减差就是last_value
                                                textRenderData.setText(filteredProducts.get((int) ((j - 5) * (temperature.size()) * nm.size() + k / 2)).getLastValue());
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            } else {
                                                //填写其余正常温度的衰减(result表里面的com_value)
                                                textRenderData.setText(insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, filteredProducts.get((int) ((j - 5) * (temperature.size()) * nm.size() + (k + 1) / 2)).getId())).getComValue().split(":")[1].split("\"")[1]);
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            }
                                        }
                                    }
                                }
                                else if (i == size1 - 1) {
                                    //最后一次循环的列数,那么列数包括20℃(2 * (size-nm.size())+1)
                                    for (long k = 0; k < 2 * (size - nm.size()) + 1; k++) {
                                        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 (k <= (2 * (size - nm.size()) + 1) / 4) {
                                                //第一列
                                                textRenderData.setText("样品编号@Sample number∑1000");
                                            } else if (k > (2 * (size - nm.size()) + 1) / 4 && k <= (2 * (size - nm.size()) + 1) / 2) {
                                                //第二列
                                                textRenderData.setText(sample.getSampleCode() + "∑998");
                                            } else if (k > (2 * (size - nm.size()) + 1) / 2 && k < 2 * (size - nm.size())) {
                                                //第三列
                                                textRenderData.setText("规格型号@Type∑999");
                                            } else {
                                                //第四列
                                                textRenderData.setText(sample.getModel());
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        }
                                        else if (j == 1) {
                                            //第二行
                                            if (k == 0) {
                                                //第一列
                                                textRenderData.setText("光纤色标@ScanningNumber∑1004");
                                            } else {
                                                textRenderData.setText("检测结果(循环" + (i + 1) + ")∑1005");
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        }
                                        else if (j == 2) {
                                            //第三行
                                            if (k == 0) {
                                                //第一列
                                                textRenderData.setText("光纤色标@ScanningNumber∑1004");
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            } else {
                                                //根据温度循环
                                                for (int i1 = 0; i1 < temperature.size(); i1++) {
                                                    if (k > (2 * i1) * nm.size() && k <= (2 * i1 + 2) * nm.size()) {
                                                        //第三列
                                                        textRenderData.setText(temperature.get(i1) + "∑52" + i1);
                                                        renderData.add(textRenderData);
                                                        paragraphRenderData.setContents(renderData);
                                                        paragraphRenderDataList.add(paragraphRenderData);
                                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                                        cells.add(cellRenderData);
                                                    }
                                                }
                                            }
                                        }
                                        else if (j == 3) {
                                            //第四行
                                            if (k == 0) {
                                                //第一列
                                                textRenderData.setText("光纤色标@ScanningNumber∑1004");
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            } else {
                                                for (int j1 = 0; j1 < temperature.size(); j1++) {
                                                    for (int i1 = 0; i1 < nm.size(); i1++) {
                                                        if (k > (i1 + 2 * j1) * nm.size() && k <= (i1 + 2 * j1) * nm.size() + 2) {
                                                            textRenderData.setText(nm.get(i1));
                                                            renderData.add(textRenderData);
                                                            paragraphRenderData.setContents(renderData);
                                                            paragraphRenderDataList.add(paragraphRenderData);
                                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                                            cells.add(cellRenderData);
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                        else if (j == 4) {
                                            //第五行
                                            if (k == 0) {
                                                //第一列
                                                textRenderData.setText("光纤色标@ScanningNumber∑1004");
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            } else if (k % 2 == 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 == size2 + 5) {
                                            //倒数第三行
                                            if (k == 0) {
                                                //第一列
                                                textRenderData.setText("|max|");
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            } else if (k % 2 == 0) {
                                                //计算第()温度的第()个项目的所有色标的最终值的最大值
                                                Optional<String> max = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                                                        .eq(InsProduct::getInsSampleId, sample.getId())
                                                        .isNotNull(InsProduct::getInsFiberId)
                                                        .eq(InsProduct::getInspectionItem, i + 1)
                                                        .eq(InsProduct::getInspectionItemSubclass, temperature.get((int) ((k - 1) / (2 * nm.size()))))
                                                        .eq(InsProduct::getInspectionItemClass, nm.get((int) ((k - nm.size()) / 2 % nm.size()))))
                                                        .stream().map(InsProduct::getLastValue)
                                                        .filter(value -> !value.isEmpty())
                                                        .max(String::compareTo);
                                                if (max.isPresent()) {
                                                    textRenderData.setText(max.get());
                                                } else {
                                                    textRenderData.setText("");
                                                }
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            } else {
                                                //计算第()温度的第()个项目的所有色标的平均值的最大值
                                                List<Integer> ips = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                                                        .eq(InsProduct::getInsSampleId, sample.getId())
                                                        .isNotNull(InsProduct::getInsFiberId)
                                                        .eq(InsProduct::getInspectionItem, i + 1)
                                                        .eq(InsProduct::getInspectionItemSubclass, temperature.get((int) (k / (2 * nm.size()))))
                                                        .eq(InsProduct::getInspectionItemClass, nm.get((int) (((k + 1) - nm.size()) / 2 % nm.size())))).stream().map(InsProduct::getId).collect(Collectors.toList());
                                                List<InsProductResult> insProductResults = insProductResultMapper.selDetail(ips);
                                                Optional<String> max = insProductResults.stream().map(insProductResult -> {
                                                    return insProductResult.getComValue().split(":")[1].split("\"")[1];
                                                }).filter(value -> !value.isEmpty()).max(String::compareTo);
                                                if (max.isPresent()) {
                                                    textRenderData.setText(max.get());
                                                } else {
                                                    textRenderData.setText("");
                                                }
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            }
                                        }
                                        else if (j == size2 + 6) {
                                            //倒数第二行
                                            if (k == 0) {
                                                //第一列
                                                textRenderData.setText("|∆ α max|");
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            } else if (k % 2 == 0) {
                                                Optional<String> max = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                                                        .eq(InsProduct::getInsSampleId, sample.getId())
                                                        .isNotNull(InsProduct::getInsFiberId)
                                                        .eq(InsProduct::getInspectionItem, i + 1)
                                                        .eq(InsProduct::getInspectionItemSubclass, temperature.get((int) ((k - 1) / (2 * nm.size()))))
                                                        .eq(InsProduct::getInspectionItemClass, nm.get((int) ((k - nm.size()) / 2 % nm.size()))))
                                                        .stream().map(InsProduct::getLastValue)
                                                        .filter(value -> !value.isEmpty())
                                                        .max(String::compareTo);
                                                if (max.isPresent()) {
                                                    textRenderData.setText(max.get());
                                                } else {
                                                    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 == size2 + 7) {
                                            //倒数第一行
                                            textRenderData.setText("“|∆ α|”表示附加衰减绝对值∑111111");
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        }
                                        else {
                                            //其余填写检验值的内容
                                            if (k == 0) {
                                                //第一列填写色标
                                                textRenderData.setText(insFibers.get((int) (j - 5)).getColor());
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            } else if (k % 2 == 0) {
                                                //填写衰减差就是last_value
                                                textRenderData.setText(filteredProducts.get((int) ((j - 5) * (temperature.size()) * nm.size() + ((temperature.size() * nm.size() * size2 * i) - (size2 * nm.size() * (i - 1))) + (k - 2) / 2)).getLastValue());
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            } else {
                                                //填写其余正常温度的衰减(result表里面的com_value)
                                                textRenderData.setText(insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, filteredProducts.get((int) ((j - 5) * (temperature.size()) * nm.size() + ((temperature.size() * nm.size() * size2 * i) - (size2 * nm.size() * (i - 1))) + ((k - 2) + 1) / 2)).getId())).getComValue().split(":")[1].split("\"")[1]);
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            }
                                        }
                                    }
                                }
                                else {
                                    //其余循环的列数,,那么列数不包括20℃+20℃(常温)(2 * (size- 2*nm.size()) +1)
                                    for (long k = 0; k < 2 * (size - 2 * nm.size()) + 1; k++) {
                                        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 (k <= (2 * (size - 2 * nm.size()) + 1) / 4) {
                                                //第一列
                                                textRenderData.setText("样品编号@Sample number∑1000");
                                            } else if (k > (2 * (size - 2 * nm.size()) + 1) / 4 && k <= (2 * (size - 2 * nm.size()) + 1) / 2) {
                                                //第二列
                                                textRenderData.setText(sample.getSampleCode() + "∑998");
                                            } else if (k >(2 * (size - 2 * nm.size()) + 1) / 2 && k< 2 * (size - 2 * nm.size())) {
                                                //第三列
                                                textRenderData.setText("规格型号@Type∑999");
                                            } else {
                                                //第四列
                                                textRenderData.setText(sample.getModel());
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        }
                                        else if (j == 1) {
                                            //第二行
                                            if (k == 0) {
                                                //第一列
                                                textRenderData.setText("光纤色标@ScanningNumber∑1004");
                                            } else {
                                                textRenderData.setText("检测结果(循环" + (i + 1) + ")∑1005");
                                            }
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        }
                                        else if (j == 2) {
                                            //第三行
                                            if (k == 0) {
                                                //第一列
                                                textRenderData.setText("光纤色标@ScanningNumber∑1004");
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            } else {
                                                //根据温度循环
                                                for (int i1 = 0; i1 < temperature2.size(); i1++) {
                                                    if (k > (2 * i1) * nm.size() && k <= (2 * i1 + 2) * nm.size()) {
                                                        //第三列
                                                        textRenderData.setText(temperature2.get(i1) + "∑52" + i1);
                                                        renderData.add(textRenderData);
                                                        paragraphRenderData.setContents(renderData);
                                                        paragraphRenderDataList.add(paragraphRenderData);
                                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                                        cells.add(cellRenderData);
                                                    }
                                                }
                                            }
                                        }
                                        else if (j == 3) {
                                            //第四行
                                            if (k == 0) {
                                                //第一列
                                                textRenderData.setText("光纤色标@ScanningNumber∑1004");
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            } else {
                                                for (int j1 = 0; j1 < temperature2.size(); j1++) {
                                                    for (int i1 = 0; i1 < nm.size(); i1++) {
                                                        if (k > (i1 + 2 * j1) * nm.size() && k <= (i1 + 2 * j1) * nm.size() + 2) {
                                                            textRenderData.setText(nm.get(i1));
                                                            renderData.add(textRenderData);
                                                            paragraphRenderData.setContents(renderData);
                                                            paragraphRenderDataList.add(paragraphRenderData);
                                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                                            cells.add(cellRenderData);
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                        else if (j == 4) {
                                            //第五行
                                            if (k == 0) {
                                                //第一列
                                                textRenderData.setText("光纤色标@ScanningNumber∑1004");
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            } else if (k % 2 == 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 == size2 + 5) {
                                            //倒数第三行
                                            if (k == 0) {
                                                //第一列
                                                textRenderData.setText("|max|");
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            } else if (k % 2 == 0) {
                                                //计算第()温度的第()个项目的所有色标的最终值的最大值
                                                Optional<String> max = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                                                        .eq(InsProduct::getInsSampleId, sample.getId())
                                                        .isNotNull(InsProduct::getInsFiberId)
                                                        .eq(InsProduct::getInspectionItem, i + 1)
                                                        .eq(InsProduct::getInspectionItemSubclass, temperature.get((int) (((k - 1) / (2 * nm.size())))))
                                                        .eq(InsProduct::getInspectionItemClass, nm.get((int) ((k - nm.size()) / 2 % nm.size()))))
                                                        .stream().map(InsProduct::getLastValue)
                                                        .filter(value -> !value.isEmpty())
                                                        .max(String::compareTo);
                                                if (max.isPresent()) {
                                                    textRenderData.setText(max.get());
                                                } else {
                                                    textRenderData.setText("");
                                                }
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            } else {
                                                //计算第()温度的第()个项目的所有色标的平均值的最大值
                                                List<Integer> ips = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                                                        .eq(InsProduct::getInsSampleId, sample.getId())
                                                        .isNotNull(InsProduct::getInsFiberId)
                                                        .eq(InsProduct::getInspectionItem, i + 1)
                                                        .eq(InsProduct::getInspectionItemSubclass, temperature.get((int) (k / (2 * nm.size()))))
                                                        .eq(InsProduct::getInspectionItemClass, nm.get((int) (((k + 1) - nm.size()) / 2 % nm.size())))).stream().map(InsProduct::getId).collect(Collectors.toList());
                                                List<InsProductResult> insProductResults = insProductResultMapper.selDetail(ips);
                                                Optional<String> max = insProductResults.stream().map(insProductResult -> {
                                                    return insProductResult.getComValue().split(":")[1].split("\"")[1];
                                                }).filter(value -> !value.isEmpty()).max(String::compareTo);
                                                if (max.isPresent()) {
                                                    textRenderData.setText(max.get());
                                                } else {
                                                    textRenderData.setText("");
                                                }
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            }
                                        }
                                        else if (j == size2 + 6) {
                                            //倒数第二行
                                            if (k == 0) {
                                                //第一列
                                                textRenderData.setText("|∆ α max|");
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            } else if (k % 2 == 0) {
                                                Optional<String> max = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                                                        .eq(InsProduct::getInsSampleId, sample.getId())
                                                        .isNotNull(InsProduct::getInsFiberId)
                                                        .eq(InsProduct::getInspectionItem, i + 1)
                                                        .eq(InsProduct::getInspectionItemSubclass, temperature.get((int) ((k - 1) / (2 * nm.size()))))
                                                        .eq(InsProduct::getInspectionItemClass, nm.get((int) ((k - nm.size()) / 2 % nm.size()))))
                                                        .stream().map(InsProduct::getLastValue)
                                                        .filter(value -> !value.isEmpty())
                                                        .max(String::compareTo);
                                                if (max.isPresent()) {
                                                    textRenderData.setText(max.get());
                                                } else {
                                                    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 == size2 + 7) {
                                            //倒数第一行
                                            textRenderData.setText("“|∆ α|”表示附加衰减绝对值∑111111");
                                            renderData.add(textRenderData);
                                            paragraphRenderData.setContents(renderData);
                                            paragraphRenderDataList.add(paragraphRenderData);
                                            cellRenderData.setParagraphs(paragraphRenderDataList);
                                            cells.add(cellRenderData);
                                        }
                                        else {
                                            //其余填写检验值的内容
                                            if (k == 0) {
                                                //第一列填写色标
                                                textRenderData.setText(insFibers.get((int) (j - 5)).getColor());
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            } else if (k % 2 == 0) {
                                                //填写衰减差就是last_value
                                                textRenderData.setText(filteredProducts.get((int) ((j - 5) * (temperature.size() - 1) * nm.size() + (temperature.size() * nm.size() * size2) + (k - 2) / 2)).getLastValue());
                                                renderData.add(textRenderData);
                                                paragraphRenderData.setContents(renderData);
                                                paragraphRenderDataList.add(paragraphRenderData);
                                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                                cells.add(cellRenderData);
                                            } else {
                                                //填写其余正常温度的衰减(result表里面的com_value)
                                                textRenderData.setText(insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, filteredProducts.get((int) ((j - 5) * (temperature.size() - 1) * nm.size() + (temperature.size() * nm.size() * size2) + ((k - 2) + 1) / 2)).getId())).getComValue().split(":")[1].split("\"")[1]);
                                                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()) {
                            for (CellRenderData cell : row.getCells()) {
                                System.out.print(cell.getParagraphs().get(0).getContents());
                            }
                            System.out.println("");
                            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(14);
                        tableStyle.setLeftBorder(borderStyle);
                        tableStyle.setTopBorder(borderStyle);
                        tableStyle.setRightBorder(borderStyle);
                        tableStyle.setBottomBorder(borderStyle);
                        tableRenderData.setTableStyle(tableStyle);
                        Map<String, Object> table = new HashMap<>();
                        table.put("table3", tableRenderData);
                        table.put("report", insReport);
                        table.put("sample_number", sample.getSampleCode());
                        table.put("type", sample.getModel());
                        table.put("index3", index3);
                        tables3.add(table);
                        index3++;
                    }
                });
            }
            tables3.forEach(table3 -> {
                table3.put("tableSize3", tables3.size());
            });
            /*获取附件图片类型*/
            List<Map<String, Object>> images = new ArrayList<>();
@@ -1199,6 +2527,9 @@
                        put("tables", tables);
                        put("tableSize", tables.size() + 1);
                        put("tables2", tables2);
                        put("tableSize2", tables2.size());
                        put("tables3", tables3);
                        put("tableSize3", tables3.size());
                        put("standardMethod", (standardMethod2.toString().equals("null") ? "" : standardMethod2));
                        put("deviceList", finalDeviceList);
                        put("twoCode", Pictures.ofLocal(codePath).create());
@@ -1240,22 +2571,13 @@
                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++) {
                    Set<String> set1 = new HashSet<>();
                    Map<String, Map<String, Integer>> maps = new HashMap<>();
                    XWPFTable table = xwpfTables.get(i);
                    for (int j = 0; j < table.getRows().size(); j++) {
                        XWPFTableRow row = table.getRow(j);
                        if (row == null) continue;
                        for (int k = 0; k < row.getTableCells().size(); k++) {
                            XWPFTableCell cell = row.getCell(k);
                            if (cell == null || cell.getText() == null) continue;
                            if (cell.getText().indexOf("∑") > -1) {
                                String[] split = cell.getText().split("∑");
                    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);
@@ -1271,51 +2593,36 @@
                                        map1.put("er", map1.get("er") + 1);
                                    }
                                }
                                String str = split[0];
                                cell.removeParagraph(0);
                                cell.setText(str);
                                cell.setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER);
                                if (cell.getParagraphArray(0) != null) {
                                    cell.getParagraphArray(0).setAlignment(ParagraphAlignment.CENTER);
                                }
                                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(ParagraphAlignment.CENTER);
                            }
                        }
                    }
                    List<String> list = new ArrayList<>(maps.keySet());
                    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")) {
                                XWPFTableRow row = table.getRow(v.get("sr") + j);
                                if (row != null) {
                                    for (int col = v.get("sc"); col <= v.get("ec"); col++) {
                                        XWPFTableCell cell = row.getCell(col);
                                        if (cell == null) {
                                            row.createCell(); // 创建新的单元格以防空指针异常
                                        }
                                    }
                                    TableTools.mergeCellsHorizonal(table, v.get("sr") + j, v.get("sc"), v.get("ec"));
                                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")) {
                            for (int rowIdx = v.get("sr"); rowIdx <= v.get("er"); rowIdx++) {
                                XWPFTableRow row = table.getRow(rowIdx);
                                if (row != null) {
                                    XWPFTableCell cell = row.getCell(v.get("sc"));
                                    if (cell == null) {
                                        row.createCell(); // 创建新的单元格以防空指针异常
                                    }
                                }
                            try {
                                TableTools.mergeCellsVertically(xwpfTables.get(i), v.get("sc"), v.get("sr"), v.get("er"));
                            } catch (Exception e) {
                            }
                            TableTools.mergeCellsVertically(table, v.get("sc"), v.get("sr"), v.get("er"));
                        }
                    }
                }
                FileOutputStream fileOutputStream = new FileOutputStream(path);
                document.write(fileOutputStream);
                fileOutputStream.close();
@@ -1332,9 +2639,9 @@
                for (int i = 1; i < xwpfTables1.size() - (deviceList == null ? 1 : 2); i++) {
                    for (int j = 0; j < xwpfTables1.get(i).getRows().size(); j++) {
                        for (int k = 0; k < xwpfTables1.get(i).getRows().get(j).getTableCells().size(); k++) {
                            if (xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).getText().contains("&")) {
                            if (xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).getText().contains("@")) {
                                String text = xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).getText();
                                String[] split = text.split("&");
                                String[] split = text.split("@");
                                xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).removeParagraph(0);
                                XWPFParagraph xwpfParagraph = xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).addParagraph();
                                XWPFRun run = xwpfParagraph.createRun();
@@ -1406,9 +2713,11 @@
                    List<Integer> tt = new ArrayList<>();
                    tt.add(1);
                    if (collect.contains(0)) {
                        product.setLastValue("不合格");
                        product.setInsResult(0);
                    } else if (collect.size() == insProductList.size() && collect.stream().distinct().collect(Collectors.toList()).containsAll(tt)) {
                        product.setInsResult(0);
                        product.setLastValue("合格");
                        product.setInsResult(1);
                    }
                    insProductMapper.updateById(product);
                } else {
@@ -1416,7 +2725,9 @@
                    str += "<br/>" + count + ":" + product.getInspectionItem() + " " + product.getInspectionItemSubclass() + "<br/>";
                }
            }
            throw new ErrorException("<strong>存在待检验的项目:</strong><br/>" + str);
            if (ObjectUtils.isNotEmpty(str)) {
                throw new ErrorException("<strong>存在待检验的项目:</strong><br/>" + str);
            }
        }
        insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate().eq(InsOrderState::getInsOrderId, orderId).eq(InsOrderState::getLaboratory, laboratory).set(InsOrderState::getInsTime, LocalDateTime.now()).set(InsOrderState::getInsState, 3).set(InsOrderState::getVerifyUser, verifyUser));
        Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
@@ -1431,6 +2742,17 @@
        info.setJumpPath("b1-inspect-order-plan");
        informationNotificationService.addInformationNotification(info);
        upPlanUser(verifyUser, orderId);
        /*校验一下result表*/
        CompletableFuture.supplyAsync(() -> {
            List<Integer> ips = insProducts.stream().map(InsProduct::getId).distinct().collect(Collectors.toList());
            for (Integer ip : ips) {
                List<InsProductResult> insProductResults = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, ip).orderByDesc(InsProductResult::getId));
                if (insProductResults.size() > 1) {
                    insProductResultMapper.deleteById(insProductResults.get(0));
                }
            }
            return null;
        });
        return 1;
    }
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java
@@ -148,8 +148,8 @@
            }
            insSampleMapper.insert(a);
            if (ObjectUtil.isNotEmpty(a.getInsProduct())) {
                addInsProductMethod(a.getId(), a.getInsProduct(), null, 0,false);
                if (ObjectUtil.isNotEmpty(a.getBushing())){
                addInsProductMethod(a.getId(), a.getInsProduct(), null, 0, false);
                if (ObjectUtil.isNotEmpty(a.getBushing())) {
                    for (BushingDto bushingDto : a.getBushing()) {
                        bushingDto.setInsSampleId(a.getId());
                        insBushingMapper.insert(bushingDto);
@@ -157,10 +157,10 @@
                            for (FiberDto fiberDto : bushingDto.getFiber()) {
                                fiberDto.setInsBushingId(bushingDto.getId());
                                insFiberMapper.insert(fiberDto);
                                addInsProductMethod(a.getId(), a.getInsProduct(), fiberDto.getId(), 2,true);
                                addInsProductMethod(a.getId(), fiberDto.getProductList(), fiberDto.getId(), 2,false);
                                addInsProductMethod(a.getId(), a.getInsProduct(), fiberDto.getId(), 2, true);
                                addInsProductMethod(a.getId(), fiberDto.getProductList(), fiberDto.getId(), 2, false);
                            }
                        }else {
                        } else {
                            for (FibersDto fibersDto : bushingDto.getFibers()) {
                                fibersDto.setInsBushingId(bushingDto.getId());
                                fibersDto.setCode(this.giveCode.giveCode("", "ins_fibers", "", "yyMMdd"));
@@ -168,11 +168,11 @@
                                for (FiberDto fiberDto : fibersDto.getFiber()) {
                                    fiberDto.setInsFibersId(fibersDto.getId());
                                    insFiberMapper.insert(fiberDto);
                                    addInsProductMethod(a.getId(), a.getInsProduct(), fiberDto.getId(), 2,true);
                                    addInsProductMethod(a.getId(), fiberDto.getProductList(), fiberDto.getId(), 2,false);
                                    addInsProductMethod(a.getId(), a.getInsProduct(), fiberDto.getId(), 2, true);
                                    addInsProductMethod(a.getId(), fiberDto.getProductList(), fiberDto.getId(), 2, false);
                                }
                                //addInsProductMethod(a.getId(), a.getInsProduct(), fibersDto.getId(), 1);
                                addInsProductMethod(a.getId(), fibersDto.getProductList(), fibersDto.getId(), 1,false);
                                addInsProductMethod(a.getId(), fibersDto.getProductList(), fibersDto.getId(), 1, false);
                            }
                        }
                    }
@@ -186,13 +186,13 @@
                for (InsProduct product : ip2) {
                    product.setStandardMethodListId(a.getInsulating().getStandardMethodListId());
                }
                addInsProductMethod(a.getId(), ip2, null, 0,false);
                addInsProductMethod(a.getId(), ip2, null, 0, false);
            }
            if (ObjectUtil.isNotEmpty(a.getSheath())) {
                for (InsProduct product : a.getSheath().getInsProduct()) {
                    product.setStandardMethodListId(a.getSheath().getStandardMethodListId());
                }
                addInsProductMethod(a.getId(), a.getSheath().getInsProduct(), null, 0,false);
                addInsProductMethod(a.getId(), a.getSheath().getInsProduct(), null, 0, false);
            }
            if (ObjectUtil.isNotEmpty(a.getChildSampleList())) {
                for (SampleProductDto b : a.getChildSampleList()) {
@@ -205,7 +205,7 @@
                        }
                        insSampleMapper.insert(b);
                        if (ObjectUtil.isNotEmpty(b.getInsProduct())) {
                            addInsProductMethod(b.getId(), b.getInsProduct(), null, 0,false);
                            addInsProductMethod(b.getId(), b.getInsProduct(), null, 0, false);
                        }
                    }
                }
@@ -218,7 +218,7 @@
                        for (FiberDto fiberDto : bushingDto.getFiber()) {
                            fiberDto.setInsBushingId(bushingDto.getId());
                            insFiberMapper.insert(fiberDto);
                            addInsProductMethod(a.getId(), fiberDto.getProductList(), fiberDto.getId(), 2,false);
                            addInsProductMethod(a.getId(), fiberDto.getProductList(), fiberDto.getId(), 2, false);
                        }
                    } else {
                        for (FibersDto fibersDto : bushingDto.getFibers()) {
@@ -228,9 +228,9 @@
                            for (FiberDto fiberDto : fibersDto.getFiber()) {
                                fiberDto.setInsFibersId(fibersDto.getId());
                                insFiberMapper.insert(fiberDto);
                                addInsProductMethod(a.getId(), fiberDto.getProductList(), fiberDto.getId(), 2,false);
                                addInsProductMethod(a.getId(), fiberDto.getProductList(), fiberDto.getId(), 2, false);
                            }
                            addInsProductMethod(a.getId(), fibersDto.getProductList(), fibersDto.getId(), 1,false);
                            addInsProductMethod(a.getId(), fibersDto.getProductList(), fibersDto.getId(), 1, false);
                        }
                    }
                }
@@ -254,7 +254,7 @@
        return insOrder.getId();
    }
    private void addInsProductMethod(Integer sampleId, List<InsProduct> productList, Integer id, Integer type,Boolean is) {
    private void addInsProductMethod(Integer sampleId, List<InsProduct> productList, Integer id, Integer type, Boolean is) {
        InsOrder insOrder = insOrderMapper.selectById(insSampleMapper.selectById(sampleId).getInsOrderId());
        for (InsProduct product : productList) {
            if (product.getState() == 1 && !product.getInspectionItem().equals("光纤接头损耗")) {
@@ -263,7 +263,9 @@
                    List<InsProduct> insProductes = new ArrayList<>();
                    List<InsProduct> insProducts = new ArrayList<>();
                    String[] strings = product.getAsk().split(";");
                    for (int i = 0; i < strings.length; i++) {
                        int count = Integer.parseInt(strings[strings.length - 1]);
                        if (i != strings.length - 1) {
                            InsProduct insProduct = new InsProduct();
                            switch (type) {
@@ -275,7 +277,11 @@
                                    break;
                            }
                            String[] split = strings[i].split(",");
                            insProduct.setInspectionItem("1");//检验项--循环次数
                            if (split[0].equals("20℃")) {
                                insProduct.setInspectionItem(count + "");//检验项--循环次数
                            } else {
                                insProduct.setInspectionItem("1");//检验项--循环次数
                            }
                            insProduct.setInspectionItemSubclass(split[0]);//检验项--温度
                            insProduct.setInspectionItemClass(split[1]);//检验项--光纤项目
                            insProduct.setAsk(split[2]);//检验要求
@@ -296,14 +302,13 @@
                            insProductes.add(insProduct);
                        } else {
                            //最后一个数据是说明会循环多少次
                            int count = Integer.parseInt(strings[i]);
                            if (count > 1) {
                                //循环超过1次
                                for (int j = 2; j <= count; j++) {
                                    for (InsProduct insProduct : insProducts) {
                                        if (!insProduct.getInspectionItemSubclass().equals("20℃")) {
                                        if (!insProduct.getInspectionItemSubclass().equals("20℃") && !insProduct.getInspectionItemSubclass().equals("20℃(常温)")) {
                                            InsProduct insProduct1 = new InsProduct();
                                            BeanUtils.copyProperties(insProduct,insProduct1);
                                            BeanUtils.copyProperties(insProduct, insProduct1);
                                            insProduct1.setInspectionItem(j + "");
                                            insProductes.add(insProduct1);
                                        }
@@ -313,7 +318,7 @@
                        }
                    }
                    insProductService.saveBatch(insProductes);
                } else  {
                } else {
                    if (!is) {
                        switch (type) {
                            case 1:
inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardProductListServiceImpl.java
@@ -85,8 +85,8 @@
                        if (Objects.equals(a.getBsm(), "1")) {
                            return true;
                        } else {
                            if (sections.get(i).contains("&")) {
                                String[] split = sections.get(i).split("&");
                            if (sections.get(i).contains("@")) {
                                String[] split = sections.get(i).split("@");
                                isIf = getIsIf(split[0], models[1]) && getIsIf(split[1], models[1]);
                            } else {
                                isIf = getIsIf(sections.get(i), models[1]);
inspect-server/src/main/resources/mapper/InsProductResultMapper.xml
@@ -3,16 +3,29 @@
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.InsProductResultMapper">
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.InsProductResult">
            <id property="id" column="id" jdbcType="INTEGER"/>
            <result property="insProductId" column="ins_product_id" jdbcType="INTEGER"/>
            <result property="insValue" column="ins_value" jdbcType="VARCHAR"/>
            <result property="comValue" column="com_value" jdbcType="VARCHAR"/>
            <result property="equipValue" column="equip_value" jdbcType="VARCHAR"/>
            <result property="createUser" column="create_user" jdbcType="INTEGER"/>
            <result property="updateUser" column="update_user" jdbcType="INTEGER"/>
            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
        <id property="id" column="id" jdbcType="INTEGER"/>
        <result property="insProductId" column="ins_product_id" jdbcType="INTEGER"/>
        <result property="insValue" column="ins_value" jdbcType="VARCHAR"/>
        <result property="comValue" column="com_value" jdbcType="VARCHAR"/>
        <result property="equipValue" column="equip_value" jdbcType="VARCHAR"/>
        <result property="createUser" column="create_user" jdbcType="INTEGER"/>
        <result property="updateUser" column="update_user" jdbcType="INTEGER"/>
        <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
        <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
    </resultMap>
    <select id="selDetail" resultMap="BaseResultMap">
        select *
        from ins_product_result
        where 1=1
            <!--and ins_product_id in (#{ips})-->
        <if test="ips != null and ips.size() > 0">
            <!-- 使用foreach元素构建IN子句 -->
            and ins_product_id in
            <foreach item="item" collection="ips" open="(" separator="," close=")">
                #{item}
            </foreach>
        </if>
    </select>
</mapper>
inspect-server/src/main/resources/static/report-template.docx
Binary files differ