From 61ece19b5b178d1b23bed16c733b01af1185f838 Mon Sep 17 00:00:00 2001
From: 海波 张 <2956280567@qq.com>
Date: 星期日, 20 七月 2025 23:11:43 +0800
Subject: [PATCH] 0720

---
 wms/LocationHelper.cs |   59 +++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 47 insertions(+), 12 deletions(-)

diff --git a/wms/LocationHelper.cs b/wms/LocationHelper.cs
index 8e4ee1b..9dbae35 100644
--- a/wms/LocationHelper.cs
+++ b/wms/LocationHelper.cs
@@ -105,6 +105,19 @@
             return result;
         }
 
+        internal static List<string> GetConnectionListNoYN(string S_AREA_CODE)
+        {
+            var db = new SqlHelper<object>().GetInstance();
+            var ConnectionList = db.Queryable<Location>().Where(s => s.S_AREA_CODE == S_AREA_CODE ).OrderBy(a => a.N_ROW).OrderBy(a => a.N_COL).ToList();
+            List<string> result = new List<string>();
+            foreach (var item in ConnectionList)
+            {
+                result.Add(item.S_CODE);
+            }
+            return result;
+        }
+
+
         /// <summary>
         /// 鑾峰彇璐т綅淇℃伅,鍙傛暟搴撳尯缂栧彿
         /// </summary>
@@ -163,7 +176,17 @@
             var db = new SqlHelper<object>().GetInstance();
             
           return db.Queryable<WMSTask>().Where(a => ( a.S_START_LOC.Contains(jbLoc)&& a.S_SCHEDULE_TYPE.Contains(type)  && a.S_B_STATE != "瀹屾垚" && a.S_B_STATE != "鍙栨秷" && a.S_B_STATE != "澶辫触" && a.S_B_STATE != "宸插畬鎴� && a.S_B_STATE != "鏈墽琛�)).OrderBy(b=>b.T_CREATE).First();
-        
+        }
+
+        /// <summary>
+        /// 杩斿洖鍑哄簱agv浠诲姟
+        /// </summary>
+        internal static WMSTask GetConnectionTask(string jbLoc, string type,DateTime time)
+        {
+            var db = new SqlHelper<object>().GetInstance();
+
+            return db.Queryable<WMSTask>().Where(a => (a.S_START_LOC.Contains(jbLoc) && a.S_SCHEDULE_TYPE.Contains(type) && a.S_B_STATE != "瀹屾垚" && a.S_B_STATE != "鍙栨秷" && a.S_B_STATE != "澶辫触" && a.S_B_STATE != "宸插畬鎴� && a.S_B_STATE != "鏈墽琛�&&a.T_CREATE<time)).OrderBy(b => b.T_CREATE).First();
+
         }
 
         /// <summary>
@@ -325,8 +348,13 @@
                 //鑾峰彇string鎺ラ┏浣嶉泦鍚�                 var connectionList = LocationHelper.GetConnectionList(CONNECTION);
 
+
+                var connectionListNoYN = LocationHelper.GetConnectionListNoYN(CONNECTION); 
+
                 //涓嶅彲鐢ㄦ帴椹充綅闆嗗悎
-                var flaseConnectionList = LocationHelper.GetConnectionListByst(connectionList);
+                var flaseConnectionList = LocationHelper.GetConnectionListByst(connectionListNoYN);
+
+
 
                 List<Location> jblist = new List<Location>();
 
@@ -341,7 +369,7 @@
                     List<Location> difference = flaseConnectionList
     .Where(loc1 => !balanceConnectionList.Any(loc2 => loc2.S_CODE == loc1.S_CODE))
     .ToList();
-
+                    
                     jblist = difference;
 
 
@@ -404,8 +432,13 @@
                     {
                         if (rowList.Count(a => a.N_ROADWAY == item2.CONNEC_ROADWAY) > 0)
                         {
-                            flag2 = true;
-                            break;
+                            var ConnectionY = db.Queryable<Location>().Where(s => s.S_AREA_CODE == CONNECTION && s.C_ENABLE == "Y" && s.CONNEC_ROADWAY == item2.CONNEC_ROADWAY).First();
+                            if (ConnectionY == null)
+                            {
+                                flag2 = true;
+                                break;
+                            }
+                            
                         }
                     }
 
@@ -463,8 +496,10 @@
                 //鑾峰彇string鎺ラ┏浣嶉泦鍚�                 var connectionList = LocationHelper.GetConnectionList(CONNECTION);
 
+                var connectionListNoYN = LocationHelper.GetConnectionListNoYN(CONNECTION);
+
                 //涓嶅彲鐢ㄦ帴椹充綅闆嗗悎
-                var flaseConnectionList = LocationHelper.GetConnectionListByst(connectionList);
+                var flaseConnectionList = LocationHelper.GetConnectionListByst(connectionListNoYN);
 
                 List<Location> jblist = new List<Location>();
 
@@ -539,8 +574,12 @@
                     {
                         if (rowList.Count(a => a.N_ROADWAY == item2.CONNEC_ROADWAY) > 0)
                         {
-                            flag2 = true;
-                            break;
+                            var ConnectionY = db.Queryable<Location>().Where(s => s.S_AREA_CODE == CONNECTION && s.C_ENABLE == "Y" && s.CONNEC_ROADWAY == item2.CONNEC_ROADWAY).First();
+                            if (ConnectionY == null)
+                            {
+                                flag2 = true;
+                                break;
+                            }
                         }
                     }
 
@@ -1265,10 +1304,6 @@
 
                 var balanceConnectionList = LocationHelper.GetConnectionListByst(connectionList);
 
-
-                
-
-                
 
                 LogHelper.Info($"ZCSendTask鍑哄簱浠诲姟鎺掗櫎涓嶅彲鐢ㄥ贩閬撳紑濮�, "Mes浠诲姟涓嬪彂");
                 //浣滀笟娴佺▼鐨勫贩閬�
--
Gitblit v1.9.1