diff --git a/BBWYB.Server.Business/Order/OrderBusiness.cs b/BBWYB.Server.Business/Order/OrderBusiness.cs index 5a9d02a..21d3e30 100644 --- a/BBWYB.Server.Business/Order/OrderBusiness.cs +++ b/BBWYB.Server.Business/Order/OrderBusiness.cs @@ -54,6 +54,24 @@ namespace BBWYB.Server.Business .Where((o, ocs, oct) => childSelect.Where(osku => osku.OrderId == o.Id).Any()); } + if (request.IsOnlyDisplayPurchaseTimeOut == 1 && (request.OrderState == Enums.OrderState.等待采购 || request.OrderState == Enums.OrderState.部分采购)) + { + var childSelect = fsql.Select().As("t") + .Where(t => t.ShopId == request.ShopId) + .Where(t => t.TaskType == Enums.TimeLimitTaskType.采购任务) + .Where(t => t.IsTimely == false); + select = select.Where((o, ocs, oct) => childSelect.Where(t => t.OrderId == o.Id).Any()); + } + if (request.IsOnlyDisplayDeliveryTimeout == 1 && (request.OrderState == Enums.OrderState.待发货 || request.OrderState == Enums.OrderState.部分发货)) + { + var before24hTime = DateTime.Now.AddHours(-24); + var childSelect = fsql.Select().As("opi2") + .Where(opi2 => opi2.ShopId == request.ShopId && + (opi2.OrderState == Enums.PurchaseOrderState.待发货 || opi2.OrderState == Enums.PurchaseOrderState.部分发货) && + opi2.CreateTime < before24hTime); + select = select.Where((o, ocs, oct) => childSelect.Where(opi2 => opi2.OrderId == o.Id).Any()); + } + if (!string.IsNullOrEmpty(request.PurchaseOrderId)) { var childSelect = fsql.Select().As("opi") diff --git a/BBWYB.Server.Model/Dto/Request/Order/QueryOrderRequest.cs b/BBWYB.Server.Model/Dto/Request/Order/QueryOrderRequest.cs index 0ffc3d1..1ee5d7b 100644 --- a/BBWYB.Server.Model/Dto/Request/Order/QueryOrderRequest.cs +++ b/BBWYB.Server.Model/Dto/Request/Order/QueryOrderRequest.cs @@ -75,10 +75,14 @@ /// public bool IsWaitConfig { get; set; } - ///// - ///// 是否过滤已配置 - ///// - //public bool ExcludeConfigured { get; set; } + /// + /// 是否仅显示待采购超时,是=1否=0,只在订单状态为【待采购和部分采购】时生效 + /// + public int IsOnlyDisplayPurchaseTimeOut { get; set; } + /// + /// 是否仅显示待发货超时,是=1否=0,只在订单状态为【待发货和部分发货】时生效 + /// + public int IsOnlyDisplayDeliveryTimeout { get; set; } } }