From d42ad8b01195def2a9309930e14f90ff13ad47b1 Mon Sep 17 00:00:00 2001
From: 杨前锦 <1010338399@qq.com>
Date: 星期四, 19 六月 2025 17:24:28 +0800
Subject: [PATCH] 印尼佳通出入库策略优化

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.SXJK/wms/WMSHelper.cs |   34 ++++++++++++++++++++++++++++++----
 1 files changed, 30 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 6838cae..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();
@@ -1503,5 +1513,21 @@
             }
             return weight;
         }
+
+        /// <summary>
+        ///  鏌ヨ鏄惁鏈夐渶瑕佺Щ搴撶殑璐т綅
+        /// </summary>
+        /// <returns></returns>
+        public static float getFurHeight(string VENDOR)
+        {
+            float height = 800;
+            var db = new SqlHelper<object>().GetInstance();
+            var verdor = db.Queryable<TN_VendorList>().Where(a => a.VENDOR == VENDOR).First();
+            if (verdor != null)
+            {
+                height = verdor.FURHEIGHT;
+            }
+            return height;
+        }
     }
 }

--
Gitblit v1.9.1