04e 报告生成流程¶
状态:✅ 已实现(主路径);🟡 迁移草稿区待并入 | ⚙️ 配置驱动
1. 操作入口¶
方式 |
入口 |
|---|---|
GUI |
导航「报告生成」→ |
CLI |
|
支持三类报告:质保书、试压报告、材质报告。
2. 涉及配置¶
配置文件 |
关键字段 |
说明 |
|---|---|---|
|
模板 / 命名规则 |
报告文件名占位符 |
|
报告模板 |
三类报告模板 |
|
试压标准 |
试压报告参数 |
3. 涉及代码文件¶
层 |
文件 |
职责 |
|---|---|---|
View |
|
报告生成页面 |
Controller |
|
编排 |
Service |
|
报告填充(主实现 ✅) |
Service |
|
报告输出与命名 |
Service |
|
BOM 富化 |
Service |
|
BOM 零件牌号 |
Service |
|
零件分类 |
Handler |
|
报告生成处理器 |
Model |
|
报告模板表 |
Draft (🟡) |
|
草稿,抛 |
Draft (🟡) |
|
草稿 |
4. 逐步流程¶
4.1 选择数据¶
导航「报告生成」
选择提取方式:
随机/指定抽取(
report-gen支持--sample/--plan-no)按销售计划记录生成
ReportView展示可生成的报告类型(质保书/试压/材质)
4.2 生成报告¶
选择报告类型与范围
ReportController→ReportFillServiceReportBomEnricher通过BomMaterialService+BomPartClassifier匹配 BOM 零件牌号ReportFillService填充模板字段ReportOutputService按report.yaml命名规则输出文件
CLI:
certflow report-gen --type warranty --sample 10
certflow report-gen --type pressure --plan-no CF2026080001
4.3 命名规则¶
config/report.yaml 定义文件名自动命名格式(占位符见 ReportOutputService._build_filename),支持计划日期/制作日期等占位符。工作表标签名同文件名占位符规则。
5. 迁移草稿区(🟡 TODO)¶
services/report_migration/ 为下一路线的草稿实现:
material_provider.py的抽象方法抛NotImplementedError(L45, L166)report_fill_engine.py、report_data_builder.py也已豁免 C901(见pyproject.toml:210-213)
待办:将草稿并入 src/certflow/services/,重写 material_provider 实现,移除 NotImplementedError。当前日常使用走 report_fill_service.py(已实现),草稿区不阻塞使用。详见 08-todo.md T0-2。
6. 常见问题¶
BOM 牌号缺失:检查基础字典「BOM 物料」是否维护该零件
报告命名异常:检查
report.yaml占位符配置