# 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

## 快速启动

### 1. 环境准备
```bash
# Java 8
java -version

# Maven 3.6+
mvn -version

# PostgreSQL + PostGIS
psql --version

# Redis
redis-server --version
```

### 2. 数据库配置
1. 创建PostgreSQL数据库并启用PostGIS扩展
2. 执行SQL初始化脚本：
   - `sql/create_qaup_database.sql` - 创建数据库
   - `sql/create_sys_vehicle_info_table.sql` - 车辆信息表
   - `sql/create_sys_driver_info_table.sql` - 司机信息表

### 3. 启动Redis服务
```bash
redis-server
```

### 4. 配置应用
修改 `qaup-admin/src/main/resources/application.yml`:
```yaml
spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/your_database
    username: your_username
    password: your_password
  redis:
    host: localhost
    port: 6379
```

### 5. 编译和启动
```bash
# 清理并编译整个项目
mvn clean install

# 启动应用
cd qaup-admin
mvn spring-boot:run

# 或者运行打包后的jar
java -jar target/qaup-admin.jar
```

### 6. 访问系统
- 管理后台: http://localhost:8080
- WebSocket端点: ws://localhost:8080/ws
- API文档: http://localhost:8080/swagger-ui/

## 项目合并说明

本项目已将独立的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`