diff --git a/src/WMS.Web.Domain/Services/BoxInventoryService.cs b/src/WMS.Web.Domain/Services/BoxInventoryService.cs index 95748d4d..aa83dfb5 100644 --- a/src/WMS.Web.Domain/Services/BoxInventoryService.cs +++ b/src/WMS.Web.Domain/Services/BoxInventoryService.cs @@ -69,24 +69,37 @@ namespace WMS.Web.Domain.Services var sour = sourceBoxInventorys.Where(x => x.BoxId == dto.BoxId).FirstOrDefault(); if (sour != null) { + //2.2箱库存 var sour_update_entity = sour; sour_update_entity.Details = sour.Details; foreach (var dtoItem in dto.Details) { - //找到原来的箱库存对应要改变的物料:这个一定是存在的,不存在就有问题 + //2.2.1箱库存:找到原来的箱库存对应要改变的物料:这个一定是存在的,不存在就有问题 var sour_ChangeDetail = sour_update_entity.Details.Where(x => x.MaterialId == dtoItem.MaterialId).FirstOrDefault(); if (sour_ChangeDetail == null) return Result.ReFailure(ResultCodes.BoxInventoryNoDataError); - //箱物料的库存数量不足;小于要拿出来的数量 + //2.2.1箱库存:箱物料的库存数量不足;小于要拿出来的数量 if (sour_ChangeDetail.Qty < dtoItem.Qty) return Result.ReFailure(ResultCodes.BoxInventoryNoInventoryError); - //减库存 + //2.2.1箱库存:减库存 sour_ChangeDetail.Qty = sour_ChangeDetail.Qty - dtoItem.Qty; - //再移除要改箱的序列号;最后就是原箱库存的新序列号 + //2.2.1箱库存:再移除要改箱的序列号;最后就是原箱库存的新序列号 sour_ChangeDetail.SerialNumbers.RemoveAll(x => dtoItem.SerialNumbers.Contains(x)); + //2.2.2组装即时库存dto + var inventoryDet = new InventoryDetailsGenerateDto(); + inventoryDet.MaterialId = dtoItem.MaterialId; + inventoryDet.OrgCode = sour_update_entity.OrgCode; + inventoryDet.StockCode = sour_update_entity.StockCode; + inventoryDet.SubStockId = sour_update_entity.SubStockId; + inventoryDet.Qty = dtoItem.Qty; + inventoryDet.InventoryInOutType = (int)InventoryInOutType.Out; + //2.2.2即时库存:修改箱库存的集合 + InventoryDetailsGenerateDto.Add(inventoryDet); + } + //2.2.1箱库存:修改箱库存的集合 update_entitys.Add(sour_update_entity); }