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("✔");
                                            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();
@@ -1214,10 +1234,14 @@
                                        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("")){
@@ -1238,8 +1262,7 @@
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                }
                                else if (i==1){
                                } else if (i == 1) {
                                    //第二行
                                    if (k==0){
                                        //第一列
@@ -1249,10 +1272,14 @@
                                        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("")){
@@ -1273,8 +1300,7 @@
                                        cellRenderData.setParagraphs(paragraphRenderDataList);
                                        cells.add(cellRenderData);
                                    }
                                }
                                else {
                                } else {
                                    if (k==0){
                                        //第一列
                                        textRenderData.setText(samples.get(i-2).getSampleCode());
@@ -1283,10 +1309,14 @@
                                        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)
@@ -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){
                        //样品数量超过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);
@@ -1418,14 +1450,13 @@
                                else {
                                    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]);
                                        renderData.add(textRenderData);
@@ -1433,8 +1464,7 @@
                                        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]);
                                        renderData.add(textRenderData);
@@ -1442,8 +1472,7 @@
                                        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();
@@ -1495,6 +1524,7 @@
                        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();