From 2f7c7a0621ee2e84c47ccd054889a71e8ce4fdd0 Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期六, 18 四月 2026 22:08:14 +0800
Subject: [PATCH] feat(机械手任务): 实现换盘任务多阶段处理逻辑
---
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotPrefixCommandHandler.cs | 39 +++++++++++++++++++++++++++++----------
1 files changed, 29 insertions(+), 10 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 691bde5..e365ffb 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotPrefixCommandHandler.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotPrefixCommandHandler.cs
@@ -270,28 +270,47 @@
// 鎹㈢洏浠诲姟锛氭牴鎹樁娈靛尯鍒嗗鐞�
if (state.ChangePalletPhase == 2)
{
+ // Phase 2锛氭斁姝e父鐢佃姱鍒扮洰鏍囨墭鐩樺畬鎴愶紝閫掑璁℃暟
+ state.RobotTaskTotalNum += positions.Length;
+ if (task != null)
+ task.RobotTaskTotalNum -= positions.Length;
+
if (isFlowA)
{
- // 娴佸悜A Phase2锛氭斁鍋囩數鑺埌鐩爣鎵樼洏锛屼笉璋冪敤 API锛屼笉閫掑璁℃暟
- // 浠呮洿鏂扮姸鎬�
+ // 娴佸悜A锛氫笉璋冪敤 API锛屼粎閫掑璁℃暟
}
else
{
- // 娴佸悜B Phase2锛氭斁姝e父鐢佃姱锛岄�掑璁℃暟
- state.RobotTaskTotalNum += positions.Length;
- if (task != null)
- task.RobotTaskTotalNum -= positions.Length;
-
- // 鏋勫缓搴撳瓨 DTO 骞惰皟鐢� ChangePalletAsync API
+ // 娴佸悜B锛氳皟鐢ㄦ崲鐩� API
var stockDTO = RobotTaskProcessor.BuildStockDTO(state, positions);
var result = _taskProcessor.PostGroupPalletAsync(nameof(ConfigKey.ChangePalletAsync), stockDTO);
putSuccess = result.Data.Status && result.IsSuccess;
}
+
+ // 鍒囧洖 Phase 1锛岀户缁彇姝e父鐢佃姱
+ state.ChangePalletPhase = 1;
}
else if (state.ChangePalletPhase == 4)
{
- // 娴佸悜B Phase4锛氭斁鍋囩數鑺埌5鍙蜂綅锛屼笉璋冪敤 API锛屼笉閫掑璁℃暟锛岄噴鏀剧偣浣�
- _fakeBatteryPositionService.MarkAsAvailable(positions.ToList());
+ if (isFlowA)
+ {
+ // 娴佸悜A锛氭斁鍋囩數鑺埌鐩爣鎵樼洏锛岄�掑璁℃暟锛岃皟鐢ㄦ崲鐩� API
+ state.RobotTaskTotalNum += positions.Length;
+ if (task != null)
+ task.RobotTaskTotalNum -= positions.Length;
+
+ var stockDTO = RobotTaskProcessor.BuildStockDTO(state, positions);
+ var result = _taskProcessor.PostGroupPalletAsync(nameof(ConfigKey.ChangePalletAsync), stockDTO);
+ putSuccess = result.Data.Status && result.IsSuccess;
+ }
+ else
+ {
+ // 娴佸悜B锛氭斁鍋囩數鑺埌5鍙蜂綅锛岄噴鏀剧偣浣�
+ _fakeBatteryPositionService.MarkAsAvailable(positions.ToList());
+ }
+
+ // 鍒囧洖 Phase 3锛岀户缁彇鍋囩數鑺�
+ state.ChangePalletPhase = 3;
}
else
{
--
Gitblit v1.9.3