QDAirPortBackend0122/doc/work/项目代码合并方案_20250115.md
2026-01-22 13:19:47 +08:00

8.9 KiB
Raw Blame History

项目代码合并方案

文件名项目代码合并方案_20250115.md 创建于2025-01-15 创建者AI

任务描述

将CollisionAvoidanceSystem项目的代码合并到QAUP-Management项目中采用独立模块集成方案通过适配器模式共享数据访问层避免重复开发DAO组件。

项目概述

  • QAUP-Management基于若依框架的车辆管理系统Spring Boot 2.5.15 + Java 8 + MyBatis
  • CollisionAvoidanceSystem机场碰撞避免系统Spring Boot 3.4.3 + Java 17 + JPA
  • 目标将两个项目合并为统一的Maven多模块项目保持业务逻辑独立性

以下部分由 AI 在协议执行过程中维护

分析 (由 RESEARCH 模式填充)

技术架构分析

QAUP-Management技术栈

  • Spring Boot 2.5.15 + Java 8
  • MyBatis + PostgreSQL
  • 用户权限、菜单管理等)
  • Maven多模块结构qaup-admin、qaup-system、qaup-framework等

CollisionAvoidanceSystem技术栈

  • Spring Boot 3.4.3 + Java 17
  • JPA + PostgreSQL + PostGIS
  • Redis + Kafka + WebSocket
  • 空间计算JTS、GeoTools

兼容性挑战

  1. Spring Boot版本差异3.4.3 vs 2.5.15
  2. Java版本差异17 vs 8
  3. 数据访问方式JPA vs MyBatis
  4. 依赖版本冲突:多个依赖存在版本不兼容

数据共享需求

  • sys_vehicle_info车辆基础信息
  • vehicle_locations实时位置数据
  • sys_driver_info驾驶员信息
  • 其他业务表的交叉查询需求

提议的解决方案 (由 INNOVATE 模式填充)

方案选择:独立模块集成 + 适配器模式

核心策略:

  1. 技术栈降级将CollisionAvoidanceSystem降级到与QAUP-Management兼容的版本
  2. 模块化集成作为qaup-collision模块加入Maven项目结构
  3. 数据访问适配通过适配器模式复用QAUP-Management的Service层
  4. 配置统一:共享数据库配置,保持独立的业务配置

技术优势:

  • 避免重复编写DAO组件
  • 保持业务逻辑完整性
  • 技术风险可控
  • 开发工作量最小化

实施策略:

  • CollisionAvoidanceSystem → qaup-collision模块
  • 创建QuapDataAdapter适配器类
  • 统一Maven依赖管理
  • 保持前端界面独立,后期可集成

当前执行步骤 (由 EXECUTE 模式在开始执行某步骤时更新)

正在执行: "6. 迁移CollisionAvoidanceSystem的核心业务代码到qaup-collision模块"

任务进度 (由 EXECUTE 模式在每步完成后追加)

  • [2025-01-15 15:14:27]
    • 步骤:[检查清单项目1] 备份CollisionAvoidanceSystem项目到安全位置
    • 修改成功创建项目备份CollisionAvoidanceSystem_backup_20250707_151427
    • 更改摘要:确保后续操作安全性
    • 原因:执行计划步骤 [1]
    • 阻碍:无
    • 用户确认状态:成功
  • [2025-01-15 15:28:42]
    • 步骤:[检查清单项目2] 在QAUP-Management根目录创建qaup-collision模块目录结构
    • 修改创建完整的Maven标准目录结构包含adapter、service、controller等包
    • 更改摘要:建立项目基础架构
    • 原因:执行计划步骤 [2]
    • 阻碍:无
    • 用户确认状态:成功
  • [2025-01-15 15:35:15]
    • 步骤:[检查清单项目3] 修改QAUP-Management根pom.xml添加qaup-collision模块声明
    • 修改在modules和dependencyManagement部分添加qaup-collision配置
    • 更改摘要配置Maven多模块项目结构
    • 原因:执行计划步骤 [3]
    • 阻碍:无
    • 用户确认状态:成功
  • [2025-01-15 15:42:08]
    • 步骤:[检查清单项目4] 创建qaup-collision模块的pom.xml降级Spring Boot到2.5.15
    • 修改配置Java 8兼容的空间计算库版本GeoTools 28.5、JTS 1.19.0等)
    • 更改摘要建立Spring Boot 2.5.15兼容的依赖管理
    • 原因:执行计划步骤 [4]
    • 阻碍:无
    • 用户确认状态:成功
  • [2025-01-15 15:48:33]
    • 步骤:[检查清单项目5] 解决JTS、GeoTools等空间计算库的版本兼容性问题
    • 修改在根pom.xml中统一管理空间计算库版本移除子模块重复声明
    • 更改摘要确保Maven依赖管理最佳实践无版本冲突
    • 原因:执行计划步骤 [5]
    • 阻碍:无
    • 用户确认状态:成功
  • [2025-01-15 15:56:42]
    • 步骤:[检查清单项目6] 迁移CollisionAvoidanceSystem的核心业务代码到qaup-collision模块
    • 修改批量拷贝134个Java文件修改包名为com.qaup.collision
    • 更改摘要:完成代码迁移和包名统一
    • 原因:执行计划步骤 [6]
    • 阻碍:无
    • 用户确认状态:成功
  • [2025-01-15 16:05:18]
    • 步骤:[检查清单项目7] 将包名从com.dongni.collisionavoidance改为com.qaup.collision
    • 修改已在步骤6中完成包名批量修改
    • 更改摘要:包名修改验证完成,无残留旧包名
    • 原因:执行计划步骤 [7]与步骤6合并执行
    • 阻碍:无
    • 用户确认状态:成功
  • [2025-01-15 16:12:45]
    • 步骤:[检查清单项目8] 修改Java 17语法为Java 8兼容语法
    • 修改修复javax/jakarta命名空间、GenerationType、@JdbcTypeCode注解、var关键字等兼容性问题
    • 更改摘要完成Java 8兼容性修复核心编译错误解决
    • 原因:执行计划步骤 [8]
    • 阻碍:无
    • 用户确认状态:成功
  • [2025-01-15 16:18:30]
    • 步骤:[检查清单项目9] 创建QuapDataAdapter适配器类连接若依Service层
    • 修改创建QuapDataAdapter.java提供车辆信息查询、数据类型转换等功能
    • 更改摘要建立CollisionAvoidanceSystem与若依系统的数据访问桥梁
    • 原因:执行计划步骤 [9]
    • 阻碍:无
    • 用户确认状态:待确认

实施计划 (由 PLAN 模式生成)

详细技术规范

1. 模块结构设计

QAUP-Management/
├── qaup-admin/              # 管理后台入口
├── qaup-framework/          # 框架核心
├── qaup-system/             # 系统模块
├── qaup-common/             # 通用工具
├── qaup-collision/          # 新增:碰撞避免模块
│   ├── src/main/java/com/qaup/collision/
│   │   ├── adapter/          # 数据适配器
│   │   ├── service/          # 业务服务原CollisionAvoidanceSystem
│   │   ├── controller/       # REST控制器
│   │   ├── config/           # 配置类
│   │   └── model/            # 数据模型
│   └── pom.xml
├── qaup-quartz/             # 定时任务
├── qaup-generator/          # 代码生成
└── pom.xml                   # 根配置

2. 依赖版本规范

  • Spring Boot: 2.5.15
  • Java: 8
  • PostgreSQL Driver: 42.7.1
  • PostGIS: 支持空间数据的版本
  • JTS: 1.19.0(空间计算库)
  • GeoTools: 28.x兼容Java 8的版本

3. 数据适配器设计

@Component
public class QuapDataAdapter {
    @Autowired private ISysVehicleInfoService vehicleService;
    @Autowired private ISysDriverInfoService driverService;
    
    // 车辆数据适配方法
    public List<SpecialVehicle> getActiveVehiclesForCollision();
    public MovingObject getVehicleById(String vehicleId);
    public void updateVehicleLocation(String vehicleId, GeoPosition position);
}

4. 配置整合策略

  • 数据库配置使用QAUP-Management的配置
  • Redis配置保持CollisionAvoidanceSystem的配置
  • 新增collision专用配置项
  • WebSocket配置独立管理

实施检查清单

阶段1环境准备和依赖调整

  1. 备份CollisionAvoidanceSystem项目
  2. 创建qaup-collision模块目录结构
  3. 调整pom.xml配置降级Spring Boot版本到2.5.15
  4. 调整Java版本到8修改相关语法兼容性
  5. 解决依赖版本冲突,统一版本管理

阶段2代码迁移和适配

  1. 迁移CollisionAvoidanceSystem核心代码到qaup-collision模块
  2. 创建QuapDataAdapter适配器类
  3. 修改CollisionAvoidanceSystem的数据访问代码使用适配器
  4. 调整包名从com.dongni.collisionavoidance到com.qaup.collision
  5. 更新Spring Boot配置文件移除冲突配置

阶段3配置整合和测试

  1. 整合application.yml配置文件
  2. 配置qaup-admin模块依赖qaup-collision
  3. 创建CollisionAvoidanceSystem的管理界面入口可选
  4. 编写集成测试,验证数据访问适配器功能
  5. 测试WebSocket、Redis等独立功能

阶段4文档和部署

  1. 更新项目README和文档
  2. 创建合并后的启动指南
  3. 更新VERSION.md和change_log.md
  4. 验证完整的项目构建和启动流程
  5. 清理临时文件和备份

风险控制措施

  • 每个阶段完成后进行功能验证
  • 保留原项目备份直到合并完全稳定
  • 优先处理核心功能,次要功能可后续迭代
  • 建立回滚计划,确保可以快速恢复原状态