diff --git a/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs b/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs index 2c3ffbe5..5f4efde8 100644 --- a/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs +++ b/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs @@ -202,7 +202,7 @@ namespace BBWY.Server.Business request.CustomMotherSku = request.CustomMotherSku.Trim(); if (!string.IsNullOrEmpty(request.MainProductGiftSku)) request.MainProductGiftSku = request.MainProductGiftSku.Trim(); - if (request.PreTaskId == null) + if (request.PreTaskId == null || request.PreTaskId == 0) request.PreTaskId = -1; PromotionTask promotionTask = null; @@ -892,10 +892,26 @@ namespace BBWY.Server.Business //查询店铺 var shopList = venderBusiness.GetShopList(shopId, Enums.Platform.京东); - //开始下一轮开始任务 + #region 查询等待开始的任务 + //查询没有前置的任务 var nextPromotionTaskList = fsql.Select().WhereIf(shopId != null, pt => pt.ShopId == shopId) .Where(pt => pt.Status == Enums.PromitionTaskStatus.等待 && pt.PreTaskId == -1 && pt.IsEnabled == true) - .ToList(pt => new { Id = pt.Id, ShopId = pt.ShopId, TaskName = pt.ActivityName }); + .ToList(pt => new { pt.Id, pt.ShopId, TaskName = pt.ActivityName }); + + //查询前置已完成但是还没开始的后置任务 + var checkNoStartTime = DateTime.Now.AddMinutes(-30); + var preTaskJobDoneAndChildTaskNoStartList = fsql.Select() + .WhereIf(shopId != null, pt => pt.ShopId == shopId) + .Where(cpt => cpt.Status == Enums.PromitionTaskStatus.等待 && cpt.PreTaskId != -1 && cpt.IsEnabled == true) + .Where(cpt => fsql.Select().Where(pt => pt.Id == cpt.PreTaskId && + pt.Status == Enums.PromitionTaskStatus.已完成 && + pt.StopTime <= checkNoStartTime).Any()) + .ToList(pt => new { pt.Id, pt.ShopId, TaskName = pt.ActivityName }); + if (preTaskJobDoneAndChildTaskNoStartList.Count() > 0) + nextPromotionTaskList.AddRange(preTaskJobDoneAndChildTaskNoStartList); + #endregion + + //开始下一轮开始任务 if (nextPromotionTaskList.Count() > 0) { foreach (var nextTask in nextPromotionTaskList)