diff --git a/src/WMS.Web.Domain/Services/InStockTaskService.cs b/src/WMS.Web.Domain/Services/InStockTaskService.cs index b11284f6..b13ee9d7 100644 --- a/src/WMS.Web.Domain/Services/InStockTaskService.cs +++ b/src/WMS.Web.Domain/Services/InStockTaskService.cs @@ -555,12 +555,28 @@ namespace WMS.Web.Domain.Services { //当应入库数量大于实际入库数量:状态就部分入库 //当应入库数量小于等于实际入库数量:状态就已入库 - var AccruedQtyTotal = order.Details.Where(x => x.AccruedQty != 0).Sum(x => x.AccruedQty); - var RealityQtyTotal = order.Details.Where(x => x.AccruedQty != 0).Sum(x => x.RealityQty); - if (RealityQtyTotal != 0 && AccruedQtyTotal > RealityQtyTotal) + var details_Groups = order.Details.Where(x => x.AccruedQty != 0).GroupBy(x => x.MaterialId) + .Select(x => new + { + MaterialId = x.Key, + AccruedQtyTotal = x.Sum(t => t.AccruedQty), + RealityQtyTotal=x.Sum(t=>t.RealityQty) + }).ToList(); + + bool IsAny = details_Groups.Any(d => d.AccruedQtyTotal > d.RealityQtyTotal); + if(IsAny) order.Status = InstockStatus.Part; - else if (AccruedQtyTotal <= RealityQtyTotal) + else order.Status = InstockStatus.Already; + + + + //var AccruedQtyTotal = order.Details.Where(x => x.AccruedQty != 0).Sum(x => x.AccruedQty); + //var RealityQtyTotal = order.Details.Where(x => x.AccruedQty != 0).Sum(x => x.RealityQty); + //if (RealityQtyTotal != 0 && AccruedQtyTotal > RealityQtyTotal) + // order.Status = InstockStatus.Part; + //else if (AccruedQtyTotal <= RealityQtyTotal) + // order.Status = InstockStatus.Already; });