From 3512011e94f013955b7b1e2de8558b8861db86b7 Mon Sep 17 00:00:00 2001
From: kazelee <1847801760@qq.com>
Date: 星期一, 30 六月 2025 16:38:05 +0800
Subject: [PATCH] 优化配置文件读取和AGV调度细节

---
 api/ApiHelper.cs |   27 ++++++++++++++++++++-------
 1 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/api/ApiHelper.cs b/api/ApiHelper.cs
index c5fad07..9b0fc26 100644
--- a/api/ApiHelper.cs
+++ b/api/ApiHelper.cs
@@ -23,13 +23,15 @@
             var taskName = TaskName.浜у搧鍏ュ簱;
             var db = new SqlHelper<object>().GetInstance();
 
+            var startAreas = Settings.Areas[AreaIndex.Q鍙栬揣鍖篯;
+
             try {
                 // 璧风偣浣嶇疆蹇呴』锛氫负绌恒�鏃犻攣銆佸惎鐢ㄣ�灞炰簬鏀跺彂鍖哄煙
                 var startLoc = db.Queryable<TN_Location>()
                     .Where(a => a.S_CODE == model.StartLoc)
                     .Where(a => a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y")
                     //.Where(a => a.N_CURRENT_NUM == 0)
-                    .Where(a => Settings.Areas[0].Contains(a.S_AREA_CODE)) // 鏀跺彂鍖�+                    .Where(a => startAreas.Contains(a.S_AREA_CODE))
                     .First();
 
                 if (startLoc == null) {
@@ -150,13 +152,15 @@
             var taskName = TaskName.浜у搧鍏ュ簱;
             var db = new SqlHelper<object>().GetInstance();
 
+            var startAreas = Settings.Areas[AreaIndex.Q鍙栬揣鍖篯;
+
             try {
                 // 璧风偣浣嶇疆蹇呴』锛氫负绌恒�鏃犻攣銆佸惎鐢ㄣ�灞炰簬鏀跺彂鍖哄煙
                 var startLoc = db.Queryable<TN_Location>()
                     .Where(a => a.S_CODE == model.StartLoc)
                     .Where(a => a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y")
                     //.Where(a => a.N_CURRENT_NUM == 0)
-                    .Where(a => Settings.Areas[0].Contains(a.S_AREA_CODE)) // 鏀跺彂鍖�+                    .Where(a => startAreas.Contains(a.S_AREA_CODE))
                     .First();
 
                 if (startLoc == null) {
@@ -261,6 +265,8 @@
 
             var db = new SqlHelper<object>().GetInstance();
 
+            var endAreas = Settings.Areas[AreaIndex.H璐ф灦鍖篯;
+
             try {
                 // 浠诲姟鍙峰瓨鍦細缁堢偣璐ф灦鍜岀粓鐐逛綅缃负绌猴紝涓斾换鍔′负浜у搧鍏ュ簱(PDA)
                 var task = db.Queryable<TN_Task>()
@@ -305,7 +311,7 @@
                         .Where(a => a.S_CODE == model.EndLoc)
                         .Where(a => a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y")
                         .Where(a => a.N_CURRENT_NUM == 0)
-                        .Where(a => Settings.Areas[1].Contains(a.S_AREA_CODE))
+                        .Where(a => endAreas.Contains(a.S_AREA_CODE))
                         .Where(a => a.N_LAYER <= 2)
                         .First();
                 }
@@ -314,7 +320,7 @@
                         .Where(a => a.S_CODE == model.EndLoc)
                         .Where(a => a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y")
                         .Where(a => a.N_CURRENT_NUM == 0)
-                        .Where(a => Settings.Areas[1].Contains(a.S_AREA_CODE))
+                        .Where(a => endAreas.Contains(a.S_AREA_CODE))
                         .OrderBy(a => a.N_LAYER > 2 ? 0 : 1) // 浼樺厛鍙栧ぇ浜�鐨�                         //.Where(a => a.N_LAYER <= 3)
                         .First();
@@ -375,11 +381,15 @@
             var taskName = TaskName.浜у搧閮ㄥ垎鍑哄簱;
             var db = new SqlHelper<object>().GetInstance();
 
+            var startAreas = Settings.Areas[AreaIndex.H璐ф灦鍖篯;
+            var endAreas = Settings.Areas[AreaIndex.X鍗歌揣鍖篯;
+
             try {
                 // 璧风偣浣嶇疆锛氳揣鏋讹紙鏈夎揣銆佹病鏈夐攣銆佸凡鍚敤锛�                 var startLoc = db.Queryable<TN_Location>()
                     .Where(a => a.S_CODE == model.startLoc)
                     .Where(a => a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y")
+                    .Where(a => startAreas.Contains(a.S_AREA_CODE))
                     .Where(a => a.N_CURRENT_NUM == 1)
                     .First();
 
@@ -393,7 +403,7 @@
                     return BuildSimpleResult(3, $"璧风偣浣嶇疆 {model.startLoc} 娌℃湁缁戝畾瀹瑰櫒锛屾棤鍙嚭搴撶殑鐗╂枡");
                 }
 
-                var endLoc = db.Queryable<TN_Location>().First(a => a.S_CODE == model.endLoc && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y" && Settings.Areas[0].Contains(a.S_AREA_CODE));
+                var endLoc = db.Queryable<TN_Location>().First(a => a.S_CODE == model.endLoc && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y" && endAreas.Contains(a.S_AREA_CODE));
 
                 if (endLoc == null) {
                     return BuildSimpleResult(4, $"缁堢偣浣嶇疆 {model.endLoc} 涓嶅叿澶囨斁璐ф潯浠�);
@@ -446,9 +456,12 @@
             var taskName = TaskName.浜у搧閮ㄥ垎鍥炲簱;
             var db = new SqlHelper<object>().GetInstance();
 
+            var startAreas = Settings.Areas[AreaIndex.X鍗歌揣鍖篯;
+            var endAreas = Settings.Areas[AreaIndex.H璐ф灦鍖篯;
+
             try {
                 // 璧风偣浣嶇疆锛氬彇鏀捐揣鍖猴紙鏈夎揣鐗┿�娌℃湁閿併�宸插惎鐢級
-                var startLoc = db.Queryable<TN_Location>().First(a => a.S_CODE == model.startLoc && a.N_CURRENT_NUM == 1 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y" && Settings.Areas[0].Contains(a.S_AREA_CODE));
+                var startLoc = db.Queryable<TN_Location>().First(a => a.S_CODE == model.startLoc && a.N_CURRENT_NUM == 1 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y" && startAreas.Contains(a.S_AREA_CODE));
                 if (startLoc == null) {
                     return BuildSimpleResult(2, $"璧风偣浣嶇疆 {model.startLoc} 涓嶇鍚堝洖搴撴潯浠�);
                 }
@@ -459,7 +472,7 @@
                 }
 
                 // 缁堢偣浣嶇疆锛氳揣鏋讹紙娌℃湁璐х墿锛屾病鏈夐攣锛�-                var endLoc = db.Queryable<TN_Location>().First(a => a.S_CODE == model.endLoc && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y");
+                var endLoc = db.Queryable<TN_Location>().First(a => a.S_CODE == model.endLoc && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y" && endAreas.Contains(a.S_AREA_CODE));
                 if (endLoc == null) {
                     return BuildSimpleResult(4, $"缁堢偣浣嶇疆 {model.endLoc} 涓嶅叿澶囨斁璐ф潯浠�);
                 }

--
Gitblit v1.9.1