certflow.controllers.model_param_mapping_controller module

型号参数对照表控制器

桥接型号→压力对照表管理界面(View)与型号参数服务(Service):读操作直接委托 ModelParamMappingService;写操作在此统一提交事务,失败时回滚并向上抛出。模型类 经服务层间接引用,控制器不直接依赖 certflow.models.*

架构层次:View (ModelParamMappingManagerView) → Controller

(ModelParamMappingController) → Service (ModelParamMappingService) → Model (ModelParamMapping)

class certflow.controllers.model_param_mapping_controller.ModelParamMappingController(db_session=None, db_manager=None, use_shared=True)[源代码]

基类:BaseController

型号参数对照表控制器 — 管理界面的业务调度层

参数:

use_shared (bool)

list_all()[源代码]

返回全部型号参数对照记录(按 id 升序)

返回:

对照记录列表

返回类型:

list[ModelParamMapping]

get_by_id(mapping_id)[源代码]

按主键获取记录

参数:

mapping_id (int) -- 记录主键

返回:

匹配的记录;不存在时返回 None

返回类型:

ModelParamMapping | None

get_by_model(product_model)[源代码]

按产品型号查询对照记录(阶段 C:收口 print_view 的裸 session.query)

视图层不再直接剥出 Controller 的 session 自己写 ORM 查询,统一经此方法。

参数:

product_model (str) -- 产品型号字符串

返回:

匹配的记录;不存在时返回 None

返回类型:

ModelParamMapping | None

create(data)[源代码]

新增记录并提交

返回:

新记录主键 id

返回类型:

int

参数:

data (dict[str, Any])

update(mapping_id, data)[源代码]

更新记录并提交

参数:
  • mapping_id (int) -- 记录主键

  • data (dict[str, Any]) -- 待更新的字段字典

返回:

是否更新成功(id 不存在返回 False)

返回类型:

bool

delete(mapping_id)[源代码]

删除记录并提交

返回:

是否删除成功

返回类型:

bool

参数:

mapping_id (int)

seed_common_models()[源代码]

幂等灌入常见型号→压力示例,库非空则跳过(不破坏已有数据)

返回类型:

int

upsert_for_learnback(product_model, updates, strategy='conservative', overwrite_manual=False)[源代码]

打印成功后学回型号字典(保守合并语义,见 docs/PRINT_BLUEPRINT.md §2.4)。

  • 不存在 → 新建 source='auto-learned',应用全部非空 updates。

  • 已存在且 source=='manual' 且 overwrite_manual=False → 整条不动(人工权威)。

  • 已存在且非 manual → 按策略合并:

    conservative / field_level:仅补缺(DB 为空、表单非空才写;已非空保持)。 last_write_wins:所有非空表单字段覆盖 DB。

  • 无论新建/补缺,usage_count++。

参数:
返回类型:

None

export_csv(path)[源代码]

把当前 model_param_mappings 表整表导出为 CSV 快照,返回行数。

参数:

path (str | Path)

返回类型:

int

import_csv(path)[源代码]

把 CSV 快照 upsert 回 model_param_mappings 表,返回统计。

参数:

path (str | Path)

返回类型:

dict[str, int]