From c6e8b600398de38b6684f5fa1eaaaade8562859b Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期六, 20 九月 2025 15:16:56 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/ZhiHuiQiCe/LongDeLiLiKu
---
项目代码/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