From 4ad1063a46339a1b55eade1b2404a90b870df1db Mon Sep 17 00:00:00 2001 From: shanj <18996038927@163.com> Date: Mon, 25 Sep 2023 14:53:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=94=AF=E6=8C=81=E5=BE=85?= =?UTF-8?q?=E8=AE=AE=E4=BB=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BBWYB.Server.Business/Order/OrderBusiness.cs | 41 ++++++++++++++++--- .../Dto/Request/Order/QueryOrderRequest.cs | 5 +++ .../Order/OrderCountByStateResponse.cs | 5 +++ .../Dto/Response/Order/OrderSkuResponse.cs | 5 +++ 4 files changed, 50 insertions(+), 6 deletions(-) diff --git a/BBWYB.Server.Business/Order/OrderBusiness.cs b/BBWYB.Server.Business/Order/OrderBusiness.cs index ed2bba6..418e15e 100644 --- a/BBWYB.Server.Business/Order/OrderBusiness.cs +++ b/BBWYB.Server.Business/Order/OrderBusiness.cs @@ -58,17 +58,27 @@ namespace BBWYB.Server.Business select = select.Where((o, ocs, oct) => o.OrderSn == request.OrderSn); else { + //if (request.IsNeedOptimization == 1) + // request.OrderState = Enums.OrderState.等待采购; + //else if (request.OrderState == Enums.OrderState.等待采购) + //{ + // request.IsNeedOptimization = 0; + //} + if (!string.IsNullOrEmpty(request.Sku) || !string.IsNullOrEmpty(request.SourceSku) || !string.IsNullOrEmpty(request.ProductId) || - request.IsWaitConfig) + request.IsWaitConfig || + request.OrderState == Enums.OrderState.等待采购) { var childSelect = fsql.Select().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) .WhereIf(request.IsWaitConfig && request.IsOnlyDisplayPackConfigEditState != 1, osku => waitConfigStateList.Contains(osku.PackConfigState) || osku.PackConfigState == null) - .WhereIf(request.IsWaitConfig && request.IsOnlyDisplayPackConfigEditState == 1, osku => osku.PackConfigState == Enums.PackConfigState.需修改); + .WhereIf(request.IsWaitConfig && request.IsOnlyDisplayPackConfigEditState == 1, osku => osku.PackConfigState == Enums.PackConfigState.需修改) + .WhereIf(request.OrderState == Enums.OrderState.等待采购 && request.IsNeedOptimization == 1, osku => osku.IsNeedOptimization == 1) + .WhereIf(request.OrderState == Enums.OrderState.等待采购 && request.IsNeedOptimization != 1, osku => osku.IsNeedOptimization == 0); select = select.WhereIf(request.IsWaitConfig, (o, ocs, oct) => o.OrderState != Enums.OrderState.已取消 && o.OrderState != Enums.OrderState.已完成 && o.IntoStoreType == Enums.IntoStoreType.发回齐越 && @@ -390,6 +400,12 @@ namespace BBWYB.Server.Business t.TaskType == Enums.TimeLimitTaskType.待核算任务); #endregion + #region 待议价任务 + orderSku.OptimizationTimeLimitTask = orderTimeLimitTaskList.FirstOrDefault(t => t.OrderId == order.Id && + t.SkuId == orderSku.SkuId && + t.TaskType == Enums.TimeLimitTaskType.待议价任务); + #endregion + #region 判断sku的发货状态 var purchaseOrder = order.OrderPurchaseInfoList.FirstOrDefault(opi => opi.OrderId == order.Id && opi.BelongSkuIds.Contains(orderSku.SkuId)); if (purchaseOrder != null) @@ -815,20 +831,32 @@ namespace BBWYB.Server.Business OrderState = g.Key, OrderCount = g.Count() }); - - var childSelect = fsql.Select().As("osku").Where(osku => waitConfigStateList.Contains(osku.PackConfigState) || osku.PackConfigState == null); - var waitConfigCount = fsql.Select().Where(o => o.ShopId == shopId) + long waitConfigCount = 0; + { + var childSelect = fsql.Select().As("osku").Where(osku => waitConfigStateList.Contains(osku.PackConfigState) || osku.PackConfigState == null); + waitConfigCount = fsql.Select().Where(o => o.ShopId == shopId) .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(); + } + + int opitimizationCount = 0; + { + var childSelect = fsql.Select().As("osku").Where(osku => osku.IsNeedOptimization == 1); + opitimizationCount = Convert.ToInt32(fsql.Select().Where(o => o.ShopId == shopId) + .Where(o => o.OrderState == Enums.OrderState.等待采购) + .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.Where(o => o.OrderState == Enums.OrderState.等待采购 || - o.OrderState == Enums.OrderState.部分采购).Sum(o => o.OrderCount), + o.OrderState == Enums.OrderState.部分采购).Sum(o => o.OrderCount) - opitimizationCount, WaitShipmentCount = orderCountGroup.Where(o => o.OrderState == Enums.OrderState.待发货 || o.OrderState == Enums.OrderState.部分发货).Sum(o => o.OrderCount), WaitReceiveCount = orderCountGroup.Where(o => o.OrderState == Enums.OrderState.待收货 || @@ -836,6 +864,7 @@ namespace BBWYB.Server.Business WaitCheckCount = orderCountGroup.FirstOrDefault(o => o.OrderState == Enums.OrderState.待验收)?.OrderCount ?? 0, WaitComputationCount = orderCountGroup.FirstOrDefault(o => o.OrderState == Enums.OrderState.待核算)?.OrderCount ?? 0, WaitConfigCount = waitConfigCount, + OpitimizationCount = opitimizationCount }; } diff --git a/BBWYB.Server.Model/Dto/Request/Order/QueryOrderRequest.cs b/BBWYB.Server.Model/Dto/Request/Order/QueryOrderRequest.cs index 7a0508d..d28de70 100644 --- a/BBWYB.Server.Model/Dto/Request/Order/QueryOrderRequest.cs +++ b/BBWYB.Server.Model/Dto/Request/Order/QueryOrderRequest.cs @@ -114,5 +114,10 @@ /// 是否仅显示特殊单,是=1否=0,null则不处理该条件 /// public int? IsOnlyDisplaySpecialOrder { get; set; } + + /// + /// 是否需要优化(待议价),仅在订单为等待采购状态有效, 是=1 否=0 + /// + public int? IsNeedOptimization { get; set; } } } diff --git a/BBWYB.Server.Model/Dto/Response/Order/OrderCountByStateResponse.cs b/BBWYB.Server.Model/Dto/Response/Order/OrderCountByStateResponse.cs index 723ad6f..9130d58 100644 --- a/BBWYB.Server.Model/Dto/Response/Order/OrderCountByStateResponse.cs +++ b/BBWYB.Server.Model/Dto/Response/Order/OrderCountByStateResponse.cs @@ -36,5 +36,10 @@ /// 待核算数量 /// public long WaitComputationCount { get; set; } + + /// + /// 待议价数量 + /// + public long OpitimizationCount { get; set; } } } diff --git a/BBWYB.Server.Model/Dto/Response/Order/OrderSkuResponse.cs b/BBWYB.Server.Model/Dto/Response/Order/OrderSkuResponse.cs index a890d67..43284ff 100644 --- a/BBWYB.Server.Model/Dto/Response/Order/OrderSkuResponse.cs +++ b/BBWYB.Server.Model/Dto/Response/Order/OrderSkuResponse.cs @@ -39,5 +39,10 @@ namespace BBWYB.Server.Model.Dto /// 待核算任务 /// public TimeLimitTaskResponse? CheckComputationTimeLimitTask { get; set; } + + /// + /// 待议价任务 + /// + public TimeLimitTaskResponse OptimizationTimeLimitTask { get; set; } } }