diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
index ccff5761..6befc36a 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
@@ -1792,6 +1792,11 @@
仓库编码
+
+
+ 所选物料
+
+
箱号集合
diff --git a/src/WMS.Web.Core/Dto/InStockTask/ContrastMaterialsRequest.cs b/src/WMS.Web.Core/Dto/InStockTask/ContrastMaterialsRequest.cs
index 54a5ddbf..9f739d44 100644
--- a/src/WMS.Web.Core/Dto/InStockTask/ContrastMaterialsRequest.cs
+++ b/src/WMS.Web.Core/Dto/InStockTask/ContrastMaterialsRequest.cs
@@ -23,6 +23,11 @@ namespace WMS.Web.Core.Dto.InStockTask
[Required(ErrorMessage = "仓库不能为空")]
public string StockCode { get; set; }
+ ///
+ /// 所选物料
+ ///
+ public string MaterialNumber { get; set; }
+
///
/// 箱号集合
///
diff --git a/src/WMS.Web.Domain/Services/InStockService.cs b/src/WMS.Web.Domain/Services/InStockService.cs
index 4b7a3c7a..2639ed7f 100644
--- a/src/WMS.Web.Domain/Services/InStockService.cs
+++ b/src/WMS.Web.Domain/Services/InStockService.cs
@@ -653,6 +653,14 @@ namespace WMS.Web.Domain.Services
if (boxs == null || boxs.Count == 0)
return Result.ReFailure(ResultCodes.BoxNoData);
+ //判断箱不存在所选的物料
+ foreach (var item in boxs)
+ {
+ var isAnyHave= item.Details.Any(x => x.MaterialNumber == dto.MaterialNumber);
+ if(!isAnyHave)
+ return Result.ReFailure(item.BoxBillNo+ResultCodes.BoxNoMaterialError.Item2, ResultCodes.BoxNoMaterialError.Item1);
+ }
+
//3.判断箱里面对应的物料是否存在;不存在就报错
foreach (var item in boxs)
{
diff --git a/src/WMS.Web.Domain/Values/ResultCodes.cs b/src/WMS.Web.Domain/Values/ResultCodes.cs
index c8cdf1a6..795dfd25 100644
--- a/src/WMS.Web.Domain/Values/ResultCodes.cs
+++ b/src/WMS.Web.Domain/Values/ResultCodes.cs
@@ -46,6 +46,7 @@ namespace WMS.Web.Domain.Values
public static ValueTuple BoxNoData = (80000, "系统找不到该箱号");
public static ValueTuple InStockTaskBoxIsHaveData = (80000, "该箱已收货");
public static ValueTuple BoxBillNoError = (80000, "请扫描箱码作为箱号");
+ public static ValueTuple BoxNoMaterialError = (80000, "该箱不存在对应所需的物料");
public static ValueTuple BoxMateriaNoData = (800010, "箱对应物料信息不存在");
public static ValueTuple MateriaNoData = (800011, "产品信息不存在");
public static ValueTuple BoxInventorySerialNumbersNoData = (800012, "序列号不存在于箱库存数据中");