QAUP_Management/QWEN.md

147 lines
4.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 配置文件和部署脚本,支持生产环境的完全离线部署。
## 业务价值
- **实时监控**:提供机场车辆和航空器的实时位置监控
- **冲突预防**:通过智能算法提前检测和预警潜在冲突
- **安全管理**:电子围栏和违规检测保障机场运行安全
- **数据驱动**:提供丰富的数据支持运营决策
- **系统集成**:与机场现有系统无缝集成