certflow.services.report_output_service module¶
报告输出服务:双存根 + VBA 同款文件夹命名 + 印章嵌入 + 报告目录超链接索引
设计依据:reports_migration/notes/03_vba_migration_blueprint.md §7 - §7.1 印章双模式:模式 A 无纸化(PDF 嵌电子章);模式 B 纸档(xlsx 干净可手改,
PDF 不嵌章供打印+手动盖章)。xlsx 始终为可手改微调档(唯一真相源)。
- §7.2 文件夹命名逐字复用 VBA(Mod_GCreatFloder.新建文件夹),但**全部由 config.yaml 驱动**
- (paths.report_archive.folder 的 pattern/tokens/兜底文本):
{root}/{ym}计划项目资料/{rq}_{customer}_{project}项目资料
root 统一可配置;外购/自制改用显式 外购类型 列(不再依赖单元格颜色)。
§7.4 超链接索引:项目文件夹内 报告目录.xlsx,用 HYPERLINK 关联本次所有报告(仿 BaoGaoMuLu)。
- class certflow.services.report_output_service.ReportOutputService(root=None, seal_default=None, templates_dir=None)[源代码]¶
基类:
object报告输出编排:建 VBA 风格文件夹 → 双存根(xlsx+pdf) → 嵌章 → 写报告目录。
落点:src/certflow/services/(feature/report-migration 分支)。
- 参数:
root (Path | None)
seal_default (Path | None)
templates_dir (Path | None)
- resolve_project_folder(plan_date, customer, project)[源代码]¶
返回 VBA 同款项目文件夹路径(不存在则创建)。
命名 pattern / 占位符 / 兜底文本全部来自 config.yaml 的 paths.report_archive.folder(蓝图 §7.2),后期只改 yaml 即可调整。 默认:{root}/{ym}计划项目资料/{rq}_{customer}_{project}项目资料
- create_placeholder_folder(plan_date, customer, project, is_outsourced=False)[源代码]¶
仅预建 VBA 风格占位项目文件夹(不写任何文件)。
供 B0-4 开关 import.create_placeholder_dirs=true 时在导入期调用, 恢复 VBA Mod_GCreatFloder.新建文件夹 的导入期预建行为。命名统一沿用 paths.report_archive.folder 的 pattern/tokens/兜底文本(与下游出报告落点一致)。
- emit(req, export_pdf=None)[源代码]¶
输出一份报告,返回双存根路径与状态。
两种落点(由
report.consolidate_by_customer控制): - 合并模式(默认,VBA 风格):把本报告 sheet 复制进{root}/{customer_workbook_subdir}/{customer}{year}.xlsx客户簿, 同名 sheet 先删后写(覆盖);PDF 按 sheet 派生到订单文件夹。回退模式:每订单每类型独立 xlsx(双存根)到订单文件夹(原行为)。
订单内
报告目录.xlsx已废弃:导航统一交给全局总目录 + 客户簿内「目录」sheet。- 参数:
req (ReportOutputRequest)
export_pdf (bool | None)
- 返回类型:
- class certflow.services.report_output_service.ReportOutputRequest(report_type, xlsx_source, plan_date, customer, project, is_outsourced=False, language='zh', product_no='', variant='', report_date='', serial='', seal_image=None, sales_order_no='', records_per_page=0, variant_label='')[源代码]¶
基类:
object单份报告的输出请求(由 xlsx 填充服务产出 xlsx_source 后传入)。
- 参数: