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

4.6 KiB
Raw Blame History

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. 启动依赖服务:

    # 启动 Redis
    redis-server
    
    # 启动 PostgreSQL (确保已创建数据库并启用 PostGIS)
    
  3. 编译和启动:

    # 清理并编译整个项目
    mvn clean install
    
    # 启动应用
    cd qaup-admin
    mvn spring-boot:run
    
    # 或者运行打包后的jar
    java -jar target/qaup-admin.jar
    
  4. 使用启动脚本:

    # 复制环境配置模板
    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 中调整,包括采集间隔、超时时间等参数。