增加重构文档

This commit is contained in:
strepsiades
2026-03-12 14:23:15 +08:00
parent 0ae2db1808
commit 758b1c4f77
16 changed files with 1626 additions and 15 deletions
+89
View File
@@ -0,0 +1,89 @@
# Preparation 领域重构指南
## 1. 范围
本文档对应 backend 的 `preparation` 里程碑节点表。
当前优先关注:
- `preparation.code`
- `preparation.approval_status`
- `preparation.is_exist`
## 2. 字段盘点
### 2.1 `code`
当前实现:
- 模型里是 `String`
- 没有本地 enum 类
- 项目初始化时,节点集合来自 `preparation_{project_type}` 字典数据
- 同步 schema `project_extensions/preparation.py` 里也是 `str`
项目侧取值范围:
- 当前无法从单一代码 enum 列出完整范围
- 已知典型值包括:`JSZB``HZBA``KYNS``TZJC``YDYS``LCPF``YDPF``JRPF``HPPF``SGXK``SBPF`
集团侧差异:
- 集团侧 `enum_config.Preparation.code` 已明确把该字段作为按项目类型变化的正式候选项
- 本地当前仍主要靠初始化字典/字符串承载
结论:
- 更适合迁到 `field_config`
- 不应继续只靠初始化字典和自由字符串
### 2.2 `approval_status`
当前实现:
- backend 依赖 `ApprovalMixin`
- 本地 `PreparationApproval` schema 仍使用 int
- 同步 schema `PreparationDetail` 里是 `Optional[str]`
项目侧取值范围:
- 当前本地未在 preparation 模块中沉成独立 enum
集团侧差异:
- 同步 schema 有字段,但没有正式 enum
结论:
- 应统一接入通用审批状态体系
### 2.3 `is_exist`
当前实现:
- 模型里是 `Boolean`
- backend 和 sync schema 均有该字段
项目侧取值范围:
- `true`
- `false`
集团侧差异:
- 当前没看到 enum_config 对这个字段给出候选项
结论:
- 保持布尔字段即可
## 3. 重点结论
- `preparation.code` 是标准的初始化候选项字段,最适合迁到 `field_config`
- `approval_status` 不需要在本领域单独发明枚举,应直接接入通用审批体系。
- `is_exist` 是布尔存在性字段,不在本轮字段级配置重点内。
## 4. 待修改项清单
1.`preparation.code` 正式迁到 `field_config`
2. 区分“节点编码范围”与“审批状态/存在性”这两类字段,不要混在一个配置源里。
3.`approval_status` 接入通用审批状态定义。