| | |
| | | assertEquals("10.023、10.115", itemTable.getRow(2).getCell(1).getText().trim()); |
| | | assertEquals("/", itemTable.getRow(3).getCell(1).getText().trim()); |
| | | |
| | | // 判定结论/质检专用章留空 |
| | | // 判定结论带出检验结果;质检专用章留空待盖章 |
| | | assertTrue(itemTable.getRow(2).getCell(0).getText().contains("试样质量 m /g")); |
| | | assertEquals("判定结论:", tables.get(2).getRow(0).getCell(0).getText().trim()); |
| | | assertEquals("判定结论:1型", tables.get(2).getRow(0).getCell(0).getText().trim()); |
| | | assertEquals("质检专用章:", tables.get(2).getRow(0).getCell(1).getText().trim()); |
| | | |
| | | // 备注默认文案 |
| | | assertTrue(tables.get(3).getRow(0).getCell(1).getText().contains("检验结果仅对样品本身或本批次负责")); |
| | | |
| | | // 签字行留空(打印后手写),不得出现姓名 |
| | | // 签字行带出姓名:检验=检测人、复核=复核人、批准=审核人 |
| | | String signLine = doc.getParagraphs().stream() |
| | | .filter(p -> p.getText().contains("批准:")) |
| | | .findFirst().orElseThrow().getText(); |
| | | assertTrue(signLine.contains("检验:") && signLine.contains("复核:")); |
| | | assertTrue(!signLine.contains("李博") && !signLine.contains("周亚洁") && !signLine.contains("包翠萍"), |
| | | "签字行应留空,不输出检验/复核/批准姓名"); |
| | | assertTrue(signLine.contains("检验:李博"), "检验应带出检测人姓名:" + signLine); |
| | | assertTrue(signLine.contains("复核:周亚洁"), "复核应带出复核人姓名:" + signLine); |
| | | assertTrue(signLine.contains("批准:包翠萍"), "批准应带出审核人姓名:" + signLine); |
| | | } |
| | | } |
| | | |
| | | @Test |
| | | public void testBuildWithoutSigners() throws IOException { |
| | | MesQcQcReportRespVO report = randomReport(); |
| | | report.setInspectorName(null).setAuditName("").setApproveName(null); |
| | | byte[] docx = MesQcProductReportWordBuilder.build(report); |
| | | try (InputStream in = new ByteArrayInputStream(docx); XWPFDocument doc = new XWPFDocument(in)) { |
| | | String signLine = doc.getParagraphs().stream() |
| | | .filter(p -> p.getText().contains("批准:")) |
| | | .findFirst().orElseThrow().getText(); |
| | | assertTrue(signLine.contains("检验:") && signLine.contains("复核:") && signLine.contains("批准:"), |
| | | "未指定人员时仍保留三个栏位供手写:" + signLine); |
| | | } |
| | | } |
| | | |
| | |
| | | .setSamplingTime(LocalDateTime.of(2026, 1, 6, 9, 0)) |
| | | .setInspectDate(LocalDateTime.of(2026, 1, 6, 15, 0)) |
| | | .setDocCreateTime(LocalDateTime.of(2026, 1, 6, 8, 0)) |
| | | .setInspectorName("李博").setAuditName("周亚洁").setApproveName("包翠萍"); |
| | | .setInspectorName("李博").setAuditName("周亚洁").setApproveName("包翠萍") |
| | | .setCheckResult(1).setCheckResultText("1型"); |
| | | |
| | | MesQcQcReportRespVO.ReportItem appearance = new MesQcQcReportRespVO.ReportItem(); |
| | | appearance.setIndicatorName("外观").setItemType(1).setSortOrder(10); |