2.6 KiB
2.6 KiB
Material Detail 领域重构指南
1. 范围
本文档对应 backend 的 material_detail 明细表。
当前优先关注:
material_detail.kitmaterial_detail.partmaterial_detail.statusmaterial_detail.approval_status
2. 字段盘点
2.1 kit
当前实现:
- 模型里是
String - 本地候选项来自
kit_part_dict - 没有独立 enum 类
项目侧取值范围:
- 当前本地明确值包括:
TY、ZJ、LZ、XC、ZT、NB、XB、ZB、GS、CN、PCS、DCC、35KV、CYJD、SVG、DL、35-DL、10-DL、400DL、two-DL、TXDL、GX、WX、ECPG、QT
集团侧差异:
- 集团侧没有独立的
MaterialDetail顶层段 - 同步 schema
material_detail.py里也没有kit字段
结论:
- 当前是本地专有字段
- 先保留配置字典来源
2.2 part
当前实现:
- 模型里是
String - 没有统一 enum 或配置表
项目侧取值范围:
- 当前无法列出稳定范围
- 更像是自由文本/部件说明字段
集团侧差异:
- 当前没看到同步 schema 或集团侧
enum_config给出对应候选项
结论:
- 暂不枚举化
2.3 status
当前实现:
- backend 明细模型没有显式业务 status 字段
- 同步 schema
material_detail.py有status: Optional[int]
项目侧取值范围:
- 当前无法从 backend
material_detail模型中列出正式取值范围
集团侧差异:
- 同步 schema 仍保留该字段
- backend 当前没有同名正式字段,存在领域映射缺口
结论:
- 需要先确认推送时该字段来源到底是 material 主表还是 detail 明细计算值
2.4 approval_status
当前实现:
- backend 依赖
ApprovalMixin - 同步 schema 使用
ApprovalStatusenum
项目侧取值范围:
- 当前 material_detail 自身没有独立审批 enum 文件
- 依赖通用审批体系
集团侧差异:
- 同步 schema 已经显式收紧为审批 enum
结论:
- 统一接入通用审批 enum 即可
3. 重点结论
material_detail当前不是一个干净的“可直接枚举化”领域,最大的缺口是 backend 与 sync schema 的字段映射不完整。kit可以继续保留为本地候选项来源,但是否外提到field_config取决于后续是否进入推送口径。status必须先确认正式来源,否则不能直接做字段级配置。
4. 待修改项清单
- 明确
kit是否需要单独迁成字段配置。 - 明确
part是否继续保留自由文本。 - 明确
material_detail.status在 backend 的正式来源。 - 将
approval_status与通用审批状态定义彻底对齐。