lxp
2025-03-15 5a697e6fafbe3855336ca5fd7e1785de12840d16
inspect-server/src/main/java/com/ruoyi/inspect/handler/TemperatureCyclingReportHandler1.java
ÎļþÃû´Ó cnas-require/src/main/java/com/ruoyi/require/handler/TemperatureCyclingReportHandler1.java ÐÞ¸Ä
@@ -1,4 +1,4 @@
package com.ruoyi.require.handler;
package com.ruoyi.inspect.handler;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.deepoove.poi.data.*;
@@ -80,6 +80,7 @@
                ));
                List<String> wendu = new ArrayList<>(wendus.keySet());
                for (int m = 0; m < wendu.size(); m += 3) {
                    int wenduSize = (wendu.size()-m)/3>0?3:(wendu.size()-m);
                    //三个温度一张表,当遍历到第四个温度的时候需要重新建表
                    List<RowRenderData> rows = new ArrayList<>();
                    //表格的行数(光纤色标的数量+8)
@@ -90,7 +91,7 @@
                        rowRenderData.setRowStyle(rowStyle);
                        List<CellRenderData> cells = new ArrayList<>();
                        //表格的列数(2*光纤项目*3+1)
                        for (int k = 0; k < 6 * nm.size() + 1; k++) {
                        for (int k = 0; k < 2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) + 1; k++) {
                            CellRenderData cellRenderData = new CellRenderData();
                            CellStyle cellStyle = new CellStyle();
                            cellStyle.setVertAlign(XWPFTableCell.XWPFVertAlign.CENTER);
@@ -109,19 +110,67 @@
                            textRenderData.setStyle(style);
                            if (j == 0) {
                                //第一行
                                if (k <= (6L * nm.size() + 1) / 4) {
                                int size = (2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)));
                                switch (size){
                                    case 12:
                                        if (k <= 2) {
                                    //第一列
                                    textRenderData.setText("样品编号@Sample number∑1000");
                                } else if (k > (6L * nm.size() + 1) / 4 && k <= (6L * nm.size() + 1) / 2) {
                                        } else if (k > 2 && k <= 5) {
                                    //第二列
                                    textRenderData.setText(sample.getSampleCode() + "∑998");
                                } else if (k > (6L * nm.size() + 1) / 2 && k < 6L * nm.size()) {
                                        } else if (k > 5 && k < 9) {
                                    //第三列
                                    textRenderData.setText("规格型号@Type âˆ‘999");
                                } else {
                                    //第四列
                                    textRenderData.setText(sample.getModel());
                                            textRenderData.setText(sample.getModel()+"∑999888");
                                }
                                        break;
                                    case 8:
                                        if (k <= 1) {
                                            //第一列
                                            textRenderData.setText("样品编号@Sample number∑1000");
                                        } else if (k > 1 && k <= 3) {
                                            //第二列
                                            textRenderData.setText(sample.getSampleCode() + "∑998");
                                        } else if (k > 3 && k < 6) {
                                            //第三列
                                            textRenderData.setText("规格型号@Type âˆ‘999");
                                        } else {
                                            //第四列
                                            textRenderData.setText(sample.getModel()+"∑999888");
                                        }
                                        break;
                                    case 4:
                                        if (k <= 0) {
                                            //第一列
                                            textRenderData.setText("样品编号@Sample number∑1000");
                                        } else if (k == 1) {
                                            //第二列
                                            textRenderData.setText(sample.getSampleCode() + "∑998");
                                        } else if (k == 2) {
                                            //第三列
                                            textRenderData.setText("规格型号@Type âˆ‘999");
                                        } else {
                                            //第四列
                                            textRenderData.setText(sample.getModel()+"∑999888");
                                        }
                                        break;
                                }
//                                if (k <= (2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) + 1) / 4) {
//                                    //第一列
//                                    textRenderData.setText("样品编号@Sample number∑1000");
//                                } else if (k > (2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) + 1) / 4 && k <= (2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) + 1) / 2) {
//                                    //第二列
//                                    textRenderData.setText(sample.getSampleCode() + "∑998");
//                                } else if (k > (2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) + 1) / 2 && k < 2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m))) {
//                                    //第三列
//                                    textRenderData.setText("规格型号@Type âˆ‘999");
//                                } else {
//                                    //第四列
//                                    textRenderData.setText(sample.getModel());
//                                }
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
@@ -152,14 +201,14 @@
                                    paragraphRenderDataList.add(paragraphRenderData);
                                    cellRenderData.setParagraphs(paragraphRenderDataList);
                                    cells.add(cellRenderData);
                                } else if (k <= 6L * nm.size() / 3) {
                                } else if (k <= 2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) / wenduSize) {
                                    textRenderData.setText(wendu.get(m) + "∑52"+j + m);
                                    renderData.add(textRenderData);
                                    paragraphRenderData.setContents(renderData);
                                    paragraphRenderDataList.add(paragraphRenderData);
                                    cellRenderData.setParagraphs(paragraphRenderDataList);
                                    cells.add(cellRenderData);
                                } else if (k > 6L * nm.size() / 3 && k <= 6L * nm.size() / 3 * 2) {
                                } else if (k > 2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) / wenduSize && k <= 2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) / wenduSize * 2) {
                                    int i1 = m + 1;
                                    String s = "";
                                    try {
@@ -223,7 +272,7 @@
                                    cellRenderData.setParagraphs(paragraphRenderDataList);
                                    cells.add(cellRenderData);
                                } else if (k % 2 == 1) {
                                    if (k <= 6L * nm.size() / 3 && wendu.get(m).equals("20℃(常温)")) {
                                    if (k <= 2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) / 3 && wendu.get(m).equals("20℃(常温)")) {
                                        textRenderData.setText("衰减" + "∑42" +j+ k);
                                    } else {
                                        textRenderData.setText(" è¡°å‡ ");
@@ -234,7 +283,7 @@
                                    cellRenderData.setParagraphs(paragraphRenderDataList);
                                    cells.add(cellRenderData);
                                } else {
                                    if (k <= 6L * nm.size() / 3 && wendu.get(m).equals("20℃(常温)")) {
                                    if (k <= 2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) / 3 && wendu.get(m).equals("20℃(常温)")) {
                                        textRenderData.setText("衰减" + "∑42"+j + (k - 1));
                                    } else {
                                        textRenderData.setText("|∆ Î±|");
@@ -259,9 +308,9 @@
                                }
                                else if (k % 2 == 0) {
                                    String s = "";
                                    if (k <= 6L * nm.size() / 3) {
                                    if (k <= 2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) / wenduSize) {
                                        s = wendu.get(m);
                                    } else if (k > 6L * nm.size() / 3 && k <= 6L * nm.size() / 3 * 2) {
                                    } else if (k > 2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) / wenduSize && k <= 2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) / wenduSize * 2) {
                                        try {
                                            s = wendu.get(m + 1);
                                        } catch (Exception e) {
@@ -277,8 +326,9 @@
                                        textRenderData.setText("");
                                    } else {
                                        try {
                                            if (k <= 6L * nm.size() / 3 && wendu.get(m).equals("20℃(常温)")){
                                            if (k <= 2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) / wenduSize && wendu.get(m).equals("20℃(常温)")){
                                                List<Integer> ips = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                                                                .eq(InsProduct::getState,1)
                                                                .eq(InsProduct::getInsSampleId, sample.getId())
                                                                .isNotNull(InsProduct::getInsFiberId)
                                                                .eq(InsProduct::getInspectionItem, i + 1)
@@ -295,6 +345,7 @@
                                                textRenderData.setText(max.get() + "∑"+j+ (k-1));
                                            }else {
                                                Optional<String> max = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                                                                .eq(InsProduct::getState,1)
                                                                .eq(InsProduct::getInsSampleId, sample.getId())
                                                                .isNotNull(InsProduct::getInsFiberId)
                                                                .eq(InsProduct::getInspectionItem, i + 1)
@@ -321,9 +372,9 @@
                                }
                                else {
                                    String s = "";
                                    if (k <= 6L * nm.size() / 3) {
                                    if (k <= 2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) / wenduSize) {
                                        s = wendu.get(m);
                                    } else if (k > 6L * nm.size() / 3 && k <= 6L * nm.size() / 3 * 2) {
                                    } else if (k > 2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) / wenduSize && k <= 2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) / wenduSize * 2) {
                                        try {
                                            s = wendu.get(m + 1);
                                        } catch (Exception e) {
@@ -339,6 +390,7 @@
                                        textRenderData.setText("");
                                    } else {
                                        List<Integer> ips = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                                                .eq(InsProduct::getState,1)
                                                .eq(InsProduct::getInsSampleId, sample.getId())
                                                .isNotNull(InsProduct::getInsFiberId)
                                                .eq(InsProduct::getInspectionItem, i + 1)
@@ -351,7 +403,7 @@
                                                return splitStr[splitStr.length - 1].split("\"")[1];
                                            }
                                        }).filter(value -> !value.isEmpty()).max(String::compareTo);
                                        if (k <= 6L * nm.size() / 3 && wendu.get(m).equals("20℃(常温)")){
                                        if (k <= 2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) / wenduSize&& wendu.get(m).equals("20℃(常温)")){
                                            textRenderData.setText(max.get() + "∑"+j+ k);
                                        }else {
                                            if (max.isPresent()) {
@@ -380,9 +432,9 @@
                                    cells.add(cellRenderData);
                                } else if (k % 2 == 0) {
                                    String s = "";
                                    if (k <= 6L * nm.size() / 3) {
                                    if (k <= 2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) / wenduSize) {
                                        s = wendu.get(m);
                                    } else if (k > 6L * nm.size() / 3 && k <= 6L * nm.size() / 3 * 2) {
                                    } else if (k > 2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) / wenduSize && k <= 2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) / wenduSize * 2) {
                                        try {
                                            s = wendu.get(m + 1);
                                        } catch (Exception e) {
@@ -397,10 +449,11 @@
                                    if (s.equals("")) {
                                        textRenderData.setText("");
                                    } else {
                                        if (k <= 6L * nm.size() / 3 && wendu.get(m).equals("20℃(常温)")) {
                                        if (k <= 2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) / wenduSize && wendu.get(m).equals("20℃(常温)")) {
                                            textRenderData.setText("-" + "∑" + j + (k-1));
                                        } else {
                                            List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                                                    .eq(InsProduct::getState,1)
                                                    .eq(InsProduct::getInsSampleId, sample.getId())
                                                    .isNotNull(InsProduct::getInsFiberId)
                                                    .eq(InsProduct::getInspectionItem, i + 1)
@@ -426,7 +479,7 @@
                                    cellRenderData.setParagraphs(paragraphRenderDataList);
                                    cells.add(cellRenderData);
                                } else {
                                    if (k <= 6L * nm.size() / 3 && wendu.get(m).equals("20℃(常温)")) {
                                    if (k <= 2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) / wenduSize && wendu.get(m).equals("20℃(常温)")) {
                                        textRenderData.setText("-" + "∑" + j + k);
                                    } else {
                                        textRenderData.setText("-");
@@ -461,9 +514,9 @@
                                } else if (k % 2 == 0) {
                                    //填写衰减差就是last_value
                                    String s = "";
                                    if (k <= 6L * nm.size() / 3) {
                                    if (k <= 2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) / wenduSize) {
                                        s = wendu.get(m);
                                    } else if (k > 6L * nm.size() / 3 && k <= 6L * nm.size() / 3 * 2) {
                                    } else if (k > 2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) / wenduSize && k <= 2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) / wenduSize * 2) {
                                        try {
                                            s = wendu.get(m + 1);
                                        } catch (Exception e) {
@@ -478,13 +531,14 @@
                                        textRenderData.setText("");
                                    } else {
                                        List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                                                .eq(InsProduct::getState,1)
                                                .eq(InsProduct::getInsSampleId, sample.getId())
                                                .isNotNull(InsProduct::getInsFiberId)
                                                .eq(InsProduct::getInsFiberId, insFibers.get(j - 5).getId())
                                                .eq(InsProduct::getInspectionItem, i + 1)
                                                .eq(InsProduct::getInspectionItemSubclass, s)
                                                .eq(InsProduct::getInspectionItemClass, nm.get((k - 2) / 2 % nm.size())));
                                        if (k <= 6L * nm.size() / 3 && s.equals("20℃(常温)")) {
                                        if (k <= 2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) / 3 && s.equals("20℃(常温)")) {
                                            String comValue = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery()
                                                            .eq(InsProductResult::getInsProductId, insProducts.get(0).getId()))
                                                    .getComValue();
@@ -502,9 +556,9 @@
                                } else {
                                    //填写其余正常温度的衰减(result表里面的com_value)
                                    String s = "";
                                    if (k <= 6L * nm.size() / 3) {
                                    if (k <= 2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) / wenduSize) {
                                        s = wendu.get(m);
                                    } else if (k > 6L * nm.size() / 3 && k <= 6L * nm.size() / 3 * 2) {
                                    } else if (k > 2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) / wenduSize&& k <= 2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) / wenduSize * 2) {
                                        try {
                                            s = wendu.get(m + 1);
                                        } catch (Exception e) {
@@ -519,6 +573,7 @@
                                        textRenderData.setText("");
                                    } else {
                                        List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                                                .eq(InsProduct::getState,1)
                                                .eq(InsProduct::getInsSampleId, sample.getId())
                                                .isNotNull(InsProduct::getInsFiberId)
                                                .eq(InsProduct::getInsFiberId, insFibers.get(j - 5).getId())
@@ -529,7 +584,7 @@
                                                        .eq(InsProductResult::getInsProductId, insProducts.get(0).getId()))
                                                .getComValue();
                                        String[] splitStr = comValue.split(":");
                                        if (k <= 6L * nm.size() / 3 && s.equals("20℃(常温)")) {
                                        if (k <= 2 * nm.size()*((wendu.size()-m)/3>0?3:(wendu.size()-m)) / 3 && s.equals("20℃(常温)")) {
                                            textRenderData.setText(splitStr[splitStr.length - 1].split("\"")[1] + "∑" + j + k);
                                        } else {
                                            textRenderData.setText(splitStr[splitStr.length - 1].split("\"")[1]);
@@ -557,8 +612,16 @@
                        }
                    }
                    TableStyle tableStyle = new TableStyle();
                    tableStyle.setWidth(XWPFTable.DEFAULT_PERCENTAGE_WIDTH);
                    tableStyle.setAlign(TableRowAlign.CENTER);
                    if(m==0 && countSize==13){
                        tableStyle.setWidth("10000");
                        tableStyle.setColWidths(new int[]{1580,850,0,850,0,840,840,840,840,840,840,840,840});
                    }else if(countSize==13){
                        tableStyle.setWidth("10000");
                        tableStyle.setColWidths(new int[]{1220,735,745,735,745,735,745,735,745,735,745,735,745});
                    }else{
                        tableStyle.setWidth(XWPFTable.DEFAULT_PERCENTAGE_WIDTH);
                    }
                    BorderStyle borderStyle = new BorderStyle();
                    borderStyle.setColor("000000");
                    borderStyle.setType(XWPFTable.XWPFBorderType.THICK);