2.9 KiB
2.9 KiB
Construction Task 领域重构指南
1. 范围
本文档对应 backend 的 construction 主表,也就是施工任务本体。
当前优先关注:
construction.section_type_codeconstruction.task_typeconstruction.status
2. 字段盘点
2.1 section_type_code
当前实现:
- 本地有硬编码
section_type_id_dict - 也有
construction_section_config作为配置来源 - 模型里是
String - 创建 schema 里是
str - 同步 schema 对应字段名是
construction_section,类型是str
当前使用:
- 是施工初始化和施工任务分区的关键字段
- construction 服务和 config helper 都直接依赖它
项目侧取值范围:
- 本地明确值:
GF、SY、SC、SCDW
集团侧差异:
- 当前没看到集团侧
enum_config有独立的 Construction 顶层段 - 同步 schema 里有对应字段,但仍是普通字符串
结论:
- 应迁到
field_config - 继续沿用
construction.section_type_code
2.2 task_type
当前实现:
- 模型里是
String - 创建 schema 里是
str - 本地只有一个层级 enum
ConstructionCategory,值是01、02、0201、03、0301、04、05
当前使用:
- 施工树和类型树逻辑会使用它
- 但业务任务实际取值往往来自施工树节点,而不只是
ConstructionCategory
项目侧取值范围:
- 如果按层级 category 看,明确值是:
01、02、0201、03、0301、04、05 - 如果按真实任务类型看,当前无法从单一代码 enum 列出完整集合,因为还受施工树/
construction_node_config影响
集团侧差异:
- 同步 schema 里
task_type仍是str - 当前没有看到集团侧
enum_config对这个字段给出统一候选项表
结论:
- 不能简单做成单一代码 enum
- 更适合拆成“层级 category”与“真实任务类型”两层定义
2.3 status
当前实现:
- 模型里是
SmallInteger - 同步 schema 里是
Optional[int] - 本地有
progress_status_dict
项目侧取值范围:
-101
集团侧差异:
- 当前没看到集团侧
enum_config独立列出 Construction.status - 同步 schema 仍是
int
结论:
- 保留数值状态字段
- 需要统一是走代码常量、dict 映射还是后续字段配置
3. 重点结论
section_type_code是典型的字段级配置候选。task_type当前最复杂,不能直接当成一个静态 enum 处理。status目前是简单数值状态,但也需要统一正式定义源。
4. 待修改项清单
- 将
section_type_code正式迁到field_config。 - 清理
section_type_code的硬编码 dict 与 config helper 双来源。 - 拆分
task_type的“层级 category”与“真实任务类型”语义。 - 明确哪些
task_type值来自施工树,哪些来自配置表。 - 为
status建立统一常量定义,避免散落数值字面量。