# 战场态势与任务规划系统

## 项目简介

本项目实现战场态势与任务规划系统中**事件处理与任务生成模块（EHTG）** 与**任务方案管理软件（TMS）** 的核心后端服务。

### 核心功能

#### 事件处理与任务生成模块（EHTG）
- 事件接收与解析、数据清洗与标准化
- 高价值目标评估
- 任务模板匹配与任务草案生成
- 任务草案发送与重试机制

#### 任务方案管理软件（TMS）
- 集中式/分布式方案列表展示与排序
- 方案详情查看与多方案对比分析
- 方案重构与差异高亮
- 方案分发与执行状态监控
- 异常告警与人机环通知

## 技术栈

| 技术 | 版本 | 用途 |
|------|------|------|
| Java | 17 | 开发语言 |
| Spring Boot | 3.2.0 | 框架基础 |
| Maven | 3.8+ | 构建工具 |
| Knife4j + OpenAPI 3 | 4.5.0 | 接口文档与调试 |

## 快速启动

### 前置条件
- JDK 17+
- Maven 3.8+

### 编译运行

```bash
# 编译
mvn clean package

# 运行
mvn spring-boot:run

# 或直接运行 jar
java -jar target/battlefield-mission-system-1.0.0.jar
```

### 访问地址

| 服务 | 地址 |
|------|------|
| 应用主页 | http://localhost:8080 |
| Swagger 文档 | http://localhost:8080/swagger-ui/index.html |
| Knife4j 文档 | http://localhost:8080/doc.html |

## 项目结构

```
src/main/java/com/example/demo/
├── DemoApplication.java              # 启动类
├── config/
│   └── OpenApiConfig.java            # OpenAPI/Knife4j 配置
├── controller/
│   ├── HealthController.java         # 健康检查
│   ├── EventController.java          # 事件管理接口（EHTG）
│   ├── TaskController.java           # 任务生成接口（EHTG）
│   └── SchemeController.java         # 任务方案管理接口（TMS）
├── service/
│   ├── EventService.java             # 事件处理服务
│   ├── TaskGenerationService.java    # 任务生成服务
│   └── SchemeService.java            # 任务方案管理服务
├── model/
│   ├── Event.java                    # 事件实体
│   ├── TaskTemplate.java             # 任务模板实体
│   ├── TaskDraft.java                # 任务草案实体
│   ├── TaskScheme.java               # 任务方案实体
│   ├── enums/
│   │   ├── EventStatus.java          # 事件状态枚举
│   │   ├── EventSourceType.java      # 事件来源类型枚举
│   │   ├── ThreatLevel.java          # 威胁等级枚举
│   │   └── SchemeStatus.java         # 方案状态枚举
│   └── dto/
│       ├── EventDTO.java             # 事件数据传输对象
│       ├── EventQueryDTO.java        # 事件查询参数
│       ├── SchemeCompareDTO.java     # 方案对比数据传输对象
│       └── ApiResponse.java          # 统一响应封装
└── repository/
    ├── EventRepository.java          # 事件仓储接口（内存实现）
    ├── TaskTemplateRepository.java   # 任务模板仓储接口（内存实现）
    ├── TaskDraftRepository.java      # 任务草案仓储接口（内存实现）
    └── SchemeRepository.java         # 方案仓储接口（内存实现）

src/test/java/com/example/demo/
├── EventServiceTest.java             # 事件服务测试
├── TaskGenerationServiceTest.java    # 任务生成服务测试
└── SchemeServiceTest.java            # 方案管理服务测试
```

## API 概览

### 事件处理模块（EHTG）
| 方法 | 路径 | 说明 |
|------|------|------|
| POST | /api/v1/events | 接收原始事件 |
| GET  | /api/v1/events | 查询事件列表 |
| GET  | /api/v1/events/{id} | 查询事件详情 |
| PUT  | /api/v1/events/{id}/process | 处理事件 |

### 任务生成模块（EHTG）
| 方法 | 路径 | 说明 |
|------|------|------|
| POST | /api/v1/tasks/generate | 基于事件生成任务草案 |
| GET  | /api/v1/tasks/drafts | 查询任务草案列表 |
| GET  | /api/v1/tasks/drafts/{id} | 查询任务草案详情 |
| POST | /api/v1/tasks/drafts/{id}/retry | 重试发送任务草案 |

### 任务方案管理模块（TMS）
| 方法 | 路径 | 说明 |
|------|------|------|
| GET  | /api/v1/schemes | 查询方案列表（支持排序、分页） |
| GET  | /api/v1/schemes/{id} | 查询方案详情 |
| POST | /api/v1/schemes/compare | 多方案对比分析 |
| POST | /api/v1/schemes/{id}/reconstruct | 方案重构 |
| POST | /api/v1/schemes/{id}/dispatch | 方案分发 |
| GET  | /api/v1/schemes/{id}/execution-status | 查询执行状态 |

## 设计说明

### 当前实现
- **数据层**：采用内存 `ConcurrentHashMap` 存储，所有数据在应用启动时初始化示例数据
- **后续扩展**：预留了 `Repository` 接口层，后续可替换为 MyBatis/JPA 等数据库实现
- **错误处理**：全局统一异常处理，返回标准错误格式

### 对应需求追溯
所有业务方法均通过 Javadoc `@requirement` 标签关联需求，可追溯至软件需求规格说明。
