QDAirPortBackend0122/IFLOW.md
2026-01-22 13:19:47 +08:00

142 lines
4.6 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开发采用 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` 中调整,包括采集间隔、超时时间等参数。