Files
ecm_sync_system/docs/enum_refactor/material_detail.md
T
2026-03-12 14:23:15 +08:00

2.6 KiB

Material Detail 领域重构指南

1. 范围

本文档对应 backend 的 material_detail 明细表。

当前优先关注:

  • material_detail.kit
  • material_detail.part
  • material_detail.status
  • material_detail.approval_status

2. 字段盘点

2.1 kit

当前实现:

  • 模型里是 String
  • 本地候选项来自 kit_part_dict
  • 没有独立 enum 类

项目侧取值范围:

  • 当前本地明确值包括:TYZJLZXCZTNBXBZBGSCNPCSDCC35KVCYJDSVGDL35-DL10-DL400DLtwo-DLTXDLGXWXECPGQT

集团侧差异:

  • 集团侧没有独立的 MaterialDetail 顶层段
  • 同步 schema material_detail.py 里也没有 kit 字段

结论:

  • 当前是本地专有字段
  • 先保留配置字典来源

2.2 part

当前实现:

  • 模型里是 String
  • 没有统一 enum 或配置表

项目侧取值范围:

  • 当前无法列出稳定范围
  • 更像是自由文本/部件说明字段

集团侧差异:

  • 当前没看到同步 schema 或集团侧 enum_config 给出对应候选项

结论:

  • 暂不枚举化

2.3 status

当前实现:

  • backend 明细模型没有显式业务 status 字段
  • 同步 schema material_detail.pystatus: Optional[int]

项目侧取值范围:

  • 当前无法从 backend material_detail 模型中列出正式取值范围

集团侧差异:

  • 同步 schema 仍保留该字段
  • backend 当前没有同名正式字段,存在领域映射缺口

结论:

  • 需要先确认推送时该字段来源到底是 material 主表还是 detail 明细计算值

2.4 approval_status

当前实现:

  • backend 依赖 ApprovalMixin
  • 同步 schema 使用 ApprovalStatus enum

项目侧取值范围:

  • 当前 material_detail 自身没有独立审批 enum 文件
  • 依赖通用审批体系

集团侧差异:

  • 同步 schema 已经显式收紧为审批 enum

结论:

  • 统一接入通用审批 enum 即可

3. 重点结论

  • material_detail 当前不是一个干净的“可直接枚举化”领域,最大的缺口是 backend 与 sync schema 的字段映射不完整。
  • kit 可以继续保留为本地候选项来源,但是否外提到 field_config 取决于后续是否进入推送口径。
  • status 必须先确认正式来源,否则不能直接做字段级配置。

4. 待修改项清单

  1. 明确 kit 是否需要单独迁成字段配置。
  2. 明确 part 是否继续保留自由文本。
  3. 明确 material_detail.status 在 backend 的正式来源。
  4. approval_status 与通用审批状态定义彻底对齐。