From e4921e003cc293fea714bdaf74dc6a6b6b750295 Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期六, 25 四月 2026 16:20:51 +0800
Subject: [PATCH] Merge branch 'xiaoyang' into dev

---
 Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs |  200 +++++++++++++++++++++++++------------------------
 1 files changed, 102 insertions(+), 98 deletions(-)

diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs
index 7ec1101..f0b8b36 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs
@@ -170,36 +170,35 @@
             // 鏋勫缓鍙栬揣鎸囦护锛屾牸寮忥細Pickbattery,{婧愬湴鍧�}
             string taskString = $"Pickbattery,{task.RobotSourceAddress}";
 
-            // 閫氳繃 Socket 缃戝叧鍙戦�佹寚浠ゅ埌鏈哄櫒浜哄鎴风
-            bool result = await _socketClientGateway.SendToClientAsync(state.IPAddress, taskString);
+            // 鏇存柊浠诲姟鐘舵�佷负"鏈哄櫒浜烘墽琛屼腑"
+            task.RobotTaskState = TaskRobotStatusEnum.RobotExecuting.GetHashCode();
 
-            if (result)
+            // 灏嗕换鍔″叧鑱斿埌鐘舵�佸璞�
+            state.CurrentTask = task;
+
+            if (isScanNG)
             {
-                // 鍙戦�佹垚鍔燂紝璁板綍 Info 鏃ュ織
-                QuartzLogHelper.LogInfo(_logger, $"涓嬪彂鍙栬揣鎸囦护鎴愬姛锛屾寚浠�: {taskString}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
-
-                // 鏇存柊浠诲姟鐘舵�佷负"鏈哄櫒浜烘墽琛屼腑"
-                task.RobotTaskState = TaskRobotStatusEnum.RobotExecuting.GetHashCode();
-
-                // 灏嗕换鍔″叧鑱斿埌鐘舵�佸璞�
-                state.CurrentTask = task;
-
-                if (isScanNG)
-                {
-                    state.IsScanNG = true;
-                }
-
-                // 淇濇寔鍘熻涔夛細浠呭湪鐘舵�佸畨鍏ㄥ啓鍏ユ垚鍔熷悗鍐嶆洿鏂颁换鍔$姸鎬�
-                // 杩欐牱鍙互纭繚鐘舵�佸拰浠诲姟璁板綍鐨勪竴鑷存��
-                if (_stateManager.TryUpdateStateSafely(state.IPAddress, state))
-                {
-                    await _robotTaskService.UpdateRobotTaskAsync(task);
-                }
+                state.IsScanNG = true;
             }
-            else
+
+            // 淇濇寔鍘熻涔夛細浠呭湪鐘舵�佸畨鍏ㄥ啓鍏ユ垚鍔熷悗鍐嶆洿鏂颁换鍔$姸鎬�
+            // 杩欐牱鍙互纭繚鐘舵�佸拰浠诲姟璁板綍鐨勪竴鑷存��
+            if (_stateManager.TryUpdateStateSafely(state.IPAddress, state))
             {
-                // 鍙戦�佸け璐ワ紝璁板綍 Error 鏃ュ織
-                QuartzLogHelper.LogError(_logger, $"涓嬪彂鍙栬揣鎸囦护澶辫触锛屾寚浠�: {taskString}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
+                QuartzLogHelper.LogInfo(_logger, $"鐘舵�佹洿鏂版垚鍔燂紝璁惧: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
+                // 閫氳繃 Socket 缃戝叧鍙戦�佹寚浠ゅ埌鏈哄櫒浜哄鎴风
+                bool result = await _socketClientGateway.SendToClientAsync(state.IPAddress, taskString);
+                if (result)
+                {
+                    // 鍙戦�佹垚鍔燂紝璁板綍 Info 鏃ュ織
+                    QuartzLogHelper.LogInfo(_logger, $"涓嬪彂鍙栬揣鎸囦护鎴愬姛锛屾寚浠�: {taskString}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
+                    //await _robotTaskService.UpdateRobotTaskAsync(task);
+                }
+                else
+                {
+                    // 鍙戦�佸け璐ワ紝璁板綍 Error 鏃ュ織
+                    QuartzLogHelper.LogError(_logger, $"涓嬪彂鍙栬揣鎸囦护澶辫触锛屾寚浠�: {taskString}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
+                }
             }
         }
 
@@ -234,27 +233,26 @@
             // 鏍囪鐐逛綅涓哄凡浣跨敤
             _fakeBatteryPositionService.MarkAsUsed(positions);
 
-            // 閫氳繃 Socket 缃戝叧鍙戦�佹寚浠ゅ埌鏈哄櫒浜哄鎴风
-            bool result = await _socketClientGateway.SendToClientAsync(state.IPAddress, taskString);
+            // 鏇存柊浠诲姟鐘舵�佷负"鏈哄櫒浜烘墽琛屼腑"
+            task.RobotTaskState = TaskRobotStatusEnum.RobotExecuting.GetHashCode();
 
-            if (result)
+            // 灏嗕换鍔″叧鑱斿埌鐘舵�佸璞�
+            state.CurrentTask = task;
+
+            if (_stateManager.TryUpdateStateSafely(state.IPAddress, state))
             {
-                QuartzLogHelper.LogInfo(_logger, $"涓嬪彂鍋囩數鑺彇璐ф寚浠ゆ垚鍔燂紝鎸囦护: {taskString}锛岀偣浣�: {string.Join(",", positions)}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
+                // 閫氳繃 Socket 缃戝叧鍙戦�佹寚浠ゅ埌鏈哄櫒浜哄鎴风
+                bool result = await _socketClientGateway.SendToClientAsync(state.IPAddress, taskString);
 
-                // 鏇存柊浠诲姟鐘舵�佷负"鏈哄櫒浜烘墽琛屼腑"
-                task.RobotTaskState = TaskRobotStatusEnum.RobotExecuting.GetHashCode();
-
-                // 灏嗕换鍔″叧鑱斿埌鐘舵�佸璞�
-                state.CurrentTask = task;
-
-                if (_stateManager.TryUpdateStateSafely(state.IPAddress, state))
+                if (result)
                 {
-                    await _robotTaskService.UpdateRobotTaskAsync(task);
+                    QuartzLogHelper.LogInfo(_logger, $"涓嬪彂鍋囩數鑺彇璐ф寚浠ゆ垚鍔燂紝鎸囦护: {taskString}锛岀偣浣�: {string.Join(",", positions)}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
+                    //await _robotTaskService.UpdateRobotTaskAsync(task);
                 }
-            }
-            else
-            {
-                QuartzLogHelper.LogError(_logger, $"涓嬪彂鍋囩數鑺彇璐ф寚浠ゅけ璐ワ紝鎸囦护: {taskString}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
+                else
+                {
+                    QuartzLogHelper.LogError(_logger, $"涓嬪彂鍋囩數鑺彇璐ф寚浠ゅけ璐ワ紝鎸囦护: {taskString}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
+                }
             }
         }
 
@@ -307,31 +305,31 @@
         /// <param name="batchEnd">鎵规缁撴潫缂栧彿</param>
         public async Task SendPickWithBatchAsync(Dt_RobotTask task, RobotSocketState state, string position, int batchStart, int batchEnd)
         {
-            // 鍏堝彂閫佹�绘暟鎸囦护
-            string totalNumCmd = $"PickTotalNum,{task.RobotTaskTotalNum}";
-            await _socketClientGateway.SendToClientAsync(state.IPAddress, totalNumCmd);
 
-            // 鍐嶅彂閫佹壒娆″彇璐ф寚浠�
-            string range = batchEnd == 0 ? $"{batchStart}-0" : $"{batchStart}-{batchEnd}";
-            string taskString = $"Pickbattery,{position},{range}";
+            task.RobotTaskState = TaskRobotStatusEnum.RobotExecuting.GetHashCode();
+            state.CurrentTask = task;
 
-            bool result = await _socketClientGateway.SendToClientAsync(state.IPAddress, taskString);
-
-            if (result)
+            if (_stateManager.TryUpdateStateSafely(state.IPAddress, state))
             {
-                QuartzLogHelper.LogInfo(_logger, $"涓嬪彂鎵规鍙栬揣鎸囦护鎴愬姛锛屾寚浠�: {taskString}锛屾壒娆�: {range}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
+                // 鍏堝彂閫佹�绘暟鎸囦护
+                string totalNumCmd = $"PickTotalNum,{task.RobotTaskTotalNum}";
+                await _socketClientGateway.SendToClientAsync(state.IPAddress, totalNumCmd);
 
-                task.RobotTaskState = TaskRobotStatusEnum.RobotExecuting.GetHashCode();
-                state.CurrentTask = task;
+                // 鍐嶅彂閫佹壒娆″彇璐ф寚浠�
+                string range = batchEnd == 0 ? $"{batchStart}-0" : $"{batchStart}-{batchEnd}";
+                string taskString = $"Pickbattery,{position},{range}";
 
-                if (_stateManager.TryUpdateStateSafely(state.IPAddress, state))
+                bool result = await _socketClientGateway.SendToClientAsync(state.IPAddress, taskString);
+
+                if (result)
                 {
-                    await _robotTaskService.UpdateRobotTaskAsync(task);
+                    QuartzLogHelper.LogInfo(_logger, $"涓嬪彂鎵规鍙栬揣鎸囦护鎴愬姛锛屾寚浠�: {taskString}锛屾壒娆�: {range}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
+                    //await _robotTaskService.UpdateRobotTaskAsync(task);
                 }
-            }
-            else
-            {
-                QuartzLogHelper.LogError(_logger, $"涓嬪彂鎵规鍙栬揣鎸囦护澶辫触锛屾寚浠�: {taskString}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
+                else
+                {
+                    QuartzLogHelper.LogError(_logger, $"涓嬪彂鎵规鍙栬揣鎸囦护澶辫触锛屾寚浠�: {taskString}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
+                }
             }
         }
 
@@ -351,31 +349,31 @@
         /// <param name="batchEnd">鎵规缁撴潫缂栧彿</param>
         public async Task SendFakeBatteryPickWithBatchAsync(Dt_RobotTask task, RobotSocketState state, int batchStart, int batchEnd)
         {
-            // 鍏堝彂閫佹�绘暟鎸囦护
-            string totalNumCmd = $"PickTotalNum,{task.RobotTaskTotalNum}";
-            await _socketClientGateway.SendToClientAsync(state.IPAddress, totalNumCmd);
+            task.RobotTaskState = TaskRobotStatusEnum.RobotExecuting.GetHashCode();
+            state.CurrentTask = task;
 
-            // 鍐嶅彂閫佹壒娆″彇璐ф寚浠わ紙鍋囩數鑺浐瀹氫粠5鍙蜂綅鍙栵級
-            string range = batchEnd == 0 ? $"{batchStart}-0" : $"{batchStart}-{batchEnd}";
-            string taskString = $"Pickbattery,5,{range}";
-
-            bool result = await _socketClientGateway.SendToClientAsync(state.IPAddress, taskString);
-
-            if (result)
+            if (_stateManager.TryUpdateStateSafely(state.IPAddress, state))
             {
-                QuartzLogHelper.LogInfo(_logger, $"涓嬪彂鍋囩數鑺壒娆″彇璐ф寚浠ゆ垚鍔燂紝鎸囦护: {taskString}锛屾壒娆�: {range}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
+                // 鍏堝彂閫佹�绘暟鎸囦护
+                string totalNumCmd = $"PickTotalNum,{task.RobotTaskTotalNum}";
+                await _socketClientGateway.SendToClientAsync(state.IPAddress, totalNumCmd);
 
-                task.RobotTaskState = TaskRobotStatusEnum.RobotExecuting.GetHashCode();
-                state.CurrentTask = task;
+                // 鍐嶅彂閫佹壒娆″彇璐ф寚浠わ紙鍋囩數鑺浐瀹氫粠5鍙蜂綅鍙栵級
+                string range = batchEnd == 0 ? $"{batchStart}-0" : $"{batchStart}-{batchEnd}";
+                string taskString = $"Pickbattery,5,{range}";
 
-                if (_stateManager.TryUpdateStateSafely(state.IPAddress, state))
+                bool result = await _socketClientGateway.SendToClientAsync(state.IPAddress, taskString);
+
+                if (result)
                 {
-                    await _robotTaskService.UpdateRobotTaskAsync(task);
+                    QuartzLogHelper.LogInfo(_logger, $"涓嬪彂鍋囩數鑺壒娆″彇璐ф寚浠ゆ垚鍔燂紝鎸囦护: {taskString}锛屾壒娆�: {range}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
+
+                    //await _robotTaskService.UpdateRobotTaskAsync(task);
                 }
-            }
-            else
-            {
-                QuartzLogHelper.LogError(_logger, $"涓嬪彂鍋囩數鑺壒娆″彇璐ф寚浠ゅけ璐ワ紝鎸囦护: {taskString}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
+                else
+                {
+                    QuartzLogHelper.LogError(_logger, $"涓嬪彂鍋囩數鑺壒娆″彇璐ф寚浠ゅけ璐ワ紝鎸囦护: {taskString}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
+                }
             }
         }
 
@@ -396,31 +394,31 @@
         /// <param name="batchEnd">鎵规缁撴潫缂栧彿</param>
         public async Task SendPutWithBatchAsync(Dt_RobotTask task, RobotSocketState state, string position, int batchStart, int batchEnd)
         {
-            // 鍏堝彂閫佹�绘暟鎸囦护
-            string totalNumCmd = $"PutTotalNum,{task.RobotTaskTotalNum}";
-            await _socketClientGateway.SendToClientAsync(state.IPAddress, totalNumCmd);
+            task.RobotTaskState = TaskRobotStatusEnum.RobotExecuting.GetHashCode();
+            state.CurrentTask = task;
 
-            // 鍐嶅彂閫佹壒娆℃斁璐ф寚浠�
-            string range = batchEnd == 0 ? $"{batchStart}-0" : $"{batchStart}-{batchEnd}";
-            string taskString = $"Putbattery,{position},{range}";
-
-            bool result = await _socketClientGateway.SendToClientAsync(state.IPAddress, taskString);
-
-            if (result)
+            if (_stateManager.TryUpdateStateSafely(state.IPAddress, state))
             {
-                QuartzLogHelper.LogInfo(_logger, $"涓嬪彂鏀捐揣鎸囦护鎴愬姛锛屾寚浠�: {taskString}锛屾壒娆�: {range}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
+                // 鍏堝彂閫佹�绘暟鎸囦护
+                string totalNumCmd = $"PutTotalNum,{task.RobotTaskTotalNum}";
+                await _socketClientGateway.SendToClientAsync(state.IPAddress, totalNumCmd);
 
-                task.RobotTaskState = TaskRobotStatusEnum.RobotExecuting.GetHashCode();
-                state.CurrentTask = task;
+                // 鍐嶅彂閫佹壒娆℃斁璐ф寚浠�
+                string range = batchEnd == 0 ? $"{batchStart}-0" : $"{batchStart}-{batchEnd}";
+                string taskString = $"Putbattery,{position},{range}";
 
-                if (_stateManager.TryUpdateStateSafely(state.IPAddress, state))
+                bool result = await _socketClientGateway.SendToClientAsync(state.IPAddress, taskString);
+
+                if (result)
                 {
-                    await _robotTaskService.UpdateRobotTaskAsync(task);
+                    QuartzLogHelper.LogInfo(_logger, $"涓嬪彂鏀捐揣鎸囦护鎴愬姛锛屾寚浠�: {taskString}锛屾壒娆�: {range}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
+
+                    //await _robotTaskService.UpdateRobotTaskAsync(task);
                 }
-            }
-            else
-            {
-                QuartzLogHelper.LogError(_logger, $"涓嬪彂鏀捐揣鎸囦护澶辫触锛屾寚浠�: {taskString}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
+                else
+                {
+                    QuartzLogHelper.LogError(_logger, $"涓嬪彂鏀捐揣鎸囦护澶辫触锛屾寚浠�: {taskString}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
+                }
             }
         }
 
@@ -785,5 +783,11 @@
 
             return result;
         }
+
+        public bool UpdateRobotTask(Dt_RobotTask task)
+        {
+            WebResponseContent content = _robotTaskService.UpdateData(task);
+            return content.Status;
+        }
     }
 }

--
Gitblit v1.9.3