| | |
| | | package com.yuanchu.mom.utils; |
| | | |
| | | import cn.hutool.core.lang.UUID; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
| | |
| | | import com.deepoove.poi.data.style.*; |
| | | import com.deepoove.poi.util.TableTools; |
| | | import com.yuanchu.mom.dto.InsReportDto1; |
| | | import com.yuanchu.mom.dto.InsReportDto2; |
| | | import com.yuanchu.mom.dto.SampleProductDto; |
| | | import com.yuanchu.mom.exception.ErrorException; |
| | | import com.yuanchu.mom.mapper.*; |
| | |
| | | @Resource |
| | | InsSampleUserMapper insSampleUserMapper; |
| | | |
| | | @Resource |
| | | GiveCode giveCode; |
| | | |
| | | |
| | | //生成站点电路试验报告 |
| | | public void generateWord(String term, InsOrderState insOrderState) { |
| | |
| | | List<Map<String, Object>> tables = new ArrayList<>(); |
| | | //查询订单 |
| | | InsOrder insOrder = insOrderMapper.selectById(insOrderState.getInsOrderId()); |
| | | //查询且过滤出有电路试验的样品 |
| | | List<InsSample> insSamples = insSampleMapper.selectSample(insOrderState.getInsOrderId()); |
| | | insSamples.forEach(insSample -> { |
| | | //查询项目 |
| | | List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() |
| | | .eq(InsProduct::getInsSampleId, insSample.getId()) |
| | | .eq(InsProduct::getSonLaboratory, "电路试验")); |
| | | //获取最大端口数量,角度数量,频段数量 |
| | | List<InsProductResult2> insProductResult2s = insProductResult2Mapper.selectList(Wrappers.<InsProductResult2>lambdaQuery() |
| | | .eq(InsProductResult2::getNum, insOrderState.getNum()) |
| | | .in(InsProductResult2::getInsProductId, insProducts.stream().map(InsProduct::getId).collect(Collectors.toList()))); |
| | | //按照频段分表(查询所有频段) |
| | | List<String> frequencys = insProductResult2s.stream().map(InsProductResult2::getFrequency).distinct().collect(Collectors.toList()); |
| | | frequencys.forEach(s -> { |
| | | int ports = 0;//端口数 |
| | | int angles = 0;//角度数 |
| | | for (InsProductResult2 insProductResult2 : insProductResult2s) { |
| | | if (insProductMapper.selectById(insProductResult2.getInsProductId()).getInspectionItemSubclass().equals("电压驻波比") && insProductResult2.getPort().split(",").length > ports) { |
| | | ports = insProductResult2.getPort().split(",").length; |
| | | } |
| | | if (insProductResult2.getAngle().split(",").length > angles) { |
| | | angles = insProductResult2.getAngle().split(",").length; |
| | | } |
| | | //查询样品 |
| | | InsSample insSample = insSampleMapper.selectById(insOrderState.getInsSampleId()); |
| | | //查询项目 |
| | | List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() |
| | | .eq(InsProduct::getInsSampleId, insSample.getId()) |
| | | .eq(InsProduct::getSonLaboratory, "电路试验")); |
| | | //获取最大端口数量,角度数量,频段数量 |
| | | List<InsProductResult2> insProductResult2s = insProductResult2Mapper.selectList(Wrappers.<InsProductResult2>lambdaQuery() |
| | | .eq(InsProductResult2::getNum, insOrderState.getNum()) |
| | | .in(InsProductResult2::getInsProductId, insProducts.stream().map(InsProduct::getId).collect(Collectors.toList()))); |
| | | //按照频段分表(查询所有频段) |
| | | List<String> frequencys = insProductResult2s.stream().map(InsProductResult2::getFrequency).distinct().collect(Collectors.toList()); |
| | | frequencys.forEach(s -> { |
| | | int ports = 0;//端口数 |
| | | int angles = 0;//角度数 |
| | | for (InsProductResult2 insProductResult2 : insProductResult2s) { |
| | | if (insProductMapper.selectById(insProductResult2.getInsProductId()).getInspectionItemSubclass().equals("电压驻波比") && insProductResult2.getPort().split(",").length > ports) { |
| | | ports = insProductResult2.getPort().split(",").length; |
| | | } |
| | | //频点数 |
| | | long often = insProductResult2s.stream().filter(insProductResult2 -> insProductResult2.getFrequency().equals(s)) |
| | | .filter(insProductResult2 -> |
| | | insProductMapper.selectById(insProductResult2.getInsProductId()).getInspectionItemSubclass().equals("互调") |
| | | ).filter(insProductResult2 -> ObjectUtils.isNotEmpty(insProductResult2.getOften())).distinct().count(); |
| | | List<String> inspectionItemSubclass = insProducts.stream().map(InsProduct::getInspectionItemSubclass).collect(Collectors.toList()); |
| | | //行数 |
| | | int aa = 0; |
| | | int portRow = ports % 8 == 0 ? ports / 8 : ports / 8 + 1; |
| | | //先判断是1简单版还是0复杂版 |
| | | if (insOrderState.getVersion() == 1) { |
| | | if (inspectionItemSubclass.contains("电压驻波比")) { |
| | | aa += 2 * portRow; |
| | | } |
| | | if (inspectionItemSubclass.contains("同极化隔离度")) { |
| | | aa += 1 * portRow; |
| | | } |
| | | if (inspectionItemSubclass.contains("异极化隔离度")) { |
| | | aa += 1 * portRow; |
| | | } |
| | | if (inspectionItemSubclass.contains("互调")) { |
| | | aa += (angles + 1) * portRow * often; |
| | | } |
| | | } else { |
| | | if (inspectionItemSubclass.contains("电压驻波比")) { |
| | | aa += (angles + 1) * portRow; |
| | | } |
| | | if (inspectionItemSubclass.contains("同极化隔离度")) { |
| | | List<InsProductResult2> result2s = insProductResult2s.stream().filter(insProductResult2 -> |
| | | insProductMapper.selectById(insProductResult2.getInsProductId()) |
| | | .getInspectionItemSubclass().equals("同极化隔离度") |
| | | ).collect(Collectors.toList()); |
| | | int length = result2s.get(0).getPort().split(",").length; |
| | | aa += (angles + 1) * (length % (ports > 8 ? 4 : (ports + 1) / 2) == 0 ? length / (ports > 8 ? 4 : (ports + 1) / 2) : length / (ports > 8 ? 4 : (ports + 1) / 2) + 1); |
| | | } |
| | | if (inspectionItemSubclass.contains("异极化隔离度")) { |
| | | List<InsProductResult2> result2s = insProductResult2s.stream().filter(insProductResult2 -> |
| | | insProductMapper.selectById(insProductResult2.getInsProductId()) |
| | | .getInspectionItemSubclass().equals("异极化隔离度") |
| | | ).collect(Collectors.toList()); |
| | | int length = result2s.get(0).getPort().split(",").length; |
| | | aa += (angles + 1) * (length % (ports > 8 ? 4 : (ports + 1) / 2) == 0 ? length / (ports > 8 ? 4 : (ports + 1) / 2) : length / (ports > 8 ? 4 : (ports + 1) / 2) + 1); |
| | | } |
| | | if (inspectionItemSubclass.contains("互调")) { |
| | | aa += (angles + 1) * portRow * often; |
| | | } |
| | | if (inspectionItemSubclass.contains("最大耦合度")) { |
| | | aa += (angles + 1); |
| | | } |
| | | if (inspectionItemSubclass.contains("最小耦合度")) { |
| | | aa += (angles + 1); |
| | | } |
| | | if (inspectionItemSubclass.contains("幅度偏差")) { |
| | | List<InsProductResult2> result2s = insProductResult2s.stream().filter(insProductResult2 -> |
| | | insProductMapper.selectById(insProductResult2.getInsProductId()) |
| | | .getInspectionItemSubclass().equals("幅度偏差") |
| | | ).collect(Collectors.toList()); |
| | | int length = result2s.get(0).getPort().split(",").length; |
| | | aa += (angles + 1) * (length % 8 == 0 ? length / 8 : length / 8 + 1); |
| | | } |
| | | if (inspectionItemSubclass.contains("最大相位偏差")) { |
| | | List<InsProductResult2> result2s = insProductResult2s.stream().filter(insProductResult2 -> |
| | | insProductMapper.selectById(insProductResult2.getInsProductId()) |
| | | .getInspectionItemSubclass().equals("最大相位偏差") |
| | | ).collect(Collectors.toList()); |
| | | int length = result2s.get(0).getPort().split(",").length; |
| | | aa += (angles + 1) * (length % 8 == 0 ? length / 8 : length / 8 + 1); |
| | | } |
| | | if (insProductResult2.getAngle().split(",").length > angles) { |
| | | angles = insProductResult2.getAngle().split(",").length; |
| | | } |
| | | List<RowRenderData> rows = new ArrayList<>(); |
| | | Set<String> itemSet = new HashSet<>(); |
| | | int cc = 0; |
| | | int dd = 0; |
| | | int ee = 0; |
| | | int ff = 0; |
| | | int gg = 0; |
| | | int hh = 0; |
| | | int mm = 0; |
| | | //表格的行数 |
| | | for (int i = 0; i <= aa; i++) { |
| | | RowRenderData rowRenderData = new RowRenderData(); |
| | | RowStyle rowStyle = new RowStyle(); |
| | | rowStyle.setHeight(40); |
| | | rowRenderData.setRowStyle(rowStyle); |
| | | List<CellRenderData> cells = new ArrayList<>(); |
| | | //表格的列数 |
| | | int bb = ports > 8 ? 14 : ports + 6; |
| | | for (int j = 0; j < bb; j++) { |
| | | 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 (i == 0) { |
| | | //第一行 |
| | | textRenderData.setText("频段:" + s + "∑0" + lable); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else { |
| | | if (insOrderState.getVersion() == 1) { |
| | | //非电调版本(简单版) |
| | | if (inspectionItemSubclass.contains("电压驻波比") && i <= 2 * portRow) { |
| | | cc = 2 * portRow; |
| | | if (itemSet.add("电压驻波比")) { |
| | | index.getAndIncrement(); |
| | | } |
| | | List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("电压驻波比")).collect(Collectors.toList()); |
| | | List<InsProductResult2> result2s = insProductResult2s.stream() |
| | | .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId())) |
| | | .collect(Collectors.toList()); |
| | | //电压驻波比所在行 |
| | | if (j == 0) { |
| | | //第一列 |
| | | textRenderData.setText(index + "∑1" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 1) { |
| | | //第二列 |
| | | textRenderData.setText("电压驻波比∑2" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 2) { |
| | | //第三列 |
| | | textRenderData.setText(products.get(0).getUnit() + "∑3" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 3) { |
| | | //第四列 |
| | | textRenderData.setText(products.get(0).getAsk() + "∑4" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 4) { |
| | | //第五列 |
| | | if (i % 2 == 0) { |
| | | //最差值 |
| | | textRenderData.setText("最差值"); |
| | | } else { |
| | | //端口 |
| | | textRenderData.setText("端口"); |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == bb - 1) { |
| | | //最后一列 |
| | | if (i % 2 == 0) { |
| | | //结论 |
| | | if (products.get(0).getInsResult() == 1) { |
| | | textRenderData.setText("合格"); |
| | | } else if (products.get(0).getInsResult() == 0) { |
| | | textRenderData.setText("不合格"); |
| | | } else { |
| | | textRenderData.setText("不判定"); |
| | | } |
| | | } else { |
| | | textRenderData.setText("/"); |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else { |
| | | //其余列 |
| | | if (i % 2 == 0) { |
| | | //最差值 |
| | | String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", ""); |
| | | try { |
| | | textRenderData.setText(value.split(",")[(j - 5) + (i - 1) / 2 * (Math.min(ports, 8))]); |
| | | } catch (Exception e) { |
| | | textRenderData.setText(""); |
| | | } |
| | | } else { |
| | | //端口 |
| | | try { |
| | | textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) + (i / 2) * (Math.min(ports, 8))]); |
| | | } catch (Exception e) { |
| | | textRenderData.setText(""); |
| | | } |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } |
| | | } |
| | | //频点数 |
| | | long often = insProductResult2s.stream().filter(insProductResult2 -> insProductResult2.getFrequency().equals(s)) |
| | | .filter(insProductResult2 -> |
| | | insProductMapper.selectById(insProductResult2.getInsProductId()).getInspectionItemSubclass().equals("互调") |
| | | ).filter(insProductResult2 -> ObjectUtils.isNotEmpty(insProductResult2.getOften())).distinct().count(); |
| | | List<String> inspectionItemSubclass = insProducts.stream().map(InsProduct::getInspectionItemSubclass).collect(Collectors.toList()); |
| | | //行数 |
| | | int aa = 0; |
| | | int portRow = ports % 8 == 0 ? ports / 8 : ports / 8 + 1; |
| | | //先判断是1简单版还是0复杂版 |
| | | if (insOrderState.getVersion() == 1) { |
| | | if (inspectionItemSubclass.contains("电压驻波比")) { |
| | | aa += 2 * portRow; |
| | | } |
| | | if (inspectionItemSubclass.contains("同极化隔离度")) { |
| | | aa += 1 * portRow; |
| | | } |
| | | if (inspectionItemSubclass.contains("异极化隔离度")) { |
| | | aa += 1 * portRow; |
| | | } |
| | | if (inspectionItemSubclass.contains("互调")) { |
| | | aa += (angles + 1) * portRow * often; |
| | | } |
| | | } else { |
| | | if (inspectionItemSubclass.contains("电压驻波比")) { |
| | | aa += (angles + 1) * portRow; |
| | | } |
| | | if (inspectionItemSubclass.contains("同极化隔离度")) { |
| | | List<InsProductResult2> result2s = insProductResult2s.stream().filter(insProductResult2 -> |
| | | insProductMapper.selectById(insProductResult2.getInsProductId()) |
| | | .getInspectionItemSubclass().equals("同极化隔离度") |
| | | ).collect(Collectors.toList()); |
| | | int length = result2s.get(0).getPort().split(",").length; |
| | | aa += (angles + 1) * (length % (ports > 8 ? 4 : (ports + 1) / 2) == 0 ? length / (ports > 8 ? 4 : (ports + 1) / 2) : length / (ports > 8 ? 4 : (ports + 1) / 2) + 1); |
| | | } |
| | | if (inspectionItemSubclass.contains("异极化隔离度")) { |
| | | List<InsProductResult2> result2s = insProductResult2s.stream().filter(insProductResult2 -> |
| | | insProductMapper.selectById(insProductResult2.getInsProductId()) |
| | | .getInspectionItemSubclass().equals("异极化隔离度") |
| | | ).collect(Collectors.toList()); |
| | | int length = result2s.get(0).getPort().split(",").length; |
| | | aa += (angles + 1) * (length % (ports > 8 ? 4 : (ports + 1) / 2) == 0 ? length / (ports > 8 ? 4 : (ports + 1) / 2) : length / (ports > 8 ? 4 : (ports + 1) / 2) + 1); |
| | | } |
| | | if (inspectionItemSubclass.contains("互调")) { |
| | | aa += (angles + 1) * portRow * often; |
| | | } |
| | | if (inspectionItemSubclass.contains("最大耦合度")) { |
| | | aa += (angles + 1); |
| | | } |
| | | if (inspectionItemSubclass.contains("最小耦合度")) { |
| | | aa += (angles + 1); |
| | | } |
| | | if (inspectionItemSubclass.contains("幅度偏差")) { |
| | | List<InsProductResult2> result2s = insProductResult2s.stream().filter(insProductResult2 -> |
| | | insProductMapper.selectById(insProductResult2.getInsProductId()) |
| | | .getInspectionItemSubclass().equals("幅度偏差") |
| | | ).collect(Collectors.toList()); |
| | | int length = result2s.get(0).getPort().split(",").length; |
| | | aa += (angles + 1) * (length % 8 == 0 ? length / 8 : length / 8 + 1); |
| | | } |
| | | if (inspectionItemSubclass.contains("最大相位偏差")) { |
| | | List<InsProductResult2> result2s = insProductResult2s.stream().filter(insProductResult2 -> |
| | | insProductMapper.selectById(insProductResult2.getInsProductId()) |
| | | .getInspectionItemSubclass().equals("最大相位偏差") |
| | | ).collect(Collectors.toList()); |
| | | int length = result2s.get(0).getPort().split(",").length; |
| | | aa += (angles + 1) * (length % 8 == 0 ? length / 8 : length / 8 + 1); |
| | | } |
| | | } |
| | | List<RowRenderData> rows = new ArrayList<>(); |
| | | Set<String> itemSet = new HashSet<>(); |
| | | int cc = 0; |
| | | int dd = 0; |
| | | int ee = 0; |
| | | int ff = 0; |
| | | int gg = 0; |
| | | int hh = 0; |
| | | int mm = 0; |
| | | //表格的行数 |
| | | for (int i = 0; i <= aa; i++) { |
| | | RowRenderData rowRenderData = new RowRenderData(); |
| | | RowStyle rowStyle = new RowStyle(); |
| | | rowStyle.setHeight(40); |
| | | rowRenderData.setRowStyle(rowStyle); |
| | | List<CellRenderData> cells = new ArrayList<>(); |
| | | //表格的列数 |
| | | int bb = ports > 8 ? 14 : ports + 6; |
| | | for (int j = 0; j < bb; j++) { |
| | | 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 (i == 0) { |
| | | //第一行 |
| | | textRenderData.setText("频段:" + s + "∑0" + lable); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else { |
| | | if (insOrderState.getVersion() == 1) { |
| | | //非电调版本(简单版) |
| | | if (inspectionItemSubclass.contains("电压驻波比") && i <= 2 * portRow) { |
| | | cc = 2 * portRow; |
| | | if (itemSet.add("电压驻波比")) { |
| | | index.getAndIncrement(); |
| | | } |
| | | if (inspectionItemSubclass.contains("同极化隔离度") && i > cc && i <= cc + portRow) { |
| | | dd = cc + portRow; |
| | | List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("电压驻波比")).collect(Collectors.toList()); |
| | | List<InsProductResult2> result2s = insProductResult2s.stream() |
| | | .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId())) |
| | | .collect(Collectors.toList()); |
| | | //电压驻波比所在行 |
| | | if (j == 0) { |
| | | //第一列 |
| | | textRenderData.setText(index + "∑1" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 1) { |
| | | //第二列 |
| | | textRenderData.setText("电压驻波比∑2" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 2) { |
| | | //第三列 |
| | | textRenderData.setText(products.get(0).getUnit() + "∑3" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 3) { |
| | | //第四列 |
| | | textRenderData.setText(products.get(0).getAsk() + "∑4" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 4) { |
| | | //第五列 |
| | | if (i % 2 == 0) { |
| | | //最差值 |
| | | textRenderData.setText("最差值"); |
| | | } else { |
| | | //端口 |
| | | textRenderData.setText("端口"); |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == bb - 1) { |
| | | //最后一列 |
| | | if (i % 2 == 0) { |
| | | //结论 |
| | | if (products.get(0).getInsResult() == 1) { |
| | | textRenderData.setText("合格"); |
| | | } else if (products.get(0).getInsResult() == 0) { |
| | | textRenderData.setText("不合格"); |
| | | } else { |
| | | textRenderData.setText("不判定"); |
| | | } |
| | | } else { |
| | | textRenderData.setText("/"); |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else { |
| | | //其余列 |
| | | if (i % 2 == 0) { |
| | | //最差值 |
| | | String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", ""); |
| | | try { |
| | | textRenderData.setText(value.split(",")[(j - 5) + (i - 1) / 2 * (Math.min(ports, 8))]); |
| | | } catch (Exception e) { |
| | | textRenderData.setText(""); |
| | | } |
| | | } else { |
| | | //端口 |
| | | try { |
| | | textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) + (i / 2) * (Math.min(ports, 8))]); |
| | | } catch (Exception e) { |
| | | textRenderData.setText(""); |
| | | } |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } |
| | | } |
| | | if (inspectionItemSubclass.contains("同极化隔离度") && i > cc && i <= cc + portRow) { |
| | | dd = cc + portRow; |
| | | if (itemSet.add("同极化隔离度")) { |
| | | index.getAndIncrement(); |
| | | } |
| | | List<InsProduct> products = insProducts.stream() |
| | | .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("同极化隔离度")) |
| | | .collect(Collectors.toList()); |
| | | List<InsProductResult2> result2s = insProductResult2s.stream() |
| | | .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId())) |
| | | .collect(Collectors.toList()); |
| | | //同极化隔离度所在行 |
| | | if (j == 0) { |
| | | //第一列 |
| | | textRenderData.setText(index + "∑1" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 1) { |
| | | //第二列 |
| | | textRenderData.setText("同极化隔离度∑2" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 2) { |
| | | //第三列 |
| | | textRenderData.setText(products.get(0).getUnit() + "∑3" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 3) { |
| | | //第四列 |
| | | textRenderData.setText(products.get(0).getAsk() + "∑4" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 4) { |
| | | //第五列 |
| | | textRenderData.setText("最差值"); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == bb - 1) { |
| | | //最后一列 |
| | | if (products.get(0).getInsResult() == 1) { |
| | | textRenderData.setText("合格"); |
| | | } else if (products.get(0).getInsResult() == 0) { |
| | | textRenderData.setText("不合格"); |
| | | } else { |
| | | textRenderData.setText("不判定"); |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j % 2 == 0) { |
| | | String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", ""); |
| | | try { |
| | | textRenderData.setText(value.split(",")[(j - 6) / 2 + (i - cc - 1) * 4] + "∑5" + i + (j - 6)); |
| | | } catch (Exception e) { |
| | | textRenderData.setText(""); |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else { |
| | | String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", ""); |
| | | try { |
| | | textRenderData.setText(value.split(",")[(j - 5) / 2 + (i - cc - 1) * 4] + "∑5" + i + (j - 5)); |
| | | } catch (Exception e) { |
| | | textRenderData.setText(""); |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } |
| | | } |
| | | if (inspectionItemSubclass.contains("异极化隔离度") && i > (dd == 0 ? cc : dd) && i <= (dd == 0 ? cc : dd) + portRow) { |
| | | ee = (dd == 0 ? cc : dd) + portRow; |
| | | if (itemSet.add("异极化隔离度")) { |
| | | index.getAndIncrement(); |
| | | } |
| | | List<InsProduct> products = insProducts.stream() |
| | | .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("异极化隔离度")) |
| | | .collect(Collectors.toList()); |
| | | List<InsProductResult2> result2s = insProductResult2s.stream() |
| | | .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId())) |
| | | .collect(Collectors.toList()); |
| | | //异极化隔离度所在行 |
| | | if (j == 0) { |
| | | //第一列 |
| | | textRenderData.setText(index + "∑1" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 1) { |
| | | //第二列 |
| | | textRenderData.setText("异极化隔离度∑2" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 2) { |
| | | //第三列 |
| | | textRenderData.setText(products.get(0).getUnit() + "∑3" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 3) { |
| | | //第四列 |
| | | textRenderData.setText(products.get(0).getAsk() + "∑4" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 4) { |
| | | //第五列 |
| | | textRenderData.setText("最差值"); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == bb - 1) { |
| | | //最后一列 |
| | | if (products.get(0).getInsResult() == 1) { |
| | | textRenderData.setText("合格"); |
| | | } else if (products.get(0).getInsResult() == 0) { |
| | | textRenderData.setText("不合格"); |
| | | } else { |
| | | textRenderData.setText("不判定"); |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j % 2 == 0) { |
| | | String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", ""); |
| | | try { |
| | | textRenderData.setText(value.split(",")[(j - 6) / 2 + (i - (dd == 0 ? cc : dd) - 1) * 4] + "∑5" + i + (j - 6)); |
| | | } catch (Exception e) { |
| | | textRenderData.setText(""); |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else { |
| | | String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", ""); |
| | | try { |
| | | textRenderData.setText(value.split(",")[(j - 5) / 2 + (i - (dd == 0 ? cc : dd) - 1) * 4] + "∑5" + i + (j - 5)); |
| | | } catch (Exception e) { |
| | | textRenderData.setText(""); |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } |
| | | } |
| | | if (inspectionItemSubclass.contains("互调") && i > (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) { |
| | | if (itemSet.add("互调")) { |
| | | index.getAndIncrement(); |
| | | } |
| | | List<InsProduct> products = insProducts.stream() |
| | | .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("互调")) |
| | | .collect(Collectors.toList()); |
| | | List<InsProductResult2> result2s = insProductResult2s.stream() |
| | | .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId())) |
| | | .collect(Collectors.toList()); |
| | | //互调所在行 |
| | | if (j == 0) { |
| | | //第一列 |
| | | textRenderData.setText(index + "∑1" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 1) { |
| | | //第二列 |
| | | textRenderData.setText("互调∑2" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 2) { |
| | | //第三列 |
| | | textRenderData.setText(products.get(0).getUnit() + "∑3" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 3) { |
| | | //第四列 |
| | | textRenderData.setText(products.get(0).getAsk() + "∑4" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 4) { |
| | | //第五列 |
| | | if ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) % (angles + 1) == 1) { |
| | | textRenderData.setText("角度"); |
| | | } else { |
| | | textRenderData.setText(result2s.get(0).getAngle().split(",")[(i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 2) % (angles + 1)]); |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == bb - 1) { |
| | | //最后一列 |
| | | if ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) % (angles + 1) == 1) { |
| | | textRenderData.setText("/"); |
| | | } else { |
| | | if (products.get(0).getInsResult() == 1) { |
| | | textRenderData.setText("合格∑8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles - 1)) / (angles + 1) - 1)); |
| | | } else if (products.get(0).getInsResult() == 0) { |
| | | textRenderData.setText("不合格∑8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles - 1)) / (angles + 1) - 1)); |
| | | } else { |
| | | textRenderData.setText("不判定∑8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles - 1)) / (angles + 1) - 1)); |
| | | } |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else { |
| | | if ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) % (angles + 1) == 1) { |
| | | textRenderData.setText(result2s.get((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / portRow / (angles + 1)).getOften() + "∑6" + i + index); |
| | | } else { |
| | | String[] value = result2s.get((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / portRow / (angles + 2)).getValue().split("\\],\\["); |
| | | String[] split = value[(i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 2) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(","); |
| | | try { |
| | | textRenderData.setText(split[((j - 5) + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 1) / (angles + 1) % portRow) * (Math.min(ports, 8)))]); |
| | | } catch (Exception e) { |
| | | textRenderData.setText(""); |
| | | } |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } |
| | | } |
| | | } else { |
| | | //电调版本(复杂版) |
| | | if (inspectionItemSubclass.contains("电压驻波比") && i <= (angles + 1) * portRow) { |
| | | cc = (angles + 1) * portRow; |
| | | if (itemSet.add("电压驻波比")) { |
| | | index.getAndIncrement(); |
| | | } |
| | | List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("电压驻波比")).collect(Collectors.toList()); |
| | | List<InsProductResult2> result2s = insProductResult2s.stream() |
| | | .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId())) |
| | | .collect(Collectors.toList()); |
| | | //电压驻波比所在行 |
| | | if (j == 0) { |
| | | //第一列 |
| | | textRenderData.setText(index + "∑1" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 1) { |
| | | //第二列 |
| | | textRenderData.setText("电压驻波比∑2" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 2) { |
| | | //第三列 |
| | | textRenderData.setText(products.get(0).getUnit() + "∑3" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 3) { |
| | | //第四列 |
| | | textRenderData.setText(products.get(0).getAsk() + "∑4" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 4) { |
| | | //第五列 |
| | | if (i % (angles + 1) == 1) { |
| | | //端口 |
| | | textRenderData.setText("端口"); |
| | | } else { |
| | | //角度 |
| | | textRenderData.setText(result2s.get(0).getAngle().split(",")[(i + (angles - 1)) % (angles + 1)]); |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == bb - 1) { |
| | | //最后一列 |
| | | if (i % (angles + 1) == 1) { |
| | | textRenderData.setText("/"); |
| | | } else { |
| | | //结论 |
| | | if (products.get(0).getInsResult() == 1) { |
| | | textRenderData.setText("合格∑8" + index + ((i + (angles - 1)) / (angles + 1) - 1)); |
| | | } else if (products.get(0).getInsResult() == 0) { |
| | | textRenderData.setText("不合格∑8" + index + ((i + (angles - 1)) / (angles + 1) - 1)); |
| | | } else { |
| | | textRenderData.setText("不判定∑8" + index + ((i + (angles - 1)) / (angles + 1) - 1)); |
| | | } |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else { |
| | | //其余列 |
| | | if (i % (angles + 1) == 1) { |
| | | //端口 |
| | | try { |
| | | textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) + (i / (angles + 1)) * (Math.min(ports, 8))]); |
| | | } catch (Exception e) { |
| | | textRenderData.setText(""); |
| | | } |
| | | } else { |
| | | //最差值 |
| | | String[] value = result2s.get(0).getValue().split("\\],\\["); |
| | | String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(","); |
| | | try { |
| | | textRenderData.setText(split[(j - 5) + ((i + (angles - 1)) / (angles + 1) - 1) * (Math.min(ports, 8))]); |
| | | } catch (Exception e) { |
| | | textRenderData.setText(""); |
| | | } |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } |
| | | } |
| | | if (inspectionItemSubclass.contains("同极化隔离度")) { |
| | | List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("同极化隔离度")).collect(Collectors.toList()); |
| | | List<InsProductResult2> result2s = insProductResult2s.stream() |
| | | .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId())) |
| | | .collect(Collectors.toList()); |
| | | int length = result2s.get(0).getPort().split(",").length; |
| | | int portRow2 = (length % (ports > 8 ? 4 : (ports + 1) / 2) == 0 ? length / (ports > 8 ? 4 : (ports + 1) / 2) : length / (ports > 8 ? 4 : (ports + 1) / 2) + 1); |
| | | int k = (angles + 1) * portRow2; |
| | | if (i > cc && i <= cc + k) { |
| | | dd = cc + k; |
| | | if (itemSet.add("同极化隔离度")) { |
| | | index.getAndIncrement(); |
| | | } |
| | | List<InsProduct> products = insProducts.stream() |
| | | .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("同极化隔离度")) |
| | | .collect(Collectors.toList()); |
| | | List<InsProductResult2> result2s = insProductResult2s.stream() |
| | | .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId())) |
| | | .collect(Collectors.toList()); |
| | | //同极化隔离度所在行 |
| | | if (j == 0) { |
| | | //第一列 |
| | |
| | | cells.add(cellRenderData); |
| | | } else if (j == 4) { |
| | | //第五列 |
| | | textRenderData.setText("最差值"); |
| | | if ((i - cc) % (angles + 1) == 1) { |
| | | //端口 |
| | | textRenderData.setText("端口"); |
| | | } else { |
| | | //角度 |
| | | textRenderData.setText(result2s.get(0).getAngle().split(",")[(i + (angles - 1)) % (angles + 1)]); |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | |
| | | cells.add(cellRenderData); |
| | | } else if (j == bb - 1) { |
| | | //最后一列 |
| | | if (products.get(0).getInsResult() == 1) { |
| | | textRenderData.setText("合格"); |
| | | } else if (products.get(0).getInsResult() == 0) { |
| | | textRenderData.setText("不合格"); |
| | | if ((i - cc) % (angles + 1) == 1) { |
| | | textRenderData.setText("/"); |
| | | } else { |
| | | textRenderData.setText("不判定"); |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j % 2 == 0) { |
| | | String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", ""); |
| | | try { |
| | | textRenderData.setText(value.split(",")[(j - 6) / 2 + (i - cc - 1) * 4] + "∑5" + i + (j - 6)); |
| | | } catch (Exception e) { |
| | | textRenderData.setText(""); |
| | | //结论 |
| | | if (products.get(0).getInsResult() == 1) { |
| | | textRenderData.setText("合格∑8" + index + ((i - cc) / (angles + 2))); |
| | | } else if (products.get(0).getInsResult() == 0) { |
| | | textRenderData.setText("不合格∑8" + index + ((i - cc) / (angles + 2))); |
| | | } else { |
| | | textRenderData.setText("不判定∑8" + index + ((i - cc) / (angles + 2))); |
| | | } |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else { |
| | | String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", ""); |
| | | try { |
| | | textRenderData.setText(value.split(",")[(j - 5) / 2 + (i - cc - 1) * 4] + "∑5" + i + (j - 5)); |
| | | } catch (Exception e) { |
| | | textRenderData.setText(""); |
| | | //其余列 |
| | | if ((i - cc) % (angles + 1) == 1) { |
| | | //端口 |
| | | if (j % 2 == 0) { |
| | | try { |
| | | textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 6) / 2 + ((i - cc) / (angles + 1)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "∑5" + i + (j - 6)); |
| | | } catch (Exception e) { |
| | | textRenderData.setText(""); |
| | | } |
| | | } else { |
| | | try { |
| | | textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) / 2 + ((i - cc) / (angles + 1)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "∑5" + i + (j - 5)); |
| | | } catch (Exception e) { |
| | | textRenderData.setText(""); |
| | | } |
| | | } |
| | | |
| | | } else { |
| | | //最差值 |
| | | String[] value = result2s.get(0).getValue().split("\\],\\["); |
| | | String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(","); |
| | | if (j % 2 == 0) { |
| | | try { |
| | | textRenderData.setText(split[(j - 6) / 2 + ((i - cc) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "∑5" + i + (j - 6)); |
| | | } catch (Exception e) { |
| | | textRenderData.setText(""); |
| | | } |
| | | } else { |
| | | try { |
| | | textRenderData.setText(split[(j - 5) / 2 + ((i - cc) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "∑5" + i + (j - 5)); |
| | | } catch (Exception e) { |
| | | textRenderData.setText(""); |
| | | } |
| | | } |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | |
| | | cells.add(cellRenderData); |
| | | } |
| | | } |
| | | if (inspectionItemSubclass.contains("异极化隔离度") && i > (dd == 0 ? cc : dd) && i <= (dd == 0 ? cc : dd) + portRow) { |
| | | ee = (dd == 0 ? cc : dd) + portRow; |
| | | } |
| | | if (inspectionItemSubclass.contains("异极化隔离度")) { |
| | | List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("异极化隔离度")).collect(Collectors.toList()); |
| | | List<InsProductResult2> result2s = insProductResult2s.stream() |
| | | .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId())) |
| | | .collect(Collectors.toList()); |
| | | int length = result2s.get(0).getPort().split(",").length; |
| | | int portRow2 = (length % (ports > 8 ? 4 : (ports + 1) / 2) == 0 ? length / (ports > 8 ? 4 : (ports + 1) / 2) : length / (ports > 8 ? 4 : (ports + 1) / 2) + 1); |
| | | int k = (angles + 1) * portRow2; |
| | | if (i > (dd == 0 ? cc : dd) && i <= (dd == 0 ? cc : dd) + k) { |
| | | ee = (dd == 0 ? cc : dd) + k; |
| | | if (itemSet.add("异极化隔离度")) { |
| | | index.getAndIncrement(); |
| | | } |
| | | List<InsProduct> products = insProducts.stream() |
| | | .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("异极化隔离度")) |
| | | .collect(Collectors.toList()); |
| | | List<InsProductResult2> result2s = insProductResult2s.stream() |
| | | .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId())) |
| | | .collect(Collectors.toList()); |
| | | //异极化隔离度所在行 |
| | | if (j == 0) { |
| | | //第一列 |
| | |
| | | cells.add(cellRenderData); |
| | | } else if (j == 4) { |
| | | //第五列 |
| | | textRenderData.setText("最差值"); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == bb - 1) { |
| | | //最后一列 |
| | | if (products.get(0).getInsResult() == 1) { |
| | | textRenderData.setText("合格"); |
| | | } else if (products.get(0).getInsResult() == 0) { |
| | | textRenderData.setText("不合格"); |
| | | } else { |
| | | textRenderData.setText("不判定"); |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j % 2 == 0) { |
| | | String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", ""); |
| | | try { |
| | | textRenderData.setText(value.split(",")[(j - 6) / 2 + (i - (dd == 0 ? cc : dd) - 1) * 4] + "∑5" + i + (j - 6)); |
| | | } catch (Exception e) { |
| | | textRenderData.setText(""); |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else { |
| | | String value = result2s.get(0).getValue().replaceAll("[\\[\\]\"]", ""); |
| | | try { |
| | | textRenderData.setText(value.split(",")[(j - 5) / 2 + (i - (dd == 0 ? cc : dd) - 1) * 4] + "∑5" + i + (j - 5)); |
| | | } catch (Exception e) { |
| | | textRenderData.setText(""); |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } |
| | | } |
| | | if (inspectionItemSubclass.contains("互调") && i > (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) { |
| | | if (itemSet.add("互调")) { |
| | | index.getAndIncrement(); |
| | | } |
| | | List<InsProduct> products = insProducts.stream() |
| | | .filter(insProduct -> insProduct.getInspectionItemSubclass().equals("互调")) |
| | | .collect(Collectors.toList()); |
| | | List<InsProductResult2> result2s = insProductResult2s.stream() |
| | | .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId())) |
| | | .collect(Collectors.toList()); |
| | | //互调所在行 |
| | | if (j == 0) { |
| | | //第一列 |
| | | textRenderData.setText(index + "∑1" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 1) { |
| | | //第二列 |
| | | textRenderData.setText("互调∑2" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 2) { |
| | | //第三列 |
| | | textRenderData.setText(products.get(0).getUnit() + "∑3" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 3) { |
| | | //第四列 |
| | | textRenderData.setText(products.get(0).getAsk() + "∑4" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 4) { |
| | | //第五列 |
| | | if ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) % (angles + 1) == 1) { |
| | | textRenderData.setText("角度"); |
| | | } else { |
| | | textRenderData.setText(result2s.get(0).getAngle().split(",")[(i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 2) % (angles + 1)]); |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == bb - 1) { |
| | | //最后一列 |
| | | if ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) % (angles + 1) == 1) { |
| | | textRenderData.setText("/"); |
| | | } else { |
| | | if (products.get(0).getInsResult() == 1) { |
| | | textRenderData.setText("合格∑8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles - 1)) / (angles + 1) - 1)); |
| | | } else if (products.get(0).getInsResult() == 0) { |
| | | textRenderData.setText("不合格∑8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles - 1)) / (angles + 1) - 1)); |
| | | } else { |
| | | textRenderData.setText("不判定∑8" + index + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) + (angles - 1)) / (angles + 1) - 1)); |
| | | } |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else { |
| | | if ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) % (angles + 1) == 1) { |
| | | textRenderData.setText(result2s.get((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / portRow / (angles + 1)).getOften() + "∑6" + i + index); |
| | | } else { |
| | | String[] value = result2s.get((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee)) / portRow / (angles + 2)).getValue().split("\\],\\["); |
| | | String[] split = value[(i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 2) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(","); |
| | | try { |
| | | textRenderData.setText(split[((j - 5) + ((i - (ee == 0 ? ((dd == 0 ? cc : dd)) : ee) - 1) / (angles + 1) % portRow) * (Math.min(ports, 8)))]); |
| | | } catch (Exception e) { |
| | | textRenderData.setText(""); |
| | | } |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } |
| | | } |
| | | } else { |
| | | //电调版本(复杂版) |
| | | if (inspectionItemSubclass.contains("电压驻波比") && i <= (angles + 1) * portRow) { |
| | | cc = (angles + 1) * portRow; |
| | | if (itemSet.add("电压驻波比")) { |
| | | index.getAndIncrement(); |
| | | } |
| | | List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("电压驻波比")).collect(Collectors.toList()); |
| | | List<InsProductResult2> result2s = insProductResult2s.stream() |
| | | .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId())) |
| | | .collect(Collectors.toList()); |
| | | //电压驻波比所在行 |
| | | if (j == 0) { |
| | | //第一列 |
| | | textRenderData.setText(index + "∑1" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 1) { |
| | | //第二列 |
| | | textRenderData.setText("电压驻波比∑2" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 2) { |
| | | //第三列 |
| | | textRenderData.setText(products.get(0).getUnit() + "∑3" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 3) { |
| | | //第四列 |
| | | textRenderData.setText(products.get(0).getAsk() + "∑4" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 4) { |
| | | //第五列 |
| | | if (i % (angles + 1) == 1) { |
| | | if ((i - (dd == 0 ? cc : dd)) % (angles + 1) == 1) { |
| | | //端口 |
| | | textRenderData.setText("端口"); |
| | | } else { |
| | |
| | | cells.add(cellRenderData); |
| | | } else if (j == bb - 1) { |
| | | //最后一列 |
| | | if (i % (angles + 1) == 1) { |
| | | if ((i - (dd == 0 ? cc : dd)) % (angles + 1) == 1) { |
| | | textRenderData.setText("/"); |
| | | } else { |
| | | //结论 |
| | | if (products.get(0).getInsResult() == 1) { |
| | | textRenderData.setText("合格∑8" + index + ((i + (angles - 1)) / (angles + 1) - 1)); |
| | | textRenderData.setText("合格∑8" + index + ((i - (dd == 0 ? cc : dd)) / (angles + 2))); |
| | | } else if (products.get(0).getInsResult() == 0) { |
| | | textRenderData.setText("不合格∑8" + index + ((i + (angles - 1)) / (angles + 1) - 1)); |
| | | textRenderData.setText("不合格∑8" + index + ((i - (dd == 0 ? cc : dd)) / (angles + 2))); |
| | | } else { |
| | | textRenderData.setText("不判定∑8" + index + ((i + (angles - 1)) / (angles + 1) - 1)); |
| | | textRenderData.setText("不判定∑8" + index + ((i - (dd == 0 ? cc : dd)) / (angles + 2))); |
| | | } |
| | | } |
| | | renderData.add(textRenderData); |
| | |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else { |
| | | //其余列 |
| | | if (i % (angles + 1) == 1) { |
| | | //端口 |
| | | try { |
| | | textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) + (i / (angles + 1)) * (Math.min(ports, 8))]); |
| | | } catch (Exception e) { |
| | | textRenderData.setText(""); |
| | | } |
| | | } else { |
| | | //最差值 |
| | | String[] value = result2s.get(0).getValue().split("\\],\\["); |
| | | String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(","); |
| | | try { |
| | | textRenderData.setText(split[(j - 5) + ((i + (angles - 1)) / (angles + 1) - 1) * (Math.min(ports, 8))]); |
| | | } catch (Exception e) { |
| | | textRenderData.setText(""); |
| | | } |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } |
| | | } |
| | | if (inspectionItemSubclass.contains("同极化隔离度")) { |
| | | List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("同极化隔离度")).collect(Collectors.toList()); |
| | | List<InsProductResult2> result2s = insProductResult2s.stream() |
| | | .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId())) |
| | | .collect(Collectors.toList()); |
| | | int length = result2s.get(0).getPort().split(",").length; |
| | | int portRow2 = (length % (ports > 8 ? 4 : (ports + 1) / 2) == 0 ? length / (ports > 8 ? 4 : (ports + 1) / 2) : length / (ports > 8 ? 4 : (ports + 1) / 2) + 1); |
| | | int k = (angles + 1) * portRow2; |
| | | if (i > cc && i <= cc + k) { |
| | | dd = cc + k; |
| | | if (itemSet.add("同极化隔离度")) { |
| | | index.getAndIncrement(); |
| | | } |
| | | //同极化隔离度所在行 |
| | | if (j == 0) { |
| | | //第一列 |
| | | textRenderData.setText(index + "∑1" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 1) { |
| | | //第二列 |
| | | textRenderData.setText("同极化隔离度∑2" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 2) { |
| | | //第三列 |
| | | textRenderData.setText(products.get(0).getUnit() + "∑3" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 3) { |
| | | //第四列 |
| | | textRenderData.setText(products.get(0).getAsk() + "∑4" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 4) { |
| | | //第五列 |
| | | if ((i - cc) % (angles + 1) == 1) { |
| | | //端口 |
| | | textRenderData.setText("端口"); |
| | | } else { |
| | | //角度 |
| | | textRenderData.setText(result2s.get(0).getAngle().split(",")[(i + (angles - 1)) % (angles + 1)]); |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == bb - 1) { |
| | | //最后一列 |
| | | if ((i - cc) % (angles + 1) == 1) { |
| | | textRenderData.setText("/"); |
| | | } else { |
| | | //结论 |
| | | if (products.get(0).getInsResult() == 1) { |
| | | textRenderData.setText("合格∑8" + index + ((i - cc) / (angles + 2))); |
| | | } else if (products.get(0).getInsResult() == 0) { |
| | | textRenderData.setText("不合格∑8" + index + ((i - cc) / (angles + 2))); |
| | | } else { |
| | | textRenderData.setText("不判定∑8" + index + ((i - cc) / (angles + 2))); |
| | | } |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else { |
| | | //其余列 |
| | | if ((i - cc) % (angles + 1) == 1) { |
| | | //端口 |
| | | if (j % 2 == 0) { |
| | | try { |
| | | textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 6) / 2 + ((i - cc) / (angles + 1)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "∑5" + i + (j - 6)); |
| | | } catch (Exception e) { |
| | | textRenderData.setText(""); |
| | | } |
| | | } else { |
| | | try { |
| | | textRenderData.setText(result2s.get(0).getPort().split(",")[(j - 5) / 2 + ((i - cc) / (angles + 1)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "∑5" + i + (j - 5)); |
| | | } catch (Exception e) { |
| | | textRenderData.setText(""); |
| | | } |
| | | } |
| | | |
| | | } else { |
| | | //最差值 |
| | | String[] value = result2s.get(0).getValue().split("\\],\\["); |
| | | String[] split = value[(i + (angles - 1)) % (angles + 1)].replaceAll("[\\[\\]\"]", "").split(","); |
| | | if (j % 2 == 0) { |
| | | try { |
| | | textRenderData.setText(split[(j - 6) / 2 + ((i - cc) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "∑5" + i + (j - 6)); |
| | | } catch (Exception e) { |
| | | textRenderData.setText(""); |
| | | } |
| | | } else { |
| | | try { |
| | | textRenderData.setText(split[(j - 5) / 2 + ((i - cc) / (angles + 2)) * (ports > 8 ? 4 : (ports + 1) / 2)] + "∑5" + i + (j - 5)); |
| | | } catch (Exception e) { |
| | | textRenderData.setText(""); |
| | | } |
| | | } |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } |
| | | } |
| | | } |
| | | if (inspectionItemSubclass.contains("异极化隔离度")) { |
| | | List<InsProduct> products = insProducts.stream().filter(insProduct -> insProduct.getInspectionItemSubclass().equals("异极化隔离度")).collect(Collectors.toList()); |
| | | List<InsProductResult2> result2s = insProductResult2s.stream() |
| | | .filter(insProductResult2 -> insProductResult2.getFrequency().equals(s) && insProductResult2.getInsProductId().equals(products.get(0).getId())) |
| | | .collect(Collectors.toList()); |
| | | int length = result2s.get(0).getPort().split(",").length; |
| | | int portRow2 = (length % (ports > 8 ? 4 : (ports + 1) / 2) == 0 ? length / (ports > 8 ? 4 : (ports + 1) / 2) : length / (ports > 8 ? 4 : (ports + 1) / 2) + 1); |
| | | int k = (angles + 1) * portRow2; |
| | | if (i > (dd == 0 ? cc : dd) && i <= (dd == 0 ? cc : dd) + k) { |
| | | ee = (dd == 0 ? cc : dd) + k; |
| | | if (itemSet.add("异极化隔离度")) { |
| | | index.getAndIncrement(); |
| | | } |
| | | //异极化隔离度所在行 |
| | | if (j == 0) { |
| | | //第一列 |
| | | textRenderData.setText(index + "∑1" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 1) { |
| | | //第二列 |
| | | textRenderData.setText("异极化隔离度∑2" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 2) { |
| | | //第三列 |
| | | textRenderData.setText(products.get(0).getUnit() + "∑3" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 3) { |
| | | //第四列 |
| | | textRenderData.setText(products.get(0).getAsk() + "∑4" + index); |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == 4) { |
| | | //第五列 |
| | | if ((i - (dd == 0 ? cc : dd)) % (angles + 1) == 1) { |
| | | //端口 |
| | | textRenderData.setText("端口"); |
| | | } else { |
| | | //角度 |
| | | textRenderData.setText(result2s.get(0).getAngle().split(",")[(i + (angles - 1)) % (angles + 1)]); |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else if (j == bb - 1) { |
| | | //最后一列 |
| | | if ((i - (dd == 0 ? cc : dd)) % (angles + 1) == 1) { |
| | | textRenderData.setText("/"); |
| | | } else { |
| | | //结论 |
| | | if (products.get(0).getInsResult() == 1) { |
| | | textRenderData.setText("合格∑8" + index + ((i - (dd == 0 ? cc : dd)) / (angles + 2))); |
| | | } else if (products.get(0).getInsResult() == 0) { |
| | | textRenderData.setText("不合格∑8" + index + ((i - (dd == 0 ? cc : dd)) / (angles + 2))); |
| | | } else { |
| | | textRenderData.setText("不判定∑8" + index + ((i - (dd == 0 ? cc : dd)) / (angles + 2))); |
| | | } |
| | | } |
| | | renderData.add(textRenderData); |
| | | paragraphRenderData.setContents(renderData); |
| | | paragraphRenderDataList.add(paragraphRenderData); |
| | | cellRenderData.setParagraphs(paragraphRenderDataList); |
| | | cells.add(cellRenderData); |
| | | } else { |
| | | //其余列 |
| | | if ((i - (dd == 0 ? cc : dd)) % (angles + 1) == 1) { |
| | | //端口 |
| | |
| | | tables.add(table); |
| | | lable.getAndIncrement(); |
| | | }); |
| | | }); |
| | | |
| | | ZipSecureFile.setMinInflateRatio(0.0001); |
| | | InputStream inputStream = this.getClass().getResourceAsStream("/static/word1.docx"); |
| | | |
| | |
| | | put("title", title); |
| | | put("tables", tables); |
| | | }}); |
| | | String name = insOrder.getEntrustCode().replace("/", "") + "-" + title + ".docx"; |
| | | String name = insOrder.getEntrustCode().replace("/", "") + "-" +insSample.getSampleCode()+"-"+ title + ".docx"; |
| | | String url = UUID.randomUUID() + "_" + name; |
| | | try { |
| | | template.writeAndClose(Files.newOutputStream(Paths.get(wordUrl + "/" + name))); |
| | | template.writeAndClose(Files.newOutputStream(Paths.get(wordUrl + "/" + url))); |
| | | } catch (IOException e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | // 处理合并单元格的问题 |
| | | String path = wordUrl + "/" + name; |
| | | String path = wordUrl + "/" + url; |
| | | try { |
| | | ZipSecureFile.setMinInflateRatio(0.0001); |
| | | FileInputStream stream = new FileInputStream(path); |
| | |
| | | } catch (IOException e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | |
| | | InsOrderFile insOrderFile = new InsOrderFile(); |
| | | insOrderFile.setInsOrderId(insOrderState.getInsOrderId()); |
| | | insOrderFile.setInsSampleId(insOrderState.getInsSampleId()); |
| | | insOrderFile.setFileName(name); |
| | | insOrderFile.setType(2); |
| | | insOrderFile.setFileUrl(name); |
| | | insOrderFile.setFileUrl(url); |
| | | insOrderFile.setSonLaboratory("电路试验"); |
| | | insOrderFileMapper.insert(insOrderFile); |
| | | } |
| | | |
| | | //生成总报告 |
| | | public void generateReport(Integer orderId, List<InsReportDto1> insReportDto1s) { |
| | | public void generateReport(Integer orderId, InsReportDto1 insReportDto1) { |
| | | LocalDateTime now = LocalDateTime.now(); |
| | | InsOrder insOrder = insOrderMapper.selectById(orderId); |
| | | //委托部门 departLims |
| | | String departLims = userMapper.selectDepartLims(insOrder.getPrepareUser()); |
| | | //samples是过滤掉没有检验项目的样品 |
| | | List<SampleProductDto> samples = insSampleMapper.selectSampleProductListByOrderId(orderId); |
| | | String sampleCode = samples.get(0).getSampleCode(); |
| | | SampleProductDto insSample = insSampleMapper.selectSampleProductListByOrderId(insReportDto1.getSampleId()); |
| | | String sampleCode = insSample.getSampleCode(); |
| | | InsReport insReport = new InsReport(); |
| | | insReport.setCode(insOrder.getEntrustCode().replace("WT", "TXJC")); |
| | | insReport.setCode(giveCode.giveCode("TXJC-", "ins_report", "-", "yyMMdd")); |
| | | insReport.setInsSampleId(insSample.getId()); |
| | | insReport.setInsOrderId(orderId); |
| | | Set<String> standardMethod = new HashSet<>(); |
| | | Set<String> deviceSet = new HashSet<>(); |
| | |
| | | AtomicReference<Integer> productSize2 = new AtomicReference<>(0); |
| | | AtomicReference<Integer> productSize3 = new AtomicReference<>(0); |
| | | String[] monthNames = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}; |
| | | samples.forEach(s -> { |
| | | SampleProductDto s=insSample; |
| | | models.add(s.getModel()); |
| | | standardMethod.addAll(standardMethodListMapper.selectList(Wrappers.<StandardMethodList>lambdaQuery() |
| | | .in(StandardMethodList::getId, Arrays.stream(s.getStandardMethodListId().replaceAll("[\\[\\]]", "").split(",")) |
| | |
| | | .collect(Collectors.toSet()); |
| | | labToDeviceMap.put(entry.getKey(), productIds); |
| | | } |
| | | for (InsReportDto1 insReportDto1 : insReportDto1s) { |
| | | String laboratory = insReportDto1.getLaboratory(); |
| | | for (InsReportDto2 insReportDto2 : insReportDto1.getInsReportDto2s()) { |
| | | String laboratory = insReportDto2.getLaboratory(); |
| | | if (!labToDeviceMap.containsKey(laboratory)) { |
| | | continue; |
| | | } |
| | | Set<Integer> productIds = labToDeviceMap.get(laboratory); |
| | | Integer num = insReportDto1.getNum(); |
| | | Integer num = insReportDto2.getNum(); |
| | | //普通试验结果表 |
| | | List<InsProductResult> insProductResults = insProductResultMapper.selectList( |
| | | Wrappers.<InsProductResult>lambdaQuery() |
| | |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | |
| | | |
| | | /*检验情况一览表*/ |
| | | List<Map<String, String>> tables = new ArrayList<>(); |
| | |
| | | List<Map<String, Object>> tables4 = new ArrayList<>(); |
| | | Integer indexs = 1; |
| | | //判断是否有电路试验,环境试验 |
| | | List<String> strings = insReportDto1s.stream().map(InsReportDto1::getLaboratory).distinct().collect(Collectors.toList()); |
| | | List<String> strings = insReportDto1.getInsReportDto2s().stream().map(InsReportDto2::getLaboratory).distinct().collect(Collectors.toList()); |
| | | if (strings.contains("近场") || strings.contains("远场")) { |
| | | Map<String, String> table = new HashMap<>(); |
| | | table.put("indexs", indexs + ""); |
| | |
| | | /*辐射的试验表*/ |
| | | List<InsOrderFile> insOrderFiles = insOrderFileMapper.selectList(Wrappers.<InsOrderFile>lambdaQuery() |
| | | .eq(InsOrderFile::getInsOrderId, orderId) |
| | | .eq(InsOrderFile::getInsSampleId, insReportDto1.getSampleId()) |
| | | .like(InsOrderFile::getFileName, "解析的辐射站点报告") |
| | | .and(wrapper -> wrapper |
| | | .eq(InsOrderFile::getSonLaboratory, "远场") |
| | |
| | | strings.remove("电路试验"); |
| | | strings.remove("近场"); |
| | | strings.remove("远场"); |
| | | List<Integer> productIdes = samples.stream().flatMap(sampleProductDto -> |
| | | sampleProductDto.getInsProduct().stream().map(InsProduct::getId)).collect(Collectors.toList()); |
| | | List<Integer> productIdes = insSample.getInsProduct().stream().map(InsProduct::getId).collect(Collectors.toList()); |
| | | List<Integer> collect = insProductResult2Mapper.selectList(Wrappers.<InsProductResult2>lambdaQuery() |
| | | .in(InsProductResult2::getInsProductId, productIdes)) |
| | | .stream().map(InsProductResult2::getResult).distinct().collect(Collectors.toList()); |
| | |
| | | indexs += 1; |
| | | |
| | | /*创建环境试验条件表2*(项目数+1)*/ |
| | | List<InsProduct> products = samples.stream().flatMap(sampleProductDto -> sampleProductDto.getInsProduct().stream() |
| | | List<InsProduct> products = insSample.getInsProduct().stream() |
| | | .filter(insProduct -> !insProduct.getInspectionItem().equals("电路试验")) |
| | | .filter(insProduct -> !insProduct.getInspectionItem().equals("辐射试验"))) |
| | | .filter(insProduct -> !insProduct.getInspectionItem().equals("辐射试验")) |
| | | .map(insProduct -> { |
| | | InsProduct product = new InsProduct(); |
| | | product.setInspectionItemSubclass(insProduct.getInspectionItemSubclass()); |
| | |
| | | indexs += 1; |
| | | } |
| | | /*勾选的电路试验表*/ |
| | | List<InsSample> insSamples = insSampleMapper.selectSample(orderId); |
| | | for (InsReportDto1 insReportDto1 : insReportDto1s) { |
| | | InsOrderUser insOrderUser = insOrderUserMapper.selectById(insReportDto1.getInsOrderUsersId()); |
| | | for (InsReportDto2 insReportDto2 : insReportDto1.getInsReportDto2s()) { |
| | | InsOrderUser insOrderUser = insOrderUserMapper.selectById(insReportDto2.getInsOrderUsersId()); |
| | | InsOrderState orderState = insOrderStateMapper.selectById(insOrderUser.getInsOrderStateId()); |
| | | if (orderState.getLaboratory().equals("电路试验")) { |
| | | orderState.setNum(insOrderUser.getNum()); |
| | | getWord1(insOrderUser.getTerm(), orderState, insSamples, tables2); |
| | | getWord1(insOrderUser.getTerm(), orderState, tables2); |
| | | } |
| | | } |
| | | } |
| | |
| | | tables.add(table2); |
| | | |
| | | /*创建环境试验条件表2*(项目数+1)*/ |
| | | List<InsProduct> products = samples.stream().flatMap(sampleProductDto -> sampleProductDto.getInsProduct().stream() |
| | | List<InsProduct> products = insSample.getInsProduct().stream() |
| | | .filter(insProduct -> !insProduct.getInspectionItem().equals("电路试验")) |
| | | .filter(insProduct -> !insProduct.getInspectionItem().equals("辐射试验"))) |
| | | .filter(insProduct -> !insProduct.getInspectionItem().equals("辐射试验")) |
| | | .map(insProduct -> { |
| | | InsProduct product = new InsProduct(); |
| | | product.setInspectionItemSubclass(insProduct.getInspectionItemSubclass()); |
| | |
| | | ZipSecureFile.setMinInflateRatio(0.0001); |
| | | InputStream inputStream = this.getClass().getResourceAsStream("/static/report-template.docx"); |
| | | StringBuilder standardMethod2 = new StringBuilder(); |
| | | for (String s : standardMethod) { |
| | | standardMethod2.append(";\n").append(s); |
| | | for (String s1 : standardMethod) { |
| | | standardMethod2.append(";\n").append(s1); |
| | | } |
| | | standardMethod2.append(";\n").append("GB/T 9410-2008 《移动通信天线通用技术规范》"); |
| | | standardMethod2.replace(0, 1, ""); |
| | |
| | | } |
| | | Map<String, String> codeStr = new HashMap<>(); |
| | | codeStr.put("报告编号", insReport.getCode()); |
| | | codeStr.put("样品名称", insOrder.getSample()); |
| | | codeStr.put("规格型号", samples.get(0).getModel()); |
| | | codeStr.put("样品名称", insSample.getSample()); |
| | | codeStr.put("规格型号", insSample.getModel()); |
| | | codeStr.put("发放日期", now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); |
| | | String codePath; |
| | | try { |
| | |
| | | List<Map<String, String>> finalDeviceList = deviceList; |
| | | List<Map<String, String>> sampleList = insSampleMapper.selectSampleList(orderId); |
| | | Integer userId = insSampleUserMapper.selectOne(Wrappers.<InsSampleUser>lambdaQuery() |
| | | .eq(InsSampleUser::getInsSampleId, orderId).last("limit 1")).getUserId(); |
| | | .eq(InsSampleUser::getInsSampleId, insReportDto1.getSampleId()).last("limit 1")).getUserId(); |
| | | String signatureUrl; |
| | | try { |
| | | signatureUrl = userMapper.selectById(userId).getSignatureUrl(); |
| | |
| | | insOrder.setPhone("/"); |
| | | } |
| | | //检验项目的环境 |
| | | InsProduct insProduct = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getState, 1).eq(InsProduct::getInsSampleId, samples.get(0).getId())).get(0); |
| | | InsProduct insProduct = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() |
| | | .eq(InsProduct::getState, 1) |
| | | .eq(InsProduct::getInsSampleId, insReportDto1.getSampleId())).get(0); |
| | | String environment = ""; |
| | | environment = (ObjectUtils.isNotEmpty(insProduct.getTemperature()) ? insProduct.getTemperature() + "℃ " : "") + (ObjectUtils.isNotEmpty(insProduct.getHumidity()) ? insProduct.getHumidity() + "%" : ""); |
| | | String finalEnvironment = environment; |
| | | List<SampleProductDto> finalSamples = samples; |
| | | String title3 = ""; |
| | | if (tables3.size() > 0) { |
| | | title3 = "辐射方向图参数"; |
| | |
| | | put("sampleCode", sampleCode); |
| | | put("environment", finalEnvironment); |
| | | put("custom", custom); |
| | | put("sampleSize", finalSamples.size()); |
| | | put("sampleSize", "1"); |
| | | put("standardMethod", (standardMethod2.toString().equals("null") ? "" : standardMethod2)); |
| | | put("deviceList", finalDeviceList); |
| | | put("tables", tables); |
| | |
| | | |
| | | |
| | | //电路报告用于总报告的方法 |
| | | private void getWord1(String term, InsOrderState insOrderState, List<InsSample> insSamples, List<Map<String, Object>> tables2) { |
| | | private void getWord1(String term, InsOrderState insOrderState,List<Map<String, Object>> tables2) { |
| | | AtomicInteger lable = new AtomicInteger(1); |
| | | AtomicInteger index = new AtomicInteger(); |
| | | String title = term + "电路参数"; |
| | | insSamples.forEach(insSample -> { |
| | | InsSample insSample = insSampleMapper.selectById(insOrderState.getInsSampleId()); |
| | | |
| | | //查询项目 |
| | | List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() |
| | | .eq(InsProduct::getInsSampleId, insSample.getId()) |
| | |
| | | tables2.add(table2); |
| | | lable.getAndIncrement(); |
| | | }); |
| | | }); |
| | | } |
| | | |
| | | // 水平合并单元格 |