增加项目侧重构文档
This commit is contained in:
@@ -23,42 +23,31 @@
|
||||
| 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 | `status` | 代码 enum + 服务推导 | 保留代码 enum | 正式集合含 `early`,并清理历史 `NULL` |
|
||||
| project | `progress_type` | 代码 enum + DB enum | 保留代码 enum | 已与 sync schema 对齐 |
|
||||
| project | `key_constraints` | 代码 enum 分叉 + DB enum | 暂缓收口 | 先统一 `OTHER/QT` 差异 |
|
||||
| project | `key_constraints` | 代码 enum 分叉 + DB enum | 保留代码 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. 第一批建议落地项
|
||||
|
||||
@@ -75,21 +64,17 @@
|
||||
优先保留并收紧 schema 的代码 enum 字段:
|
||||
|
||||
- `project.project_type`
|
||||
- `project.status`
|
||||
- `project.progress_type`
|
||||
- `project.key_constraints`
|
||||
- `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. 使用方式
|
||||
|
||||
@@ -98,3 +83,75 @@
|
||||
1. 先处理“迁到 `field_config`”的一组字段。
|
||||
2. 再处理“保留代码 enum,但 schema 还没收口”的一组字段。
|
||||
3. 最后处理“暂缓收口”的结构性问题字段。
|
||||
|
||||
## 6. 按本轮目标拆出的第一批字段
|
||||
|
||||
这次不是单纯做字段分类,而是要直接服务于 3 条链路:
|
||||
|
||||
- 项目初始化
|
||||
- create 业务校验
|
||||
- 前端下拉列表
|
||||
|
||||
因此第一批字段不能只看“适不适合进 `field_config`”,还要看它能不能尽快把这 3 条链路收口到同一真源。
|
||||
|
||||
### 6.1 第一批优先收口字段
|
||||
|
||||
建议第一批优先处理:
|
||||
|
||||
- `contract.code`
|
||||
- `material.material_type`
|
||||
- `construction.section_type_code`
|
||||
- `preparation.code`
|
||||
- `production.code`
|
||||
- `power.code`
|
||||
|
||||
原因:
|
||||
|
||||
- 都属于 code 类字段
|
||||
- 都直接影响初始化、创建或下拉其中至少两条链路
|
||||
- 当前都存在 config / dict / 代码常量混用问题,或者已具备明显收口价值
|
||||
|
||||
### 6.2 每个字段要同时回答的 3 个问题
|
||||
|
||||
对上面每个字段,后续文档和代码改造都应同时回答:
|
||||
|
||||
1. 初始化时从哪里拿候选项。
|
||||
2. create service 开头用哪个 config key 做校验。
|
||||
3. 前端下拉接口用哪个 config key 返回选项。
|
||||
|
||||
如果这 3 个问题的答案不是同一个 key,就说明还没有真正收口。
|
||||
|
||||
### 6.3 本轮不优先收口但要避免误迁的字段
|
||||
|
||||
下面这些字段虽然也和 enum 有关,但本轮不应抢先塞进字段级配置:
|
||||
|
||||
- `project.status`
|
||||
- `project.progress_type`
|
||||
- `project.key_constraints`
|
||||
- `contract.contract_type`
|
||||
- `contract_settlement.payment_method`
|
||||
|
||||
原因是:
|
||||
|
||||
- 这些字段语义更固定
|
||||
- 业务分支已经直接依赖
|
||||
- 本轮重点是先把“按项目类型变化的 code 类字段”收口,而不是把固定状态类枚举全部配置化
|
||||
|
||||
### 6.4 对物资字段的特别说明
|
||||
|
||||
`material.material_type` 虽然在表里只是一行,但它实际上牵扯 4 套来源:
|
||||
|
||||
- 初始化合同候选项:`contract_config`
|
||||
- 物资初始化补充:`material_contract_*`
|
||||
- 前端下拉:`material_types`
|
||||
- create 内部默认展示/单位:`contract_product_type_list`
|
||||
|
||||
所以 `material.material_type` 不是简单迁一个 key,而是本轮最需要先统一真源的一项。
|
||||
|
||||
### 6.5 本轮完成后的字段判定标准
|
||||
|
||||
一个字段只有同时满足下面 3 条,才算本轮真正完成收口:
|
||||
|
||||
- 初始化使用它对应的 field config
|
||||
- create 校验使用它对应的 field config
|
||||
- 下拉列表返回也使用它对应的 field config
|
||||
|
||||
Reference in New Issue
Block a user