QDAirPortBackend0122/doc/design/directory_structure.md
2026-01-22 13:19:47 +08:00

365 lines
15 KiB
Markdown
Raw 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.

# 碰撞避免系统目录结构说明
本文档描述了碰撞避免系统项目的目录结构及各个目录的功能和用途。
## 1. 根目录结构
```
QAUP-Management/
├── doc/ # 文档目录
├── qaup-admin/ # 管理后台模块
├── qaup-collision/ # 碰撞避免系统核心模块
├── qaup-common/ # 公共模块
├── qaup-framework/ # 框架模块
├── qaup-generator/ # 代码生成器
├── qaup-quartz/ # 定时任务模块
├── qaup-system/ # 系统管理模块
├── qaup-ui/ # 前端UI模块
├── deploy/ # 部署脚本
├── scripts/ # 工具脚本
├── sql/ # 数据库脚本
├── .git/ # Git版本控制
├── pom.xml # Maven父项目配置
├── README.md # 项目说明
├── VERSION.md # 版本信息
├── CHANGELOG.md # 变更日志
├── .gitignore # Git忽略配置
└── qaup.sh # 项目启动脚本
```
## 2. 核心模块目录结构 (`qaup-collision`)
```
qaup-collision/
├── src/ # 源代码目录
│ ├── main/ # 主要源代码
│ │ ├── java/ # Java源代码
│ │ │ └── com/
│ │ │ └── qaup/
│ │ │ └── collision/ # 应用程序主包
│ │ └── resources/ # 配置文件和静态资源
│ │ ├── config/ # 特定配置文件 (如 airport_roads.yaml, airport_areas.yaml)
│ │ ├── static/ # 静态Web资源
│ │ └── templates/ # 模板文件
│ └── test/ # 测试源代码
├── libs/ # 本地依赖库
└── pom.xml # Maven模块配置
```
## 3. 应用程序主包结构 (`com.qaup.collision`)
```
com.qaup.collision/
├── adapter/ # 外部系统适配器
├── area/ # 机场区域管理模块
│ ├── model/ # 区域相关数据模型
│ └── service/ # 区域管理服务
├── common/ # 通用组件目录
│ ├── adapter/ # 通用适配器
│ ├── config/ # 通用配置
│ ├── exception/ # 通用异常处理
│ ├── model/ # 核心数据模型
│ ├── repository/ # 仓储模式实现
│ └── service/ # 通用服务
├── config/ # 应用程序配置
│ ├── properties/ # 配置属性映射类 (POJOs)
│ ├── CollisionAvoidanceConfig.java # 碰撞避免系统配置
│ ├── DatabasePerformanceConfig.java # 数据库性能配置
│ ├── GracefulShutdownConfig.java # 优雅关闭配置
│ ├── RoadNetworkConfig.java # 道路网络配置加载类
│ ├── ThreadPoolConfig.java # 线程池配置
│ └── YamlPropertySourceFactory.java # YAML加载工厂类
├── controller/ # 控制器层 (REST API)
│ ├── DataMonitorController.java # 数据监控控制器
│ ├── HealthController.java # 健康检查控制器
│ ├── IntersectionController.java # 交叉路口控制器
│ ├── SpatialRuleController.java # 空间规则控制器
│ ├── TrafficLightController.java # 交通信号灯控制器
│ ├── UniversalVehicleApiController.java # 通用车辆API控制器
│ └── UnmannedVehicleController.java # 无人车控制器
├── datacollector/ # 数据采集模块
│ ├── config/ # 数据采集配置
│ ├── dao/ # 数据访问对象
│ ├── dto/ # 数据传输对象
│ ├── filter/ # 数据过滤器
│ ├── model/ # 数据采集相关模型
│ ├── repository/ # 数据采集仓储
│ ├── sdk/ # SDK集成
│ ├── server/ # 服务器端实现
│ ├── service/ # 数据采集服务
│ ├── util/ # 工具类
│ └── websocket/ # WebSocket数据采集
├── dataprocessing/ # 数据处理模块
│ ├── config/ # 数据处理配置
│ ├── model/ # 数据处理模型
│ ├── parser/ # 数据解析器
│ └── service/ # 数据处理服务
├── event/ # 事件处理模块
│ ├── handler/ # 事件处理器
│ ├── model/ # 事件模型
│ └── service/ # 事件服务
├── geofence/ # 地理围栏模块
│ ├── model/ # 地理围栏模型
│ └── service/ # 地理围栏服务
├── pathconflict/ # 路径冲突模块
│ ├── event/ # 路径冲突事件
│ ├── model/ # 路径冲突模型
│ ├── repository/ # 路径冲突仓储
│ └── service/ # 路径冲突服务
├── road/ # 道路网络模块
│ ├── model/ # 道路网络运行时模型
│ └── service/ # 道路网络服务
├── rule/ # 规则引擎模块
│ ├── event/ # 规则事件
│ ├── model/ # 规则模型
│ ├── repository/ # 规则仓储
│ └── service/ # 规则服务
└── websocket/ # WebSocket通信模块
├── broadcaster/ # 消息广播器
├── cache/ # WebSocket缓存
├── config/ # WebSocket配置
├── controller/ # WebSocket控制器
├── event/ # WebSocket事件
├── handler/ # WebSocket消息处理器
├── listener/ # WebSocket监听器
└── message/ # WebSocket消息格式
```
## 4. 数据模型说明
系统采用模块化的数据模型设计,各模块内部包含自己的数据模型定义。主要数据模型包括:
### 4.1 通用数据模型 (`common/model`)
包含系统核心的、跨模块共享的数据结构,如:
- 地理位置数据模型
- 移动状态数据模型
- 基础常量和枚举
### 4.2 区域数据模型 (`area/model`)
包含机场区域管理模块的数据结构:
- AreaInfo.java: 区域信息实体类 (含JTS几何对象)
- AreaType.java: 区域类型枚举
### 4.3 道路网络数据模型 (`road/model`)
包含道路网络模块内部使用的运行时数据结构:
- RoadInfo.java: 运行时道路信息 (含JTS对象)
### 4.4 数据采集模型 (`datacollector/model`)
包含数据采集模块的专用数据结构,如:
- 车辆位置信息
- 车辆状态信息
- 命令响应
- 各种枚举类型定义
### 4.5 路径冲突数据模型 (`pathconflict/model`)
包含路径冲突检测模块的数据结构:
- 冲突点信息
- 冲突路径信息
- 冲突解决策略
### 4.6 地理围栏数据模型 (`geofence/model`)
包含地理围栏模块的数据结构:
- 围栏信息
- 围栏规则
- 围栏触发事件
### 4.7 规则引擎数据模型 (`rule/model`)
包含规则引擎模块的数据结构:
- 规则定义
- 规则条件
- 规则动作
## 5. 配置属性类目录 (`config/properties`)
包含用于绑定配置文件的POJO类支持
- 机场区域配置绑定
- 道路网络配置绑定
- 几何图形配置绑定
- 系统参数配置
实际配置类根据模块需求动态添加和调整。
## 6. 资源文件目录 (`resources`)
```
resources/
├── application.yml # 主配置文件
├── config/ # 特定配置文件目录
│ ├── airport_areas.yaml # 机场区域配置
│ ├── airport_roads.yaml # 机场道路配置
│ └── airport_zones.yaml # 机场区域配置
├── static/ # 静态Web资源
│ ├── index.html # 主页面
│ ├── geoposition-test.html # 地理位置测试页面
│ ├── websocket-test.html # WebSocket测试页面
│ └── js/ # JavaScript文件
└── templates/ # 模板文件目录
```
## 7. 各模块功能说明
### 7.1 通用组件模块 (common)
提供系统级通用功能和数据结构,包括:
- 通用配置
- 异常处理
- 基础数据模型
- 通用服务
### 7.2 机场区域管理模块 (area)
负责管理机场内各种功能区域的边界、权限和规则:
- 加载`airport_areas.yaml`配置文件
- 构建空间索引以支持高效的几何查询
- 提供区域查询接口(根据位置查找包含区域、获取限速等)
- 支持区域权限验证和时间有效性检查
- 使用JTS库进行复杂的空间几何计算
### 7.3 数据采集模块 (datacollector)
负责从各种数据源获取移动物体的实时位置和状态信息:
- 支持多数据源集成
- 提供数据过滤和预处理功能
- 数据持久化和缓存
- WebSocket实时数据采集
### 7.4 数据处理模块 (dataprocessing)
处理和分析采集到的数据:
- 数据解析和转换
- 轨迹计算和预测
- 碰撞风险评估
- 数据质量检查和过滤
### 7.5 事件处理模块 (event)
负责系统事件的统一管理和分发:
- 事件定义和注册
- 事件监听和处理
- 事件驱动的业务逻辑
### 7.6 地理围栏模块 (geofence)
提供地理围栏功能:
- 围栏定义和管理
- 实时位置围栏检测
- 围栏触发事件处理
### 7.7 路径冲突模块 (pathconflict)
负责检测和解决路径冲突:
- 路径冲突检测算法
- 冲突解决策略
- 冲突事件处理
### 7.8 道路网络模块 (road)
负责管理和查询机场静态道路网络信息:
- 加载`airport_roads.yaml`配置
- 初始化道路数据和空间索引
- 提供道路查询接口(如根据位置查找道路、获取限速等)
### 7.9 规则引擎模块 (rule)
提供灵活的规则配置和执行功能:
- 规则定义和管理
- 实时规则执行
- 规则触发事件处理
### 7.10 WebSocket模块 (websocket)
提供实时通信功能:
- 推送实时位置更新
- 发送碰撞警告
- 支持客户端实时监控
- 多客户端消息广播
### 7.11 配置模块 (config)
包含应用程序的配置类和配置加载机制:
- 配置文件加载和解析
- 配置属性绑定
- 模块化配置管理
- 系统参数配置
### 7.12 控制器层 (controller)
提供RESTful API接口用于
- 数据查询和检索
- 系统配置和管理
- 状态报告和监控
- 车辆控制命令发布
## 8. 文档目录 (doc)
包含系统相关的设计文档和说明文档:
```
doc/
├── design/ # 设计文档目录
│ ├── area_design.md # 区域设计文档
│ ├── data_structure_design.md # 系统数据结构设计文档
│ ├── directory_structure.md # 目录结构说明文档(本文档)
│ ├── airport_area_design.md # 机场区域设计方案
│ ├── road_network_design.md # 道路网络设计方案
│ ├── speed_calculation.md # 速度计算设计
│ └── 机场预警系统架构设计方案.md # 机场预警系统架构设计
├── guide/ # 操作指南
│ ├── cad_to_yaml_guide.md # CAD转YAML操作指南
│ ├── configuration_guide.md # 配置指南
│ └── commands.md # 常用命令
├── requirement/ # 需求文档
│ ├── requirements.md # 系统需求
│ ├── area.md # 区域需求
│ └── route.md # 路径需求
├── deploy/ # 部署文档
│ ├── ADXP_WebSocket.md # ADXP WebSocket部署
│ ├── Ubuntu部署指南.md # Ubuntu部署指南
│ └── deploy-design.md # 部署设计
└── work/ # 工作文档
├── API接口修复完成报告.md # API接口修复报告
├── 架构优化报告.md # 架构优化报告
└── 无人车经纬度参数错误修复.md # 无人车参数修复报告
```
## 9. 主要技术特性
### 9.1 空间计算能力
- 使用JTSJava Topology Suite库进行复杂的空间几何计算
- 支持多边形区域定义和点包含查询
- 构建空间索引STRtree以提高查询性能
### 9.2 配置管理
- 支持YAML格式的配置文件
- 使用Spring Boot配置属性绑定机制
- 模块化配置设计,支持独立的配置文件管理
### 9.3 数据模型设计
- 采用继承和组合的面向对象设计
- 支持DTO模式进行数据传输
- 实现仓储模式进行数据访问抽象
- 模块化数据模型设计
### 9.4 实时通信
- WebSocket支持实时数据推送
- 线程池配置支持并发处理
- 消息广播和路由机制
### 9.5 模块化架构
- 清晰的模块划分和职责定义
- 低耦合的模块间交互
- 可扩展性强的系统架构
### 9.6 事件驱动
- 基于事件的系统架构
- 灵活的事件监听和处理机制
- 松耦合的业务逻辑
### 9.7 规则引擎
- 可配置的规则定义
- 实时规则执行
- 灵活的规则扩展机制
### 9.8 数据处理能力
- 高性能的数据处理和分析
- 实时数据解析和转换
- 数据质量保障机制
### 9.9 地理围栏
- 支持多种围栏类型
- 实时围栏检测
- 灵活的围栏规则配置
### 9.10 路径冲突检测
- 高效的路径冲突检测算法
- 智能的冲突解决策略
- 实时冲突处理