diff --git a/src/WMS.Web.Domain/Services/InStockService.cs b/src/WMS.Web.Domain/Services/InStockService.cs index 8a5cf7c7..955b31e0 100644 --- a/src/WMS.Web.Domain/Services/InStockService.cs +++ b/src/WMS.Web.Domain/Services/InStockService.cs @@ -344,20 +344,28 @@ namespace WMS.Web.Domain.Services var cureent_serialNumbs = await _serialNumbersRepositories.GetEntityList(dto.Boxs.SelectMany(x => x.Details).SelectMany(x => x.SerialNumbers).ToList()); var current_boxIds= cureent_serialNumbs.GroupBy(x => x.BoxId).Select(x => x.Key).ToList(); + //要改箱的数据集合 var ganenrateChangeBoxs = new List(); + //当前按产品上架的箱子 var dto_box = dto.Boxs.FirstOrDefault(); - var changeBox = new SaveChangeBoxRecordRequest(); - changeBox.DestBoxId = dto_box.BoxId; - foreach (var item in dto_box.Details) - { - var changeBoxRD = new SaveChangeBoxRecordDetailsRequest(); - changeBoxRD.MaterialId = item.MaterialId; - changeBoxRD.Qty = item.Qty; - changeBoxRD.SerialNumbers = item.SerialNumbers; - changeBox.Details.Add(changeBoxRD); - } - ganenrateChangeBoxs.Add(changeBox); + //遍历:序列号对应多个箱 + foreach (var boxId in current_boxIds) + { + //遍历:明细 + var changeBox = new SaveChangeBoxRecordRequest(); + changeBox.DestBoxId = dto_box.BoxId; + foreach (var item in dto_box.Details) + { + var changeBoxRD = new SaveChangeBoxRecordDetailsRequest(); + changeBoxRD.MaterialId = item.MaterialId; + changeBoxRD.Qty = item.Qty; + changeBoxRD.SerialNumbers = item.SerialNumbers; + changeBox.Details.Add(changeBoxRD); + } + ganenrateChangeBoxs.Add(changeBox); + } + //改箱保存操作 var changeBoxSave_Result = await _changeMoveBoxService.ChangeBoxSave(ganenrateChangeBoxs, loginInfo, isTransaction); if (!changeBoxSave_Result.IsSuccess)