142 lines
4.6 KiB
Markdown
142 lines
4.6 KiB
Markdown
# 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
|
||
|
||
### 快速启动
|
||
|
||
1. **数据库配置**:
|
||
- 创建 PostgreSQL 数据库并启用 PostGIS 扩展
|
||
- 执行 SQL 初始化脚本 (位于 `sql/` 目录)
|
||
- 配置 `qaup-admin/src/main/resources/application.yml` 中的数据库连接信息
|
||
|
||
2. **启动依赖服务**:
|
||
```bash
|
||
# 启动 Redis
|
||
redis-server
|
||
|
||
# 启动 PostgreSQL (确保已创建数据库并启用 PostGIS)
|
||
```
|
||
|
||
3. **编译和启动**:
|
||
```bash
|
||
# 清理并编译整个项目
|
||
mvn clean install
|
||
|
||
# 启动应用
|
||
cd qaup-admin
|
||
mvn spring-boot:run
|
||
|
||
# 或者运行打包后的jar
|
||
java -jar target/qaup-admin.jar
|
||
```
|
||
|
||
4. **使用启动脚本**:
|
||
```bash
|
||
# 复制环境配置模板
|
||
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 项目合并到若依框架中,通过以下方式实现:
|
||
|
||
1. **模块化集成**: 创建 `qaup-collision` 模块,保持功能独立性
|
||
2. **数据适配器**: `QuapDataAdapter` 提供统一数据访问,连接若依 Service 层
|
||
3. **配置整合**: 将 PostGIS、JPA、WebSocket 等配置整合到若依配置体系
|
||
4. **版本兼容**: 升级 Spring Boot 版本至 3.5.3,使用 JDK 21
|
||
|
||
### collision 模块开发要点
|
||
|
||
- 新增空间实体时,需继承空间基类并正确配置 PostGIS 映射
|
||
- WebSocket 消息通过 `/topic` 前缀向客户端广播
|
||
- 使用 `QuapDataAdapter` 获取车辆和司机数据,避免直接访问 DAO
|
||
- 所有空间计算应使用 JTS 和 GeoTools 库
|
||
|
||
### 数据采集与处理
|
||
|
||
系统支持从多个数据源采集数据:
|
||
- 机场数据 API
|
||
- ADXP 适配器服务
|
||
- 无人车厂商 API
|
||
|
||
数据采集配置可在 `application.yml` 中调整,包括采集间隔、超时时间等参数。 |