From 28081602e48e61efcfc8bcaec0c3e92c792d7c64 Mon Sep 17 00:00:00 2001 From: tongfei <244188119@qq.com> Date: Fri, 24 Nov 2023 17:30:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=9E=E9=80=80=E7=AE=B1=E5=BA=93=E5=AD=98-?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/BoxInventoryService.cs | 40 ++++++++++++++----- 1 file changed, 31 insertions(+), 9 deletions(-) diff --git a/src/WMS.Web.Domain/Services/BoxInventoryService.cs b/src/WMS.Web.Domain/Services/BoxInventoryService.cs index 54ae16af..71f6b454 100644 --- a/src/WMS.Web.Domain/Services/BoxInventoryService.cs +++ b/src/WMS.Web.Domain/Services/BoxInventoryService.cs @@ -904,16 +904,38 @@ namespace WMS.Web.Domain.Services //上架 if (dto.InventoryInOutType == (int)InventoryInOutType.In) { - //3.1上架的时候:箱一定是不存在于箱库存当中的,有则返回提示“已有箱库存,不需要再扫上架” - var ishave = boxInventorys.Where(x => x.BoxId == dto.BoxId).Any(); - if (ishave) - return Result.ReFailure(ResultCodes.BoxInventoryHaveInventoryError); + //3.1上架的时候:箱库存可能存在,也可能不存在的两种情况 + var boxInventory = boxInventorys.Where(x => x.BoxId == dto.BoxId).FirstOrDefault(); - //3.2组装要新增的箱库存信息:箱和明细和序列号 - var addEntity = _mapper.Map(dto); - addEntity.Details = _mapper.Map>(dto.Details); - - add_entitys.Add(addEntity); + if (boxInventory == null) + { + //3.2组装要新增的箱库存信息:箱和明细和序列号 + var addEntity = _mapper.Map(dto); + addEntity.Details = _mapper.Map>(dto.Details); + add_entitys.Add(addEntity); + } + else + { + var update_entity = boxInventory; + update_entity.Details = boxInventory.Details; + //3.3遍历dto明细 + foreach (var dtoItem in dto.Details) + { + //找到原来的箱库存对应要改变的物料:这个一定是存在的,不存在就有问题 + var updateDetail = update_entity.Details.Where(x => x.MaterialId == dtoItem.MaterialId).FirstOrDefault(); + if (updateDetail == null) + { + var det =_mapper.Map(dtoItem); + update_entity.Details.Add(det); + } + else + { + updateDetail.Qty = updateDetail.Qty + dtoItem.Qty; + updateDetail.SerialNumbers.AddRange(dtoItem.SerialNumbers); + } + } + update_entitys.Add(update_entity); + } //4.1即时库存:组装入库 foreach (var item in dto.Details)