zss
2024-07-15 40c75db6d335a0335e944e5196a102d8837cad6b
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
@@ -914,8 +914,9 @@
                for (long i = 0; i < size; i++) {
                    if (i % number == 0) {
                        List<RowRenderData> rows = new ArrayList<>();
                        //表格的行数  √ ✖ ✔
                        for (int j = 0; j < number + 3; j++) {
                        //表格的行数 × √ ✖ ✔
                        long count1 = size-(index-1)*number < number ? size-(index-1)*number + 3 : number + 3;
                        for (int j = 0; j <count1 ; j++) {
                            RowRenderData rowRenderData = new RowRenderData();
                            RowStyle rowStyle = new RowStyle();
                            rowStyle.setHeight(40);
@@ -957,7 +958,6 @@
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                }
                                else if (j == 1) {
                                    //第二行
@@ -1003,7 +1003,7 @@
                                        cells.add(cellRenderData);
                                    }
                                }
                                else if (j == number + 2) {
                                else if (j == count1-1) {
                                    //最后一行
                                    if (k == 0 || k == 1) {
                                        //前两列
@@ -1014,7 +1014,7 @@
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    } else {
                                        textRenderData.setText("“✔”表示项目合格,“✖”表示项目不合格@“✔”indicates test Item is qualified,“✖”indicates test Item is unqualified∑19");
                                        textRenderData.setText("“√”表示项目合格,“×”表示项目不合格@“√”indicates test Item is qualified,“×”indicates test Item is unqualified∑19");
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
@@ -1031,10 +1031,14 @@
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                    else if (k == 1) {
                                    } else if (k == 1) {
                                        //第二列
                                        String insProduct = filteredProducts.get((int) ((j - 2) + 10 * (index - 1)));
                                        String insProduct;
                                        try {
                                            insProduct = filteredProducts.get((int) ((j - 2) + 10 * (index - 1)));
                                        } catch (Exception e) {
                                            continue;
                                        }
                                        String[] split = insProduct.split(",");
                                        if (ObjectUtils.isEmpty(split[1]) || split[1].equals("")) {
                                            textRenderData.setText(split[0]);
@@ -1046,11 +1050,15 @@
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                    else if (k == 2) {
                                    } else if (k == 2) {
                                        //第三列
                                        //先判断检验项是否有子类
                                        String insProduct = filteredProducts.get((int) ((j - 2) + 10 * (index - 1)));
                                        String insProduct;
                                        try {
                                            insProduct = filteredProducts.get((int) ((j - 2) + 10 * (index - 1)));
                                        } catch (Exception e) {
                                            continue;
                                        }
                                        String[] split = insProduct.split(",");
                                        if (ObjectUtils.isEmpty(split[2]) || split[2].equals("")) {
                                            //如果没有子类
@@ -1069,11 +1077,15 @@
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                    else if (k == 3) {
                                    } else if (k == 3) {
                                        //第四列
                                        //先判断检验项是否有子类
                                        String insProduct = filteredProducts.get((int) ((j - 2) + 10 * (index - 1)));
                                        String insProduct;
                                        try {
                                            insProduct = filteredProducts.get((int) ((j - 2) + 10 * (index - 1)));
                                        } catch (Exception e) {
                                            continue;
                                        }
                                        String[] split = insProduct.split(",");
                                        if (ObjectUtils.isEmpty(split[2]) || split[2].equals("")) {
                                            //如果没有子类
@@ -1087,10 +1099,14 @@
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                    else if (k == 4) {
                                    } else if (k == 4) {
                                        //第五列
                                        String insProduct = filteredProducts.get((int) ((j - 2) + 10 * (index - 1)));
                                        String insProduct;
                                        try {
                                            insProduct = filteredProducts.get((int) ((j - 2) + 10 * (index - 1)));
                                        } catch (Exception e) {
                                            continue;
                                        }
                                        String[] split = insProduct.split(",");
                                        //查询所有样品该检验项的检验结果(最终值)
                                        List<InsProduct> products = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
@@ -1105,16 +1121,20 @@
                                        Optional<String> min = products.stream().map(InsProduct::getLastValue)
                                                .filter(value -> !value.isEmpty())
                                                .min(String::compareTo);
                                        textRenderData.setText(min+"-"+max);//检验结果
                                        textRenderData.setText(min.get() + "-" + max.get());//检验结果
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                    else {
                                    } else {
                                        //最后一列
                                        String insProduct = filteredProducts.get((int) ((j - 2) + 10 * (index - 1)));
                                        String insProduct;
                                        try {
                                            insProduct = filteredProducts.get((int) ((j - 2) + 10 * (index - 1)));
                                        } catch (Exception e) {
                                            continue;
                                        }
                                        String[] split = insProduct.split(",");
                                        //查询所有样品该检验项的检验结论(ins_result)
                                        List<InsProduct> products = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
@@ -1125,10 +1145,10 @@
                                        List<Integer> result = products.stream().map(InsProduct::getInsResult).distinct().collect(Collectors.toList());
                                        if (result.size() == 1 && result.contains(1)) {
                                            //合格
                                            textRenderData.setText("✔");
                                        }else {
                                            textRenderData.setText("√");
                                        } else {
                                            //不合格
                                            textRenderData.setText("✖");
                                            textRenderData.setText("×");
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
@@ -1152,7 +1172,7 @@
                          }
                          System.out.println("");*/
                            if (row.getCells().size() != countSize) {
                                throw new ErrorException("每行单元格不相等");
                                throw new ErrorException("每行单元格不相等1");
                            }
                        }
                        TableStyle tableStyle = new TableStyle();
@@ -1178,7 +1198,7 @@
                long index4 = 1;
                //检验报告报告(当检验项目超过7个新建表)
                for (long j = 0; j < size; j++) {
                    if (j%number2==0){
                    if (j % number2 == 0) {
                        List<RowRenderData> rows = new ArrayList<>();
                        //表格的行数(根据样品数量来)
                        for (int i = 0; i < samples.size() + 2; i++) {
@@ -1204,9 +1224,9 @@
                                style.setFontFamily("宋体");
                                style.setColor("000000");
                                textRenderData.setStyle(style);
                                if (i==0){
                                if (i == 0) {
                                    //第一行
                                    if (k==0){
                                    if (k == 0) {
                                        //第一列
                                        textRenderData.setText("样品编号@Sample number∑30");
                                        renderData.add(textRenderData);
@@ -1214,22 +1234,26 @@
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                    else {
                                    } else {
                                        //第二列
                                        String product = filteredProducts.get((int) ((k - 1) + (index4 - 1) * 7));
                                        String product;
                                        try {
                                            product = filteredProducts.get((int) ((k - 1) + (index4 - 1) * 7));
                                        } catch (Exception e) {
                                            continue;
                                        }
                                        String[] split = product.split(",");
                                        if (ObjectUtils.isEmpty(split[2])||split[2].equals("")){
                                            if (ObjectUtils.isEmpty(split[1]) || split[1].equals("")){
                                                textRenderData.setText(split[0]+"∑3"+k);
                                            }else {
                                                textRenderData.setText(split[0]+"@"+split[1]+"∑3"+k);
                                        if (ObjectUtils.isEmpty(split[2]) || split[2].equals("")) {
                                            if (ObjectUtils.isEmpty(split[1]) || split[1].equals("")) {
                                                textRenderData.setText(split[0] + "∑3" + k);
                                            } else {
                                                textRenderData.setText(split[0] + "@" + split[1] + "∑3" + k);
                                            }
                                        }else {
                                            if (ObjectUtils.isEmpty(split[1]) || split[1].equals("")){
                                        } else {
                                            if (ObjectUtils.isEmpty(split[1]) || split[1].equals("")) {
                                                textRenderData.setText(split[0]);
                                            }else {
                                                textRenderData.setText(split[0]+"@"+split[1]);
                                            } else {
                                                textRenderData.setText(split[0] + "@" + split[1]);
                                            }
                                        }
                                        renderData.add(textRenderData);
@@ -1238,10 +1262,9 @@
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                }
                                else if (i==1){
                                } else if (i == 1) {
                                    //第二行
                                    if (k==0){
                                    if (k == 0) {
                                        //第一列
                                        textRenderData.setText("样品编号@Sample number∑30");
                                        renderData.add(textRenderData);
@@ -1249,22 +1272,26 @@
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                    else {
                                    } else {
                                        //第二列
                                        String product = filteredProducts.get((int) ((k - 1) + (index4 - 1) * 7));
                                        String product;
                                        try {
                                            product = filteredProducts.get((int) ((k - 1) + (index4 - 1) * 7));
                                        } catch (Exception e) {
                                            continue;
                                        }
                                        String[] split = product.split(",");
                                        if (ObjectUtils.isEmpty(split[2])||split[2].equals("")){
                                            if (ObjectUtils.isEmpty(split[1]) || split[1].equals("")){
                                                textRenderData.setText(split[0]+"∑3"+k);
                                            }else {
                                                textRenderData.setText(split[0]+"@"+split[1]+"∑3"+k);
                                        if (ObjectUtils.isEmpty(split[2]) || split[2].equals("")) {
                                            if (ObjectUtils.isEmpty(split[1]) || split[1].equals("")) {
                                                textRenderData.setText(split[0] + "∑3" + k);
                                            } else {
                                                textRenderData.setText(split[0] + "@" + split[1] + "∑3" + k);
                                            }
                                        }else {
                                            if (ObjectUtils.isEmpty(split[3]) || split[3].equals("")){
                                        } else {
                                            if (ObjectUtils.isEmpty(split[3]) || split[3].equals("")) {
                                                textRenderData.setText(split[2]);
                                            }else {
                                                textRenderData.setText(split[2]+"@"+split[3]);
                                            } else {
                                                textRenderData.setText(split[2] + "@" + split[3]);
                                            }
                                        }
                                        renderData.add(textRenderData);
@@ -1273,27 +1300,30 @@
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                }
                                else {
                                    if (k==0){
                                } else {
                                    if (k == 0) {
                                        //第一列
                                        textRenderData.setText(samples.get(i-2).getSampleCode());
                                        textRenderData.setText(samples.get(i - 2).getSampleCode());
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                    else {
                                    } else {
                                        //根据样品编号和项目去查询最终值
                                        String product = filteredProducts.get((int) ((k - 1) + (index4 - 1) * 7));
                                        String product;
                                        try {
                                            product = filteredProducts.get((int) ((k - 1) + (index4 - 1) * 7));
                                        } catch (Exception e) {
                                            continue;
                                        }
                                        String[] split = product.split(",");
                                        InsProduct insProduct = insProductMapper.selectOne(Wrappers.<InsProduct>lambdaQuery()
                                                .eq(InsProduct::getState, 1)
                                                .eq(InsProduct::getInsSampleId, samples.get(i - 2).getId())
                                                .eq(InsProduct::getInspectionItem, split[0])
                                                .eq(InsProduct::getInspectionItemSubclass, split[2]));
                                        if (ObjectUtils.isEmpty(insProduct)){
                                        if (ObjectUtils.isEmpty(insProduct)) {
                                            //可能根据正常的样品编号和光纤接头损耗的项目查不到对应的项目,则需要根据"/"来查
                                            List<InsSample> sampleList = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().like(InsSample::getSampleCode, samples.get(i - 2).getSampleCode()));
                                            List<InsProduct> products = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
@@ -1301,7 +1331,7 @@
                                                    .in(InsProduct::getInsSampleId, sampleList.stream().map(InsSample::getId).collect(Collectors.toList()))
                                                    .eq(InsProduct::getInspectionItem, split[0])
                                                    .eq(InsProduct::getInspectionItemSubclass, split[2]));
                                            insProduct=products.get(0);
                                            insProduct = products.get(0);
                                        }
                                        textRenderData.setText(insProduct.getLastValue());
                                        renderData.add(textRenderData);
@@ -1327,7 +1357,7 @@
                                }
                                System.out.println("");*/
                            if (row.getCells().size() != countSize) {
                                throw new ErrorException("每行单元格不相等");
                                throw new ErrorException("每行单元格不相等2");
                            }
                        }
                        TableStyle tableStyle = new TableStyle();
@@ -1355,12 +1385,14 @@
                List<InsSample> sampleList = insSamples.stream().filter(insSample -> insSample.getSampleCode().contains("/")).collect(Collectors.toList());
                //过滤出光纤接头损耗的检验项目
                List<String> strings = filteredProducts.stream().filter(s -> s.contains("光纤接头损耗")).distinct().collect(Collectors.toList());
                long index41 = 1;
                for (int i = 0; i < sampleList.size(); i++) {
                    if (i%16==0){
                    if (i % 16 == 0) {
                        //样品数量超过16需要新增表格
                        List<RowRenderData> rows = new ArrayList<>();
                        int count2 = sampleList.size()-(index41-1)*16 < 16 ? (int) (sampleList.size() - (index41 - 1) * 16 + 1) : 17;
                        //表格的行数
                        for (int j = 0; j < 17; j++) {
                        for (int j = 0; j < count2; j++) {
                            RowRenderData rowRenderData = new RowRenderData();
                            RowStyle rowStyle = new RowStyle();
                            rowStyle.setHeight(40);
@@ -1383,9 +1415,9 @@
                                style.setFontFamily("宋体");
                                style.setColor("000000");
                                textRenderData.setStyle(style);
                                if (j==0){
                                if (j == 0) {
                                    //第一行
                                    if (k==0){
                                    if (k == 0) {
                                        //第一列
                                        textRenderData.setText("光纤类型@Fiber type");
                                        renderData.add(textRenderData);
@@ -1393,7 +1425,7 @@
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }else if (k==1 || k==2){
                                    } else if (k == 1 || k == 2) {
                                        //第二 三列
                                        textRenderData.setText("样品编号@Sample number");
                                        renderData.add(textRenderData);
@@ -1401,12 +1433,12 @@
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }else {
                                    } else {
                                        String[] split = strings.get(k - 3).split(",");
                                        if (ObjectUtils.isEmpty(split[3])|| split[3].equals("")){
                                        if (ObjectUtils.isEmpty(split[3]) || split[3].equals("")) {
                                            textRenderData.setText(split[2]);
                                        }else {
                                            textRenderData.setText(split[2]+"@"+split[3]);
                                        } else {
                                            textRenderData.setText(split[2] + "@" + split[3]);
                                        }
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
@@ -1416,34 +1448,31 @@
                                    }
                                }
                                else {
                                    if (k==0){
                                    if (k == 0) {
                                        //第一列
                                        textRenderData.setText(sampleList.get(0).getSampleCode()+"∑44");
                                        textRenderData.setText(sampleList.get(0).getModel() + "∑44");
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                    else if (k==1){
                                    } else if (k == 1) {
                                        //第二列
                                        textRenderData.setText(sampleList.get(j-1).getSampleCode().split("/")[0]);
                                        textRenderData.setText(sampleList.get(j - 1).getSampleCode().split("/")[0]);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                    else if (k==2){
                                    } else if (k == 2) {
                                        //第三列
                                        textRenderData.setText(sampleList.get(j-1).getSampleCode().split("/")[1]);
                                        textRenderData.setText(sampleList.get(j - 1).getSampleCode().split("/")[1]);
                                        renderData.add(textRenderData);
                                        paragraphRenderData.setContents(renderData);
                                        paragraphRenderDataList.add(paragraphRenderData);
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                    else {
                                    } else {
                                        //根据对应的样品编号和检验项目查询对应数据(最终值)
                                        String[] split = strings.get(k - 3).split(",");
                                        InsProduct insProduct = insProductMapper.selectOne(Wrappers.<InsProduct>lambdaQuery()
@@ -1474,7 +1503,7 @@
                                }
                                System.out.println("");*/
                            if (row.getCells().size() != countSize) {
                                throw new ErrorException("每行单元格不相等");
                                throw new ErrorException("每行单元格不相等3");
                            }
                        }
                        TableStyle tableStyle = new TableStyle();
@@ -1492,9 +1521,10 @@
                        Map<String, Object> table = new HashMap<>();
                        table.put("table4", tableRenderData);
                        table.put("report", insReport);
                        table.put("index4", index4+1);
                        table.put("index4", index4 + 1);
                        tables4.add(table);
                        index4++;
                        index41++;
                    }
                }
                tables4.forEach(table4 -> {
@@ -1762,7 +1792,7 @@
                                }
                                System.out.println("");*/
                                if (row.getCells().size() != countSize) {
                                    throw new ErrorException("每行单元格不相等");
                                    throw new ErrorException("每行单元格不相等4");
                                }
                            }
                            TableStyle tableStyle = new TableStyle();
@@ -2200,8 +2230,7 @@
                                if (rowRenderData.getCells().size() != 0) {
                                    rows.add(rowRenderData);
                                }
                            }
                            else {
                            } else {
                                //如果有多次循环
                                if (i == 0) {
                                    //第一次循环的列数,那么列数包括20℃常温(2 * (size-nm.size()) -nm.size()+1)
@@ -3044,7 +3073,7 @@
                            }
                            System.out.println("");*/
                            if (row.getCells().size() != countSize) {
                                throw new ErrorException("每行单元格不相等");
                                throw new ErrorException("每行单元格不相等5");
                            }
                        }
                        TableStyle tableStyle = new TableStyle();