# QAUP-Management - 机场无人车冲突管理平台 ## 项目概述 QAUP-Management 是一个机场无人车冲突管理平台,集成了机场冲突避免系统,提供完整的车辆管理、空间分析、实时监控等功能。该项目基于 RuoYi 框架构建,采用 Spring Boot 3.x 技术栈,使用 PostgreSQL + PostGIS 进行空间数据处理,并通过 WebSocket 实现实时通信。 ### 核心功能特性 1. **空间数据分析**:基于 PostGIS 的空间计算和几何分析 2. **实时车辆监控**:WebSocket 实时位置数据推送和展示 3. **机场区域管理**:跑道、滑行道、停机坪等区域配置和监控 4. **冲突检测算法**:实时检测车辆与飞机、车辆间的潜在冲突 5. **数据适配器**:QuapDataAdapter 统一数据访问,避免重复 DAO 开发 6. **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 ## 构建和运行 ### 开发环境准备 1. 安装 Java 21 2. 安装 Maven 3.6+ 3. 安装 PostgreSQL 并启用 PostGIS 扩展 4. 安装 Redis ### 数据库配置 1. 创建 PostgreSQL 数据库并启用 PostGIS 扩展 2. 执行 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 ``` ### 编译和启动 ```bash # 清理并编译整个项目 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 配置文件和部署脚本,支持生产环境的完全离线部署。 ## 业务价值 - **实时监控**:提供机场车辆和航空器的实时位置监控 - **冲突预防**:通过智能算法提前检测和预警潜在冲突 - **安全管理**:电子围栏和违规检测保障机场运行安全 - **数据驱动**:提供丰富的数据支持运营决策 - **系统集成**:与机场现有系统无缝集成