certflow.services.cert_export_service module

合格证数据导出服务

从 CertificatePrintService 迁移出来,负责: - Access 数据库导出 (SignDB.mdb) - SignTb CSV 导出(Access 桥接方案) - 打印历史查询

class certflow.services.cert_export_service.CertExportService(session)[源代码]

基类:object

合格证数据导出服务

参数:

session (Session)

export_to_access(ids, mdb_path=None)[源代码]

导出到 Access 数据库(默认禁用)

控制方式(优先级从高到低): 1. 环境变量 CERTFLOW_ENABLE_ACCESS_EXPORT=true 强制启用 2. 配置文件 config.yaml → export.access.enabled: true 3. 以上均未设置时默认禁用

注意: 64-bit Python 环境可能无法连接 32-bit Access ODBC 驱动。 推荐使用 record_print_log 记录到 SQLite print_logs 表,或使用 export_sign_tb_csv 导出 CSV。

参数:
  • ids (list[int]) -- 合格证记录 ID 列表。

  • mdb_path (str | None) -- Access 数据库路径,为 None 时按配置或默认值解析。

返回:

成功写入的记录数;导出被禁用或失败时返回 0。

返回类型:

int

export_sign_tb_csv(output_path=None, limit=1000)[源代码]

导出 print_logs 为 SignTb 兼容 CSV(Access 桥接方案)

CSV 列序完全对齐 Access SignTb 51字段,铭牌刻印系统可导入。

参数:
  • output_path (str | None) -- 输出 CSV 路径,为 None 时自动生成到 output/export 目录。

  • limit (int) -- 最多导出的打印日志条数。

返回:

成功时返回输出文件路径,无数据或失败时返回 None。

返回类型:

str | None

get_print_history(limit=100, status_filter=None)[源代码]

查询打印历史(返回字段名与 Access SignTb 兼容)。

参数:
  • limit (int) -- 最多返回的记录条数。

  • status_filter (str | None) -- 按打印状态过滤,为 None 时不筛选。

返回:

打印历史记录列表(字段名与 SignTb 对齐)。

返回类型:

list[dict]