CounterDroneBackend/docs/implementation/tasks/实施计划与任务跟踪.md
tian 56d345189e refactor: 编组概念拆分为批次(WaveId)+火力单元(FireUnit)
Breaking: Group表/枚举/Service/Repository移除; GroupId->WaveId; DroneGroup->DroneWave; DroneGroupId->DroneWaveId; GroupManager删除

Docs: CHANGELOG 0.7.0; 总体架构 V10; DefensePlanner V4; 实施计划 V1.4; 对接文档 V1.2

Tests: 204/204 pass
2026-06-15 15:13:48 +08:00

222 lines
9.0 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.

# 实施计划与任务跟踪
> **项目**:反无人机仿真系统后端
> **文档版本**V1.4
> **更新日期**2026-06-15
---
## 一、阶段总览
```
Phase 1 ✅ 核心基础
Phase 2 ✅ 想定管理
Phase 3 ✅ 算法层
Phase 4 ✅ 仿真引擎
Phase 5 ✅ 报告生成
Phase 6 ✅ Unity 集成(桥接层 + 示例项目)
Phase 7 ✅ 打磨收尾
Phase 8 🔄 待开发(天气/物理模型统一已完成)
────────────────────────
已完成 P1-P7
```
---
## 二、各阶段详情
### Phase 1核心基础 ✅
**目标**:搭建项目骨架,数据层可读写,单元测试全绿。
**测试**27 个
| # | 任务 | 状态 |
|---|------|------|
| 1.1-1.12 | 项目骨架、枚举、数据模型、Repository、ModelService、单元测试 | ✅ |
---
### Phase 2想定管理 ✅
**目标**:仿真任务的完整 CRUD + 5 步配置保存/加载 + 搜索分页。
**测试**20 个
| # | 任务 | 状态 |
|---|------|------|
| 2.1-2.14 | 8 个 Repository、ScenarioService、搜索分页、输入校验、单元测试 | ✅ |
---
### Phase 3算法层 ✅
**目标**:高斯烟团扩散模型、三种毁伤模型、防御推荐算法全部实现。
**测试**26 个
| # | 任务 | 状态 |
|---|------|------|
| 3.1-3.12 | GaussianPuffDispersion、InertGas/ActiveMaterial/ActiveFuel 毁伤模型、DefaultDefenseAdvisor、AlgorithmFactory | ✅ |
**关键设计变更**
- 推荐算法由弹药规格驱动,查库选型
- 计算多轮次云团CloudSalvo确保覆盖率
- 输入校验:无目标/无航路/弹药缺失时返回失败原因
- Kinematics 工具类:抛物线弹道、风矢量、多边形判定
---
### Phase 4仿真引擎 ✅
**目标**:完整仿真引擎 + 集成测试。
**测试**11 个
| # | 任务 | 状态 |
|---|------|------|
| 4.1-4.16 | 6 个实体类、FireSchedule 发射计划、FrameDataStore 分库、Pause/Resume/Stop、集成测试 | ✅ |
**关键设计变更**
- 引擎重构为纯执行器:`SetFireSchedule()` 接收计划,不包含任何决策
- `TimeScale` 属性支持加速仿真(集成测试 4 倍速)
- 弹道飞行时间用 `Kinematics` 真实计算
- 集成测试4 个端到端场景全通过NoDefense/ZoneIntrusion/Piston/Jet
---
### Phase 5报告生成 ✅
**目标**:仿真结束后自动生成 Markdown 报告并导出文件。
**测试**7 个
| # | 任务 | 状态 |
|---|------|------|
| 5.1-5.8 | ReportGenerator、ReportService、ExportToFile、搜索分页、单元测试 | ✅ |
**注**PDF/Word 导出暂以 Markdown 替代,后续可扩展。
---
### Phase 6Unity 集成 ✅
**目标**:将 Core.dll 集成到 Unity实现完整运行链路。
**前置条件**:安装 Unity Hub + Editor 22.3.62
**位置**`src/Unity/`(完整 Unity 项目)
| # | 任务 | 预估 | 状态 | 说明 |
|---|------|------|------|------|
| 6.1 | 创建 Unity 项目,导入 Core.dll | 1h | ✅ | `src/Unity/` 项目16 个 DLL → `Assets/Plugins/` |
| 6.2 | 实现 `UnityPathProvider` | 1h | ✅ | `Application.persistentDataPath` 桥接 |
| 6.3 | 实现 `ModelManager` | 3h | ✅ | 导入/删除/查询,含 Verify |
| 6.4 | 实现 `ScenarioManager`5 步配置) | 4h | ✅ | 完整 CRUD + 搜索分页 + 多批次 Route |
| 6.5 | 实现 `SimulationRunner`Update 驱动) | 3h | ✅ | Tick 驱动 + 事件订阅 + 实体位置同步 + 炮弹轨迹可视化 |
| 6.6 | 实现 `ReplayController`(帧加载) | 3h | ✅ | 从分库加载帧数据TotalFrames/GetFrame |
| 6.7 | 实现 `ReportManager` | 2h | ✅ | 生成 + Markdown 导出 |
| 6.8 | 3D 实体可视化 | 4h | ✅ | Drone/Cube、Cloud/Sphere、Munition/Cylinder逐帧位置同步 |
| 6.9 | 粒子系统参数传递 | 3h | ✅ | 云团半径缩放 + 颜色/透明度动态更新 |
| 6.10 | 端到端联调 + 一键验证 | 6h | ✅ | `ManagerVerification` 7 模块全过,`SimulationBootstrap` 一键 Demo |
**额外交付物**
- `SimulationBootstrap.cs`:一键创建想定 → 推荐方案 → 启动仿真Scene 直接运行)
- `simple_simulation.unity`:预配置场景文件
- `ManagerVerification`Inspector 右键 `Run Full Verification` → Console 7 行 OK
---
### Phase 7打磨收尾 ✅
| # | 任务 | 状态 |
|---|------|------|
| 7.1 | 性能优化 | ⬜(非关键,实体少时自然 < 5ms |
| 7.2 | TTL 清理FrameDataStore.CleanupExpired + 测试 | |
| 7.3 | 边界测试空部署/强风/超长航路/空基弹药 | |
| 7.4 | 错误处理加固 | ⬜(基本校验已有 |
| 7.5 | 测试覆盖率 | 95.4% / 80.5% 分支 |
| 7.6 | README + API XML 文档 | |
| | 死代码清理DetectionEntity, EventQueue | |
| | 代码格式化.editorconfig + dotnet format | |
---
## 三、最终指标
| 指标 | |
|------|------|
| 测试总数 | **191** |
| 行覆盖率 | **95.4%**待重测 |
| 分支覆盖率 | **80.5%**待重测 |
| 执行时间 | ~41 |
| Core 程序集 | `CounterDrone.Core.dll` (.NET Standard 2.1) |
| 共享物理工具类 | `Kinematics` / `RouteGeometry` / `CloudExpansionModel` / `DamageAssessment` |
| 全局配置 | `data/planner_config.json`planner 策略参数代码零默认值 |
| Unity 项目 | `src/Unity/`Unity 2022.3.62 |
| Unity Manager | 8 MonoBehaviour 桥接 + Bootstrap + SqliteConnectionTracker |
| Unity 依赖 | Core 可脱离 Unity 独立运行和测试 |
---
## 四、Phase 8待开发功能后端范围
> UI/视觉/动画属于前端同事范畴,以下仅列后端 Core 需实现的功能。
### 8.0 天气与物理模型统一(✅ 已完成)
| # | 功能 | 说明 |
|---|------|------|
| 8.0.1 | 天气纳入扩散模型 | 修复 `GaussianPuffDispersion` 写死 Sunny bugPhase3 用真实 `env.WeatherType` 推导 Pasquill 稳定度 |
| 8.0.2 | Planner 风偏补偿 | 抛撒点逆风预置`cloudGen = 穿越点 windVec×expansionTime`云团漂移后回到航路 |
| 8.0.3 | 去除无人机风偏叠加 | DroneEntity 不再叠加风位移真实无人机有飞控修正planner 与引擎速度模型一致 |
| 8.0.4 | PathInSphere 云团参考系修正 | 毁伤判定改在云团参考系`drone.Pos cloud.Center`修正移动球导致的每 tick ~2m 系统误差 |
| 8.0.5 | ComputeEffectiveRadius 云龄 bug | `ArrivalTime×2`无人机飞行时间概念错误改为 `expansionTime`云团自身膨胀时长 |
| 8.0.6 | 物理模型统一架构 | 新增 `RouteGeometry` 静态工具类planner 与引擎共用航路几何planner 删除所有本地物理公式 |
| 8.0.7 | 配置外置 | 新增 `PlannerConfig` + `planner_config.json`策略参数重叠系数类型系数弹药匹配概率阈值全部从配置读代码零默认值 |
| 8.0.8 | 云团重叠布局 | 间距 `2R×(1重叠比例)`默认重叠 20%消除相切处密度空洞offset 沿航路切向支持任意方向/折线航路 |
### 8.1 仿真增强
| # | 功能 | 说明 |
|---|------|------|
| 8.1.1 | 探测设备搜索逻辑 | 事前规划已接入探测能力`DetectionCalculator` 算统一信息网络最早探测点planner 基于探测边界非上帝视角起点算到达时间天气Visibility衰减光电探测距离探测精度影响抛撒散布实时探测火控链路留作未来增强 |
| 8.1.2 | 蜂群运动模型 | `FormationMode.Swarm` 枚举已定义需差异化行为随机扰动个体差异 |
| 8.1.3 | 空基平台 + DefensePlanner | 五步规划引擎通道模型物理间隔错发路径积分毁伤判定 | |
| 8.1.4 | 预置典型目标库 | 具体无人机型号 JSON 配置 DJI Mavic 3Shahed-136 导入 `TargetConfig` 默认值 |
| 8.1.5 | 毁伤曲线参数校准 | RequiredExposureSeconds 替代硬编码密度阈值统一在引擎检查 | |
| 8.1.6 | Fallback/default 清理 | 删除所有硬编码默认值和静默 fallback参数缺失即报错 | |
### 8.2 报告与导出
| # | 功能 | 说明 |
|---|------|------|
| 8.2.1 | PDF 导出 | QuestPDF 或其他 .NET Standard 2.1 方案调研`IReportService.ExportReport()` 实现 |
| 8.2.2 | Word 导出 | 调研可行方案 |
### 8.3 第三方对接
| # | 功能 | 说明 |
|---|------|------|
| 8.3.1 | 第三方 DLL 接口规范 | 与供应商对齐 `ICloudDispersionModel` P/Invoke 签名和调用约定 |
| 8.3.2 | 扩散模型替换验证 | 通过 `AlgorithmFactory.Register` 切换到第三方实现后的集成测试 |
---
## 五、里程碑
| 里程碑 | 状态 |
|------|------|
| M1 数据层就绪 | |
| M2 想定可配置 | |
| M3 算法可计算 | |
| M4 仿真可运行 | |
| M5 报告可生成 | |
| M6 Unity 可演示 | |
| M7 交付就绪 | |
---
## 六、状态图例
| 符号 | 含义 |
|------|------|
| | 未开始 |
| 🔄 | 进行中 |
| | 已完成 |
| | 阻塞 |
| | 放弃 |