修改doc/design/directory_structure.md

This commit is contained in:
Tian jianyong 2025-11-19 10:21:25 +08:00
parent 2cedd90ae7
commit a69a7cc110
2 changed files with 263 additions and 195 deletions

View File

@ -5,155 +5,180 @@
## 1. 根目录结构
```
CollisionAvoidanceSystem/
QAUP-Management/
├── doc/ # 文档目录
├── src/ # 源代码目录
├── target/ # 编译输出目录
├── .idea/ # IDE配置
├── .mvn/ # Maven包装器配置
├── 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项目配置
├── mvnw / mvnw.cmd # Maven包装器脚本
├── pom.xml # Maven父项目配置
├── README.md # 项目说明
├── VERSION.txt # 版本信息
├── change_log.md # 变更日志
├── development_log.md # 开发日志
├── VERSION.md # 版本信息
├── CHANGELOG.md # 变更日志
├── .gitignore # Git忽略配置
└── .gitattributes # Git属性配置
└── qaup.sh # 项目启动脚本
```
## 2. 源代码目录结构 (`src`)
## 2. 核心模块目录结构 (`qaup-collision`)
```
src/
├── main/ # 主要源代码
│ ├── java/ # Java源代码
│ │ └── com/
│ │ └── dongni/
│ │ └── collisionavoidance/ # 应用程序主包
│ └── resources/ # 配置文件和静态资源
│ ├── config/ # 特定配置文件 (如 airport_roads.yaml, airport_areas.yaml)
│ ├── data/ # 数据文件
│ ├── scripts/ # 脚本文件
│ └── static/ # 静态Web资源
└── test/ # 测试源代码
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.dongni.collisionavoidance`)
## 3. 应用程序主包结构 (`com.qaup.collision`)
```
com.dongni.collisionavoidance/
├── CollisionAvoidanceApplication.java # 应用程序入口类
├── common/ # 通用组件目录
│ ├── model/ # 核心移动对象等数据模型
│ │ ├── base/ # 基础类和常量
│ │ ├── dto/ # 数据传输对象
│ │ └── repository/ # 仓储模式实现
│ └── config/ # 通用配置 (较少使用,优先模块内配置)
├── config/ # 应用程序配置
│ ├── properties/ # 配置属性映射类 (POJOs)
│ ├── RoadNetworkConfig.java # 道路网络配置加载类
│ ├── AirportAreaConfig.java # 机场区域配置加载类
│ ├── YamlPropertySourceFactory.java # YAML加载工厂类
│ ├── RedisConfig.java # Redis配置
│ └── ThreadPoolConfig.java # 线程池配置
├── controller/ # 控制器层 (REST API)
├── dataCollector/ # 数据采集模块
│ ├── model/ # 数据采集相关模型
│ │ └── enums/ # 枚举类型定义
│ ├── service/ # 数据采集服务
│ ├── dao/ # 数据访问对象
│ └── config/ # 数据采集配置
├── dataProcessing/ # 数据处理模块
│ ├── service/ # 数据处理服务
│ └── config/ # 数据处理配置
├── areas/ # 新增:机场区域管理模块
com.qaup.collision/
├── adapter/ # 外部系统适配器
├── area/ # 机场区域管理模块
│ ├── model/ # 区域相关数据模型
│ └── service/ # 区域管理服务
├── roads/ # 道路网络模块
├── 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/ # 道路网络服务
└── webSocket/ # WebSocket通信模块
├── rule/ # 规则引擎模块
│ ├── event/ # 规则事件
│ ├── model/ # 规则模型
│ ├── repository/ # 规则仓储
│ └── service/ # 规则服务
└── websocket/ # WebSocket通信模块
├── broadcaster/ # 消息广播器
├── cache/ # WebSocket缓存
├── config/ # WebSocket配置
├── controller/ # WebSocket控制器
└── config/ # WebSocket配置
├── event/ # WebSocket事件
├── handler/ # WebSocket消息处理器
├── listener/ # WebSocket监听器
└── message/ # WebSocket消息格式
```
## 4. 数据模型目录
## 4. 数据模型说明
系统采用模块化的数据模型设计,各模块内部包含自己的数据模型定义。主要数据模型包括:
### 4.1 通用数据模型 (`common/model`)
包含系统核心的、跨模块共享的数据结构,如:
- 地理位置数据模型
- 移动状态数据模型
- 基础常量和枚举
包含系统核心的、跨模块共享的数据结构:
```
common/model/
├── Aircraft.java # 航空器实体类
├── GeoPosition.java # 地理位置数据结构
├── MovementState.java # 移动状态封装
├── MovingObject.java # 移动物体抽象基类
├── MovingObjectType.java # 移动物体类型枚举
├── PositionRecord.java # 位置记录
├── SpecialVehicle.java # 特勤车辆实体类
├── UnmannedVehicle.java # 无人车实体类
├── Velocity.java # 速度和局部坐标系信息
├── base/ # 基础类和常量
│ ├── Constant.java # 系统常量定义
│ └── Response.java # 统一响应格式
├── dto/ # 数据传输对象
│ ├── AircraftDTO.java # 航空器数据传输对象
│ └── SpecialVehicleDTO.java # 特勤车辆数据传输对象
└── repository/ # 仓储模式实现
└── MovingObjectRepository.java # 移动物体仓储接口
```
### 4.2 机场区域数据模型 (`areas/model`)
### 4.2 区域数据模型 (`area/model`)
包含机场区域管理模块的数据结构:
- AreaInfo.java: 区域信息实体类 (含JTS几何对象)
- AreaType.java: 区域类型枚举
```
areas/model/
├── AreaInfo.java # 区域信息实体类 (含JTS几何对象)
└── AreaType.java # 区域类型枚举
```
### 4.3 道路网络数据模型 (`roads/model`)
### 4.3 道路网络数据模型 (`road/model`)
包含道路网络模块内部使用的运行时数据结构:
- RoadInfo.java: 运行时道路信息 (含JTS对象)
```
roads/model/
├── RoadInfo.java # 运行时道路信息 (含JTS对象)
└── RoadDirectionality.java # 道路方向枚举
```
### 4.4 数据采集模型 (`datacollector/model`)
包含数据采集模块的专用数据结构,如:
- 车辆位置信息
- 车辆状态信息
- 命令响应
- 各种枚举类型定义
### 4.4 数据采集模型 (`dataCollector/model`)
### 4.5 路径冲突数据模型 (`pathconflict/model`)
包含路径冲突检测模块的数据结构:
- 冲突点信息
- 冲突路径信息
- 冲突解决策略
包含数据采集模块的专用数据结构:
### 4.6 地理围栏数据模型 (`geofence/model`)
包含地理围栏模块的数据结构:
- 围栏信息
- 围栏规则
- 围栏触发事件
### 4.7 规则引擎数据模型 (`rule/model`)
包含规则引擎模块的数据结构:
- 规则定义
- 规则条件
- 规则动作
```
dataCollector/model/
├── CommandResponse.java # 命令响应
├── VehicleCommand.java # 车辆命令
├── VehicleLocationInfo.java # 车辆位置信息
├── VehicleStateInfo.java # 车辆状态信息
└── enums/ # 枚举类型定义
├── CommandReason.java # 命令原因枚举
├── CommandType.java # 命令类型枚举
└── SignalState.java # 信号状态枚举
```
## 5. 配置属性类目录 (`config/properties`)
包含用于绑定配置文件的POJO类
包含用于绑定配置文件的POJO类支持
- 机场区域配置绑定
- 道路网络配置绑定
- 几何图形配置绑定
- 系统参数配置
```
config/properties/
├── AirportAreasProperties.java # 机场区域配置属性
├── AirportRoadsProperties.java # 机场道路配置属性
├── AreaProperties.java # 单个区域配置属性
├── DimensionValue.java # 尺寸值配置
├── GeometryProperties.java # 几何图形配置属性
└── RoadProperties.java # 单个道路配置属性
```
实际配置类根据模块需求动态添加和调整。
## 6. 资源文件目录 (`resources`)
@ -164,103 +189,95 @@ resources/
│ ├── airport_areas.yaml # 机场区域配置
│ ├── airport_roads.yaml # 机场道路配置
│ └── airport_zones.yaml # 机场区域配置
├── data/ # 数据文件目录
├── scripts/ # 脚本文件目录
└── static/ # 静态Web资源
├── index.html # 主页面
├── geoposition-test.html # 地理位置测试页面
└── js/ # JavaScript文件
├── static/ # 静态Web资源
│ ├── index.html # 主页面
│ ├── geoposition-test.html # 地理位置测试页面
│ ├── websocket-test.html # WebSocket测试页面
│ └── js/ # JavaScript文件
└── templates/ # 模板文件目录
```
## 7. 各模块功能说明
### 7.1 通用数据模型 (common/model)
### 7.1 通用组件模块 (common)
提供系统级通用功能和数据结构,包括:
- 通用配置
- 异常处理
- 基础数据模型
- 通用服务
数据模型模块定义了系统中使用的所有数据结构:
- **MovingObject**: 所有移动物体的抽象基类,定义共有属性和行为
- **Aircraft**: 代表航空器的具体实现类
- **SpecialVehicle**: 代表特勤车辆的具体实现类
- **UnmannedVehicle**: 代表无人车的具体实现类
- **GeoPosition**: 表示地理位置的数据结构
- **Velocity**: 表示速度和局部坐标系位置信息的数据结构
- **MovementState**: 封装移动物体在特定时刻的完整状态
- **MovingObjectType**: 定义了系统支持的移动物体类型的枚举
- **base/**: 包含系统基础类和常量定义
- **dto/**: 包含数据传输对象用于API交互
- **repository/**: 包含仓储模式实现,提供数据访问抽象
### 7.2 机场区域管理模块 (areas)
**新增模块**,负责管理机场内各种功能区域的边界、权限和规则:
- **areas/model**: 定义区域信息数据结构包含JTS几何对象用于空间计算
- **areas/service**: 提供`AirportAreaService`,负责:
- 加载`airport_areas.yaml`配置文件
- 构建空间索引以支持高效的几何查询
- 提供区域查询接口(根据位置查找包含区域、获取限速等)
- 支持区域权限验证和时间有效性检查
- 使用JTS库进行复杂的空间几何计算
### 7.3 数据采集模块 (dataCollector)
### 7.2 机场区域管理模块 (area)
负责管理机场内各种功能区域的边界、权限和规则:
- 加载`airport_areas.yaml`配置文件
- 构建空间索引以支持高效的几何查询
- 提供区域查询接口(根据位置查找包含区域、获取限速等)
- 支持区域权限验证和时间有效性检查
- 使用JTS库进行复杂的空间几何计算
### 7.3 数据采集模块 (datacollector)
负责从各种数据源获取移动物体的实时位置和状态信息:
- 支持多数据源集成
- 提供数据过滤和预处理功能
- 数据持久化和缓存
- WebSocket实时数据采集
- **model/**: 包含数据采集专用的数据结构
- 车辆位置信息、状态信息、命令响应等
- 枚举类型定义(命令类型、信号状态等)
- **service/**: 数据采集服务实现
- **dao/**: 数据访问对象,处理外部数据源交互
- **config/**: 数据采集相关配置
支持的数据源:
- 航空器数据采集ADS-B、雷达等
- 特勤车辆数据采集GPS、地面雷达等
- 无人车数据采集(车载传感器等)
### 7.4 数据处理模块 (dataProcessing)
### 7.4 数据处理模块 (dataprocessing)
处理和分析采集到的数据:
- 数据解析和转换
- 轨迹计算和预测
- 碰撞风险评估
- 数据质量检查和过滤
- 历史数据管理和分析
### 7.5 控制器层 (controller)
### 7.5 事件处理模块 (event)
负责系统事件的统一管理和分发:
- 事件定义和注册
- 事件监听和处理
- 事件驱动的业务逻辑
提供RESTful API接口用于
### 7.6 地理围栏模块 (geofence)
提供地理围栏功能:
- 围栏定义和管理
- 实时位置围栏检测
- 围栏触发事件处理
- 数据查询和检索
- 系统配置和管理
- 状态报告和监控
### 7.7 路径冲突模块 (pathconflict)
负责检测和解决路径冲突:
- 路径冲突检测算法
- 冲突解决策略
- 冲突事件处理
### 7.6 WebSocket模块 (webSocket)
### 7.8 道路网络模块 (road)
负责管理和查询机场静态道路网络信息:
- 加载`airport_roads.yaml`配置
- 初始化道路数据和空间索引
- 提供道路查询接口(如根据位置查找道路、获取限速等)
### 7.9 规则引擎模块 (rule)
提供灵活的规则配置和执行功能:
- 规则定义和管理
- 实时规则执行
- 规则触发事件处理
### 7.10 WebSocket模块 (websocket)
提供实时通信功能:
- 推送实时位置更新
- 发送碰撞警告
- 支持客户端实时监控
- 多客户端消息广播
### 7.7 配置模块 (config)
### 7.11 配置模块 (config)
包含应用程序的配置类和配置加载机制:
- 配置文件加载和解析
- 配置属性绑定
- 模块化配置管理
- 系统参数配置
- **config/properties**: 存放用于绑定配置文件的POJO类支持
- 机场区域配置绑定(`AirportAreasProperties`、`AreaProperties`
- 道路网络配置绑定(`AirportRoadsProperties`、`RoadProperties`
- 几何图形配置绑定(`GeometryProperties`、`DimensionValue`
- 系统参数配置、Bean配置如`RedisConfig`、`ThreadPoolConfig`
- 特定配置加载器(如`RoadNetworkConfig`、`AirportAreaConfig`、`YamlPropertySourceFactory`
- 服务注册、安全、数据库连接等配置
### 7.8 道路网络模块 (roads)
负责管理和查询机场静态道路网络信息:
- **roads/model**: 定义运行时的道路数据结构(`RoadInfo`包含JTS几何对象和处理过的属性
- **roads/service**: 提供`RoadNetworkService`,负责加载`airport_roads.yaml`配置,初始化道路数据和空间索引,并提供查询接口(如根据位置查找道路、获取限速等)
### 7.12 控制器层 (controller)
提供RESTful API接口用于
- 数据查询和检索
- 系统配置和管理
- 状态报告和监控
- 车辆控制命令发布
## 8. 文档目录 (doc)
@ -268,10 +285,30 @@ resources/
```
doc/
├── design_document.md # 系统数据结构设计文档
├── directory_structure.md # 目录结构说明文档(本文档)
├── cad_to_yaml_guide.md # CAD转YAML操作指南
└── road_network_design.md # 道路网络配置集成设计方案
├── 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. 主要技术特性
@ -290,8 +327,39 @@ doc/
- 采用继承和组合的面向对象设计
- 支持DTO模式进行数据传输
- 实现仓储模式进行数据访问抽象
- 模块化数据模型设计
### 9.4 实时通信
- WebSocket支持实时数据推送
- Redis缓存支持高性能数据访问
- 线程池配置支持并发处理
- 消息广播和路由机制
### 9.5 模块化架构
- 清晰的模块划分和职责定义
- 低耦合的模块间交互
- 可扩展性强的系统架构
### 9.6 事件驱动
- 基于事件的系统架构
- 灵活的事件监听和处理机制
- 松耦合的业务逻辑
### 9.7 规则引擎
- 可配置的规则定义
- 实时规则执行
- 灵活的规则扩展机制
### 9.8 数据处理能力
- 高性能的数据处理和分析
- 实时数据解析和转换
- 数据质量保障机制
### 9.9 地理围栏
- 支持多种围栏类型
- 实时围栏检测
- 灵活的围栏规则配置
### 9.10 路径冲突检测
- 高效的路径冲突检测算法
- 智能的冲突解决策略
- 实时冲突处理