|
|
@ -38,13 +38,20 @@ namespace BBWYB.Server.Business |
|
|
|
select = select.Where((o, ocs, oct) => o.OrderSn == request.OrderSn); |
|
|
|
else |
|
|
|
{ |
|
|
|
if (!string.IsNullOrEmpty(request.Sku) || !string.IsNullOrEmpty(request.SourceSku) || !string.IsNullOrEmpty(request.ProductId)) |
|
|
|
if (!string.IsNullOrEmpty(request.Sku) || |
|
|
|
!string.IsNullOrEmpty(request.SourceSku) || |
|
|
|
!string.IsNullOrEmpty(request.ProductId) || |
|
|
|
request.IsWaitConfig) |
|
|
|
{ |
|
|
|
var childSelect = fsql.Select<OrderSku>().As("osku") |
|
|
|
.WhereIf(!string.IsNullOrEmpty(request.Sku), osku => osku.SkuId == request.Sku) |
|
|
|
.WhereIf(!string.IsNullOrEmpty(request.SourceSku), osku => osku.BelongSkuId == request.SourceSku) |
|
|
|
.WhereIf(!string.IsNullOrEmpty(request.ProductId), osku => osku.ProductId == request.ProductId); |
|
|
|
select = select.Where((o, ocs, oct) => childSelect.Where(osku => osku.OrderId == o.Id).Any()); |
|
|
|
.WhereIf(!string.IsNullOrEmpty(request.ProductId), osku => osku.ProductId == request.ProductId) |
|
|
|
.WhereIf(request.IsWaitConfig, osku => osku.PackConfigState == Enums.PackConfigState.待配置); |
|
|
|
select = select.WhereIf(request.IsWaitConfig, (o, ocs, oct) => o.OrderState != Enums.OrderState.已取消) |
|
|
|
.WhereIf(request.IsWaitConfig, (o, ocs, oct) => o.IntoStoreType == Enums.IntoStoreType.发回齐越) |
|
|
|
.WhereIf(request.IsWaitConfig, (o, ocs, oct) => o.IsPurchased == true) |
|
|
|
.Where((o, ocs, oct) => childSelect.Where(osku => osku.OrderId == o.Id).Any()); |
|
|
|
} |
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(request.PurchaseOrderId)) |
|
|
@ -65,7 +72,6 @@ namespace BBWYB.Server.Business |
|
|
|
o.OrderState == Enums.OrderState.部分发货) |
|
|
|
.WhereIf(request.OrderState == Enums.OrderState.待收货, (o, ocs, oct) => o.OrderState == Enums.OrderState.待收货 || |
|
|
|
o.OrderState == Enums.OrderState.部分收货) |
|
|
|
.WhereIf(request.IsWaitConfig, (o, ocs, oct) => o.OrderState != Enums.OrderState.已取消 && o.IsPurchased == true) |
|
|
|
.WhereIf(request.StartDate != null, (o, ocs, oct) => o.StartTime >= request.StartDate) |
|
|
|
.WhereIf(request.EndDate != null, (o, ocs, oct) => o.StartTime <= request.EndDate) |
|
|
|
.WhereIf(!string.IsNullOrEmpty(request.ClientOrderId), (o, ocs, oct) => o.ClientOrderId == request.ClientOrderId) |
|
|
@ -585,5 +591,42 @@ namespace BBWYB.Server.Business |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public OrderCountByStateResponse StatisticsOrderCountByOrderState(long shopId) |
|
|
|
{ |
|
|
|
var noOrderStateList = new List<Enums.OrderState>() |
|
|
|
{ |
|
|
|
Enums.OrderState.已取消, |
|
|
|
Enums.OrderState.已完成 |
|
|
|
}; |
|
|
|
var orderCountGroup = fsql.Select<Order>().Where(o => !noOrderStateList.Contains(o.OrderState.Value)) |
|
|
|
.GroupBy(o => o.OrderState) |
|
|
|
.ToList(g => new |
|
|
|
{ |
|
|
|
OrderState = g.Key, |
|
|
|
OrderCount = g.Count() |
|
|
|
}); |
|
|
|
|
|
|
|
var childSelect = fsql.Select<OrderSku>().As("osku").Where(osku => osku.PackConfigState == Enums.PackConfigState.待配置); |
|
|
|
var waitConfigCount = fsql.Select<Order>().Where(o => !noOrderStateList.Contains(o.OrderState.Value)) |
|
|
|
.Where(o => o.IntoStoreType == Enums.IntoStoreType.发回齐越) |
|
|
|
.Where(o => o.IsPurchased == true) |
|
|
|
.Where(o => childSelect.Where(osku => osku.OrderId == o.Id).Any()) |
|
|
|
.Count(); |
|
|
|
|
|
|
|
return new OrderCountByStateResponse() |
|
|
|
{ |
|
|
|
WaitPayCount = orderCountGroup.FirstOrDefault(o => o.OrderState == Enums.OrderState.待付款)?.OrderCount ?? 0, |
|
|
|
WaitPurchaseCount = orderCountGroup.FirstOrDefault(o => o.OrderState == Enums.OrderState.等待采购 || |
|
|
|
o.OrderState == Enums.OrderState.部分采购)?.OrderCount ?? 0, |
|
|
|
WaitShipmentCount = orderCountGroup.FirstOrDefault(o => o.OrderState == Enums.OrderState.待发货 || |
|
|
|
o.OrderState == Enums.OrderState.部分发货)?.OrderCount ?? 0, |
|
|
|
WaitReceiveCount = orderCountGroup.FirstOrDefault(o => o.OrderState == Enums.OrderState.待收货 || |
|
|
|
o.OrderState == Enums.OrderState.部分收货)?.OrderCount ?? 0, |
|
|
|
WaitCheckCount = orderCountGroup.FirstOrDefault(o => o.OrderState == Enums.OrderState.待验收)?.OrderCount ?? 0, |
|
|
|
WaitComputationCount = orderCountGroup.FirstOrDefault(o => o.OrderState == Enums.OrderState.待核算)?.OrderCount ?? 0, |
|
|
|
WaitConfigCount = waitConfigCount, |
|
|
|
}; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|