Files
ecm_sync_system/docs/enum_refactor/project_detail_data.md
T
2026-03-12 14:23:15 +08:00

2.0 KiB
Raw Blame History

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_capacity
    • investment_decision_capacity
    • plan_construction_capacity
    • actual_construction_capacity
    • key_constraints
    • constructing_capacity
    • production_capacity
    • ensure_production_capacity
    • climb_production_capacity
    • challenge_production_capacity
    • dynamic_total_investment_price
    • complete_investment_price
    • complete_investment_rate
    • qualified_production_score

集团侧差异:

  • 同步 schema project_extensions/project_detail.py 已定义了 ProjectDetailKey enum
  • 同步 schema 当前只有 7 个 key
    • plan_construction
    • actual_construction
    • production
    • ensure_production
    • climb_production
    • challenge_production
    • complete_investment
  • 项目侧和同步侧当前不仅数量不一致,命名也不一致

结论:

  • 这是当前差异最大的领域之一
  • 不能直接把 backend key 当成已经对齐的枚举字段

3. 重点结论

  • backend project_detail_data.key 当前是开放字符串集合。
  • 同步侧已经有一套更收敛的 ProjectDetailKey enum。
  • 两边差异不只是“少几个值”,而是命名体系都还没统一。

4. 待修改项清单

  1. project_detail_data.key 建立正式定义表,不再继续开放字符串。
  2. 明确 backend key 与同步 ProjectDetailKey 的映射关系。
  3. 区分哪些 key 应继续保留在 project_detail_data,哪些应回归 Project 主表或扩展表。
  4. 先统一命名,再决定是否直接迁成代码 enum 或 field_config