diff --git a/src/WMS.Web.Core/Dto/OutStock/SaveOutStockRequest.cs b/src/WMS.Web.Core/Dto/OutStock/SaveOutStockRequest.cs index c27ec8f4..f967a69a 100644 --- a/src/WMS.Web.Core/Dto/OutStock/SaveOutStockRequest.cs +++ b/src/WMS.Web.Core/Dto/OutStock/SaveOutStockRequest.cs @@ -8,7 +8,8 @@ namespace WMS.Web.Core.Dto.OutStock /// /// 出库单保存 /// - public class SaveOutStockRequest + [Serializable] + public class SaveOutStockRequest { /// /// 出库任务单Id @@ -23,6 +24,7 @@ namespace WMS.Web.Core.Dto.OutStock public List Details { get; set; } = new List(); } + [Serializable] public class SaveOutStockDetailsRequest { /// diff --git a/src/WMS.Web.Domain/Services/OutStockService.cs b/src/WMS.Web.Domain/Services/OutStockService.cs index 507b935c..50cbcb05 100644 --- a/src/WMS.Web.Domain/Services/OutStockService.cs +++ b/src/WMS.Web.Domain/Services/OutStockService.cs @@ -125,7 +125,9 @@ namespace WMS.Web.Domain.Services //如果是按箱出库从库存拿取数据 if (dto.Method == 1) { + var oldDetails = dto.Details.Clone(); dto.Details.Clear(); + //获取箱子对应的所有库存 //过滤掉不同仓库和不同组织的 boxInventoryList = boxInventoryList.Where(w => w.StockCode == outStockTask.StockCode && w.OrgCode == outStockTask.OrgCode).ToList(); @@ -146,6 +148,13 @@ namespace WMS.Web.Domain.Services var dtod = _mapper.Map(b); dtod.BoxId = box.BoxId; dtod.SubStockCode = box.SubStockCode; + var oldd = oldDetails.FirstOrDefault(f=>f.BoxId==box.BoxId&&f.MaterialNumber.Equals(dtod.MaterialNumber)); + if(oldd==null) + return Result.ReFailure(ResultCodes.BoxMateriaNoData); + dtod.BoxLength = oldd.BoxLength; + dtod.BoxWide = oldd.BoxWide; + dtod.BoxHigh = oldd.BoxHigh; + dtod.BoxWeight = oldd.BoxWeight; dto.Details.Add(dtod); } }