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);
}
}