|
@ -503,8 +503,7 @@ namespace BBWYB.Server.Business |
|
|
var allBargainTeamCompetitiveTenderSchemeIdList = allBargainTeamCompetitiveTenderTaskList.Select(ct => ct.SchemeId).ToList(); |
|
|
var allBargainTeamCompetitiveTenderSchemeIdList = allBargainTeamCompetitiveTenderTaskList.Select(ct => ct.SchemeId).ToList(); |
|
|
var allBargainTeamPurchaseSchemeList = purchaseSchemeBusiness.GetPurchaseSchemeList(new QuerySchemeRequest() |
|
|
var allBargainTeamPurchaseSchemeList = purchaseSchemeBusiness.GetPurchaseSchemeList(new QuerySchemeRequest() |
|
|
{ |
|
|
{ |
|
|
BargainTeamIdList = new List<string>() { uInfo.user.DepartmentId }, |
|
|
SchemeIdList = allBargainTeamCompetitiveTenderSchemeIdList, |
|
|
SkuIdList = skuIdList, |
|
|
|
|
|
IncludePurchaseSkuBasicInfo = 0 |
|
|
IncludePurchaseSkuBasicInfo = 0 |
|
|
}); |
|
|
}); |
|
|
var victoryCompetitiveTenderTaskList = VictoryPlanSelection(allBargainTeamCompetitiveTenderTaskList, allBargainTeamPurchaseSchemeList); |
|
|
var victoryCompetitiveTenderTaskList = VictoryPlanSelection(allBargainTeamCompetitiveTenderTaskList, allBargainTeamPurchaseSchemeList); |
|
@ -691,7 +690,86 @@ namespace BBWYB.Server.Business |
|
|
/// <param name="taskId"></param>
|
|
|
/// <param name="taskId"></param>
|
|
|
public void TimeLimitTaskTimeOutCallBack(long taskId) |
|
|
public void TimeLimitTaskTimeOutCallBack(long taskId) |
|
|
{ |
|
|
{ |
|
|
|
|
|
try |
|
|
|
|
|
{ |
|
|
|
|
|
var spuOptimizationTask = fsql.Select<SpuOptimizationTask>(taskId).ToOne(); |
|
|
|
|
|
if (spuOptimizationTask == null) |
|
|
|
|
|
throw new BusinessException($"待优化任务{taskId}不存在"); |
|
|
|
|
|
if (spuOptimizationTask.IsOptimizationCompleted == true) |
|
|
|
|
|
throw new BusinessException("待优化任务已完成"); |
|
|
|
|
|
|
|
|
|
|
|
IUpdate<SpuOptimizationTask> updateSpuTask = null; |
|
|
|
|
|
IUpdate<SpuTotalSaleInfo> updateSpuSaleInfo = null; |
|
|
|
|
|
IUpdate<SpuOptimizationCompetitiveTenderTask> updateCompetitiveTenderTask = null; |
|
|
|
|
|
|
|
|
|
|
|
var spuOptimizationBargainTeamTaskList = fsql.Select<SpuOptimizationBargainTeamTask>() |
|
|
|
|
|
.Where(sbt => sbt.SpuOptimizationTaskId == taskId) |
|
|
|
|
|
.ToList(); |
|
|
|
|
|
|
|
|
|
|
|
if (spuOptimizationBargainTeamTaskList.Any(sc => sc.IsOptimizationCompleted == true)) |
|
|
|
|
|
{ |
|
|
|
|
|
//任意一个议价组完成任务,该优化任务视为完成
|
|
|
|
|
|
|
|
|
|
|
|
var compleptionBargainTeamIdList = spuOptimizationBargainTeamTaskList.Where(sbt => sbt.IsOptimizationCompleted == true) |
|
|
|
|
|
.Select(sbt => sbt.BelongTeamId) |
|
|
|
|
|
.Distinct() |
|
|
|
|
|
.ToList(); |
|
|
|
|
|
|
|
|
|
|
|
//已完成议价任务的竞标任务
|
|
|
|
|
|
var compleptionBargainTeamCompetitiveTenderTaskList = fsql.Select<SpuOptimizationCompetitiveTenderTask>() |
|
|
|
|
|
.Where(ct => ct.SpuOptimizationTaskId == taskId && |
|
|
|
|
|
compleptionBargainTeamIdList.Contains(ct.BargainTeamId)) |
|
|
|
|
|
.ToList(); |
|
|
|
|
|
|
|
|
|
|
|
#region 更新spu销量表
|
|
|
|
|
|
var spuSaleInfo = fsql.Select<SpuTotalSaleInfo>(spuOptimizationTask.ProductId).ToOne(); |
|
|
|
|
|
if (spuSaleInfo == null) |
|
|
|
|
|
|
|
|
|
|
|
throw new BusinessException($"未找到spu{spuOptimizationTask.ProductId}销量"); |
|
|
|
|
|
|
|
|
|
|
|
updateSpuSaleInfo = fsql.Update<SpuTotalSaleInfo>(spuOptimizationTask.ProductId) |
|
|
|
|
|
.SetIf(spuSaleInfo.IsFirstPurchaseCompleted == false, s => s.IsFirstPurchaseCompleted, true) |
|
|
|
|
|
.SetIf(spuSaleInfo.IsFirstPurchaseCompleted == false, s => s.FirstPurchaseCompletedItemCount == s.ItemCount) |
|
|
|
|
|
.SetIf(spuSaleInfo.IsFirstPurchaseCompleted == true && |
|
|
|
|
|
spuSaleInfo.IsFirstOptimizationCompleted == false, s => s.IsFirstOptimizationCompleted, true) |
|
|
|
|
|
.SetIf(spuSaleInfo.IsFirstPurchaseCompleted == true && |
|
|
|
|
|
spuSaleInfo.IsFirstOptimizationCompleted == false, s => s.FirstOptimizationCompletedItemCount == s.ItemCount) |
|
|
|
|
|
.Set(s => s.LastOptimizationItemCount == s.ItemCount) |
|
|
|
|
|
.Set(s => s.LastOptimizationTime, DateTime.Now) |
|
|
|
|
|
.Set(s => s.UpdateTime, DateTime.Now); |
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 更新待优化任务
|
|
|
|
|
|
updateSpuTask = fsql.Update<SpuOptimizationTask>(spuOptimizationTask.Id) |
|
|
|
|
|
.Set(t => t.IsOptimizationCompleted, true) |
|
|
|
|
|
.Set(t => t.CompletionTime, DateTime.Now); |
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region 评选竞标结果
|
|
|
|
|
|
var compleptionBargainTeamPurchaseSchemeIdList = compleptionBargainTeamCompetitiveTenderTaskList.Select(ct => ct.SchemeId).ToList(); |
|
|
|
|
|
var compleptionBargainTeamPurchaseSchemeList = purchaseSchemeBusiness.GetPurchaseSchemeList(new QuerySchemeRequest() |
|
|
|
|
|
{ |
|
|
|
|
|
SchemeIdList = compleptionBargainTeamPurchaseSchemeIdList, |
|
|
|
|
|
IncludePurchaseSkuBasicInfo = 0 |
|
|
|
|
|
}); |
|
|
|
|
|
var victoryCompetitiveTenderTaskList = VictoryPlanSelection(compleptionBargainTeamCompetitiveTenderTaskList, compleptionBargainTeamPurchaseSchemeList); |
|
|
|
|
|
var victoryCompetitiveTenderTaskIdList = victoryCompetitiveTenderTaskList.Select(ct => ct.Id).ToList(); |
|
|
|
|
|
updateCompetitiveTenderTask = fsql.Update<SpuOptimizationCompetitiveTenderTask>(victoryCompetitiveTenderTaskIdList) |
|
|
|
|
|
.Set(ct => ct.IsWin, true); |
|
|
|
|
|
#endregion
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
fsql.Transaction(() => |
|
|
|
|
|
{ |
|
|
|
|
|
updateSpuTask?.ExecuteAffrows(); |
|
|
|
|
|
updateSpuSaleInfo?.ExecuteAffrows(); |
|
|
|
|
|
updateCompetitiveTenderTask?.ExecuteAffrows(); |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
catch (Exception ex) |
|
|
|
|
|
{ |
|
|
|
|
|
nLogManager.Default().Error(ex, "限时任务超时回调失败"); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|