From 5bf10c1dafe485d506ec534f98e5220a3b83dd17 Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期四, 16 四月 2026 23:16:46 +0800
Subject: [PATCH] feat(WCS&WMS): 机械手扫码NG处理与线体条码读取与添加批量MES绑定解绑接口
---
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotPrefixCommandHandler.cs | 61 ++++++++++++++++++------------
1 files changed, 36 insertions(+), 25 deletions(-)
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotPrefixCommandHandler.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotPrefixCommandHandler.cs
index 9eb7830..691bde5 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotPrefixCommandHandler.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotPrefixCommandHandler.cs
@@ -145,20 +145,27 @@
// 浠庢暟鎹簱閲嶆柊鏌ヨ褰撳墠浠诲姟锛堢‘淇濊幏鍙栨渶鏂扮姸鎬侊級
var task = await _robotTaskService.Repository.QueryFirstAsync(x => x.RobotTaskId == state.CurrentTask.RobotTaskId);
- // 鏍规嵁鍛戒护鍓嶇紑鍒嗗彂澶勭悊
- if (cmd.StartsWith("pickfinished"))
+ if (task != null)
{
- // 澶勭悊鍙栬揣瀹屾垚
- await HandlePickFinishedAsync(state, positions, task);
- }
- else if (cmd.StartsWith("putfinished"))
- {
- // 澶勭悊鏀捐揣瀹屾垚
- await HandlePutFinishedAsync(state, positions, task);
- }
+ // 鏍规嵁鍛戒护鍓嶇紑鍒嗗彂澶勭悊
+ if (cmd.StartsWith("pickfinished"))
+ {
+ // 澶勭悊鍙栬揣瀹屾垚
+ await HandlePickFinishedAsync(state, positions, task);
+ }
+ else if (cmd.StartsWith("putfinished"))
+ {
+ // 澶勭悊鏀捐揣瀹屾垚
+ await HandlePutFinishedAsync(state, positions, task);
+ }
- // 鍥炲啓鍘熸秷鎭埌瀹㈡埛绔紙淇濇寔鍘熸湁琛屼负锛�
- await _socketClientGateway.SendMessageAsync(client, message);
+ // 鍥炲啓鍘熸秷鎭埌瀹㈡埛绔紙淇濇寔鍘熸湁琛屼负锛�
+ await _socketClientGateway.SendMessageAsync(client, message);
+ }
+ else
+ {
+ Console.WriteLine($"RobotJob HandleAsync Warning: Current task not found for RobotTaskId {state.CurrentTask.RobotTaskId}");
+ }
}
catch (Exception ex)
{
@@ -306,9 +313,12 @@
putSuccess = result.Data.Status && result.IsSuccess;
// 澧炲姞浠诲姟璁℃暟
- state.RobotTaskTotalNum += positions.Length;
- if (task != null)
- task.RobotTaskTotalNum -= positions.Length;
+ if (!state.IsScanNG)
+ {
+ state.RobotTaskTotalNum += positions.Length;
+ if (task != null)
+ task.RobotTaskTotalNum -= positions.Length;
+ }
}
}
@@ -317,6 +327,7 @@
{
// 鏇存柊褰撳墠鍔ㄤ綔涓�"鏀捐揣瀹屾垚"
state.CurrentAction = "PutFinished";
+ state.IsScanNG = false;
// 闈炵粍鐩樹换鍔℃椂澧炲姞璁℃暟锛堢粍鐩樹换鍔″凡鍦ㄤ笂闈㈤�掑锛�
if (!state.IsGroupPallet)
@@ -325,18 +336,18 @@
if (task != null)
task.RobotTaskTotalNum -= positions.Length;
}
- }
- // 濡傛灉浠诲姟瀛樺湪
- if (task != null)
- {
- // 鏇存柊浠诲姟鐘舵�佷负"鏈哄櫒浜烘斁璐у畬鎴�"
- task.RobotTaskState = TaskRobotStatusEnum.RobotPutFinish.GetHashCode();
-
- // 瀹夊叏鏇存柊鐘舵�佸埌 Redis
- if (_stateManager.TryUpdateStateSafely(state.IPAddress, state))
+ // 濡傛灉浠诲姟瀛樺湪
+ if (task != null)
{
- await _robotTaskService.Repository.UpdateDataAsync(task);
+ // 鏇存柊浠诲姟鐘舵�佷负"鏈哄櫒浜烘斁璐у畬鎴�"
+ task.RobotTaskState = TaskRobotStatusEnum.RobotPutFinish.GetHashCode();
+
+ // 瀹夊叏鏇存柊鐘舵�佸埌 Redis
+ if (_stateManager.TryUpdateStateSafely(state.IPAddress, state))
+ {
+ await _robotTaskService.Repository.UpdateDataAsync(task);
+ }
}
}
}
--
Gitblit v1.9.3