4.6 KiB
4.6 KiB
QAUP-Management 项目概览
项目简介
QAUP-Management 是一个机场无人车冲突管理平台,集成了机场冲突避免系统。该项目基于若依框架(RuoYi)开发,采用 Maven 多模块架构,提供了完整的车辆管理、空间分析、实时监控等功能。
核心模块 qaup-collision 实现了无人车与飞机、其他车辆之间的冲突检测算法,利用 PostGIS 进行空间数据分析,并通过 WebSocket 实现实时数据推送。
技术栈
- 后端框架: Spring Boot 3.5.3, Spring MVC, Spring Data JPA, MyBatis
- 数据库: PostgreSQL 与 PostGIS 扩展(空间数据处理)
- 缓存: Redis
- 实时通信: WebSocket + STOMP
- 空间计算: JTS (Java Topology Suite), GeoTools
- 构建工具: Maven 3.6+
- Java版本: JDK 21
- API文档: SpringDoc OpenAPI (Swagger UI)
- 数据库迁移: Flyway
项目结构
QAUP-Management/
├── qaup-admin/ # Web服务入口,集成所有模块
├── qaup-framework/ # 核心框架,提供通用功能
├── qaup-system/ # 系统管理模块(用户、角色、权限等)
├── qaup-collision/ # 冲突避免系统模块(核心业务逻辑)
├── qaup-common/ # 公共工具类和基础组件
├── qaup-quartz/ # 定时任务调度
├── qaup-generator/ # 代码生成器
├── qaup-ui/ # 前端Vue项目
├── sql/ # 数据库初始化脚本
├── deploy/ # 部署相关脚本和配置
├── tools/ # 开发和测试工具
└── doc/ # 项目文档
核心模块详解
qaup-collision (冲突避免系统)
这是项目的核心模块,负责实现无人车冲突检测与管理功能。
主要特性:
- 基于 PostGIS 的空间数据分析与几何计算
- WebSocket 实时车辆位置监控与数据推送
- 机场区域(跑道、滑行道、停机坪)配置与监控
- 车辆与飞机、车辆与车辆间的实时冲突检测算法
- 统一数据访问适配器
QuapDataAdapter,避免重复 DAO 开发 - Redis 缓存支持高性能数据存取
关键组件:
QuapDataAdapter: 统一数据访问接口,连接若依系统数据WebSocketConfig: WebSocket 配置,支持实时数据推送VehicleLocationService: 车辆位置管理服务- 空间实体类:继承空间基类并配置 PostGIS 映射
构建与运行
环境准备
- JDK 21
- Maven 3.6+
- PostgreSQL (启用 PostGIS 扩展)
- Redis
快速启动
-
数据库配置:
- 创建 PostgreSQL 数据库并启用 PostGIS 扩展
- 执行 SQL 初始化脚本 (位于
sql/目录) - 配置
qaup-admin/src/main/resources/application.yml中的数据库连接信息
-
启动依赖服务:
# 启动 Redis redis-server # 启动 PostgreSQL (确保已创建数据库并启用 PostGIS) -
编译和启动:
# 清理并编译整个项目 mvn clean install # 启动应用 cd qaup-admin mvn spring-boot:run # 或者运行打包后的jar java -jar target/qaup-admin.jar -
使用启动脚本:
# 复制环境配置模板 cp .env.example .env # 修改 .env 中的配置值 # 启动应用 ./qaup.sh start # 停止应用 ./qaup.sh stop # 重启应用 ./qaup.sh restart # 查看状态 ./qaup.sh status
访问系统
- 管理后台:
http://localhost:8080 - WebSocket 端点:
ws://localhost:8080/collision - API 文档:
http://localhost:8080/swagger-ui.html
开发指南
项目合并说明
本项目已将独立的 CollisionAvoidanceSystem 项目合并到若依框架中,通过以下方式实现:
- 模块化集成: 创建
qaup-collision模块,保持功能独立性 - 数据适配器:
QuapDataAdapter提供统一数据访问,连接若依 Service 层 - 配置整合: 将 PostGIS、JPA、WebSocket 等配置整合到若依配置体系
- 版本兼容: 升级 Spring Boot 版本至 3.5.3,使用 JDK 21
collision 模块开发要点
- 新增空间实体时,需继承空间基类并正确配置 PostGIS 映射
- WebSocket 消息通过
/topic前缀向客户端广播 - 使用
QuapDataAdapter获取车辆和司机数据,避免直接访问 DAO - 所有空间计算应使用 JTS 和 GeoTools 库
数据采集与处理
系统支持从多个数据源采集数据:
- 机场数据 API
- ADXP 适配器服务
- 无人车厂商 API
数据采集配置可在 application.yml 中调整,包括采集间隔、超时时间等参数。