# 代码重构和模块化改造计划

## 问题分析

### 1. 业务领域不匹配问题
从"同地协同伤员搜救系统"转换为"战场探索系统"，需要清理以下内容：

#### 发现的injury相关文件：
**源代码文件**:
- `src/InjuryAnalysisUI.cpp` - 伤员分析界面
- `src/InjuryDatabase.cpp` - 伤员数据库
- `src/injurydisiplayui.cpp` - 伤员显示界面
- `src/moc_InjuryAnalysisUI.cpp` - 自动生成文件
- `src/moc_injurydisiplayui.cpp` - 自动生成文件

**头文件**:
- `include/InjuryAnalysisUI.h`
- `include/InjuryDatabase.h`
- `include/injurydisiplayui.h`

**UI文件**:
- `ui/InjuryAnalysisUI.ui`
- `ui/injurydisiplayui.ui`

### 2. 目录结构混乱问题
- `src/` 目录：14个文件平铺，缺乏模块分类
- `ui/` 目录：4个UI文件平铺，没有按功能分组
- 缺乏清晰的架构层次

## 重构策略

### Phase 1: 目录结构重组 🏗️

#### 新的目录结构设计：
```
src/
├── core/                     # 核心业务逻辑
│   ├── database/            # 数据库相关
│   │   ├── DeviceDatabase.cpp (重命名自UAVDatabase+DogDatabase)
│   │   └── ConnectionManager.cpp (新建)
│   ├── services/            # 业务服务
│   │   ├── DeviceService.cpp (新建)
│   │   └── ExplorationService.cpp (新建)
│   └── models/              # 数据模型
│       ├── Device.cpp (新建)
│       └── ExplorationTask.cpp (新建)
├── ui/                      # 用户界面
│   ├── main/                # 主界面
│   │   └── MainWindow.cpp (重命名自guidingui.cpp)
│   ├── components/          # 可复用组件
│   │   ├── DeviceCard.cpp (新建)
│   │   ├── DeviceListWidget.cpp (新建)
│   │   └── StatusPanel.cpp (新建)
│   ├── dialogs/             # 对话框
│   │   └── DeviceDialog.cpp (重命名自robotlistdialog.cpp)
│   └── exploration/         # 探索相关界面
│       ├── ExplorationDashboard.cpp (替代InjuryAnalysisUI)
│       └── MapExplorer.cpp (替代injurydisiplayui)
├── utils/                   # 工具类
│   ├── Logger.cpp (新建)
│   └── ConfigManager.cpp (新建)
└── main.cpp

forms/                       # UI表单文件
├── main/
│   └── MainWindow.ui (重命名自guidingui.ui)
├── components/
│   ├── DeviceCard.ui (新建)
│   └── StatusPanel.ui (新建)
├── dialogs/
│   └── DeviceDialog.ui (重命名自robotlistdialog.ui)
└── exploration/
    ├── ExplorationDashboard.ui (替代InjuryAnalysisUI.ui)
    └── MapExplorer.ui (替代injurydisiplayui.ui)
```

### Phase 2: 业务重构计划 🎯

#### 文件重命名和功能转换：

| 原文件 | 新文件 | 功能转换 |
|--------|--------|----------|
| `InjuryAnalysisUI.*` | `ExplorationDashboard.*` | 伤员分析 → 探索数据分析面板 |
| `injurydisiplayui.*` | `MapExplorer.*` | 伤员地理显示 → 探索区域地图显示 |
| `InjuryDatabase.*` | `ExplorationDatabase.*` | 伤员数据管理 → 探索任务数据管理 |
| `guidingui.*` | `MainWindow.*` | 引导界面 → 主控制台界面 |
| `robotlistdialog.*` | `DeviceDialog.*` | 机器人列表 → 设备管理对话框 |

#### 类和变量重命名：

**类名转换**:
```cpp
// 原来的类名 → 新的类名
InjuryAnalysisUI → ExplorationDashboard
InjuryDisplayUI → MapExplorer  
InjuryDatabase → ExplorationDatabase
GuidingUI → MainWindow
```

**变量和方法名转换**:
```cpp
// injury相关 → exploration相关
injuryData → explorationData
addInjury() → addExplorationPoint()
getInjuryList() → getExplorationTasks()
injuryCount → explorationPointCount

// 其他改进
robotList → deviceList
UAVList → droneList
```

### Phase 3: 代码内容重构 📝

#### 1. ExplorationDashboard (原InjuryAnalysisUI)
**原功能**: 伤员数据统计和图表分析  
**新功能**: 探索任务统计和数据分析
- 探索区域覆盖率统计
- 设备工作时长统计  
- 探索效率分析图表
- 实时任务进度监控

#### 2. MapExplorer (原injurydisiplayui)
**原功能**: 在地图上显示伤员位置  
**新功能**: 在地图上显示探索信息
- 显示设备当前位置和轨迹
- 标记已探索区域
- 显示兴趣点和目标
- 实时更新探索进度

#### 3. ExplorationDatabase (原InjuryDatabase)
**原功能**: 管理伤员记录  
**新功能**: 管理探索任务和数据
- 探索任务CRUD操作
- 探索点位数据管理
- 探索历史记录
- 统计分析支持

#### 4. MainWindow (原GuidingUI)
**原功能**: 机器人控制和引导  
**新功能**: 战场探索系统主控制台
- 统一设备管理界面
- 探索任务调度
- 实时状态监控
- 系统配置管理

## 实施步骤

### Step 1: 备份和准备 🛡️
```bash
# 1. 创建备份
cp -r src src_backup
cp -r ui ui_backup
cp -r include include_backup

# 2. 创建新的目录结构
mkdir -p src/{core/{database,services,models},ui/{main,components,dialogs,exploration},utils}
mkdir -p forms/{main,components,dialogs,exploration}
```

### Step 2: 文件移动和重命名 📁
```bash
# 移动核心文件
mv src/UAVDatabase.cpp src/core/database/
mv src/DogDatabase.cpp src/core/database/
mv src/guidingui.cpp src/ui/main/MainWindow.cpp
mv src/robotlistdialog.cpp src/ui/dialogs/DeviceDialog.cpp

# 移动UI文件
mv ui/guidingui.ui forms/main/MainWindow.ui
mv ui/robotlistdialog.ui forms/dialogs/DeviceDialog.ui

# 删除injury相关文件
rm src/Injury*.cpp src/injury*.cpp src/moc_Injury*.cpp src/moc_injury*.cpp
rm ui/Injury*.ui ui/injury*.ui
rm include/Injury*.h include/injury*.h
```

### Step 3: 创建新组件 🔧
```bash
# 创建新的核心组件
touch src/core/database/{DeviceDatabase,ConnectionManager}.cpp
touch src/core/services/{DeviceService,ExplorationService}.cpp
touch src/core/models/{Device,ExplorationTask}.cpp
touch src/ui/components/{DeviceCard,DeviceListWidget,StatusPanel}.cpp
touch src/ui/exploration/{ExplorationDashboard,MapExplorer}.cpp
touch src/utils/{Logger,ConfigManager}.cpp
```

### Step 4: 更新构建配置 ⚙️
更新 `CasualtySightPlus.pro`:
```pro
# 新的源文件组织
SOURCES += \
    src/main.cpp \
    src/core/database/DeviceDatabase.cpp \
    src/core/database/ConnectionManager.cpp \
    src/core/services/DeviceService.cpp \
    src/core/services/ExplorationService.cpp \
    src/core/models/Device.cpp \
    src/core/models/ExplorationTask.cpp \
    src/ui/main/MainWindow.cpp \
    src/ui/components/DeviceCard.cpp \
    src/ui/components/DeviceListWidget.cpp \
    src/ui/components/StatusPanel.cpp \
    src/ui/dialogs/DeviceDialog.cpp \
    src/ui/exploration/ExplorationDashboard.cpp \
    src/ui/exploration/MapExplorer.cpp \
    src/utils/Logger.cpp \
    src/utils/ConfigManager.cpp

HEADERS += \
    include/core/database/DeviceDatabase.h \
    include/core/database/ConnectionManager.h \
    # ... 其他头文件

FORMS += \
    forms/main/MainWindow.ui \
    forms/components/DeviceCard.ui \
    forms/components/StatusPanel.ui \
    forms/dialogs/DeviceDialog.ui \
    forms/exploration/ExplorationDashboard.ui \
    forms/exploration/MapExplorer.ui
```

### Step 5: 代码内容重构 💻
1. **更新头文件包含路径**
2. **重命名所有类和方法**
3. **替换injury相关的业务逻辑**
4. **实现新的探索功能**

## 风险控制

### 1. 分阶段实施
- 每个步骤完成后进行编译测试
- 确保每个阶段都有可工作的版本
- 问题出现时可以快速回退

### 2. 保持向后兼容
- 暂时保留原有的数据库视图
- 重要配置保持兼容性
- 用户数据不受影响

### 3. 充分测试
- 每个重构步骤后进行功能测试
- 重点测试设备管理功能
- 验证地图显示正常

## 预期收益

### 1. 业务对齐
- ✅ 完全符合"战场探索系统"定位
- ✅ 功能和命名语义化清晰
- ✅ 用户理解成本降低

### 2. 代码质量
- ✅ 模块化架构，职责清晰
- ✅ 便于维护和扩展
- ✅ 新功能开发效率提升

### 3. 项目价值
- ✅ 体现系统重构能力
- ✅ 展示架构设计思维
- ✅ 增强学术项目完整性

这个重构计划将彻底解决业务不匹配问题，同时建立清晰的模块化架构，为后续开发奠定良好基础。