From adb4016b5eb5b119a899480c321be996d9bf10bd Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期三, 08 四月 2026 00:55:22 +0800
Subject: [PATCH] feat(robot): 完善机械手任务处理逻辑与状态管理

---
 Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs |   24 +++++++++++++++++++++---
 1 files changed, 21 insertions(+), 3 deletions(-)

diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs
index 79f8073..a87a66e 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs
@@ -113,6 +113,20 @@
         }
 
         /// <summary>
+        /// 鎸夎澶囩紪鐮佽幏鍙栧綋鍓嶆満鍣ㄤ汉鐨勬墽琛屼腑浠诲姟
+        /// </summary>
+        /// <remarks>
+        /// 浠庢暟鎹簱涓煡璇㈡寚瀹氳澶囩紪鐮佺殑鎵ц涓満鍣ㄤ汉浠诲姟銆�
+        /// 褰揜obotArmObject涓�1锛堟湁鐗╂枡锛変笖娌℃湁寰呭鐞嗕换鍔℃椂璋冪敤銆�
+        /// </remarks>
+        /// <param name="robotCrane">鏈哄櫒浜鸿澶囦俊鎭紝鍖呭惈璁惧缂栫爜</param>
+        /// <returns>鎵ц涓殑浠诲姟瀵硅薄锛屽鏋滄病鏈夊垯杩斿洖 null</returns>
+        public Dt_RobotTask? GetExecutingTask(RobotCraneDevice robotCrane)
+        {
+            return _robotTaskService.QueryRobotCraneExecutingTask(robotCrane.DeviceCode);
+        }
+
+        /// <summary>
         /// 鍒犻櫎鏈哄櫒浜轰换鍔�
         /// </summary>
         /// <remarks>
@@ -208,7 +222,7 @@
 
             // 鏍规嵁宸烽亾鍚嶇О鍒ゆ柇浠撳簱 ID
             // ZYRB1 -> 1, HPRB001 -> 2, 鍏朵粬 -> 3
-            int warehouseId = currentTask.RobotRoadway == "ZYRB1" ? 1 : currentTask.RobotRoadway == "HPRB001" ? 2 : 3;
+            int warehouseId = currentTask.RobotRoadway == "娉ㄦ恫缁勭洏鏈烘鎵�" ? 1 : currentTask.RobotRoadway == "HPRB001" ? 2 : 3;
 
             // 浠诲姟绫诲瀷锛�0 琛ㄧず鏈畾涔夛紝绋嶅悗鏍规嵁浠诲姟绫诲瀷璁剧疆锛�
             int taskType = 0;
@@ -303,7 +317,8 @@
             }
 
             // 瑙f瀽杩斿洖鐨勪换鍔′俊鎭�
-            var taskInfo = JsonConvert.DeserializeObject<Dt_Task>(content.Data.ToJson() ?? string.Empty) ?? new Dt_Task();
+            var taskInfos = JsonConvert.DeserializeObject<List<Dt_Task>>(content.Data.ToJson() ?? string.Empty) ?? new List<Dt_Task>();
+            var taskInfo = taskInfos.FirstOrDefault();
 
             // 鑾峰彇婧愬湴鍧�
             string sourceAddress = taskDTO.SourceAddress;
@@ -363,6 +378,9 @@
                 // 鐩爣杈撻�佺嚎缂栧彿
                 TargetLineNo = state.CurrentTask.RobotTargetAddressLineCode,
 
+                // 宸烽亾缂栧彿(鏈哄櫒浜哄悕绉�)
+                Roadway = state.CurrentTask.RobotRoadway,
+
                 // 鐢垫睜浣嶇疆璇︽儏鍒楄〃
                 // 杩囨护鎺変綅缃负 0 鎴栬礋鏁扮殑鏃犳晥鏁版嵁
                 // 鎸変綅缃紪鍙锋帓搴�
@@ -373,7 +391,7 @@
                     .Select((x, idx) => new StockDetailDTO
                     {
                         // 鏁伴噺锛氬鏋滃凡鏈変换鍔℃�绘暟锛屼娇鐢ㄤ换鍔℃�绘暟+褰撳墠浣嶇疆鏁帮紱鍚﹀垯鍙娇鐢ㄥ綋鍓嶄綅缃暟
-                        Quantity = state.RobotTaskTotalNum > 0 ? state.RobotTaskTotalNum + positions.Length : positions.Length,
+                        Quantity = 1,
 
                         // 閫氶亾/浣嶇疆缂栧彿
                         Channel = x,

--
Gitblit v1.9.3