diff --git a/internal/app/service/task/scheduler.go b/internal/app/service/task/scheduler.go index b8e7e05..c4674b2 100644 --- a/internal/app/service/task/scheduler.go +++ b/internal/app/service/task/scheduler.go @@ -255,7 +255,20 @@ func (s *Scheduler) processTask(claimedLog *models.TaskExecutionLog) { // 任务计数器校验, Plan的任务全部执行完成后需要插入一个新的PlanAnalysisTask用于触发下一次Plan的执行 if s.progressTracker.IsPlanOver(claimedLog.PlanExecutionLogID) { // --- 新增逻辑:更新计划执行次数并判断是否需要触发下一次执行 --- - planID := claimedLog.Task.PlanID + var planID uint + // 根据任务类型获取正确的 PlanID + if claimedLog.Task.Type == models.TaskPlanAnalysis { + var params struct { + PlanID uint `json:"plan_id"` + } + if err := json.Unmarshal(claimedLog.Task.Parameters, ¶ms); err != nil { + s.logger.Errorf("解析任务参数中的计划ID失败,日志ID: %d, 错误: %v", claimedLog.ID, err) + return + } + planID = params.PlanID + } else { + planID = claimedLog.Task.PlanID + } // 获取计划的最新数据 plan, err := s.planRepo.GetBasicPlanByID(planID)