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, "序列号不存在于箱库存数据中");