From 89388ea94e9bd110612f4640a386d4bca08ca639 Mon Sep 17 00:00:00 2001 From: tongfei <244188119@qq.com> Date: Mon, 27 Nov 2023 13:34:38 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9D=9E=E9=87=87=E8=B4=AD=E5=85=A5=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Domain/Services/InStockService.cs | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) 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)