| | |
| | | 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); |
| | |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } |
| | | |
| | | } |
| | | else if (j == 1) { |
| | | //第二行 |
| | |
| | | cells.add(cellRenderData); |
| | | } |
| | | } |
| | | else if (j == number + 2) { |
| | | else if (j == count1-1) { |
| | | //最后一行 |
| | | if (k == 0 || k == 1) { |
| | | //前两列 |
| | |
| | | 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); |
| | |
| | | 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]); |
| | |
| | | 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("")) { |
| | | //如果没有子类 |
| | |
| | | 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("")) { |
| | | //如果没有子类 |
| | |
| | | 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() |
| | |
| | | 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() |
| | |
| | | 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); |
| | |
| | | } |
| | | System.out.println("");*/ |
| | | if (row.getCells().size() != countSize) { |
| | | throw new ErrorException("每行单元格不相等"); |
| | | throw new ErrorException("每行单元格不相等1"); |
| | | } |
| | | } |
| | | TableStyle tableStyle = new TableStyle(); |
| | |
| | | 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++) { |
| | |
| | | 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); |
| | |
| | | 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); |
| | |
| | | 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); |
| | |
| | | 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); |
| | |
| | | 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() |
| | |
| | | .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); |
| | |
| | | } |
| | | System.out.println("");*/ |
| | | if (row.getCells().size() != countSize) { |
| | | throw new ErrorException("每行单元格不相等"); |
| | | throw new ErrorException("每行单元格不相等2"); |
| | | } |
| | | } |
| | | TableStyle tableStyle = new TableStyle(); |
| | |
| | | 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); |
| | |
| | | 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); |
| | |
| | | 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); |
| | |
| | | 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); |
| | |
| | | } |
| | | } |
| | | 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() |
| | |
| | | } |
| | | System.out.println("");*/ |
| | | if (row.getCells().size() != countSize) { |
| | | throw new ErrorException("每行单元格不相等"); |
| | | throw new ErrorException("每行单元格不相等3"); |
| | | } |
| | | } |
| | | TableStyle tableStyle = new TableStyle(); |
| | |
| | | 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 -> { |
| | |
| | | } |
| | | System.out.println("");*/ |
| | | if (row.getCells().size() != countSize) { |
| | | throw new ErrorException("每行单元格不相等"); |
| | | throw new ErrorException("每行单元格不相等4"); |
| | | } |
| | | } |
| | | TableStyle tableStyle = new TableStyle(); |
| | |
| | | if (rowRenderData.getCells().size() != 0) { |
| | | rows.add(rowRenderData); |
| | | } |
| | | } |
| | | else { |
| | | } else { |
| | | //如果有多次循环 |
| | | if (i == 0) { |
| | | //第一次循环的列数,那么列数包括20℃常温(2 * (size-nm.size()) -nm.size()+1) |
| | |
| | | } |
| | | System.out.println("");*/ |
| | | if (row.getCells().size() != countSize) { |
| | | throw new ErrorException("每行单元格不相等"); |
| | | throw new ErrorException("每行单元格不相等5"); |
| | | } |
| | | } |
| | | TableStyle tableStyle = new TableStyle(); |