certflow.services.caliber_mapping_service module¶
口径映射服务
收口 CaliberMapping 的 ORM 类与 CRUD 逻辑,供控制器层(Controller)调用,
消除控制器直接依赖 certflow.models.* 的跨层边。视图(View)只经控制器门面
访问,不直接触碰本服务或模型层。
- 架构层次:View → Controller (CaliberMappingController)
→ Service (CaliberMappingService) → Model (CaliberMapping)
- class certflow.services.caliber_mapping_service.CaliberMapping(**kwargs)[源代码]¶
基类:
Base口径字符串映射表
对标 VBA function.vb 确认口径() 第164-166行:
Arr_KouJingDuiYing = CanShuSheet.Range("口径替换数据表") For i = LBound(Arr_KouJingDuiYing, 1) To UBound(Arr_KouJingDuiYing, 1) If VBA.Trim(Arr_KouJingDuiYing(i, 1)) = VBA.Trim(口径字符串) Then ...- id¶
主键ID
- raw_text¶
原始口径字符串(如 "DN100", "2"", "2-1/2"", "DN100*80")
- caliber_value¶
标准化口径值(如 "100", "50", "65", "100*80")
- is_imperial¶
是否英制口径
- source¶
来源(manual/auto-learned/import)
- usage_count¶
使用次数
- id¶
- raw_text¶
- caliber_value¶
- is_imperial¶
- source¶
- usage_count¶
- created_at¶
- updated_at¶
- class certflow.services.caliber_mapping_service.CaliberMappingService(session)[源代码]¶
基类:
object口径映射服务 — 控制器与模型之间的业务调度层。
CRUD 逻辑从原
CaliberMappingController下沉至此,控制器仅做事务提交。- 参数:
session (Session)
- CSV_COLUMNS = ['raw_text', 'caliber_value', 'is_imperial']¶
- CSV_FIELD_TYPES = {'caliber_value': 'text', 'is_imperial': 'bool', 'raw_text': 'text'}¶
- CSV_UNIQUE_KEYS = ['raw_text']¶
- get_by_id(mapping_id)[源代码]¶
按主键获取记录。
- 参数:
mapping_id (int)
- 返回类型:
CaliberMapping | None
- update(mapping_id, data)[源代码]¶
更新记录(不提交);id 不存在返回 None。
- 参数:
- 返回类型:
CaliberMapping | None