04d 合格证生成与打印流程¶
状态:✅ 已实现
1. 操作入口¶
方式 |
入口 |
|---|---|
GUI |
查询页「打印」/「预览」→ |
CLI |
|
2. 涉及配置¶
配置文件 |
关键字段 |
说明 |
|---|---|---|
|
合格证模板字段 |
合格证的字段映射 |
|
打印参数 |
份数/方向/页边距 |
|
打印机配置 |
默认打印机选择 |
|
模板文件 |
合格证 PDF 模板 |
|
颜色 |
预览渲染 |
3. 涉及代码文件¶
层 |
文件 |
职责 |
|---|---|---|
View |
|
打印页面 |
View |
|
打印参数对话框 |
View |
|
合格证预览渲染 |
Controller |
|
打印队列 |
Controller |
|
打印机管理 |
Service |
|
合格证记录生成 |
Service |
|
合格证编号 |
Service |
|
打印编排 |
Service |
|
PDF 渲染引擎(reportlab) |
Service |
|
系统打印机管理 |
Service |
|
打印历史 |
Service |
|
DN 口径计算 |
Service |
|
PN 压力计算 |
Service |
|
双码计算 |
Service |
|
压力计算 |
Model |
|
合格证表 |
Model |
|
打印任务表 |
Model |
|
打印日志表 |
4. 逐步流程¶
4.1 生成合格证¶
在查询页选择已编号记录(
product_code非空)action
print_certificates→_print_certificatesCertificateService将记录写入certificate表(含 DN/PN 双码计算)CLI 等价命令:
certflow print-cert --filter "product_code not null and cert_done=0"
4.2 预览¶
右键「预览」→ action
preview_certificate→_preview_certificateCertificatePreviewPainter渲染 PDF 预览(PySide6 绘制)确认无误后进入打印
4.3 打印¶
工具栏「打印」→
PrintView/PrintDialog选择打印机(
PrinterController+PrinterManager枚举系统打印机)设置参数(份数/方向,来自
print.yaml)CertificatePrintService→CertPrintEngine(reportlab 生成 PDF)→ 提交系统打印队列PrintJob/PrintLog记录任务与结果PrintHistoryService追加到打印历史
4.4 双码计算¶
合格证中 DN(公称通径)与 PN(公称压力)经 dn_service、pn_service、dual_code、pressure_calc_service 计算,依赖基础字典中的口径映射与型号参数映射。
5. 打印历史¶
6. 常见问题¶
预览空白:检查
certificate.yaml字段映射是否覆盖所选记录打印卡住:检查系统打印机状态;
printer.yaml中的默认打印机是否在线双码为 0:检查基础字典「口径映射」「型号参数映射」是否配置该型号