From e22f576466f897ff3590f3f595387b40a8474d03 Mon Sep 17 00:00:00 2001 From: tongfei <244188119@qq.com> Date: Thu, 30 Nov 2023 18:05:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E7=A4=BA=E8=AF=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Domain/Services/InStockService.cs | 15 +++++++++++++-- src/WMS.Web.Domain/Values/ResultCodes.cs | 4 +++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/WMS.Web.Domain/Services/InStockService.cs b/src/WMS.Web.Domain/Services/InStockService.cs index 1d1583f0..0a1a2d93 100644 --- a/src/WMS.Web.Domain/Services/InStockService.cs +++ b/src/WMS.Web.Domain/Services/InStockService.cs @@ -489,8 +489,19 @@ namespace WMS.Web.Domain.Services //3.比对:false为比对失败; bool isRight = boxDetails.All(x => task_details.Any(t => t.MaterialId == x.MaterialId && t.AccruedQty >= x.Qty)) && boxDetails.Count <= task_details.Count; - if (!isRight) - return Result.ReFailure(ResultCodes.ContrastError); + if (!isRight) + { + var qtyIsError= boxDetails.All(x => task_details.Any(t => t.MaterialId == x.MaterialId && t.AccruedQty < x.Qty)); + + if (boxDetails.Count> task_details.Count && qtyIsError) + return Result.ReFailure(ResultCodes.ContrastError); + else if(qtyIsError) + return Result.ReFailure(ResultCodes.Contrast_Qty_Error); + else + return Result.ReFailure(ResultCodes.Contrast_Count_Error); + + } + //4.是否任务单存在绑定箱号判断:存在的话,就不能收货或者非采购上架 bool isHave = task.Boxs.Where(x => dto.BoxBillNos.Contains(x.BoxBillNo)).Any(); diff --git a/src/WMS.Web.Domain/Values/ResultCodes.cs b/src/WMS.Web.Domain/Values/ResultCodes.cs index eb53d24b..eb08f149 100644 --- a/src/WMS.Web.Domain/Values/ResultCodes.cs +++ b/src/WMS.Web.Domain/Values/ResultCodes.cs @@ -43,7 +43,9 @@ namespace WMS.Web.Domain.Values public static ValueTuple ErpStockNoData = (900000, "Erp仓库信息不完整"); public static ValueTuple Box_NoBind_Task_Data = (80001, "该箱号不在收货信息中,请核对再试!"); public static ValueTuple OrderNoData = (80002, "单据信息不存在,请核对后再试!"); - public static ValueTuple ContrastError = (80003, "箱物料对应的采购订单匹配失败,请核对后再试!"); + public static ValueTuple ContrastError = (80003, "箱内产品和数量与来源单不一致"); + public static ValueTuple Contrast_Count_Error = (80003, "箱内产品和来源单不一致"); + public static ValueTuple Contrast_Qty_Error = (80003, "箱内产品数量超过可入库数量"); public static ValueTuple ErpOrgError = (80004, "获取Erp相关组织数据失败,请稍候再试!"); public static ValueTuple ErpSupplierError = (80005, "获取Erp相关供应商数据失败,请稍候再试!");