certflow.handlers.shipped_export_handler module

已发货导出处理器模块

负责三层数据生命周期中 Layer 2/3 的归档和 Excel 导出操作。 将 Excel 写入、记录拷贝等底层操作从 Service 层分离到 Handler 层。

架构:

Service → ShippedExportHandler → Model / pandas

class certflow.handlers.shipped_export_handler.ShippedExportHandler(session)[源代码]

基类:object

已发货导出处理器

负责: - 将 SalePlan 记录拷贝到 SalePlanShipped 归档表 - 导出完整字段 Excel 文件 - 按列定义导出选中行到 Excel

示例

>>> handler = ShippedExportHandler(session)
>>> count = handler.archive_to_shipped(plans)
>>> result = handler.export_full_excel(plans, "/output")
参数:

session (Session)

copy_to_shipped(plan, shipped_by, shipped_at=None)[源代码]

将单条 SalePlan 记录拷贝为 SalePlanShipped 归档记录

不执行 session.add,由调用方控制事务。

参数:
  • plan (SalePlan) -- 源 SalePlan 记录

  • shipped_by (str) -- 归档来源标识 ("archive" 或 "export_delete")

  • shipped_at (datetime | None) -- 归档时间,默认当前时间

返回:

归档记录对象

返回类型:

SalePlanShipped

batch_archive(plans, shipped_by)[源代码]

批量归档 SalePlan → SalePlanShipped 并从主表删除

参数:
  • plans (list[SalePlan]) -- 要归档的 SalePlan 记录列表

  • shipped_by (str) -- 归档来源标识

返回:

归档记录数

返回类型:

int

export_full_excel(plans, output_dir)[源代码]

导出 SalePlan 完整字段到 Excel 文件

参数:
  • plans (list[SalePlan]) -- 要导出的 SalePlan 记录列表

  • output_dir (str) -- 输出目录

返回:

N, "filepath": "..."}

返回类型:

{"count"

export_selected_to_excel(records, columns, file_path)[源代码]

按列定义导出选中记录到 Excel

参数:
  • records (list[Any]) -- ORM 记录列表(SalePlan 对象)

  • columns (list[dict[str, str]]) -- 列定义列表 [{"field": "...", "label": "..."}, ...]

  • file_path (str) -- 目标文件路径

返回:

导出记录数

返回类型:

int

export_query_result_to_excel(records, columns, file_path)[源代码]

按列定义导出查询结果到 Excel(带 plan_date 格式化)

参数:
  • records (list[Any]) -- ORM 记录列表

  • columns (list[dict[str, str]]) -- 列定义列表

  • file_path (str) -- 目标文件路径

返回:

导出记录数

返回类型:

int