diff --git a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 index fd87d6f7..4f2c2cc2 100644 Binary files a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 and b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 differ diff --git a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs index a96d9f31..460e5479 100644 --- a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs +++ b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs @@ -82,7 +82,7 @@ namespace WMS.Web.Domain.Services //if (d.DestBoxBillNo.Substring(0, 3) != "CTN") // return Result.ReFailure(ResultCodes.BoxBillNoError); - var res = await CreateBox(d); + var res = await CreateBox(dto); if (!res.IsSuccess) return res; dBox = await _boxRepositories.GetByNo(d.DestBoxBillNo); dto.ForEach(f => f.DestBoxId = dBox.Id); @@ -240,22 +240,28 @@ namespace WMS.Web.Domain.Services /// /// /// - private async Task CreateBox(SaveChangeBoxRecordRequest dto) + private async Task CreateBox(List dto) { //增加一个空箱子 List list = new List(); - OpsBoxResponse response = new OpsBoxResponse() { BoxBillNo = dto.DestBoxBillNo }; - foreach (var d in dto.Details) + OpsBoxResponse response = new OpsBoxResponse() { BoxBillNo = dto.First().DestBoxBillNo }; + + var details = dto.SelectMany(s => s.Details); + var materialNumberList= details.GroupBy(g => g.MaterialNumber).Select(s => s.Key).ToList(); + + foreach (var m in materialNumberList) { + var qty = details.Where(w => w.MaterialNumber.Equals(m)).Sum(s => s.Qty); + var serialNumbers = details.Where(w => w.MaterialNumber.Equals(m)).SelectMany(s => s.SerialNumbers); List s = new List(); - foreach (var sd in d.SerialNumbers) + foreach (var sd in serialNumbers) { s.Add(new OpsSerialNumbersResponse() { SerialNumber = sd }); } OpsBoxDetailsResponse dr = new OpsBoxDetailsResponse() { - MaterialNumber = d.MaterialNumber, - Qty = d.Qty, + MaterialNumber = m, + Qty = qty, SerialNumbers = s }; response.Details.Add(dr);