| | |
| | | * 产品检验单(纸质"××产品质量检验单"版式)Word 构建器 |
| | | * |
| | | * 版式:标题(公司 + 产品检验单)→ 表头信息 5 行 → 检验项目/检验结果 两列矩阵 → |
| | | * 判定结论(自动带出检验结果)/质检专用章(留空盖章)→ 备注 → 检验/复核/批准签字行。 |
| | | * 判定结论(自动带出检验结果)/质检专用章(留空盖章)→ 备注 → |
| | | * 检验/复核/批准签字行(分别带出检测人、复核人、审核人姓名)。 |
| | | * 不含技术指标列;分组项不展示,录入项平铺;平行测量多值顿号合并。 |
| | | */ |
| | | public class MesQcProductReportWordBuilder { |
| | |
| | | writeItemTable(doc, report); |
| | | writeConclusionTable(doc, report); |
| | | writeRemarkTable(doc, report); |
| | | writeSignLine(doc); |
| | | writeSignLine(doc, report); |
| | | doc.write(out); |
| | | return out.toByteArray(); |
| | | } |
| | |
| | | |
| | | // ========== 签字行 ========== |
| | | |
| | | /** 签字行固定留空,与判定结论/质检专用章一致,打印后手写 */ |
| | | private static void writeSignLine(XWPFDocument doc) { |
| | | /** |
| | | * 签字行:检验/复核/批准分别带出检测人(inspectorUserId)、复核人(auditUserId)、 |
| | | * 审核人(approveUserId)姓名;未指定人员时该段留空,打印后手写 |
| | | */ |
| | | private static void writeSignLine(XWPFDocument doc, MesQcQcReportRespVO report) { |
| | | XWPFParagraph paragraph = doc.createParagraph(); |
| | | paragraph.setAlignment(ParagraphAlignment.LEFT); |
| | | paragraph.setSpacingBefore(400); |
| | | addRun(paragraph, "检验: 复核: 批准: ", 12, true); |
| | | String text = "检验:" + signName(report.getInspectorName()) |
| | | + " 复核:" + signName(report.getAuditName()) |
| | | + " 批准:" + signName(report.getApproveName()); |
| | | addRun(paragraph, text, 12, true); |
| | | } |
| | | |
| | | /** 签名段:有姓名则打印姓名并留签名余量,无姓名则整段留空便于手写 */ |
| | | private static String signName(String name) { |
| | | return notBlank(name) ? name + " " : " "; |
| | | } |
| | | |
| | | // ========== 表格基础 ========== |