4.9 KiB
4.9 KiB
QAUP-Management - 机场无人车冲突管理平台
项目概述
QAUP-Management 是一个机场无人车冲突管理平台,集成了机场冲突避免系统,提供完整的车辆管理、空间分析、实时监控等功能。该项目基于 RuoYi 框架构建,采用 Spring Boot 3.x 技术栈,使用 PostgreSQL + PostGIS 进行空间数据处理,并通过 WebSocket 实现实时通信。
核心功能特性
- 空间数据分析:基于 PostGIS 的空间计算和几何分析
- 实时车辆监控:WebSocket 实时位置数据推送和展示
- 机场区域管理:跑道、滑行道、停机坪等区域配置和监控
- 冲突检测算法:实时检测车辆与飞机、车辆间的潜在冲突
- 数据适配器:QuapDataAdapter 统一数据访问,避免重复 DAO 开发
- Redis 缓存:高性能数据缓存和会话管理
项目架构
这是一个采用 Maven 多模块架构的大型系统:
- qaup-admin: Web 服务入口,集成所有模块
- qaup-framework: 核心框架,提供通用功能
- qaup-system: 系统管理模块,用户、角色、权限等
- qaup-collision: 冲突避免系统模块,提供空间分析、车辆监控、WebSocket 实时通信等功能
- qaup-common: 公共工具类和基础组件
- qaup-quartz: 定时任务调度
- qaup-generator: 代码生成器
技术栈
- 后端: Spring Boot 3.5.3 + Java 21 + MyBatis + JPA (Hibernate)
- 数据库: PostgreSQL + PostGIS (空间数据扩展)
- 缓存: Redis
- 实时通信: WebSocket + STOMP
- 空间计算: JTS + GeoTools + Hibernate Spatial
- 构建工具: Maven 3.6+
- 前端: Vue 2.6.12 + Element UI
构建和运行
开发环境准备
- 安装 Java 21
- 安装 Maven 3.6+
- 安装 PostgreSQL 并启用 PostGIS 扩展
- 安装 Redis
数据库配置
- 创建 PostgreSQL 数据库并启用 PostGIS 扩展
- 执行 SQL 初始化脚本:
sql/create_qaup_database.sql- 创建数据库sql/create_sys_vehicle_info_table.sql- 车辆信息表sql/create_sys_driver_info_table.sql- 司机信息表
环境变量配置
创建 .env 文件或设置环境变量:
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_DB=qaup
POSTGRES_USER=your_username
POSTGRES_PASSWORD=your_password
REDIS_HOST=localhost
REDIS_PORT=6379
编译和启动
# 清理并编译整个项目
mvn clean install
# 启动应用
cd qaup-admin
mvn spring-boot:run
# 或者运行打包后的 jar
java -jar target/qaup-admin.jar
访问系统
- 管理后台: http://localhost:8080
- WebSocket 端点: ws://localhost:8080/collision
- API 文档: http://localhost:8080/swagger-ui/index.html
开发指南
核心组件说明
- QuapDataAdapter: 数据访问适配器,连接若依系统数据
- WebSocketConfig: WebSocket 配置,支持实时数据推送
- VehicleLocationService: 车辆位置管理服务
- GeopositionController: WebSocket 消息控制器
- DataCollectorService: 数据收集服务(采集频率 250ms)
- DataProcessingService: 数据处理服务(处理频率 1000ms)
服务间协作模式
QAUP-Management 采用服务完全分离的架构:
- DataCollectorService (250ms): 只负责从外部 API 获取数据并缓存,不进行任何计算
- DataProcessingService (1000ms): 专门负责数据处理、计算速度和方向、发送 WebSocket 消息、违规检测等
两个服务通过 activeMovingObjectsCache 共享数据,实现了采集与处理的频率分离。
空间数据处理
系统集成了完整的 PostGIS 支持:
- 使用 JTS (Java Topology Suite) 进行空间几何操作
- 使用 GeoTools 进行坐标转换和空间分析
- 机场区域管理支持复杂的空间查询和冲突检测
- 电子围栏功能支持区域准入控制和超速检测
WebSocket 消息系统
- 位置更新消息:每秒推送车辆位置更新
- 冲突检测消息:实时推送车辆间潜在冲突
- 违规事件消息:推送违规行为通知
- 消息格式统一采用
UniversalMessage结构
版本管理
- 当前版本: 1.0.1 (pom.xml)
- 版本文件: VERSION.md (0.8.0)
- 详细变更记录: CHANGELOG.md
测试和验证
- 运行单元测试:
mvn test - 运行集成测试:
mvn verify - 通过 Swagger UI 验证 API 功能
- 通过 WebSocket 客户端验证实时通信
部署配置
项目支持 Docker 部署,相关配置在 deploy/ 目录下,包含 Docker Compose 配置文件和部署脚本,支持生产环境的完全离线部署。
业务价值
- 实时监控:提供机场车辆和航空器的实时位置监控
- 冲突预防:通过智能算法提前检测和预警潜在冲突
- 安全管理:电子围栏和违规检测保障机场运行安全
- 数据驱动:提供丰富的数据支持运营决策
- 系统集成:与机场现有系统无缝集成