From 63d187526792e6e29bfec07d0e3f0dce07df31b3 Mon Sep 17 00:00:00 2001
From: helongyang <647556386@qq.com>
Date: 星期六, 19 七月 2025 17:32:41 +0800
Subject: [PATCH] 成品报废单新增优化

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfoService.cs |   88 +++++++++++++++++++++++--------------------
 1 files changed, 47 insertions(+), 41 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 00a3ae1..a50e159 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"
@@ -339,47 +339,6 @@
                     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;
         }
@@ -403,5 +362,52 @@
         //    }
         //    return (deleteStockDetails, updateStockDetails);
         //}
+        public WebResponseContent GetProCodeByWarehouse(int warehouseId)
+        {
+            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);
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+
+        public WebResponseContent GetProVersionByCode(string scrapProCode, int warehouseId)
+        {
+            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);
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+
+        public WebResponseContent GetProLotNoByCode(string scrapProCode, int warehouseId)
+        {
+            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);
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
     }
 }

--
Gitblit v1.9.3