增加重构文档

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
+100
View File
@@ -0,0 +1,100 @@
# 项目侧字段分流总表草案
## 1. 目的
这份总表只回答一件事:
- 哪些字段继续保留为代码 enum / 代码常量。
- 哪些字段应迁到 `field_config`
- 哪些字段暂时不能直接收口,必须先补领域边界或映射关系。
## 2. 分流原则
优先按三类处理:
- 保留代码 enum:值域固定、语义稳定、业务分支已直接依赖。
- 迁到 `field_config`:值域跟 `project_type`、初始化模板或业务配置强相关。
- 暂缓收口:当前 backend 与 sync schema 映射不完整,或领域边界本身还没定。
## 3. 总表
| 领域 | 字段 | 当前主要来源 | 建议归类 | 备注 |
| --- | --- | --- | --- | --- |
| project | `project_type` | 代码 enum + 初始化字典 | 保留代码 enum | 核心路由字段 |
| project | `project_subtype` | 自由字符串 | 迁到 `field_config` | 建议 key`project.project_subtype` |
| project | `syxs` | 自由字符串 | 迁到 `field_config` | 建议 key`project.syxs` |
| project | `status` | 代码 enum + 服务推导 | 暂缓收口 | 先确认是否保留 `early` |
| project | `progress_type` | 代码 enum + DB enum | 保留代码 enum | 已与 sync schema 对齐 |
| project | `key_constraints` | 代码 enum 分叉 + DB enum | 暂缓收口 | 先统一 `OTHER/QT` 差异 |
| contract | `contract_type` | 代码 enum | 保留代码 enum | 先确认是否保留 `project` |
| contract | `code` | 初始化字典 / config / 自由字符串 | 迁到 `field_config` | 建议 key`contract.code` |
| contract | `currency` | 自由字符串 | 暂不处理 | 当前仅见 `CNY` |
| construction_task | `section_type_code` | 硬编码 dict + config | 迁到 `field_config` | 建议 key`construction.section_type_code` |
| construction_task | `task_type` | 类型树 + 字符串字段 | 暂缓收口 | 先拆 category 与真实任务类型 |
| construction_task | `status` | 数值字段 + dict | 保留代码常量 | 先统一常量定义源 |
| construction_task_detail | `status` | 旧数值字段 | 暂缓收口 | 先决定是否废弃 |
| construction_task_detail | `approval_status` | 通用审批体系 | 接入通用审批定义 | 不单独建 `field_config` |
| material | `material_type` | 本地列表 + 自由字符串 | 迁到 `field_config` | 建议 key`material.material_type` |
| material | `status` | 数值字段 | 暂缓收口 | 先和 `supply_status` 划边界 |
| material | `supply_status` | 代码 enum | 保留代码常量 | 先确认是否为正式推送字段 |
| material | `approval_party` | 本地候选项 | 暂不处理 | 当前无集团侧对应 |
| material_detail | `kit` | 本地配置字典 | 暂缓收口 | 先确认是否进入推送口径 |
| material_detail | `part` | 自由字符串 | 暂不处理 | 当前更像说明字段 |
| material_detail | `status` | sync schema 有,backend 缺正式来源 | 暂缓收口 | 先补字段来源映射 |
| material_detail | `approval_status` | 通用审批体系 | 接入通用审批定义 | 不单独建 `field_config` |
| contract_settlement | `contract_type` | 跟随合同主表 | 暂缓收口 | 先确认是否允许 `project` |
| contract_settlement | `status` | 数值字段 | 保留代码常量 | 需补统一定义源 |
| contract_settlement | `payment_method` | 代码 enum | 保留代码 enum | 不建议迁 `field_config` |
| contract_settlement_detail | `payment_type` | 代码 enum | 保留代码 enum | schema 已在使用 |
| contract_settlement_detail | `advance_type` | 代码 enum | 保留代码 enum | schema 已在使用 |
| contract_settlement_detail | `approval_status` | 通用审批体系 | 接入通用审批定义 | 不单独建 `field_config` |
| personnel | `personnel_type` | 本地代码常量 | 保留代码 enum | 本地真实领域是人员资质 |
| personnel | `task_type` | 本地候选项常量 | 保留代码常量 | 先补 schema 白名单 |
| personnel | `is_duty` | 数值常量 | 保留代码常量 | 与集团侧 `status` 不是同一字段 |
| personnel_detail | 全领域 | 当前无独立模型 | 暂缓收口 | 先确认领域是否存在 |
| preparation | `code` | 初始化字典 + 自由字符串 | 迁到 `field_config` | 建议 key`preparation.code` |
| preparation | `approval_status` | 通用审批体系 | 接入通用审批定义 | 不单独建 `field_config` |
| preparation | `is_exist` | 布尔字段 | 暂不处理 | 不属于候选项字段 |
| production | `code` | 初始化字典 + 自由字符串 | 迁到 `field_config` | 建议 key`production.code` |
| production | `approval_status` | 通用审批体系 | 接入通用审批定义 | 不单独建 `field_config` |
| production | `is_exist` | 布尔字段 | 暂不处理 | 不属于候选项字段 |
| project_detail_data | `key` | 开放字符串集合 | 暂缓收口 | 先统一 backend key 与 sync key 命名 |
## 4. 第一批建议落地项
优先进入 `field_config` 的字段:
- `project.project_subtype`
- `project.syxs`
- `contract.code`
- `construction.section_type_code`
- `material.material_type`
- `preparation.code`
- `production.code`
优先保留并收紧 schema 的代码 enum 字段:
- `project.project_type`
- `project.progress_type`
- `contract.contract_type`
- `contract_settlement.payment_method`
- `contract_settlement_detail.payment_type`
- `contract_settlement_detail.advance_type`
优先先做边界确认、暂不直接配置化的字段:
- `project.status`
- `project.key_constraints`
- `construction.task_type`
- `material.status`
- `contract_settlement.contract_type`
- `project_detail_data.key`
- `personnel_detail` 全领域
## 5. 使用方式
这份表可以直接作为后续代码改造顺序的输入:
1. 先处理“迁到 `field_config`”的一组字段。
2. 再处理“保留代码 enum,但 schema 还没收口”的一组字段。
3. 最后处理“暂缓收口”的结构性问题字段。