From 257d09aff7ec7b858b037607869d23ec61ac75bc Mon Sep 17 00:00:00 2001
From: helongyang <647556386@qq.com>
Date: 星期二, 19 八月 2025 09:03:49 +0800
Subject: [PATCH] 1
---
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfoService.cs | 72 ++++++++++++++++++++++-------------
1 files changed, 45 insertions(+), 27 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 a50e159..9321114 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"
@@ -109,7 +109,7 @@
public List<Dt_ProStockInfo> GetUseableStocks(Dt_MesRworkOutboundOrder mesRworkOutboundOrder)
{
//杞崲鎴� 鎴愬搧浠撲粨搴撲俊鎭幏鍙栧熬鏁板睘鎬х殑璐т綅
- Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x=>x.WarehouseCode==WarehouseEnum.HA71.ToString());
+ Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x=>x.WarehouseId== mesRworkOutboundOrder.WarehouseId);
List<string> locationCodes = _basicRepository.LocationInfoRepository.GetCanOutLocationCodes(warehouse.WarehouseId);
return BaseDal.GetProStocks(mesRworkOutboundOrder, locationCodes);
}
@@ -125,10 +125,14 @@
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);
+ float stockTotalQuantity = stockInfos.Select(x => x.proStockInfoDetails.Where(x => x.ProductCode == outOrderDetail.PCode && x.ProductVersion.StartsWith(outOrderDetail.PVer.Substring(0, 1))
+ && (isCanLot ? isCanLot : x.ProductCode == outOrderDetail.PLot)
+ && (isCanDate ? isCanDate : x.DateCode == outOrderDetail.DateCode))
+ .Sum(v => v.StockPcsQty - v.OutboundQuantity)).Sum(x => x);
+ //stockInfos = stockInfos.OrderBy(x => x.Id).ToList();
+
if (stockTotalQuantity >= needQuantity)//搴撳瓨澶�
{
int index = 0;
@@ -137,13 +141,13 @@
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)
+ && (isCanLot ? isCanLot : x.ProductCode == outOrderDetail.PLot)
&& (isCanDate ? isCanDate : x.DateCode == outOrderDetail.DateCode))
.Sum(x => x.StockPcsQty - x.OutboundQuantity);
if (useableStockQuantity < needQuantity && useableStockQuantity >0)
{
stockInfo.proStockInfoDetails.Where(x => x.ProductCode == outOrderDetail.PCode && x.ProductVersion.StartsWith(outOrderDetail.PVer.Substring(0, 1))
- && (isCanLot ? isCanLot : x.BagNo == outOrderDetail.PLot)
+ && (isCanLot ? isCanLot : x.ProductCode == outOrderDetail.PLot)
&& (isCanDate ? isCanDate : x.DateCode == outOrderDetail.DateCode)).ToList().ForEach(x => x.OutboundQuantity = x.StockPcsQty);
needQuantity -= useableStockQuantity;
}
@@ -154,7 +158,7 @@
//婊¤冻鏉′欢杩涜鍒嗛厤
if ((x.StockPcsQty > x.OutboundQuantity)
&& x.ProductCode == outOrderDetail.PCode && x.ProductVersion.StartsWith(outOrderDetail.PVer.Substring(0, 1))
- && (isCanLot ? isCanLot : x.BagNo == outOrderDetail.PLot)
+ && (isCanLot ? isCanLot : x.ProductCode == outOrderDetail.PLot)
&& (isCanDate ? isCanDate : x.DateCode == outOrderDetail.DateCode))
{
if (x.StockPcsQty - x.OutboundQuantity >= needQuantity)
@@ -233,7 +237,10 @@
public List<Dt_ProStockInfo> GetOutboundStocks(List<Dt_ProStockInfo> stockInfos, Dt_ErpProScrapSheetDetail 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);
+ float stockTotalQuantity = stockInfos.Select(x => x.proStockInfoDetails.Where(x =>
+ x.ProductCode == outOrderDetail.ScrapProCode
+ && x.ProductVersion == outOrderDetail.ScrapProVersion
+ && x.LotNumber == outOrderDetail.ScrapProLotNo).Sum(v => v.StockPcsQty - v.OutboundQuantity)).Sum(x => x);
//stockInfos = stockInfos.OrderBy(x => x.Id).ToList();
if (stockTotalQuantity >= needQuantity)//搴撳瓨澶�
{
@@ -293,9 +300,12 @@
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);
+ float stockTotalQuantity = stockInfos.Select(x => x.proStockInfoDetails.Where(x => x.ProductCode == mesRworkOutboundOrder.ProductCode
+ && x.ProductVersion == mesRworkOutboundOrder.ProductVersion
+ && (isCanDate ? isCanDate : x.DateCode == mesRworkOutboundOrder.DateCode))
+ .Sum(v => v.StockPcsQty - v.OutboundQuantity)).Sum(x => x);
+ //stockInfos = stockInfos.OrderBy(x => x.Id).ToList();
if (stockTotalQuantity >= needQuantity)//搴撳瓨澶�
{
int index = 0;
@@ -303,8 +313,7 @@
{
Dt_ProStockInfo stockInfo = stockInfos[index];
float useableStockQuantity = stockInfo.proStockInfoDetails
- .Where(x => x.SaleOrder == mesRworkOutboundOrder.SaleOrder
- && x.ProductCode == mesRworkOutboundOrder.ProductCode
+ .Where(x => x.ProductCode == mesRworkOutboundOrder.ProductCode
&& x.ProductVersion == mesRworkOutboundOrder.ProductVersion
&& (isCanDate? isCanDate: x.DateCode == mesRworkOutboundOrder.DateCode))
.Sum(x => x.StockPcsQty - x.OutboundQuantity);
@@ -317,7 +326,7 @@
{
stockInfo.proStockInfoDetails.ForEach(x =>
{
- if ((x.StockPcsQty > x.OutboundQuantity) && x.SaleOrder == mesRworkOutboundOrder.SaleOrder
+ if ((x.StockPcsQty > x.OutboundQuantity)
&& x.ProductCode == mesRworkOutboundOrder.ProductCode
&& x.ProductVersion == mesRworkOutboundOrder.ProductVersion
&& (isCanDate ? isCanDate : x.DateCode == mesRworkOutboundOrder.DateCode))
@@ -366,11 +375,14 @@
{
try
{
- List<Dt_ProStockInfo> proStockInfo = BaseDal.QueryData(x => x.WarehouseId == warehouseId);
- List<int> proStockId = proStockInfo.Select(x => x.Id).ToList();
- List<Dt_ProStockInfoDetail> proStockInfoDetails = BaseDal.Db.Queryable<Dt_ProStockInfoDetail>().Where(x => proStockId.Contains(x.OutDetailId)).ToList();
- List<string> proCode = proStockInfoDetails.Select(x => x.ProductCode).ToList();
- return WebResponseContent.Instance.OK(data: proCode);
+ //鑾峰彇鎵�鏈夊簱瀛樺瀷鍙�
+ List<Dt_ProStockInfoDetail> proStockInfoDetails = _stockRepository.ProStockInfoRepository.Db.Queryable<Dt_ProStockInfo, Dt_ProStockInfoDetail>((master, detail) => master.Id == detail.ProStockId)
+ .Where((master, detail) => master.WarehouseId == warehouseId)
+ .Select((master, detail) => detail)
+ .ToList();
+ //杩囨护閲嶅
+ List<string> proCode = proStockInfoDetails.Select(x => x.ProductCode).Distinct().ToList();
+ return WebResponseContent.Instance.OK("鎴愬姛",data: proCode);
}
catch (Exception ex)
{
@@ -382,11 +394,14 @@
{
try
{
- List<Dt_ProStockInfo> proStockInfo = BaseDal.QueryData(x => x.WarehouseId == warehouseId);
- List<int> proStockId = proStockInfo.Select(x => x.Id).ToList();
- List<Dt_ProStockInfoDetail> proStockInfoDetails = BaseDal.Db.Queryable<Dt_ProStockInfoDetail>().Where(x => scrapProCode.Contains(x.ProductCode) && proStockId.Contains(x.OutDetailId)).ToList();
- List<string> productVersion = proStockInfoDetails.Select(x => x.ProductVersion).ToList();
- return WebResponseContent.Instance.OK(data: productVersion);
+ //鑾峰彇鎸囧畾浜у搧搴撳瓨鐗堟湰
+ List<Dt_ProStockInfoDetail> proStockInfoDetails = _stockRepository.ProStockInfoRepository.Db.Queryable<Dt_ProStockInfo, Dt_ProStockInfoDetail>((master, detail) => master.Id == detail.ProStockId)
+ .Where((master, detail) => master.WarehouseId == warehouseId && detail.ProductCode== scrapProCode)
+ .Select((master, detail) => detail)
+ .ToList();
+ //杩囨护閲嶅
+ List<string> productVersion = proStockInfoDetails.Select(x => x.ProductVersion).Distinct().ToList();
+ return WebResponseContent.Instance.OK("鎴愬姛",data: productVersion);
}
catch (Exception ex)
{
@@ -398,11 +413,14 @@
{
try
{
- List<Dt_ProStockInfo> proStockInfo = BaseDal.QueryData(x => x.WarehouseId == warehouseId);
- List<int> proStockId = proStockInfo.Select(x => x.Id).ToList();
- List<Dt_ProStockInfoDetail> proStockInfoDetails = BaseDal.Db.Queryable<Dt_ProStockInfoDetail>().Where(x => scrapProCode.Contains(x.ProductCode) && proStockId.Contains(x.OutDetailId)).ToList();
- List<string> lotNumber = proStockInfoDetails.Select(x => x.LotNumber).ToList();
- return WebResponseContent.Instance.OK(data: lotNumber);
+ //鑾峰彇鎸囧畾浜у搧搴撳瓨鎵规
+ List<Dt_ProStockInfoDetail> proStockInfoDetails = _stockRepository.ProStockInfoRepository.Db.Queryable<Dt_ProStockInfo, Dt_ProStockInfoDetail>((master, detail) => master.Id == detail.ProStockId)
+ .Where((master, detail) => master.WarehouseId == warehouseId && detail.ProductCode == scrapProCode)
+ .Select((master, detail) => detail)
+ .ToList();
+ //杩囨护閲嶅
+ List<string> lotNumber = proStockInfoDetails.Select(x => x.LotNumber).Distinct().ToList();
+ return WebResponseContent.Instance.OK("鎴愬姛", data: lotNumber);
}
catch (Exception ex)
{
--
Gitblit v1.9.3