Files
2025-11-01 16:29:18 +08:00

30 lines
1.8 KiB
Markdown

1. **分析与方案制定**
- [x] 发现“系统任务自愈”功能无法按预期工作。
- [x] 深入分析发现根源在于 `PlanRepository.UpdatePlan` 函数的设计缺陷(名不副实,部分更新)。
- [x] 制定了包含代码重构的最终方案,以从根本上解决问题。
2. **文档更新**
- [x] 新建 `design.md` (已合并入 `proposal.md`),详细记录问题分析、设计决策和重构方案。
- [x] 更新 `proposal.md` 以反映最终的、包含重构的变更范围。
- [x] 更新 `tasks.md` 任务列表。
3. **代码重构与修改**
- [x] **重构 `plan_repository.go`**:
- [x]`UpdatePlan` 接口和实现重命名为 `UpdatePlanMetadataAndStructure`
- [x] 创建一个新的、使用 `Save` 实现全字段更新的 `UpdatePlan` 函数。
- [x] **修正 `data_initializer.go`**:
- [x] 将对旧 `UpdatePlan` 的调用修改为 `UpdatePlanMetadataAndStructure`
- [x] 保留并确认后续调用 `UpdatePlanStatus` 的逻辑,以完成状态恢复。
4. **测试与验证**
- [x] **场景一:系统任务失败**
- [x] 手动将 `PlanNameTimedFullDataCollection` 计划在数据库中的状态修改为 `failed`
- [x] 重启应用。
- [x] 验证该计划的状态是否已自动恢复为 `enabled`
- [x] **场景二:系统任务被停止**
- [x] 手动将 `PlanNameTimedFullDataCollection` 计划在数据库中的状态修改为 `stopped`
- [x] 重启应用。
- [x] 验证该计划的状态是否已自动恢复为 `enabled`
- [x] **场景三:回归测试 `plan_service`**
- [x] (可选) 通过 API 调用更新一个普通计划,确认其所有字段(包括状态)都能被正确更新。