增加重构文档
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
# Production 领域重构指南
|
||||
|
||||
## 1. 范围
|
||||
|
||||
本文档对应 backend 的 `production` 投产节点表。
|
||||
|
||||
当前优先关注:
|
||||
|
||||
- `production.code`
|
||||
- `production.approval_status`
|
||||
- `production.is_exist`
|
||||
|
||||
## 2. 字段盘点
|
||||
|
||||
### 2.1 `code`
|
||||
|
||||
当前实现:
|
||||
|
||||
- 模型里是 `String`
|
||||
- 没有本地 enum 类
|
||||
- 项目初始化时,节点集合来自 `production_{project_type}` 字典数据
|
||||
- 同步 schema `project_extensions/production.py` 里也是 `str`
|
||||
|
||||
项目侧取值范围:
|
||||
|
||||
- 当前无法从单一 enum 文件列出完整范围
|
||||
- 已知典型值包括:`SYZDSD`、`SPBW`、`QBBW`、`KHWC240`、`YJSC`、`DBTC`、`CQZS`、`WGJS`、`JGJS`
|
||||
|
||||
集团侧差异:
|
||||
|
||||
- 集团侧 `enum_config.Production.code` 已把该字段按项目类型列成正式候选项
|
||||
- 本地仍主要靠初始化字典和自由字符串
|
||||
|
||||
结论:
|
||||
|
||||
- 更适合迁到 `field_config`
|
||||
|
||||
### 2.2 `approval_status`
|
||||
|
||||
当前实现:
|
||||
|
||||
- backend 依赖 `ApprovalMixin`
|
||||
- 本地 `ProductionApproval` schema 仍使用 int
|
||||
- 同步 schema `ProductionDetail` 里是 `Optional[str]`
|
||||
|
||||
项目侧取值范围:
|
||||
|
||||
- 当前本地未在 production 模块中沉成独立 enum
|
||||
|
||||
集团侧差异:
|
||||
|
||||
- 同步 schema 有字段,但没有正式 enum
|
||||
|
||||
结论:
|
||||
|
||||
- 应统一接入通用审批状态体系
|
||||
|
||||
### 2.3 `is_exist`
|
||||
|
||||
当前实现:
|
||||
|
||||
- 模型里是 `Boolean`
|
||||
- backend 和 sync schema 都有
|
||||
|
||||
项目侧取值范围:
|
||||
|
||||
- `true`
|
||||
- `false`
|
||||
|
||||
集团侧差异:
|
||||
|
||||
- 当前没看到 enum_config 对该字段给候选项
|
||||
|
||||
结论:
|
||||
|
||||
- 保持布尔字段即可
|
||||
|
||||
## 3. 重点结论
|
||||
|
||||
- `production.code` 和 `preparation.code` 一样,属于典型的初始化节点编码字段,应迁到 `field_config`。
|
||||
- `approval_status` 仍应走通用审批体系,而不是 production 自己维护一套值域。
|
||||
- `is_exist` 不属于本轮需要抽成字段候选表的重点字段。
|
||||
|
||||
## 4. 待修改项清单
|
||||
|
||||
1. 将 `production.code` 正式迁到 `field_config`。
|
||||
2. 将项目初始化里对 `production_{project_type}` 的依赖逐步收敛到统一字段配置入口。
|
||||
3. 将 `approval_status` 接入通用审批状态定义。
|
||||
Reference in New Issue
Block a user