diff --git a/src/WMS.Web.Domain/Services/BoxInventoryService.cs b/src/WMS.Web.Domain/Services/BoxInventoryService.cs index 897bbea3..79f9d253 100644 --- a/src/WMS.Web.Domain/Services/BoxInventoryService.cs +++ b/src/WMS.Web.Domain/Services/BoxInventoryService.cs @@ -1157,9 +1157,9 @@ namespace WMS.Web.Domain.Services var InventoryDetailsGenerateDto = new List(); - var serNubs = dtoDatas.SelectMany(x => x.Details).SelectMany(x => x.SerialNumbers).ToList(); - var serialNumbers = await _serialNumbersRepositories.GetEntityList(serNubs); - var out_serNubs = new List(); + //var serNubs = dtoDatas.SelectMany(x => x.Details).SelectMany(x => x.SerialNumbers).ToList(); + //var serialNumbers = await _serialNumbersRepositories.GetEntityList(serNubs); + //var out_serNubs = new List(); //2.获取“箱库存集合” var boxIds = dtoDatas.GroupBy(x => x.BoxId).Select(x => x.Key).ToList(); @@ -1360,9 +1360,30 @@ namespace WMS.Web.Domain.Services var InventoryDetailsGenerateDto1 = new List(); foreach (var item in boxInventorys) { - //var update_entity = item; - //update_entity.Details = new List(); + item.Details.ForEach(x => + { + var current_sers_info = out_SerialNumbers.Where(o => o.BoxId == item.BoxId && o.MaterialId == x.MaterialId).ToList(); + if (current_sers_info != null && current_sers_info.Count != 0) + { + x.Qty=x.Qty- current_sers_info.Count; + var crrent_sers = current_sers_info.Select(t => t.SerialNumber).ToList(); + x.SerialNumbers.RemoveAll(r => crrent_sers.Contains(r)); + + //3.2.2组装即时库存dto + var inventoryDet = new InventoryDetailsGenerateDto(); + inventoryDet.MaterialId = x.MaterialId; + inventoryDet.OrgCode = item.OrgCode; + inventoryDet.StockCode = item.StockCode; + inventoryDet.SubStockId = item.SubStockId; + inventoryDet.Qty = current_sers_info.Count; + inventoryDet.InventoryInOutType = (int)InventoryInOutType.Out; + //3.2.2即时库存:修改的集合 + InventoryDetailsGenerateDto1.Add(inventoryDet); + } + }); + + //var update_entity = item; //foreach (var itemDet in item.Details) //{ // var current_sers_info = out_SerialNumbers.Where(x => x.BoxId == item.BoxId && x.MaterialId == itemDet.MaterialId).ToList(); @@ -1389,13 +1410,13 @@ namespace WMS.Web.Domain.Services // update_entity.Details.Add(itemDet); //} - ////4.1判断要修改的箱库存对象:是否所有的物料库存的数量都为0,“是”则删除该箱库存,"否"则修改; - //var isAllNoInventory = update_entity.Details.All(x => x.Qty == 0); - //if (isAllNoInventory) - // delete_ids1.Add(update_entity.Id); - //else - // //4.2添加要更新的箱库存实体 - // update_entitys1.Add(update_entity); + //4.1判断要修改的箱库存对象:是否所有的物料库存的数量都为0,“是”则删除该箱库存,"否"则修改; + var isAllNoInventory = item.Details.All(x => x.Qty == 0); + if (isAllNoInventory) + delete_ids1.Add(item.Id); + else + //4.2添加要更新的箱库存实体 + update_entitys1.Add(item); } var isSuccess = true;