From f423e1277f91427f0a767bd1224c1260dcb73086 Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期一, 20 四月 2026 22:47:54 +0800
Subject: [PATCH] feat: 添加空箱入库功能及相关优化

---
 Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotWorkflowOrchestrator.cs |   31 ++++++++++++++-----------------
 1 files changed, 14 insertions(+), 17 deletions(-)

diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotWorkflowOrchestrator.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotWorkflowOrchestrator.cs
index fbb989d..2f516f6 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotWorkflowOrchestrator.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotWorkflowOrchestrator.cs
@@ -112,7 +112,7 @@
             // 1. 杩愯妯″紡涓鸿嚜鍔紙2锛�
             // 2. 鎺у埗妯″紡涓哄鎴风鎺у埗锛�1锛�
             // 3. 杩愯鐘舵�佹槸 Running
-            if (latestState.RobotRunMode == 2 /*&& latestState.RobotControlMode == 1*/ && latestState.OperStatus == "Running" && (latestState.Homed == "Homed" || latestState.Homed.IsNullOrEmpty()))
+            if (latestState.RobotRunMode == 2 /*&& latestState.RobotControlMode == 1*/ /*&& latestState.OperStatus == "Running"*/ && (latestState.Homed == "Homed" || latestState.Homed.IsNullOrEmpty()))
             {
                 // ========== 鍙栬揣瀹屾垚鍚庣殑鏀捐揣澶勭悊 ==========
                 // 鏉′欢锛�
@@ -137,8 +137,8 @@
                 // - 浠诲姟鐘舵�佷负 RobotPutFinish 鎴栦笉鏄� RobotExecuting
                 else if ((latestState.CurrentAction == "PutFinished" || latestState.CurrentAction == "AllPutFinished" || latestState.CurrentAction.IsNullOrEmpty())
                     && (latestState.RobotArmObject.IsNullOrEmpty() || latestState.RobotArmObject == 0)
-                    && (task.RobotTaskState == TaskRobotStatusEnum.RobotPutFinish.GetHashCode()
-                    || task.RobotTaskState != TaskRobotStatusEnum.RobotExecuting.GetHashCode()))
+                    && (task.RobotTaskState == TaskRobotStatusEnum.RobotPutFinish.GetHashCode() || task.RobotTaskState != TaskRobotStatusEnum.RobotExecuting.GetHashCode())
+                    && latestState.BatteryArrived)
                 {
                     _logger.LogInformation("ExecuteAsync锛氭弧瓒冲彇璐ф潯浠讹紝寮�濮嬩笅鍙戝彇璐т换鍔★紝浠诲姟鍙�: {TaskNum}", task.RobotTaskNum);
                     QuartzLogger.Info($"ExecuteAsync锛氭弧瓒冲彇璐ф潯浠讹紝寮�濮嬩笅鍙戝彇璐т换鍔�", latestState.RobotCrane?.DeviceName ?? ipAddress);
@@ -253,7 +253,7 @@
             {
                 if (state.IsScanNG)
                 {
-                    taskString = $"Putbattery,4";
+                    taskString = $"Putbattery,1";
                 }
                 else
                 {
@@ -312,7 +312,7 @@
         private async Task HandlePutFinishedStateAsync(Dt_RobotTask task, string ipAddress)
         {
             // 鑾峰彇鏈�鏂扮姸鎬�
-            var stateForUpdate = _stateManager.GetState(ipAddress);
+            RobotSocketState? stateForUpdate = _stateManager.GetState(ipAddress);
             if (stateForUpdate == null)
             {
                 _logger.LogWarning("HandlePutFinishedStateAsync锛氳幏鍙栫姸鎬佸け璐ワ紝IP: {IpAddress}", ipAddress);
@@ -332,11 +332,11 @@
             // 濡傛灉鏄粍鐩樹换鍔�
             if (task.RobotTaskType == RobotTaskTypeEnum.GroupPallet.GetHashCode())
             {
-
-                //if (!stateForUpdate.BatteryArrived)
-                //{
-                //    return;
-                //}
+                // 妫�鏌ョ數姹犳槸鍚﹀凡鍒颁綅
+                if (!stateForUpdate.BatteryArrived)
+                {
+                    return;
+                }
                 // 璇诲彇绾夸綋鐢佃姱鏉$爜
                 string trayBarcode1 = RobotBarcodeGenerator.GenerateTrayBarcode("DB40.990");
                 string trayBarcode2 = RobotBarcodeGenerator.GenerateTrayBarcode("DB40.1020");
@@ -359,16 +359,13 @@
                     {
                         _logger.LogInformation("HandlePutFinishedStateAsync锛氳鍙栫殑鎵樼洏鏉$爜鍞竴锛岀户缁墽琛岋紝浠诲姟鍙�: {TaskNum}", task.RobotTaskNum);
                         QuartzLogger.Info($"璇诲彇鐨勬墭鐩樻潯鐮佸敮涓�锛岀户缁墽琛�", stateForUpdate.RobotCrane.DeviceName);
+
+                        // 灏嗘潯鐮佹坊鍔犲埌鐘舵�佷腑锛屼緵鍚庣画鏀捐揣鏃朵娇鐢�
                         stateForUpdate.CellBarcode = new List<string>()
                         {
                             trayBarcode1,trayBarcode2
                         };
-
-                        // 灏嗘潯鐮佹坊鍔犲埌鐘舵�佷腑锛屼緵鍚庣画鏀捐揣鏃朵娇鐢�
-                        //stateForUpdate.CellBarcode.Add(trayBarcode1);
-                        //stateForUpdate.CellBarcode.Add(trayBarcode2);
                     }
-
 
                     // 璁板綍鏃ュ織锛氳鍙栨墭鐩樻潯鐮佹垚鍔�
                     _logger.LogInformation("HandlePutFinishedStateAsync锛氳鍙栨墭鐩樻潯鐮佹垚鍔�: {Barcode1}+{Barcode2}锛屼换鍔″彿: {TaskNum}", trayBarcode1, trayBarcode2, task.RobotTaskNum);
@@ -380,8 +377,8 @@
                 else
                 {
                     // 鏉$爜璇诲彇澶辫触锛岃褰曢敊璇棩蹇�
-                    _logger.LogError("HandlePutFinishedStateAsync锛氳鍙栨墭鐩樻潯鐮佸け璐ワ紝浠诲姟鍙�: {TaskNum}", task.RobotTaskNum);
-                    QuartzLogger.Error($"璇诲彇鎵樼洏鏉$爜澶辫触", stateForUpdate.RobotCrane.DeviceName);
+                    _logger.LogError("HandlePutFinishedStateAsync锛氳鍙栨墭鐩樻潯鐮佸け璐ワ紝浠诲姟鍙�: {TaskNum}锛屼竴鍙蜂綅: {trayBarcode1}锛屼簩鍙蜂綅: {trayBarcode2}", task.RobotTaskNum,trayBarcode1,trayBarcode2);
+                    QuartzLogger.Error($"璇诲彇鎵樼洏鏉$爜澶辫触,涓�鍙蜂綅锛歿trayBarcode1},浜屽彿浣嶏細{trayBarcode2}", stateForUpdate.RobotCrane.DeviceName);
 
 
                     // 鍙戦�佸彇璐ф寚浠� 鏍囪鎵爜NG锛屾斁璐ф椂涓嶄娇鐢ㄨ繖浜涙潯鐮侊紝骞舵斁鍏G鍙�

--
Gitblit v1.9.3