# 实施计划与任务跟踪 > **项目**:反无人机仿真系统后端 > **文档版本**:V1.0 > **创建日期**:2026-06-11 --- ## 一、阶段总览 ``` Phase 1 ■■■■■ 核心基础(6天) Phase 2 ■■■■■ 想定管理(5天) Phase 3 ■■■■■ 算法层(7天) Phase 4 ■■■■■ 仿真引擎(7天) Phase 5 ■■■ 报告生成(3天) Phase 6 ■■■■ Unity 集成(5天) Phase 7 ■■ 打磨收尾(3天) ──────────────────────────── 合计 约 36 天(7~8 周) ``` > 依赖关系:Phase 1 → Phase 2 → Phase 3+4(可并行) → Phase 5 → Phase 6 → Phase 7 --- ## 二、各阶段详情 ### Phase 1:核心基础 **目标**:搭建项目骨架,数据层可读写,单元测试全绿。 **时间**:6 天 **验证**:`dotnet test` 全绿,所有 Repository 和基础 Service 可独立运行。 | # | 任务 | 预估 | 状态 | |---|------|------|------| | 1.1 | 创建 `CounterDrone.Core` 类库项目(.NET Standard 2.1) | 2h | ⬜ | | 1.2 | 创建 `CounterDrone.Core.Tests` xUnit 测试项目 | 1h | ⬜ | | 1.3 | 定义所有枚举(17 个)和数据模型(11 张表 POCO) | 4h | ⬜ | | 1.4 | 集成 sqlite-net,编写 `DatabaseManager`(建表 / 迁移) | 3h | ⬜ | | 1.5 | 实现 `IPathProvider` 接口 + 测试用实现 | 1h | ⬜ | | 1.6 | 实现 `ModelRepository`(CRUD + 文件存储路径管理) | 3h | ⬜ | | 1.7 | 实现 `AmmunitionSpecRepository`(加载第三方 JSON 配置) | 2h | ⬜ | | 1.8 | 实现 `GroupRepository` | 2h | ⬜ | | 1.9 | 实现 `IModelService` + `ModelService` | 3h | ⬜ | | 1.10 | 实现 `IGroupService` + `GroupService` | 2h | ⬜ | | 1.11 | 编写 ModelService / GroupService 单元测试 | 4h | ⬜ | | 1.12 | 编写 Repository 单元测试(SQLite 文件模式) | 4h | ⬜ | **Phase 1 验收标准**: - [ ] 11 张表可在 SQLite 中自动建表 - [ ] ModelInfo、AmmunitionSpec、Group 的完整 CRUD 通过测试 - [ ] 第三方 AmmunitionSpec JSON 可成功导入数据库 - [ ] dotnet test 全部通过 --- ### Phase 2:想定管理 **目标**:仿真任务的完整 CRUD + 5 步配置保存/加载 + 搜索分页。 **时间**:5 天 **验证**:可创建想定、逐步骤配置保存、草稿恢复、搜索分页。 | # | 任务 | 预估 | 状态 | |---|------|------|------| | 2.1 | 实现 `SimTaskRepository` + `SimTask` 增删改查 | 2h | ⬜ | | 2.2 | 实现 `CombatSceneRepository` | 1h | ⬜ | | 2.3 | 实现 `ControlZoneRepository` | 1h | ⬜ | | 2.4 | 实现 `TargetConfigRepository` | 1h | ⬜ | | 2.5 | 实现 `EquipmentDeploymentRepository` | 1h | ⬜ | | 2.6 | 实现 `CloudDispersalRepository` | 1h | ⬜ | | 2.7 | 实现 `RoutePlanRepository` + `WaypointRepository` | 2h | ⬜ | | 2.8 | 实现 `IScenarioService` — CreateTask / DeleteTask | 2h | ⬜ | | 2.9 | 实现步骤保存方法(SaveScene / SaveTarget / ... / SaveRoute) | 3h | ⬜ | | 2.10 | 实现 `GetTaskDetail`(聚合 5 步配置) | 2h | ⬜ | | 2.11 | 实现 `SearchTasks`(关键词 + 时间范围 + 分页) | 3h | ⬜ | | 2.12 | 实现 UpdateStep(步骤状态管理) | 1h | ⬜ | | 2.13 | 实现输入校验(必填校验、数值范围校验) | 2h | ⬜ | | 2.14 | 编写 ScenarioService 单元测试 | 6h | ⬜ | **Phase 2 验收标准**: - [ ] 创建任务 → 5 步逐步骤保存 → 草稿恢复 → 搜索分页 全链路可走通 - [ ] 按任务名称搜索、按日期筛选、分页浏览通过测试 - [ ] 必填校验:任务名称为空时拒绝创建 - [ ] `GetTaskDetail` 返回完整的 5 步配置聚合对象 --- ### Phase 3:算法层 **目标**:高斯烟团扩散模型、三种毁伤模型、防御推荐算法全部实现并通过确定性测试。 **时间**:7 天 **验证**:固定输入 → 固定输出,可精确断言计算结果。 | # | 任务 | 预估 | 状态 | |---|------|------|------| | 3.1 | 实现 `GaussianPuffDispersion`(简化球体膨胀 + 风速漂移 + 密度衰减) | 8h | ⬜ | | 3.2 | 编写扩散模型单元测试(无风/有风/消散/密度衰减 4 场景) | 4h | ⬜ | | 3.3 | 实现 `InertGasDamageModel`(阈值型吸入式灭火) | 3h | ⬜ | | 3.4 | 实现 `ActiveMaterialDamageModel`(触发型爆燃式) | 3h | ⬜ | | 3.5 | 实现 `ActiveFuelDamageModel`(指数累积型吸入式爆炸) | 3h | ⬜ | | 3.6 | 实现 `DamageModelRouter`(根据 AerosolType 路由到对应模型) | 1h | ⬜ | | 3.7 | 编写毁伤模型单元测试(每种机制 3 个场景) | 4h | ⬜ | | 3.8 | 实现 `DefaultDefenseAdvisor` — Step A 气溶胶选型规则 | 3h | ⬜ | | 3.9 | 实现 `DefaultDefenseAdvisor` — Step B 时空交汇优化 | 6h | ⬜ | | 3.10 | 实现 `DefaultDefenseAdvisor` — Step C 反推平台部署 | 4h | ⬜ | | 3.11 | 实现 `AlgorithmFactory`(注册/创建) | 2h | ⬜ | | 3.12 | 编写 DefenseAdvisor 单元测试(活塞→惰性气体 / 喷气→活性材料) | 4h | ⬜ | **Phase 3 验收标准**: - [ ] 扩散模型:给定初始半径+风速+60s → 断言最终半径和中心偏移 - [ ] 毁伤模型:活塞发动机 5s 暴露于惰性气体 → 断言 HP ≤ 阈值 - [ ] 防御推荐:活塞发动机航路 → 推荐惰性气体,拦截概率 > 0 - [ ] AlgorithmFactory.Register 可替换任一算法实现 - [ ] 所有测试结果完全可复现(确定性) --- ### Phase 4:仿真引擎 **目标**:完整 8 阶段仿真引擎,支持运行/暂停/停止,录制帧数据和事件。 **时间**:7 天 **验证**:加载想定 → 运行完整仿真 → 检查事件序列和帧数据。 | # | 任务 | 预估 | 状态 | |---|------|------|------| | 4.1 | 实现 `DroneEntity`(航路移动 + 风偏 + 编队排列) | 4h | ⬜ | | 4.2 | 实现 `PlatformEntity`(空基/地基 + 冷却计时) | 3h | ⬜ | | 4.3 | 实现 `MunitionEntity`(自由落体 + 抛物线弹道) | 4h | ⬜ | | 4.4 | 实现 `CloudEntity`(集成扩散模型 + 毁伤判定) | 3h | ⬜ | | 4.5 | 实现 `DetectionEntity`(探测扫描) | 2h | ⬜ | | 4.6 | 实现 `ControlZone` 多边形判定(Point-in-Polygon) | 2h | ⬜ | | 4.7 | 实现 `EventQueue` | 2h | ⬜ | | 4.8 | 实现 `SimulationEngine` — Initialize(加载配置,实例化实体) | 4h | ⬜ | | 4.9 | 实现 `SimulationEngine` — 8 阶段 Tick 流程 | 6h | ⬜ | | 4.10 | 实现 `SimulationEngine` — Pause/Resume/Stop + State 管理 | 2h | ⬜ | | 4.11 | 实现 `IFrameDataStore` — CreateTaskDb / WriteFrame / ReadFrames | 4h | ⬜ | | 4.12 | 实现 `SimEvent` 写入主库 + 查询 | 2h | ⬜ | | 4.13 | 编写仿真集成测试(单无人机无拦截 → 到达目标) | 3h | ⬜ | | 4.14 | 编写仿真集成测试(单无人机 → 拦截成功 → 被摧毁) | 3h | ⬜ | | 4.15 | 编写仿真集成测试(多无人机 + 编队 + 蜂群) | 3h | ⬜ | | 4.16 | 编写仿真集成测试(管控区域侵入) | 2h | ⬜ | **Phase 4 验收标准**: - [ ] 加载完整想定配置后可启动仿真 - [ ] 8 个阶段的 Tick 顺序正确,事件队列正常产出 - [ ] 集成测试:单无人机无拦截 → 断言 "DroneReachedTarget" 事件 - [ ] 集成测试:单无人机被拦截 → 断言 "DroneDestroyed" + "CloudGenerated" - [ ] 帧数据可正确写入 `frames/{taskId}.db`,回读验证帧数一致 - [ ] Pause/Resume 不影响仿真状态一致性 --- ### Phase 5:报告生成 **目标**:仿真结束后自动生成报告,支持 PDF/Word 导出。 **时间**:3 天 **验证**:跑完仿真 → 生成报告 → 导出文件存在且内容正确。 | # | 任务 | 预估 | 状态 | |---|------|------|------| | 5.1 | 实现 `ReportGenerator`(从 SimEvent + 配置聚合统计数据) | 4h | ⬜ | | 5.2 | 实现对抗结果判定逻辑(成功/部分/失败) | 1h | ⬜ | | 5.3 | 实现报告模板引擎(占位符填充) | 3h | ⬜ | | 5.4 | 实现 PDF 导出(QuestPDF 或替代方案调研) | 4h | ⬜ | | 5.5 | 实现 Word 导出 | 3h | ⬜ | | 5.6 | 实现 `SimulationReportRepository` | 1h | ⬜ | | 5.7 | 实现 `IReportService`(Generate / Get / Delete / Search / Export) | 3h | ⬜ | | 5.8 | 编写报告生成单元测试 | 3h | ⬜ | **Phase 5 验收标准**: - [ ] 仿真完成后报告自动生成,包含仿真前/中/后三阶段数据 - [ ] 对抗结果判定正确 - [ ] PDF 导出文件可正常打开 - [ ] 报告搜索分页功能正常 --- ### Phase 6:Unity 集成 **目标**:将 Core.dll 集成到 Unity,实现完整运行链路。 **时间**:5 天 **验证**:在 Unity Editor 中完成"创建想定 → 配置 5 步 → 算法推荐 → 启动仿真 → 查看回放"全流程。 | # | 任务 | 预估 | 状态 | |---|------|------|------| | 6.1 | 创建 Unity 22.3.62 项目,导入 Core.dll 到 Assets/Plugins | 1h | ⬜ | | 6.2 | 实现 `UnityPathProvider`(返回 persistentDataPath) | 1h | ⬜ | | 6.3 | 实现 `ModelManager` MonoBehaviour(桥接 IModelService) | 3h | ⬜ | | 6.4 | 实现 `ScenarioManager` MonoBehaviour(桥接 IScenarioService) | 4h | ⬜ | | 6.5 | 实现 `SimulationRunner` MonoBehaviour(Update 驱动引擎) | 3h | ⬜ | | 6.6 | 实现 `ReplayController` MonoBehaviour(协程回放) | 3h | ⬜ | | 6.7 | 实现 `ReportManager` MonoBehaviour(桥接 IReportService) | 2h | ⬜ | | 6.8 | 实现 3D 实体可视化(根据 Snapshot 更新 GameObject Transform) | 4h | ⬜ | | 6.9 | 实现粒子系统参数传递(CloudEntity → ParticleSystem) | 3h | ⬜ | | 6.10 | 端到端联调 + 问题修复 | 6h | ⬜ | **Phase 6 验收标准**: - [ ] Unity Editor 中创建想定 → 配置保存 → 算法推荐 → 启动仿真全链路可走通 - [ ] 仿真过程中 3D 实体实时移动 - [ ] 回放功能正常 - [ ] 无 Crash,无内存泄漏 --- ### Phase 7:打磨收尾 **目标**:性能优化、边界处理、TTL 清理、文档。 **时间**:3 天 | # | 任务 | 预估 | 状态 | |---|------|------|------| | 7.1 | 性能优化:Tick() P99 < 5ms | 4h | ⬜ | | 7.2 | TTL 清理实现 + 测试 | 2h | ⬜ | | 7.3 | 边界场景测试(0 实体、超大航路、极端风速) | 3h | ⬜ | | 7.4 | 错误处理加固 | 2h | ⬜ | | 7.5 | 补充缺失的单元测试(目标覆盖率 > 80%) | 4h | ⬜ | | 7.6 | 文档更新 + API 注释 | 3h | ⬜ | **Phase 7 验收标准**: - [ ] Tick() 单帧耗时 P99 < 5ms(16 实体场景) - [ ] 过期帧数据库可自动清理 - [ ] 单元测试覆盖率 > 80% - [ ] 所有公开 API 有 XML 文档注释 --- ## 三、依赖关系 ``` Phase 1 (核心基础) │ ▼ Phase 2 (想定管理) │ ├──────────────────┐ ▼ ▼ Phase 3 (算法层) Phase 4 (仿真引擎) │ │ └────────┬─────────┘ ▼ Phase 5 (报告生成) │ ▼ Phase 6 (Unity 集成) │ ▼ Phase 7 (打磨收尾) ``` > Phase 3 和 Phase 4 可部分并行:算法层完成后仿真引擎才能完整串联,但仿真实体模型可先开工。 --- ## 四、里程碑 | 里程碑 | 截止 | 标志 | |------|------|------| | M1 — 数据层就绪 | Phase 1 结束 | 11 张表 CRUD 通过 | | M2 — 想定可配置 | Phase 2 结束 | 5 步配置保存/恢复/搜索 | | M3 — 算法可计算 | Phase 3 结束 | 扩散/毁伤/推荐输出正确 | | M4 — 仿真可运行 | Phase 4 结束 | 集成测试通过 | | M5 — 报告可生成 | Phase 5 结束 | PDF/Word 导出 | | M6 — Unity 可演示 | Phase 6 结束 | 端到端全链路 | | M7 — 交付就绪 | Phase 7 结束 | 覆盖率 > 80%,P99 < 5ms | --- ## 五、状态图例 | 符号 | 含义 | |------|------| | ⬜ | 未开始 | | 🔄 | 进行中 | | ✅ | 已完成 | | ⏸️ | 阻塞 | | ❌ | 放弃 | --- > **下一步**:确认阶段划分和时间计划后,可以开始 Phase 1,逐项打勾推进。