- 禁用TCP红绿灯服务器,改用MQTT订阅获取信号状态 - 新增MqttConfig配置类和TrafficLightMqttSubscriber订阅器 - 重构VehicleCommandInfoWebSocketHandler,根据红绿灯信号实时发送车辆控制指令 - 添加Eclipse Paho MQTT客户端依赖 - 新增接口文档和MQTT核心代码总结文档 - 添加WebSocket测试页面 |
||
|---|---|---|
| adxp-adapter | ||
| deploy | ||
| doc | ||
| qaup-admin | ||
| qaup-collision | ||
| qaup-common | ||
| qaup-framework | ||
| qaup-generator | ||
| qaup-quartz | ||
| qaup-system | ||
| qaup-ui | ||
| scripts | ||
| sql | ||
| tools | ||
| .env.example | ||
| .gitignore | ||
| changelog.md | ||
| CLAUDE.md | ||
| IFLOW.md | ||
| mock.sh | ||
| mqtt项目核心代码总结.md | ||
| pom.xml | ||
| qaup.sh | ||
| QWEN.md | ||
| README.md | ||
| test_websocket.html | ||
| VehicleCommandInfo接口文档.md | ||
| VERSION.md | ||
| 前端开发_无人车VehicleManager接口.md | ||
| 实施方案_通用无人车状态API替换.md | ||
| 接口文档1.md | ||
| 接口文档2.md | ||
| 接口文档3.md | ||
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缓存: 高性能数据缓存和会话管理
🛠️ 系统管理功能
- 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
- 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
- 岗位管理:配置系统用户所属担任职务。
- 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
- 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
- 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
- 参数管理:对系统动态配置常用参数。
- 通知公告:系统通知公告信息发布维护。
- 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
- 登录日志:系统登录日志记录查询包含登录异常。
- 在线用户:当前系统中活跃用户状态监控。
- 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
- 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。
- 系统接口:根据业务代码自动生成相关的api接口文档。
- 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。
- 缓存监控:对系统的缓存信息查询,命令统计等。
- 在线构建器:拖动表单元素生成相应的HTML代码。
- 连接池监视:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。
技术栈
- 后端: Spring Boot 2.5.15 + MyBatis + JPA (Hibernate)
- 数据库: PostgreSQL + PostGIS (空间数据扩展)
- 缓存: Redis
- 实时通信: WebSocket + STOMP
- 空间计算: JTS + GeoTools
- 构建工具: Maven 3.6+
- Java版本: JDK 8
部署指南
方式一:自动部署(推荐)
使用提供的自动化部署脚本:
# 1. 进入部署目录
cd deploy/
# 2. 赋予执行权限
chmod +x deploy-all.sh
# 3. 执行自动部署
./deploy-all.sh
自动化部署脚本将自动完成:
- ✅ 环境检查和依赖验证
- ✅ Docker及Docker Compose安装检查
- ✅ 磁盘空间检查(至少3GB)
- ✅ 端口占用检测
- ✅ Docker镜像处理(本地载入或在线拉取)
- ✅ 冲突容器清理
- ✅ 数据目录创建和权限设置
- ✅ 配置文件验证
- ✅ 基础设施服务启动(PostgreSQL + PostGIS、Redis)
- ✅ 应用服务启动和数据库迁移
- ✅ 健康状态检查和验证
方式二:手动部署
1. 环境准备
必需组件:
# Java 8+
java -version
# Maven 3.6+
mvn -version
# Docker & Docker Compose
docker --version
docker-compose --version
可选组件(用于本地开发):
# PostgreSQL + PostGIS(用于本地开发)
psql --version
# Redis(用于本地开发)
redis-server --version
2. 数据库配置
Docker启动数据库:
# 启动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
本地数据库初始化:
-
执行SQL初始化脚本:
# 创建数据库和基础表 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:
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. 编译和启动
# 1. 清理并编译整个项目
mvn clean install
# 2. 进入管理模块
cd qaup-admin
# 3. 启动应用(开发模式)
mvn spring-boot:run
# 或打包启动(生产模式)
mvn clean package -DskipTests
java -jar target/qaup-admin.jar
5. 验证部署
服务状态检查:
# 检查应用健康状态
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. 管理命令
# 查看服务状态
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项目合并到若依框架中,通过以下方式实现:
- 模块化集成: 创建
qaup-collision模块,保持功能独立性 - 数据适配器:
QuapDataAdapter提供统一数据访问,连接若依Service层 - 配置整合: 将PostGIS、JPA、WebSocket等配置整合到若依配置体系
- 版本兼容: 降级Spring Boot版本,确保Java 8兼容性
开发指南
collision模块核心组件
QuapDataAdapter: 数据访问适配器,连接若依系统数据WebSocketConfig: WebSocket配置,支持实时数据推送VehicleLocationService: 车辆位置管理服务GeopositionController: WebSocket消息控制器
扩展开发
- 新增spatial实体时,继承spatial基类并配置PostGIS映射
- WebSocket消息通过
/topic前缀向客户端广播 - 使用
QuapDataAdapter获取车辆和司机数据,避免直接访问DAO
版本信息
- 当前版本: 1.0.1
- 更新日志: 详见
change_log.md