2.0 KiB
2.0 KiB
Project Detail Data 领域重构指南
1. 范围
本文档对应 backend 的 project_detail_data 聚合明细表。
当前优先关注:
project_detail_data.key
2. 字段盘点
2.1 key
当前实现:
- backend 模型里是
String - backend schema 里也是
str - 没有本地正式 enum
- 实际取值由
ProjectDetailDataService和业务逻辑共同决定
项目侧取值范围:
- 当前代码里明确出现的 key 至少包括:
authorized_capacityinvestment_decision_capacityplan_construction_capacityactual_construction_capacitykey_constraintsconstructing_capacityproduction_capacityensure_production_capacityclimb_production_capacitychallenge_production_capacitydynamic_total_investment_pricecomplete_investment_pricecomplete_investment_ratequalified_production_score
集团侧差异:
- 同步 schema
project_extensions/project_detail.py已定义了ProjectDetailKeyenum - 同步 schema 当前只有 7 个 key:
plan_constructionactual_constructionproductionensure_productionclimb_productionchallenge_productioncomplete_investment
- 项目侧和同步侧当前不仅数量不一致,命名也不一致
结论:
- 这是当前差异最大的领域之一
- 不能直接把 backend
key当成已经对齐的枚举字段
3. 重点结论
- backend
project_detail_data.key当前是开放字符串集合。 - 同步侧已经有一套更收敛的
ProjectDetailKeyenum。 - 两边差异不只是“少几个值”,而是命名体系都还没统一。
4. 待修改项清单
- 为
project_detail_data.key建立正式定义表,不再继续开放字符串。 - 明确 backend key 与同步
ProjectDetailKey的映射关系。 - 区分哪些 key 应继续保留在
project_detail_data,哪些应回归 Project 主表或扩展表。 - 先统一命名,再决定是否直接迁成代码 enum 或
field_config。