CollisionAvoidanceSystem/doc/work/车辆分类重构任务_20250115.md
Tian jianyong 8cb36c6e11 修改 mock_server,增加无人车位置上报和信息接口;
修改无人车的位置数据获取和处理;增加机场车辆权限管理;增加机场车辆子类型;
2025-06-11 16:30:25 +08:00

3.5 KiB
Raw Blame History

车辆分类重构任务总结

任务背景

用户发现系统中存在车辆分类概念混淆的问题,特别是 SPECIAL_VEHICLE 既用于表示机场服务车辆,又用于表示特勤车辆,需要进行精细化分类。

重构内容

1. 枚举类型重构

文件: src/main/java/com/dongni/collisionavoidance/common/model/MovingObjectType.java

  • 变更: 将 SPECIAL_VEHICLE 重命名为 AIRPORT_VEHICLE
  • 原因: 明确区分机场服务车辆和特勤车辆的业务概念

2. 数据分类定义

  • AIRCRAFT: 航空器
    • 数据来源: 第1章航空器位置数据接入
    • 处理策略: 仅实时处理,不持久化
  • AIRPORT_VEHICLE: 机场车辆
    • 数据来源: 第1章车辆位置数据接入
    • 车辆类型: 服务车辆、清洁车、加油车等一般机场车辆
    • 处理策略: 仅实时处理,不持久化
  • UNMANNED_VEHICLE: 无人车
    • 数据来源: 第2章无人车控制接口
    • 处理策略: 持久化存储,用于轨迹回放和审计

3. 控制指令原因保留

文件: src/main/java/com/dongni/collisionavoidance/dataCollector/model/enums/CommandReason.java

  • 保留: SPECIAL_VEHICLE 作为控制指令原因
  • 定义: 特勤车辆(警车、消防车、救护车等特殊车辆)
  • 用途: 当因特勤车辆需要对无人车发出控制指令时使用

4. 测试代码更新

文件:

  • src/test/java/com/dongni/collisionavoidance/common/repository/VehicleLocationRepositoryTest.java
  • src/test/java/com/dongni/collisionavoidance/dataCollector/service/VehicleDataPersistenceServiceIntegrationTest.java

更新内容:

  • 将测试数据中的 SPECIAL_VEHICLE 类型改为 UNMANNED_VEHICLEAIRPORT_VEHICLE
  • 确保测试逻辑与数据持久化策略一致
  • 只有 UNMANNED_VEHICLE 类型的数据才会被持久化到数据库

5. 注释和文档更新

  • 更新所有相关类和方法的注释
  • 明确各种车辆类型的业务定义和处理策略
  • 完善API文档说明

技术影响分析

正面影响

  1. 业务概念清晰: 明确区分了机场车辆和特勤车辆
  2. 数据架构一致: 数据分类与官方API文档完全对应
  3. 代码可维护性提升: 枚举命名更加语义化
  4. 测试逻辑正确: 测试数据与业务逻辑保持一致

兼容性考虑

  1. 枚举重命名: 所有使用 MovingObjectType.SPECIAL_VEHICLE 的地方已更新为 AIRPORT_VEHICLE
  2. 数据库兼容: 由于机场车辆数据不持久化数据库schema无需变更
  3. API兼容: 外部API调用保持不变仅内部数据分类逻辑调整

验证结果

编译验证

  • 所有Java文件编译通过
  • 没有未解决的引用错误
  • 枚举类型使用正确

逻辑验证

  • 数据持久化策略正确:只有 UNMANNED_VEHICLE 数据被存储
  • 控制指令原因保留 SPECIAL_VEHICLE 用于特勤车辆场景
  • 测试用例与业务逻辑一致

文档验证

  • 所有注释已更新
  • 变更日志已记录
  • 版本号已递增0.6.11 → 0.6.12

总结

本次重构成功解决了车辆分类概念混淆的问题,建立了清晰的业务分类体系:

  • 机场车辆 vs 特勤车辆 的概念分离
  • 数据持久化策略控制指令原因 的业务分离
  • 官方API文档系统实现 的完全对应

重构后的系统具有更好的语义清晰性和可维护性,为后续功能扩展奠定了良好的架构基础。