|
|
@ -6,15 +6,16 @@ using BBWY.Server.Model.Dto; |
|
|
|
using Microsoft.Extensions.Options; |
|
|
|
using System; |
|
|
|
using System.Collections.Generic; |
|
|
|
using System.Linq; |
|
|
|
using Yitter.IdGenerator; |
|
|
|
|
|
|
|
namespace BBWY.Server.Business |
|
|
|
{ |
|
|
|
public class StoreHouseWarningBusiness : BaseSyncBusiness, IDenpendency |
|
|
|
public class JDStoreHouseWarningBusiness : BaseSyncBusiness, IDenpendency |
|
|
|
{ |
|
|
|
private IList<Enums.StorageType> validStorageTypeList; |
|
|
|
|
|
|
|
public StoreHouseWarningBusiness(RestApiService restApiService, IOptions<GlobalConfig> options, NLogManager nLogManager, IFreeSql fsql, IIdGenerator idGenerator, TaskSchedulerManager taskSchedulerManager, VenderBusiness venderBusiness, YunDingBusiness yunDingBusiness) : base(restApiService, options, nLogManager, fsql, idGenerator, taskSchedulerManager, venderBusiness, yunDingBusiness) |
|
|
|
public JDStoreHouseWarningBusiness(RestApiService restApiService, IOptions<GlobalConfig> options, NLogManager nLogManager, IFreeSql fsql, IIdGenerator idGenerator, TaskSchedulerManager taskSchedulerManager, VenderBusiness venderBusiness, YunDingBusiness yunDingBusiness) : base(restApiService, options, nLogManager, fsql, idGenerator, taskSchedulerManager, venderBusiness, yunDingBusiness) |
|
|
|
{ |
|
|
|
validStorageTypeList = new List<Enums.StorageType>() { |
|
|
|
Enums.StorageType.云仓, |
|
|
@ -25,7 +26,7 @@ namespace BBWY.Server.Business |
|
|
|
|
|
|
|
public void StartCheckStockNum() |
|
|
|
{ |
|
|
|
var shopList = venderBusiness.GetShopList(filterTurnoverDays: true); |
|
|
|
var shopList = venderBusiness.GetShopList(platform: Enums.Platform.京东, filterTurnoverDays: true); |
|
|
|
foreach (var shop in shopList) |
|
|
|
{ |
|
|
|
CheckStockNum(shop); |
|
|
@ -50,13 +51,38 @@ namespace BBWY.Server.Business |
|
|
|
.Distinct() |
|
|
|
.ToList((s, osku, o) => s.Sku); |
|
|
|
|
|
|
|
var queryStartDate = DateTime.Now.Date.AddDays(-9); |
|
|
|
var queryStartDate = yesterDayDate.AddDays(-8); |
|
|
|
var skuSaleDailyList = fsql.Select<SkuDailySalesDetail>() |
|
|
|
.Where(s => s.Date >= queryStartDate && s.Date <= yesterDayDate) |
|
|
|
.Where(s => yesterDaySkuIds.Contains(s.Sku)) |
|
|
|
.ToList(); |
|
|
|
|
|
|
|
var firstCycleStartDate = queryStartDate; |
|
|
|
var firstCycleEndDate = queryStartDate.AddDays(2); |
|
|
|
|
|
|
|
var secondCycleStartDate = firstCycleEndDate.AddDays(1); |
|
|
|
var secondCycleEndDate = secondCycleStartDate.AddDays(2); |
|
|
|
|
|
|
|
var thirdCycleStartDate = secondCycleEndDate.AddDays(1); |
|
|
|
var thirdCycleEndDate = thirdCycleStartDate.AddDays(2); |
|
|
|
|
|
|
|
foreach (var sku in yesterDaySkuIds) |
|
|
|
{ |
|
|
|
//第一周期销量
|
|
|
|
var firstCycleSaleList = skuSaleDailyList.Where(s => s.Sku == sku && s.Date >= firstCycleStartDate && s.Date <= firstCycleEndDate); |
|
|
|
var firstCycleItemTotal = firstCycleSaleList.Count() > 0 ? firstCycleSaleList.Sum(s => s.ItemTotal - s.CancelItemTotal) : 0; |
|
|
|
|
|
|
|
//第二周期销量
|
|
|
|
var secondCycleSaleList = skuSaleDailyList.Where(s => s.Sku == sku && s.Date >= secondCycleStartDate && s.Date <= secondCycleEndDate); |
|
|
|
var secondCycleItemTotal = secondCycleSaleList.Count() > 0 ? secondCycleSaleList.Sum(s => s.ItemTotal - s.CancelItemTotal) : 0; |
|
|
|
|
|
|
|
//第三周期销量
|
|
|
|
var thirdCycleSaleList = skuSaleDailyList.Where(s => s.Sku == sku && s.Date >= thirdCycleStartDate && s.Date <= thirdCycleEndDate); |
|
|
|
var thirdCycleItemTotal = thirdCycleSaleList.Count() > 0 ? thirdCycleSaleList.Sum(s => s.ItemTotal - s.CancelItemTotal) : 0; |
|
|
|
|
|
|
|
//判断周期
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |