certflow.services.db_source_adapter module

DB→DB 导入源适配层(蓝图 §4.3.2:跨库复用导入框架)。

把「查询视图勾选的 SalePlan 列表」包装成与 xlsx 解析结果同构的源记录, 喂给统一「打印合格证」入口 QueryController.generate_print_certificates 适配层, 实现「销售计划 DB → 合格证清单」的复用,无需经过 Excel 文件。

设计要点(与总原则一致): - 纯 SQLAlchemy,不依赖任何 Qt 组件,可单测; - 视图层只把勾选的 SalePlan id 交给本适配层,适配层负责取回实体并暴露

plan_ids / records / to_source_records

  • 真正的「编号 + 写 Certificate」由统一入口 QueryController.generate_print_certificatesCertificatePrintService 编排(去重安全),框架零改动,仅新增此适配层 + 一个 view_key。

class certflow.services.db_source_adapter.DbSourceAdapter(session, plan_ids)[源代码]

基类:object

把选中的 SalePlan 包装为 DB→DB 导入源。

查询视图「打印合格证」动作把勾选的 SalePlan id 交给本适配层, 适配层从会话取回实体并暴露 plan_ids / records,供控制器经统一入口 generate_print_certificates 生成 Certificate 记录。

参数:
  • session (Session)

  • plan_ids (list[int])

session

SQLAlchemy 会话

plan_ids[源代码]

选中的销售计划主键列表

返回类型:

list[int]

plan_ids()[源代码]

返回选中的销售计划主键列表(去重保序)。

返回类型:

list[int]

get_records()[源代码]

从会话取回选中的 SalePlan 实体列表(保持传入顺序)。

返回类型:

list[SalePlan]

to_source_records()[源代码]

导出与 xlsx 解析结果同构的源记录字典列表(供审计/预览)。

仅包含合格证生成所需的源字段,等价于 create_certificates 读取的列。

返回类型:

list[dict[str, Any]]