From 5321419f5fddb4e877fe90ccd90ebdc1a115af64 Mon Sep 17 00:00:00 2001
From: 海波 张 <2956280567@qq.com>
Date: 星期五, 18 七月 2025 17:29:26 +0800
Subject: [PATCH] 出库修改

---
 wms/LocationHelper.cs |   43 ++++++++++++++++++++++++++++++++-----------
 1 files changed, 32 insertions(+), 11 deletions(-)

diff --git a/wms/LocationHelper.cs b/wms/LocationHelper.cs
index cd09b3f..8e4ee1b 100644
--- a/wms/LocationHelper.cs
+++ b/wms/LocationHelper.cs
@@ -115,7 +115,12 @@
             List<string> result = new List<string>();
             foreach (var item in ConnectionList)
             {
-                result.Add(item.S_CODE);
+                var ConnectionY = db.Queryable<Location>().Where(s => s.S_AREA_CODE == S_AREA_CODE && s.C_ENABLE == "Y" && s.CONNEC_ROADWAY== item.CONNEC_ROADWAY).First();
+                if (ConnectionY==null)
+                {
+                    result.Add(item.S_CODE);
+                }
+               
             }
             return result;
         }
@@ -148,6 +153,17 @@
                 result.Add(re);
             }
             return result.OrderBy(a => a.taskCount).ToList();
+        }
+
+        /// <summary>
+        /// 杩斿洖鍑哄簱agv浠诲姟
+        /// </summary>
+        internal static WMSTask GetConnectionTask(string jbLoc,string type)
+        {
+            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>
@@ -666,7 +682,7 @@
             foreach (var item in v)
             {
                 //鍙栧緱宸烽亾鍒楄〃涓彲鐢ㄨ揣浣嶆渶澶氱殑宸烽亾  骞惰幏鍙栧贩閬撲腑鎵�湁璐т綅
-                location_roadray = lstTrueLocation.Where(o => o.N_ROADWAY == item.roadWay).ToList();
+                location_roadray = lstTrueLocation.Where(o => o.N_ROADWAY == item.roadWay).OrderBy(b => b.N_ROW).OrderBy(b=>b.N_COL).OrderBy(b => b.N_LAYER).ToList();
 
                 if (location_roadray != null && location_roadray.Count > 0)
                 {
@@ -698,7 +714,7 @@
             foreach (var item in v)
             {
                 //鍙栧緱宸烽亾鍒楄〃涓彲鐢ㄨ揣浣嶆渶澶氱殑宸烽亾  骞惰幏鍙栧贩閬撲腑鎵�湁璐т綅
-                var loclist = lstTrueLocation.Where(o => o.N_ROADWAY == item.roadWay).OrderBy(b => b.N_ROW).OrderBy(b=>b.N_COL).ToList();
+                var loclist = lstTrueLocation.Where(o => o.N_ROADWAY == item.roadWay).OrderBy(b => b.N_ROW).OrderBy(b=>b.N_COL).OrderBy(b => b.N_LAYER).ToList();
 
                 foreach (var item1 in loclist)
                 {
@@ -733,7 +749,7 @@
             {
                 var ConnectionList = 0;
                
-                var loclist = lstTrueLocation.Where(o => o.N_ROADWAY == item.N_ROADWAY && o.N_CURRENT_NUM>0).OrderBy(b => b.N_ROW).OrderBy(b => b.N_COL).ToList();
+                var loclist = lstTrueLocation.Where(o => o.N_ROADWAY == item.N_ROADWAY && o.N_CURRENT_NUM>0).OrderBy(b => b.N_ROW).OrderBy(b => b.N_COL).OrderBy(b => b.N_LAYER).ToList();
                 foreach (var item1 in loclist)
                 {
                     var tp = db.Queryable<LocCntrRel>().Where(s => s.S_LOC_CODE == item1.S_CODE).First();
@@ -763,7 +779,7 @@
 
                 foreach (var item in result)
                 {
-                    var loclist = lstTrueLocation.Where(o => o.N_ROADWAY == item.loc.N_ROADWAY && o.N_CURRENT_NUM==0 ).OrderBy(b => b.N_ROW).OrderBy(b => b.N_COL).ToList();
+                    var loclist = lstTrueLocation.Where(o => o.N_ROADWAY == item.loc.N_ROADWAY && o.N_CURRENT_NUM==0 ).OrderBy(b => b.N_ROW).OrderBy(b => b.N_COL).OrderBy(b => b.N_LAYER).ToList();
                     foreach (var item1 in loclist)
                     {
                         location_roadray.Add(item1);
@@ -983,10 +999,8 @@
             var db = new SqlHelper<object>().GetInstance();
             try
             {
-                
 
-               var connectionList = LocationHelper.GetConnectionList(CONNECTION);
-
+                var connectionList = LocationHelper.GetConnectionListByN(CONNECTION);
 
                 var balanceConnectionList = LocationHelper.GetConnectionListByst(connectionList);
 
@@ -995,7 +1009,7 @@
 
                 //鏌ユ壘涓嶅彲鐢ㄥ贩閬�                 var rowdwa = db.Queryable<RoadWayEnable>().Where(x => x.areaCode == startArea && x.status == "0").ToList();
-
+                LogHelper.Info($"绌烘墭鑷姩鍑哄簱鎺掗櫎涓嶅彲鐢ㄨ揣浣嶅紑濮嬶細{locations.Count}", "绌烘墭鍑哄簱");
                 for (int i = 0; i < rowsStart.Count; i++)
                 {
                     var rowList = locations.Where(r => r.N_ROW == rowsStart[i]).ToList().OrderByDescending(a => a.N_COL);
@@ -1016,7 +1030,7 @@
 
                     foreach (var item2 in balanceConnectionList)
                     {
-                        if (rowList.Count(a => a.N_ROADWAY != item2.CONNEC_ROADWAY) > 0)
+                        if (rowList.Count(a => a.N_ROADWAY == item2.CONNEC_ROADWAY) > 0)
                         {
                             flag2 = true;
                             break;
@@ -1026,7 +1040,7 @@
 
                     if (flag || flag2)
                     {
-                        continue;
+                        locations.RemoveAll(a => a.N_ROW == rowsStart[i]);
                     }
 
                     //褰撳墠鎺掓湁閿佸苟涓旀病鏈夋弧璐т綅锛屾帓闄�@@ -1035,6 +1049,8 @@
                         locations.RemoveAll(a => a.N_ROW == rowsStart[i]);
                     }
                 }
+                LogHelper.Info($"绌烘墭鑷姩鍑哄簱鎺掗櫎涓嶅彲鐢ㄨ揣浣嶇粨鏉燂細{locations.Count}", "绌烘墭鍑哄簱");
+          
                 foreach (var item in locations)
                 {
                     if (item.N_CURRENT_NUM == 0)
@@ -1042,11 +1058,13 @@
                         continue;
                     }
                     var tp = db.Queryable<LocCntrRel>().Where(s => s.S_LOC_CODE == item.S_CODE).First();
+                    LogHelper.Info($"绌烘墭鑷姩鍑哄簱itemCode:{item.S_CODE},itemLock:{item.S_LOCK_STATE} ,tp淇℃伅" + JsonConvert.SerializeObject(tp), "绌烘墭鍑哄簱");
 
                     if (tp != null && item.S_LOCK_STATE == "鏃�)
                     {
                         var tp1 = db.Queryable<Container>().Where(s => s.S_CODE == tp.S_CNTR_CODE).First();
 
+                        LogHelper.Info($"绌烘墭鑷姩鍑哄簱tp1淇℃伅"+JsonConvert.SerializeObject(tp1), "绌烘墭鍑哄簱");
                         if (tp1 != null && tp1.N_DETAIL_COUNT==0)
                         {
                             start = item;
@@ -1247,6 +1265,9 @@
 
                 var balanceConnectionList = LocationHelper.GetConnectionListByst(connectionList);
 
+
+                
+
                 
 
                 LogHelper.Info($"ZCSendTask鍑哄簱浠诲姟鎺掗櫎涓嶅彲鐢ㄥ贩閬撳紑濮�, "Mes浠诲姟涓嬪彂");

--
Gitblit v1.9.1