From a6e0ea9ce13e791f3edae4edffeb3be3ccb760be Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期一, 31 三月 2025 02:14:59 +0800 Subject: [PATCH] 版本更新 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfoService.cs | 47 ++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 38 insertions(+), 9 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfoService.cs" index 23494f2..e4efd48 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfoService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfoService.cs" @@ -4,6 +4,7 @@ using System.Text; using System.Threading.Tasks; using WIDESEA_Common.StockEnum; +using WIDESEA_Common.WareHouseEnum; using WIDESEA_Core; using WIDESEA_Core.BaseServices; using WIDESEA_Core.Enums; @@ -51,6 +52,7 @@ { return content.Error($"鏈壘鍒皗item?.BagNo}搴撳瓨"); } + //鍒ゆ柇鏄庣粏鏄惁鍏ㄩ儴鎵嚭 if (proStockInfoDetail.StockPcsQty==item.StockPcsQty) { @@ -101,7 +103,9 @@ /// <returns></returns> public List<Dt_ProStockInfo> GetUseableStocks(Dt_MesRworkOutboundOrder mesRworkOutboundOrder) { - List<string> locationCodes = _basicRepository.LocationInfoRepository.GetCanOutLocationCodes(mesRworkOutboundOrder.WarehouseId); + //杞崲鎴� 鎴愬搧浠撲粨搴撲俊鎭幏鍙栧熬鏁板睘鎬х殑璐т綅 + Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x=>x.WarehouseCode==WarehouseEnum.HA71.ToString()); + List<string> locationCodes = _basicRepository.LocationInfoRepository.GetCanOutLocationCodes(warehouse.WarehouseId); return BaseDal.GetProStocks(mesRworkOutboundOrder, locationCodes); } /// <summary> @@ -112,6 +116,8 @@ List<Dt_ProStockInfo> assignOutStocks =new List<Dt_ProStockInfo>(); float stockTotalQuantity = stockInfos.Select(x => x.proStockInfoDetails.Sum(v => v.StockPcsQty - v.OutboundQuantity)).Sum(x => x); //stockInfos = stockInfos.OrderBy(x => x.Id).ToList(); + bool isCanLot = string.IsNullOrEmpty(outOrderDetail.PLot); + bool isCanDate = string.IsNullOrEmpty(outOrderDetail.DateCode); if (stockTotalQuantity >= needQuantity)//搴撳瓨澶� { int index = 0; @@ -119,7 +125,9 @@ { Dt_ProStockInfo stockInfo = stockInfos[index]; float useableStockQuantity = stockInfo.proStockInfoDetails - .Where(x => x.SaleOrder == outOrderDetail.SaleOrder && x.ProductCode==outOrderDetail.PCode && x.ProductVersion==outOrderDetail.PVer) + .Where(x => x.SaleOrder == outOrderDetail.SaleOrder && x.ProductCode == outOrderDetail.PCode && x.ProductVersion == outOrderDetail.PVer + && (isCanLot ? isCanLot : x.LotNumber == outOrderDetail.PLot) + && (isCanDate ? isCanDate : x.DateCode == outOrderDetail.DateCode)) .Sum(x => x.StockPcsQty - x.OutboundQuantity); if (useableStockQuantity < needQuantity) { @@ -130,7 +138,10 @@ { stockInfo.proStockInfoDetails.ForEach(x => { - if ((x.StockPcsQty > x.OutboundQuantity) && x.SaleOrder == outOrderDetail.SaleOrder && x.ProductCode == outOrderDetail.PCode && x.ProductVersion == outOrderDetail.PVer) + if ((x.StockPcsQty > x.OutboundQuantity) && x.SaleOrder == outOrderDetail.SaleOrder + && x.ProductCode == outOrderDetail.PCode && x.ProductVersion == outOrderDetail.PVer + && (isCanLot ? isCanLot : x.LotNumber == outOrderDetail.PLot) + && (isCanDate ? isCanDate : x.DateCode == outOrderDetail.DateCode)) { if (x.StockPcsQty - x.OutboundQuantity >= needQuantity) { @@ -155,7 +166,9 @@ { Dt_ProStockInfo stockInfo = stockInfos[i]; float useableStockQuantity = stockInfo.proStockInfoDetails - .Where(x => x.SaleOrder == outOrderDetail.SaleOrder && x.ProductCode == outOrderDetail.PCode && x.ProductVersion == outOrderDetail.PVer) + .Where(x => x.SaleOrder == outOrderDetail.SaleOrder && x.ProductCode == outOrderDetail.PCode && x.ProductVersion == outOrderDetail.PVer + && (isCanLot ? isCanLot : x.LotNumber == outOrderDetail.PLot) + && (isCanDate ? isCanDate : x.DateCode == outOrderDetail.DateCode)) .Sum(x => x.StockPcsQty - x.OutboundQuantity); if (useableStockQuantity < needQuantity) { @@ -166,7 +179,10 @@ { stockInfo.proStockInfoDetails.ForEach(x => { - if (x.StockPcsQty > x.OutboundQuantity && x.SaleOrder == outOrderDetail.SaleOrder && x.ProductCode == outOrderDetail.PCode && x.ProductVersion == outOrderDetail.PVer) + if (x.StockPcsQty > x.OutboundQuantity && x.SaleOrder == outOrderDetail.SaleOrder + && x.ProductCode == outOrderDetail.PCode && x.ProductVersion == outOrderDetail.PVer + && (isCanLot ? isCanLot : x.LotNumber == outOrderDetail.PLot) + && (isCanDate ? isCanDate : x.DateCode == outOrderDetail.DateCode)) { if (x.StockPcsQty - x.OutboundQuantity >= needQuantity) { @@ -195,6 +211,7 @@ List<Dt_ProStockInfo> assignOutStocks = new List<Dt_ProStockInfo>(); float stockTotalQuantity = stockInfos.Select(x => x.proStockInfoDetails.Sum(v => v.StockPcsQty - v.OutboundQuantity)).Sum(x => x); //stockInfos = stockInfos.OrderBy(x => x.Id).ToList(); + bool isCanDate = string.IsNullOrEmpty(mesRworkOutboundOrder.DateCode); if (stockTotalQuantity >= needQuantity)//搴撳瓨澶� { int index = 0; @@ -202,7 +219,10 @@ { Dt_ProStockInfo stockInfo = stockInfos[index]; float useableStockQuantity = stockInfo.proStockInfoDetails - .Where(x => x.SaleOrder == mesRworkOutboundOrder.SaleOrder && x.ProductCode == mesRworkOutboundOrder.ProductCode && x.ProductVersion == mesRworkOutboundOrder.ProductVersion) + .Where(x => x.SaleOrder == mesRworkOutboundOrder.SaleOrder + && x.ProductCode == mesRworkOutboundOrder.ProductCode + && x.ProductVersion == mesRworkOutboundOrder.ProductVersion + && (isCanDate? isCanDate: x.DateCode == mesRworkOutboundOrder.DateCode)) .Sum(x => x.StockPcsQty - x.OutboundQuantity); if (useableStockQuantity < needQuantity) { @@ -213,7 +233,10 @@ { stockInfo.proStockInfoDetails.ForEach(x => { - if ((x.StockPcsQty > x.OutboundQuantity) && x.SaleOrder == mesRworkOutboundOrder.SaleOrder && x.ProductCode == mesRworkOutboundOrder.ProductCode && x.ProductVersion == mesRworkOutboundOrder.ProductVersion) + if ((x.StockPcsQty > x.OutboundQuantity) && x.SaleOrder == mesRworkOutboundOrder.SaleOrder + && x.ProductCode == mesRworkOutboundOrder.ProductCode + && x.ProductVersion == mesRworkOutboundOrder.ProductVersion + && (isCanDate ? isCanDate : x.DateCode == mesRworkOutboundOrder.DateCode)) { if (x.StockPcsQty - x.OutboundQuantity >= needQuantity) { @@ -238,7 +261,10 @@ { Dt_ProStockInfo stockInfo = stockInfos[i]; float useableStockQuantity = stockInfo.proStockInfoDetails - .Where(x => x.SaleOrder == mesRworkOutboundOrder.SaleOrder && x.ProductCode == mesRworkOutboundOrder.ProductCode && x.ProductVersion == mesRworkOutboundOrder.ProductVersion) + .Where(x => x.SaleOrder == mesRworkOutboundOrder.SaleOrder + && x.ProductCode == mesRworkOutboundOrder.ProductCode + && x.ProductVersion == mesRworkOutboundOrder.ProductVersion + && (isCanDate ? isCanDate : x.DateCode == mesRworkOutboundOrder.DateCode)) .Sum(x => x.StockPcsQty - x.OutboundQuantity); if (useableStockQuantity < needQuantity) { @@ -249,7 +275,10 @@ { stockInfo.proStockInfoDetails.ForEach(x => { - if (x.StockPcsQty > x.OutboundQuantity && x.SaleOrder == mesRworkOutboundOrder.SaleOrder && x.ProductCode == mesRworkOutboundOrder.ProductCode && x.ProductVersion == mesRworkOutboundOrder.ProductVersion) + if (x.StockPcsQty > x.OutboundQuantity && x.SaleOrder == mesRworkOutboundOrder.SaleOrder + && x.ProductCode == mesRworkOutboundOrder.ProductCode + && x.ProductVersion == mesRworkOutboundOrder.ProductVersion + && (isCanDate ? isCanDate : x.DateCode == mesRworkOutboundOrder.DateCode)) { if (x.StockPcsQty - x.OutboundQuantity >= needQuantity) { -- Gitblit v1.9.3