certflow.controllers.material_grade_controller module

材质牌号控制器

桥接材质牌号管理界面(View)与材质牌号服务(Service): - 读操作直接委托 MaterialGradeService; - 写操作(新增/更新/删除)在此统一提交事务,失败时回滚并向上抛出。

架构层次:View (MaterialGradeManagerView) → Controller (MaterialGradeController)

→ Service (MaterialGradeService) → Model (MaterialGrade)

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

基类:BaseController

材质牌号控制器 — 管理界面的业务调度层

参数:

use_shared (bool)

list_all(active_only=False)[源代码]

返回全部材质牌号记录

参数:

active_only (bool) -- 为 True 时仅返回启用状态的牌号,默认为 False

返回:

材质牌号记录列表(ORM 对象或字典)

返回类型:

list[Any]

get_by_id(grade_id)[源代码]

按主键获取记录

参数:

grade_id (int) -- 材质牌号记录主键

返回:

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

返回类型:

Any

get_grades_by_category()[源代码]

按阀门零件类别分组返回牌号(供打印对话框)

返回类型:

dict[str, list[str]]

get_data_quality_summary()[源代码]

材质牌号表数据质量概览(总数/启用/停用/范围缺失),供管理界面状态栏。

返回类型:

dict[str, int]

create(data)[源代码]

新增记录并提交

返回:

新记录主键 id

抛出:

ValueError -- 校验失败(交给上层提示用户)

参数:

data (dict[str, Any])

返回类型:

int

示例

>>> controller = MaterialGradeController()
>>> new_id = controller.create({
...     "category": "阀体",
...     "grade": "WCB",
...     "is_active": True,
... })
>>> print(new_id)
update(grade_id, data)[源代码]

更新记录并提交

返回:

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

参数:
返回类型:

bool

delete(grade_id)[源代码]

删除记录并提交

返回:

是否删除成功

参数:

grade_id (int)

返回类型:

bool

seed_common_grades()[源代码]

幂等灌入常见牌号示例(化学成分 + 力学性能)

返回:

实际写入的记录条数(0 表示库已有数据,未写入)

返回类型:

int

export_csv(path)[源代码]

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

参数:

path (str | Path)

返回类型:

int

import_csv(path)[源代码]

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

参数:

path (str | Path)

返回类型:

dict[str, int]

refresh()[源代码]

重新加载全部记录(提交并刷新会话)

返回:

刷新后的全部材质牌号记录列表

返回类型:

list[Any]