From b6c983ac19c0c80744795e122575f4b9ac145414 Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期日, 19 四月 2026 18:53:40 +0800
Subject: [PATCH] feat: 更新机器人任务处理逻辑和接口配置

---
 Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs |   69 +++++++++++++++++++++++++---------
 1 files changed, 51 insertions(+), 18 deletions(-)

diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs
index b109398..e7edcb1 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs
@@ -185,7 +185,7 @@
                 // 灏嗕换鍔″叧鑱斿埌鐘舵�佸璞�
                 state.CurrentTask = task;
 
-                if(isScanNG)
+                if (isScanNG)
                 {
                     state.IsScanNG = true;
                 }
@@ -456,7 +456,7 @@
         /// <param name="state">鏈哄櫒浜哄綋鍓嶇姸鎬�</param>
         /// <param name="useSourceAddress">鏄惁浣跨敤婧愬湴鍧�锛坱rue 琛ㄧず鎷嗙洏/鎹㈢洏鍦烘櫙锛宖alse 琛ㄧず缁勭洏/鎹㈢洏鍦烘櫙锛�</param>
         /// <returns>澶勭悊鏄惁鎴愬姛</returns>
-        public async Task<bool> HandleInboundTaskAsync(RobotSocketState state, bool useSourceAddress)
+        public async Task<bool> HandleInboundTaskAsync(RobotSocketState state, bool useSourceAddress, string isRoadway = null)
         {
             // 鑾峰彇褰撳墠鍏宠仈鐨勪换鍔�
             var currentTask = state.CurrentTask;
@@ -468,18 +468,17 @@
             }
 
             // 鑾峰彇宸烽亾浠g爜
-            string roadway = currentTask.RobotSourceAddressLineCode;
+            string roadway = string.Empty;
 
             // 鏍规嵁宸烽亾鍚嶇О鍒ゆ柇浠撳簱 ID
-            // ZYRB1 -> 1, HPRB001 -> 2, 鍏朵粬 -> 3
-            int warehouseId = currentTask.RobotRoadway == "娉ㄦ恫缁勭洏鏈烘鎵�" ? 1 : currentTask.RobotRoadway == "HPRB001" ? 2 : 3;
-
-            // 浠诲姟绫诲瀷锛�0 琛ㄧず鏈畾涔夛紝绋嶅悗鏍规嵁浠诲姟绫诲瀷璁剧疆锛�
-            int taskType = 0;
+            int warehouseId = 0;
 
             // 婧愬湴鍧�鍜岀洰鏍囧湴鍧�锛堝垵濮嬪寲锛�
             string SourceAddress = currentTask.RobotTargetAddressLineCode;
             string TargetAddress = currentTask.RobotSourceAddressLineCode;
+
+            // 浠诲姟绫诲瀷锛�0 琛ㄧず鏈畾涔夛紝绋嶅悗鏍规嵁浠诲姟绫诲瀷璁剧疆锛�
+            int taskType = 0;
 
             // 鎵樼洏浠g爜锛堝垵濮嬪寲涓虹┖锛�
             string PalletCode = string.Empty;
@@ -494,16 +493,33 @@
                 switch (robotTaskType)
                 {
                     case RobotTaskTypeEnum.GroupPallet:
-                        // 缁勭洏浠诲姟涓嶄娇鐢ㄦ簮鍦板潃锛岀洿鎺ヨ繑鍥� false
-                        _logger.LogDebug("HandleInboundTaskAsync锛氱粍鐩樹换鍔′笉浣跨敤婧愬湴鍧�");
-                        QuartzLogger.Debug($"HandleInboundTaskAsync锛氱粍鐩樹换鍔′笉浣跨敤婧愬湴鍧�", state.RobotCrane?.DeviceName ?? "Unknown");
-                        return false;
+                        warehouseId = 1;
+                        roadway = "GWSC1";
+                        break;
 
                     case RobotTaskTypeEnum.ChangePallet:
+                        // 鎹㈢洏/鎷嗙洏鍦烘櫙锛氭墭鐩橀渶瑕佸叆搴�
+                        taskType = TaskTypeEnum.InEmpty.GetHashCode();  // 绌烘墭鐩樺叆搴�
+                        PalletCode = currentTask.RobotSourceAddressPalletCode;  // 浣跨敤婧愬湴鍧�鐨勬墭鐩樼爜
+                        if (isRoadway == "HWSC1")
+                        {
+                            warehouseId = 2;
+                            roadway = "HWSC1";
+                        }
+                        else if (isRoadway == "GWSC1")
+                        {
+                            warehouseId = 1;
+                            roadway = "GWSC1";
+                        }
+
+                        break;
                     case RobotTaskTypeEnum.SplitPallet:
                         // 鎹㈢洏/鎷嗙洏鍦烘櫙锛氭墭鐩橀渶瑕佸叆搴�
                         taskType = TaskTypeEnum.InEmpty.GetHashCode();  // 绌烘墭鐩樺叆搴�
                         PalletCode = currentTask.RobotSourceAddressPalletCode;  // 浣跨敤婧愬湴鍧�鐨勬墭鐩樼爜
+
+                        warehouseId = 3;
+                        roadway = "CWSC1";
                         break;
                 }
             }
@@ -513,17 +529,34 @@
                 switch (robotTaskType)
                 {
                     case RobotTaskTypeEnum.ChangePallet:
+                        // 鎹㈢洏/缁勭洏鍦烘櫙锛氳揣鐗╅渶瑕佸叆搴�
+                        taskType = TaskTypeEnum.Inbound.GetHashCode();  // 鎴愬搧鍏ュ簱
+                        PalletCode = currentTask.RobotTargetAddressPalletCode;  // 浣跨敤鐩爣鍦板潃鐨勬墭鐩樼爜
+
+                        if (isRoadway == "HWSC1")
+                        {
+                            warehouseId = 2;
+                            roadway = "HWSC1";
+                        }
+                        else if (isRoadway == "GWSC1")
+                        {
+                            warehouseId = 1;
+                            roadway = "GWSC1";
+                        }
+
+                        break;
                     case RobotTaskTypeEnum.GroupPallet:
                         // 鎹㈢洏/缁勭洏鍦烘櫙锛氳揣鐗╅渶瑕佸叆搴�
                         taskType = TaskTypeEnum.Inbound.GetHashCode();  // 鎴愬搧鍏ュ簱
                         PalletCode = currentTask.RobotTargetAddressPalletCode;  // 浣跨敤鐩爣鍦板潃鐨勬墭鐩樼爜
+
+                        warehouseId = 1;
+                        roadway = "GWSC1";
                         break;
 
                     case RobotTaskTypeEnum.SplitPallet:
-                        // 鎷嗙洏浠诲姟涓嶄娇鐢ㄧ洰鏍囧湴鍧�
-                        _logger.LogDebug("HandleInboundTaskAsync锛氭媶鐩樹换鍔′笉浣跨敤鐩爣鍦板潃");
-                        QuartzLogger.Debug($"HandleInboundTaskAsync锛氭媶鐩樹换鍔′笉浣跨敤鐩爣鍦板潃", state.RobotCrane?.DeviceName ?? "Unknown");
-                        return true;
+
+                        break;
                 }
             }
 
@@ -532,8 +565,8 @@
             {
                 PalletCode = PalletCode,                    // 鎵樼洏鏉$爜
                 SourceAddress = SourceAddress ?? string.Empty,  // 婧愬湴鍧�
-                TargetAddress = TargetAddress ?? string.Empty,  // 鐩爣鍦板潃
-                Roadway = roadway,                          // 宸烽亾
+                TargetAddress = roadway ?? string.Empty,  // 鐩爣鍦板潃
+                Roadway = roadway ?? string.Empty,             // 宸烽亾
                 WarehouseId = warehouseId,                   // 浠撳簱 ID
                 PalletType = 1,                             // 鎵樼洏绫诲瀷锛堥粯璁や负1锛�
                 TaskType = taskType                         // 浠诲姟绫诲瀷锛堝叆搴�/绌烘墭鐩樺叆搴擄級

--
Gitblit v1.9.3