From c2cdf0b95d4c9214646c860609b8c838d6ffa779 Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期五, 15 八月 2025 13:42:10 +0800 Subject: [PATCH] AGV,成品库代码更新上传 --- 项目代码/WMS/WMSServices/WIDESEA_StockService/ProStockInfoService.cs | 241 ------------------------------------------------ 1 files changed, 0 insertions(+), 241 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_StockService/ProStockInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_StockService/ProStockInfoService.cs" index 99a9bb7..b15fe63 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_StockService/ProStockInfoService.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_StockService/ProStockInfoService.cs" @@ -96,246 +96,5 @@ } return content; } - //鏌ユ壘鍙敤搴撳瓨 - public List<Dt_ProStockInfo> GetUseableStocks(int warehoseId,Dt_ProOutOrderDetail proOutOrderDetail) - { - List<string> locationCodes = _basicRepository.LocationInfoRepository.GetCanOutLocationCodes(warehoseId); - return BaseDal.GetProStocks(proOutOrderDetail,locationCodes); - } - /// <summary> - /// MES鎻愬簱鍙敤搴撳瓨 - /// </summary> - /// <returns></returns> - public List<Dt_ProStockInfo> GetUseableStocks(Dt_MesRworkOutboundOrder mesRworkOutboundOrder) - { - //杞崲鎴� 鎴愬搧浠撲粨搴撲俊鎭幏鍙栧熬鏁板睘鎬х殑璐т綅 - 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> - /// 鑾峰彇鍑哄簱搴撳瓨 - /// </summary> - public List<Dt_ProStockInfo> GetOutboundStocks(List<Dt_ProStockInfo> stockInfos, Dt_ProOutOrderDetail outOrderDetail, float needQuantity, out float residueQuantity) - { - 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; - while (needQuantity > 0) - { - Dt_ProStockInfo stockInfo = stockInfos[index]; - float useableStockQuantity = stockInfo.proStockInfoDetails - .Where(x => x.ProductCode == outOrderDetail.PCode && x.ProductVersion.StartsWith(outOrderDetail.PVer.Substring(0,1)) - && (isCanLot ? isCanLot : x.BagNo == outOrderDetail.PLot) - && (isCanDate ? isCanDate : x.DateCode == outOrderDetail.DateCode)) - .Sum(x => x.StockPcsQty - x.OutboundQuantity); - if (useableStockQuantity < needQuantity) - { - stockInfo.proStockInfoDetails.Where(x => x.ProductCode == outOrderDetail.PCode && x.ProductVersion.StartsWith(outOrderDetail.PVer.Substring(0, 1)) - && (isCanLot ? isCanLot : x.BagNo == outOrderDetail.PLot) - && (isCanDate ? isCanDate : x.DateCode == outOrderDetail.DateCode)).ToList().ForEach(x => x.OutboundQuantity = x.StockPcsQty); - needQuantity -= useableStockQuantity; - } - else - { - stockInfo.proStockInfoDetails.ForEach(x => - { - //婊¤冻鏉′欢杩涜鍒嗛厤 - if ((x.StockPcsQty > x.OutboundQuantity) - && x.ProductCode == outOrderDetail.PCode && x.ProductVersion.StartsWith(outOrderDetail.PVer.Substring(0, 1)) - && (isCanLot ? isCanLot : x.BagNo == outOrderDetail.PLot) - && (isCanDate ? isCanDate : x.DateCode == outOrderDetail.DateCode)) - { - if (x.StockPcsQty - x.OutboundQuantity >= needQuantity) - { - x.OutboundQuantity += needQuantity; - needQuantity = 0; - x.OutDetailSaleNo = outOrderDetail.SaleOrder; - x.OutDetailId = outOrderDetail.Id; - } - else - { - needQuantity -= (x.StockPcsQty - x.OutboundQuantity); - x.OutboundQuantity = x.StockPcsQty; - x.OutDetailSaleNo = outOrderDetail.SaleOrder; - x.OutDetailId = outOrderDetail.Id; - } - } - }); - } - assignOutStocks.Add(stockInfo); - index++; - } - } - #region 鎴愬搧鍙敤搴撳瓨涓嶈冻涓嶈繘琛屽垎閰� - //else - //{ - // for (int i = 0; i < stockInfos.Count; i++) - // { - // Dt_ProStockInfo stockInfo = stockInfos[i]; - // float useableStockQuantity = stockInfo.proStockInfoDetails - // .Where(x => x.ProductCode == outOrderDetail.PCode && x.ProductVersion == outOrderDetail.PVer - // && (isCanLot ? isCanLot : x.BagNo == outOrderDetail.PLot) - // && (isCanDate ? isCanDate : x.DateCode == outOrderDetail.DateCode)) - // .Sum(x => x.StockPcsQty - x.OutboundQuantity); - // if (useableStockQuantity < needQuantity) - // { - // stockInfo.proStockInfoDetails.ForEach(x => x.OutboundQuantity = x.StockPcsQty); - // needQuantity -= useableStockQuantity; - // } - // else - // { - // stockInfo.proStockInfoDetails.ForEach(x => - // { - // if (x.StockPcsQty > x.OutboundQuantity && x.ProductCode == outOrderDetail.PCode && x.ProductVersion == outOrderDetail.PVer - // && (isCanLot ? isCanLot : x.BagNo == outOrderDetail.PLot) - // && (isCanDate ? isCanDate : x.DateCode == outOrderDetail.DateCode)) - // { - // if (x.StockPcsQty - x.OutboundQuantity >= needQuantity) - // { - // x.OutboundQuantity += needQuantity; - // needQuantity = 0; - // } - // else - // { - // needQuantity -= (x.StockPcsQty - x.OutboundQuantity); - // x.OutboundQuantity = x.StockPcsQty; - // } - // } - // }); - // } - // stockInfo.proStockInfoDetails.ForEach(x => - // { - // x.OutDetailSaleNo = outOrderDetail.SaleOrder; - // x.OutDetailId = outOrderDetail.Id; - // }); - // assignOutStocks.Add(stockInfo); - // } - //} - #endregion - residueQuantity = needQuantity; - return assignOutStocks; - } - /// <summary> - /// 鑾峰彇MES鎻愬簱搴撳瓨 - /// </summary> - public List<Dt_ProStockInfo> GetOutboundStocks(List<Dt_ProStockInfo> stockInfos, Dt_MesRworkOutboundOrder mesRworkOutboundOrder, float needQuantity, out float residueQuantity) - { - 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; - while (needQuantity > 0) - { - Dt_ProStockInfo stockInfo = stockInfos[index]; - float useableStockQuantity = stockInfo.proStockInfoDetails - .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) - { - stockInfo.proStockInfoDetails.ForEach(x => x.OutboundQuantity = x.StockPcsQty); - needQuantity -= useableStockQuantity; - } - else - { - stockInfo.proStockInfoDetails.ForEach(x => - { - 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) - { - x.OutboundQuantity += needQuantity; - needQuantity = 0; - } - else - { - needQuantity -= (x.StockPcsQty - x.OutboundQuantity); - x.OutboundQuantity = x.StockPcsQty; - } - } - }); - } - assignOutStocks.Add(stockInfo); - index++; - } - } - else - { - for (int i = 0; i < stockInfos.Count; i++) - { - Dt_ProStockInfo stockInfo = stockInfos[i]; - float useableStockQuantity = stockInfo.proStockInfoDetails - .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) - { - stockInfo.proStockInfoDetails.ForEach(x => x.OutboundQuantity = x.StockPcsQty); - needQuantity -= useableStockQuantity; - } - else - { - stockInfo.proStockInfoDetails.ForEach(x => - { - 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) - { - x.OutboundQuantity += needQuantity; - needQuantity = 0; - } - else - { - needQuantity -= (x.StockPcsQty - x.OutboundQuantity); - x.OutboundQuantity = x.StockPcsQty; - } - } - }); - } - assignOutStocks.Add(stockInfo); - } - } - residueQuantity = needQuantity; - return assignOutStocks; - } - ////澶勭悊鍑哄簱搴撳瓨 - //public (List<Dt_ProStockInfoDetail>?, List<Dt_ProStockInfoDetail>?) HandleOutProStock(Dt_ProStockInfo proStockInfo) - //{ - // List<Dt_ProStockInfoDetail>? deleteStockDetails = null; - // List<Dt_ProStockInfoDetail>? updateStockDetails = null; - // foreach (var item in proStockInfo.proStockInfoDetails) - // { - // if (item.StockPcsQty==item.OutboundQuantity) - // { - // item.ProOutDetailStatus = StockStatusEmun.鍑哄簱瀹屾垚.ObjToInt(); - // deleteStockDetails.Add(item); - // } - // else if(item.StockPcsQty> item.OutboundQuantity && item.OutboundQuantity>0) - // { - // item.StockPcsQty-=item.OutboundQuantity; - // updateStockDetails.Add(item); - // } - // } - // return (deleteStockDetails, updateStockDetails); - //} } } -- Gitblit v1.9.3