30 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			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 调用更新一个普通计划,确认其所有字段(包括状态)都能被正确更新。
 |