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

276 lines
7.7 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 平台管理系统
机场无人车冲突管理平台,集成了机场冲突避免系统,提供完整的车辆管理、空间分析、实时监控等功能。
## 项目架构
本项目采用Maven多模块架构
- **qaup-admin**: Web服务入口集成所有模块
- **qaup-framework**: 核心框架,提供通用功能
- **qaup-system**: 系统管理模块,用户、角色、权限等
- **qaup-collision**: **冲突避免系统模块**提供空间分析、车辆监控、WebSocket实时通信等功能
- **qaup-common**: 公共工具类和基础组件
- **qaup-quartz**: 定时任务调度
- **qaup-generator**: 代码生成器
## 核心特性
### 🚗 冲突避免系统 (collision模块)
- **空间数据分析**: 基于PostGIS的空间计算和几何分析
- **实时车辆监控**: WebSocket实时位置数据推送和展示
- **机场区域管理**: 跑道、滑行道、停机坪等区域配置和监控
- **冲突检测算法**: 实时检测车辆与飞机、车辆间的潜在冲突
- **数据适配器**: QuapDataAdapter统一数据访问避免重复DAO开发
- **Redis缓存**: 高性能数据缓存和会话管理
### 🛠️ 系统管理功能
1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
3. 岗位管理:配置系统用户所属担任职务。
4. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
5. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
7. 参数管理:对系统动态配置常用参数。
8. 通知公告:系统通知公告信息发布维护。
9. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
10. 登录日志:系统登录日志记录查询包含登录异常。
11. 在线用户:当前系统中活跃用户状态监控。
12. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
13. 代码生成前后端代码的生成java、html、xml、sql支持CRUD下载 。
14. 系统接口根据业务代码自动生成相关的api接口文档。
15. 服务监控监视当前系统CPU、内存、磁盘、堆栈等相关信息。
16. 缓存监控:对系统的缓存信息查询,命令统计等。
17. 在线构建器拖动表单元素生成相应的HTML代码。
18. 连接池监视监视当前系统数据库连接池状态可进行分析SQL找出系统性能瓶颈。
## 技术栈
- **后端**: Spring Boot 2.5.15 + MyBatis + JPA (Hibernate)
- **数据库**: PostgreSQL + PostGIS (空间数据扩展)
- **缓存**: Redis
- **实时通信**: WebSocket + STOMP
- **空间计算**: JTS + GeoTools
- **构建工具**: Maven 3.6+
- **Java版本**: JDK 8
## 部署指南
### 方式一:自动部署(推荐)
使用提供的自动化部署脚本:
```bash
# 1. 进入部署目录
cd deploy/
# 2. 赋予执行权限
chmod +x deploy-all.sh
# 3. 执行自动部署
./deploy-all.sh
```
自动化部署脚本将自动完成:
- ✅ 环境检查和依赖验证
- ✅ Docker及Docker Compose安装检查
- ✅ 磁盘空间检查至少3GB
- ✅ 端口占用检测
- ✅ Docker镜像处理本地载入或在线拉取
- ✅ 冲突容器清理
- ✅ 数据目录创建和权限设置
- ✅ 配置文件验证
- ✅ 基础设施服务启动PostgreSQL + PostGIS、Redis
- ✅ 应用服务启动和数据库迁移
- ✅ 健康状态检查和验证
### 方式二:手动部署
#### 1. 环境准备
**必需组件:**
```bash
# Java 8+
java -version
# Maven 3.6+
mvn -version
# Docker & Docker Compose
docker --version
docker-compose --version
```
**可选组件(用于本地开发):**
```bash
# PostgreSQL + PostGIS用于本地开发
psql --version
# Redis用于本地开发
redis-server --version
```
#### 2. 数据库配置
**Docker启动数据库**
```bash
# 启动PostgreSQL + PostGIS
docker run -d \
--name qaup-postgres \
-e POSTGRES_DB=qaup \
-e POSTGRES_USER=qaup \
-e POSTGRES_PASSWORD=qaup123 \
-e POSTGRES_INITDB_ARGS="--encoding=UTF-8 --lc-collate=C --lc-ctype=C" \
-p 5432:5432 \
m.daocloud.io/docker.io/postgis/postgis:17-3.5-alpine
# 启动Redis
docker run -d \
--name qaup-redis \
-e REDIS_PASSWORD=qaup123 \
-p 6379:6379 \
m.daocloud.io/docker.io/library/redis:8.0-alpine redis-server --requirepass qaup123
```
**本地数据库初始化:**
1. 执行SQL初始化脚本
```bash
# 创建数据库和基础表
psql -U qaup -d qaup -f sql/create_qaup_database.sql
psql -U qaup -d qaup -f sql/create_sys_vehicle_info_table.sql
psql -U qaup -d qaup -f sql/create_sys_driver_info_table.sql
```
#### 3. 环境配置
**更新应用配置:**
修改 `qaup-admin/src/main/resources/application.yml`:
```yaml
spring:
datasource:
url: jdbc:postgresql://localhost:5432/qaup
username: qaup
password: qaup123
driver-class-name: org.postgresql.Driver
redis:
host: localhost
port: 6379
password: qaup123
database: 0
```
**环境变量配置:**
确保各模块 `.env` 文件配置正确:
- `adxp-adapter/.env.example` - ADXP数据中台适配器配置
- `qaup-admin/.env.example` - 主应用配置
#### 4. 编译和启动
```bash
# 1. 清理并编译整个项目
mvn clean install
# 2. 进入管理模块
cd qaup-admin
# 3. 启动应用(开发模式)
mvn spring-boot:run
# 或打包启动(生产模式)
mvn clean package -DskipTests
java -jar target/qaup-admin.jar
```
#### 5. 验证部署
**服务状态检查:**
```bash
# 检查应用健康状态
curl http://localhost:8080/actuator/health
# 检查数据库连接
docker exec qaup-postgres pg_isready -U qaup
# 检查Redis连接
docker exec qaup-redis redis-cli -a qaup123 ping
```
### 6. 系统访问
- **管理后台**: <http://localhost:8080>
- **初始登录**:
- 用户名: `admin`
- 密码: `admin123`
- **WebSocket端点**: ws://localhost:8080/ws
- **API文档**: <http://localhost:8080/swagger-ui/>
- **健康检查**: <http://localhost:8080/actuator/health>
### 7. 管理命令
```bash
# 查看服务状态
docker compose ps
# 查看应用日志
docker compose logs -f qaup-app
# 查看数据库日志
docker compose logs -f qaup-postgres
# 查看Redis日志
docker compose logs -f qaup-redis
# 重启应用
docker compose restart qaup-app
# 停止所有服务
docker compose down
# 查看数据库迁移状态
docker exec qaup-postgres psql -U qaup -d qaup -c \
"SELECT version,description FROM flyway_schema_history ORDER BY installed_rank DESC LIMIT 5;"
# 清理Docker资源
docker system prune -a
```
## 项目合并说明
本项目已将独立的CollisionAvoidanceSystem项目合并到若依框架中通过以下方式实现
1. **模块化集成**: 创建`qaup-collision`模块,保持功能独立性
2. **数据适配器**: `QuapDataAdapter`提供统一数据访问连接若依Service层
3. **配置整合**: 将PostGIS、JPA、WebSocket等配置整合到若依配置体系
4. **版本兼容**: 降级Spring Boot版本确保Java 8兼容性
## 开发指南
### collision模块核心组件
- `QuapDataAdapter`: 数据访问适配器,连接若依系统数据
- `WebSocketConfig`: WebSocket配置支持实时数据推送
- `VehicleLocationService`: 车辆位置管理服务
- `GeopositionController`: WebSocket消息控制器
### 扩展开发
1. 新增spatial实体时继承spatial基类并配置PostGIS映射
2. WebSocket消息通过`/topic`前缀向客户端广播
3. 使用`QuapDataAdapter`获取车辆和司机数据避免直接访问DAO
## 版本信息
- 当前版本: 1.0.1
- 更新日志: 详见 `change_log.md`