From fb745c842df36edc5101291a7f239c11c97bcc2f Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期四, 11 九月 2025 16:46:33 +0800 Subject: [PATCH] 最新代码更新,BST,MES部分 --- 项目代码/WMS/WMSServices/WIDESEA_StockService/StockInfoService.cs | 49 ++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 38 insertions(+), 11 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_StockService/StockInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_StockService/StockInfoService.cs" index 029c981..b4cc9c5 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_StockService/StockInfoService.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_StockService/StockInfoService.cs" @@ -71,7 +71,7 @@ var weight = saveModel.MainData["weight"].ObjToInt(); //骞呭 var wide = saveModel.MainData["wide"].ObjToInt(); - Dt_MaterielInfo? materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x=>x.MaterielCode== materSn); + Dt_MaterielInfo? materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == materSn); if (materielInfo==null) { return content.Error("鏈壘鍒扮墿鏂欎俊鎭�"); @@ -90,7 +90,7 @@ PalletType = 1, WarehouseId=warehouseId, StockAttribute= materielInfo.MaterielSourceType, - StockStatus=StockStatusEmun.鎵嬪姩缁勭洏鏆傚瓨.ObjToInt(), + StockStatus= StockStatusEmun.鎵嬪姩缁勭洏鏆傚瓨.ObjToInt(), MaterielSpec=materielInfo.MaterielSpec, Unit=materielInfo.MaterielUnit, MaterielThickness=thickness, @@ -114,21 +114,48 @@ return content; } - public List<Dt_StockInfo> GetUseableStocks(string materielCode, string batchNo, int warehoseId) + public List<Dt_StockInfo> GetUseableStocks(int materielId,decimal width, int warehoseId) { List<string> locationCodes = _basicRepository.LocationInfoRepository.GetCanOutLocationCodes(warehoseId); - return BaseDal.GetStockInfos(materielCode, batchNo, locationCodes); + return BaseDal.GetStockInfos(materielId,width, locationCodes); } - public List<Dt_StockInfo> GetUseableStocks(string materielCode, string batchNo, string palletcode, int warehoseId) + /// <summary> + /// 鍒嗛厤瀹為檯搴撳瓨 + /// </summary> + /// <returns></returns> + public List<Dt_StockInfo> GetOutboundStocks(List<Dt_StockInfo> stockInfos, decimal needQuantity) { - Dt_StockInfo stockInfo = BaseDal.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletcode && x.WarehouseId == warehoseId).First(); - - List<string> locationCodes = _basicRepository.LocationInfoRepository.GetCanOutLocationCodes(stockInfo.LocationCode); - - return BaseDal.GetStockInfos(materielCode, batchNo, locationCodes); + List<Dt_StockInfo> outStocks = new List<Dt_StockInfo>(); + //鑾峰彇搴撳瓨鍙敤鏁伴噺 + decimal stockTotalQuantity = stockInfos.Sum(x => x.StockLength-x.StockOutLength); + if (stockTotalQuantity >= needQuantity)//搴撳瓨澶� + { + int index = 0; + while (needQuantity > 0) + { + Dt_StockInfo stockInfo = stockInfos[index]; + decimal useableStockQuantity = stockInfo.StockLength-stockInfo.StockOutLength; + if (useableStockQuantity < needQuantity && useableStockQuantity > 0) + { + stockInfo.StockOutLength=stockInfo.StockLength; + needQuantity -= useableStockQuantity; + } + else + { + stockInfo.StockOutLength += needQuantity; + needQuantity = 0; + } + outStocks.Add(stockInfo); + index++; + } + } + else + { + throw new Exception("搴撳瓨涓嶈冻"); + } + return outStocks; } - } } -- Gitblit v1.9.3