From c8f338feee0b6003d8f069b1d37fd9b90dd1b7f4 Mon Sep 17 00:00:00 2001
From: 杨前锦 <1010338399@qq.com>
Date: 星期一, 07 七月 2025 17:31:38 +0800
Subject: [PATCH] 印尼佳通优化

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.SXJK/wms/WMSHelper.cs |   18 ++++++++++++++----
 1 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.SXJK/wms/WMSHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.SXJK/wms/WMSHelper.cs
index 9999732..52c4633 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.SXJK/wms/WMSHelper.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.SXJK/wms/WMSHelper.cs
@@ -1360,12 +1360,22 @@
                 }
 
                 // 鏌ヨ鍚屾壒娆″叆搴撻攣鏁伴噺锛屽鏋滈攣鏁伴噺 >= 2 ,鍒欎笉鍐嶄粠銆愮┖鎺掋�鍏ュ簱
-                int lockNum = db.Queryable<Location>().Where(a => a.N_LOCK_STATE == 1 && a.S_LOCK_OP.Trim() == asnNo).Count();
-                LogHelper.Info("鍚屾壒娆″叆搴撻攣鏁伴噺锛� + lockNum, "Mobox");
-                if (end == null && rowNum < 2 && lockNum < 2 )
+                var lockRow = db.Queryable<Location>().Where(a => a.N_LOCK_STATE == 1 && a.S_LOCK_OP.Trim() == asnNo).Take(1).PartitionBy(l => new { l.S_AREA_CODE, l.N_ROW }).ToList();
+                LogHelper.Info("鍚屾壒娆″叆搴撻攣鏁伴噺锛� + lockRow.Count, "Mobox");
+                if (end == null && rowNum < 2 && lockRow.Count < 2 )
                 {
                     string fullerCode = null;
-                    if (rowNum == 1) 
+                    if (lockRow.Count > 0) 
+                    {
+                        var maxLoc = lockRow[0];
+                        var fuller = db.Queryable<TN_Fuller>().Where(a => a.S_AREA_CODE == maxLoc.S_AREA_CODE && a.N_ROW == maxLoc.N_ROW).First();
+                        if (fuller != null)
+                        {
+                            fullerCode = fuller.FULLER_CODE;
+                        }
+                    }
+
+                    if (fullerCode == null && rowNum > 0 ) 
                     {
                         var maxLoc = listMaxCol[0];
                         var fuller = db.Queryable<TN_Fuller>().Where(a => a.S_AREA_CODE == maxLoc.S_AREA_CODE && a.N_ROW == maxLoc.N_ROW).First();

--
Gitblit v1.9.1