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 | 368 ++++++++++++++++++++++++++++++++++-----------------
1 files changed, 244 insertions(+), 124 deletions(-)
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs
index 62cb7ba..f0b8b36 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs
@@ -1,5 +1,5 @@
-using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
+using Serilog;
using WIDESEA_Core;
using WIDESEAWCS_Common;
using WIDESEAWCS_Common.HttpEnum;
@@ -79,7 +79,7 @@
/// <summary>
/// 鏃ュ織璁板綍鍣�
/// </summary>
- private readonly ILogger _logger;
+ private readonly ILogger _logger;
/// <summary>
/// 鏋勯�犲嚱鏁�
@@ -146,7 +146,7 @@
/// <returns>鍒犻櫎鏄惁鎴愬姛</returns>
public bool? DeleteTask(int ID)
{
- return _robotTaskService.Repository.DeleteDataById(ID);
+ return _robotTaskService.DeleteRobotTask(ID);
}
/// <summary>
@@ -170,38 +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 鏃ュ織
- _logger.LogInformation("涓嬪彂鍙栬揣鎸囦护鎴愬姛锛屾寚浠�: {TaskString}锛岃澶�: {DeviceName}", taskString, state.RobotCrane?.DeviceName);
- QuartzLogger.Info($"涓嬪彂鍙栬揣鎸囦护鎴愬姛锛屾寚浠�: {taskString}", 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 鏃ュ織
- _logger.LogError("涓嬪彂鍙栬揣鎸囦护澶辫触锛屾寚浠�: {TaskString}锛岃澶�: {DeviceName}", taskString, state.RobotCrane?.DeviceName);
- QuartzLogger.Error($"涓嬪彂鍙栬揣鎸囦护澶辫触锛屾寚浠�: {taskString}", 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);
+ }
}
}
@@ -224,7 +221,7 @@
{
if (positions == null || positions.Count == 0)
{
- _logger.LogWarning("SendSocketRobotFakeBatteryPickAsync锛氬钩闈㈢偣浣嶅垪琛ㄤ负绌猴紝浠诲姟鍙�: {TaskNum}", task.RobotTaskNum);
+ QuartzLogHelper.LogWarn(_logger, $"SendSocketRobotFakeBatteryPickAsync锛氬钩闈㈢偣浣嶅垪琛ㄤ负绌猴紝浠诲姟鍙�: {task.RobotTaskNum}", state.RobotCrane?.DeviceName ?? "Unknown");
return;
}
@@ -236,30 +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))
{
- _logger.LogInformation("涓嬪彂鍋囩數鑺彇璐ф寚浠ゆ垚鍔燂紝鎸囦护: {TaskString}锛岀偣浣�: {Positions}锛岃澶�: {DeviceName}",
- taskString, string.Join(",", positions), state.RobotCrane?.DeviceName);
- QuartzLogger.Info($"涓嬪彂鍋囩數鑺彇璐ф寚浠ゆ垚鍔燂紝鎸囦护: {taskString}", 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
- {
- _logger.LogError("涓嬪彂鍋囩數鑺彇璐ф寚浠ゅけ璐ワ紝鎸囦护: {TaskString}锛岃澶�: {DeviceName}", taskString, state.RobotCrane?.DeviceName);
- QuartzLogger.Error($"涓嬪彂鍋囩數鑺彇璐ф寚浠ゅけ璐ワ紝鎸囦护: {taskString}", state.RobotCrane?.DeviceName);
+ else
+ {
+ QuartzLogHelper.LogError(_logger, $"涓嬪彂鍋囩數鑺彇璐ф寚浠ゅけ璐ワ紝鎸囦护: {taskString}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
+ }
}
}
@@ -312,34 +305,75 @@
/// <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))
{
- _logger.LogInformation("涓嬪彂鎵规鍙栬揣鎸囦护鎴愬姛锛屾寚浠�: {TaskString}锛屾壒娆�: {Range}锛岃澶�: {DeviceName}",
- taskString, range, state.RobotCrane?.DeviceName);
- QuartzLogger.Info($"涓嬪彂鎵规鍙栬揣鎸囦护鎴愬姛锛屾寚浠�: {taskString}锛屾壒娆�: {range}", 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
+ }
+
+ /// <summary>
+ /// 涓嬪彂鍋囩數鑺彇璐ф寚浠わ紙甯︽壒娆℃牸寮忓拰鎬绘暟锛�
+ /// </summary>
+ /// <remarks>
+ /// 鍙戦�侀『搴忥細
+ /// 1. PickTotalNum,{N} -- 鐪熷疄鐢佃姱鎬绘暟
+ /// 2. Pickbattery,5,{start}-{end} -- 鎵规鍙栬揣鎸囦护锛堝浐瀹氫粠5鍙蜂綅鍙栵級
+ ///
+ /// 涓嬪彂鎴愬姛鍚庢洿鏂颁换鍔$姸鎬佷负"鏈哄櫒浜烘墽琛屼腑"銆�
+ /// </remarks>
+ /// <param name="task">瑕佷笅鍙戠殑浠诲姟瀵硅薄</param>
+ /// <param name="state">鏈哄櫒浜哄綋鍓嶇姸鎬�</param>
+ /// <param name="batchStart">鎵规璧峰缂栧彿</param>
+ /// <param name="batchEnd">鎵规缁撴潫缂栧彿</param>
+ public async Task SendFakeBatteryPickWithBatchAsync(Dt_RobotTask task, RobotSocketState state, int batchStart, int batchEnd)
+ {
+ task.RobotTaskState = TaskRobotStatusEnum.RobotExecuting.GetHashCode();
+ state.CurrentTask = task;
+
+ if (_stateManager.TryUpdateStateSafely(state.IPAddress, state))
{
- _logger.LogError("涓嬪彂鎵规鍙栬揣鎸囦护澶辫触锛屾寚浠�: {TaskString}锛岃澶�: {DeviceName}", taskString, state.RobotCrane?.DeviceName);
- QuartzLogger.Error($"涓嬪彂鎵规鍙栬揣鎸囦护澶辫触锛屾寚浠�: {taskString}", state.RobotCrane?.DeviceName);
+ // 鍏堝彂閫佹�绘暟鎸囦护
+ string totalNumCmd = $"PickTotalNum,{task.RobotTaskTotalNum}";
+ await _socketClientGateway.SendToClientAsync(state.IPAddress, totalNumCmd);
+
+ // 鍐嶅彂閫佹壒娆″彇璐ф寚浠わ紙鍋囩數鑺浐瀹氫粠5鍙蜂綅鍙栵級
+ string range = batchEnd == 0 ? $"{batchStart}-0" : $"{batchStart}-{batchEnd}";
+ string taskString = $"Pickbattery,5,{range}";
+
+ bool result = await _socketClientGateway.SendToClientAsync(state.IPAddress, taskString);
+
+ if (result)
+ {
+ 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);
+ }
}
}
@@ -360,35 +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))
{
- _logger.LogInformation("涓嬪彂鏀捐揣鎸囦护鎴愬姛锛屾寚浠�: {TaskString}锛屾壒娆�: {Range}锛岃澶�: {DeviceName}",
- taskString, range, state.RobotCrane?.DeviceName);
- QuartzLogger.Info($"涓嬪彂鏀捐揣鎸囦护鎴愬姛锛屾寚浠�: {taskString}锛屾壒娆�: {range}", 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
- {
- _logger.LogError("涓嬪彂鏀捐揣鎸囦护澶辫触锛屾寚浠�: {TaskString}锛岃澶�: {DeviceName}",
- taskString, state.RobotCrane?.DeviceName);
- QuartzLogger.Error($"涓嬪彂鏀捐揣鎸囦护澶辫触锛屾寚浠�: {taskString}", state.RobotCrane?.DeviceName);
+ else
+ {
+ QuartzLogHelper.LogError(_logger, $"涓嬪彂鏀捐揣鎸囦护澶辫触锛屾寚浠�: {taskString}锛岃澶�: {state.RobotCrane?.DeviceName}", state.RobotCrane?.DeviceName);
+ }
}
}
@@ -409,30 +439,28 @@
/// <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;
if (currentTask == null)
{
- _logger.LogDebug("HandleInboundTaskAsync锛氬綋鍓嶄换鍔′负绌�");
- QuartzLogger.Debug($"HandleInboundTaskAsync锛氬綋鍓嶄换鍔′负绌�", state.RobotCrane?.DeviceName ?? "Unknown");
+ QuartzLogHelper.LogDebug(_logger, $"HandleInboundTaskAsync锛氬綋鍓嶄换鍔′负绌�", state.RobotCrane?.DeviceName ?? "Unknown");
return false;
}
// 鑾峰彇宸烽亾浠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;
@@ -447,16 +475,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;
}
}
@@ -466,17 +511,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;
}
}
@@ -485,25 +547,35 @@
{
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 // 浠诲姟绫诲瀷锛堝叆搴�/绌烘墭鐩樺叆搴擄級
};
// 璁板綍鏃ュ織锛氬紑濮嬭皟鐢� WMS 鍒涘缓鍏ュ簱浠诲姟
- _logger.LogInformation("HandleInboundTaskAsync锛氳皟鐢╓MS鍒涘缓鍏ュ簱浠诲姟锛屾墭鐩樼爜: {PalletCode}锛屼换鍔$被鍨�: {TaskType}", PalletCode, taskType);
- QuartzLogger.Info($"璋冪敤WMS鍒涘缓鍏ュ簱浠诲姟锛屾墭鐩樼爜: {PalletCode}锛屼换鍔$被鍨�: {taskType}", state.RobotCrane?.DeviceName ?? "Unknown");
+ QuartzLogHelper.LogInfo(_logger, $"HandleInboundTaskAsync锛氳皟鐢╓MS鍒涘缓鍏ュ簱浠诲姟锛屾墭鐩樼爜: {PalletCode}锛屼换鍔$被鍨�: {taskType}", state.RobotCrane?.DeviceName ?? "Unknown");
// 璋冪敤 WMS 鎺ュ彛鍒涘缓鍏ュ簱浠诲姟
- var result = _httpClientHelper.Post<WebResponseContent>(nameof(ConfigKey.CreateTaskInboundAsync), taskDto.ToJson());
+ string configKey = nameof(ConfigKey.CreateTaskInboundAsync);
+ string requestParam = taskDto.ToJson();
+ DateTime startTime = DateTime.Now;
+
+ var result = _httpClientHelper.Post<WebResponseContent>(configKey, requestParam);
+
+ if (!result.IsSuccess || !result.Data.Status)
+ {
+ QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�", state.RobotCrane?.DeviceName ?? "Unknown");
+ return false;
+ }
+
+ QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆恵configKey}銆�,鍝嶅簲鏁版嵁:銆恵result.Data?.Data}銆�,鑰楁椂:{(DateTime.Now - startTime).TotalMilliseconds}ms", state.RobotCrane?.DeviceName ?? "Unknown");
// 濡傛灉璋冪敤澶辫触鎴栬繑鍥為敊璇姸鎬�
if (!result.Data.Status && result.IsSuccess)
{
- _logger.LogError("HandleInboundTaskAsync锛歐MS杩斿洖閿欒鐘舵�侊紝Status: {Status}", result.Data.Status);
- QuartzLogger.Error($"HandleInboundTaskAsync锛歐MS杩斿洖閿欒鐘舵��", state.RobotCrane?.DeviceName ?? "Unknown");
+ QuartzLogHelper.LogError(_logger, $"HandleInboundTaskAsync锛歐MS杩斿洖閿欒鐘舵�侊紝Status: {result.Data.Status}", state.RobotCrane?.DeviceName ?? "Unknown");
return false;
}
@@ -514,8 +586,7 @@
var content = _taskService.ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO });
if (!content.Status)
{
- _logger.LogError("HandleInboundTaskAsync锛氭帴鏀禬MS浠诲姟澶辫触");
- QuartzLogger.Error($"HandleInboundTaskAsync锛氭帴鏀禬MS浠诲姟澶辫触", state.RobotCrane?.DeviceName ?? "Unknown");
+ QuartzLogHelper.LogError(_logger, $"HandleInboundTaskAsync锛氭帴鏀禬MS浠诲姟澶辫触", state.RobotCrane?.DeviceName ?? "Unknown");
return false;
}
@@ -552,7 +623,7 @@
// }
//}
- return false;
+ return true;
}
/// <summary>
@@ -618,7 +689,18 @@
/// <returns>HTTP 鍝嶅簲缁撴灉</returns>
public HttpResponseResult<WebResponseContent> PostSplitPalletAsync(StockDTO stockDTO)
{
- return _httpClientHelper.Post<WebResponseContent>(nameof(ConfigKey.SplitPalletAsync), stockDTO.ToJson());
+ string configKey = nameof(ConfigKey.SplitPalletAsync);
+ string requestParam = stockDTO.ToJson();
+ DateTime startTime = DateTime.Now;
+
+ var result = _httpClientHelper.Post<WebResponseContent>(configKey, requestParam);
+
+ if (!result.IsSuccess || !result.Data.Status)
+ QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�", "RobotTaskProcessor");
+ else
+ QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆恵configKey}銆�,鍝嶅簲鏁版嵁:銆恵result.Data?.Data}銆�,鑰楁椂:{(DateTime.Now - startTime).TotalMilliseconds}ms", "RobotTaskProcessor");
+
+ return result;
}
/// <summary>
@@ -637,7 +719,17 @@
/// <returns>HTTP 鍝嶅簲缁撴灉</returns>
public HttpResponseResult<WebResponseContent> PostGroupPalletAsync(string configKey, StockDTO stockDTO)
{
- return _httpClientHelper.Post<WebResponseContent>(configKey, stockDTO.ToJson());
+ string requestParam = stockDTO.ToJson();
+ DateTime startTime = DateTime.Now;
+
+ var result = _httpClientHelper.Post<WebResponseContent>(configKey, requestParam);
+
+ if (!result.IsSuccess || !result.Data.Status)
+ QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�", "RobotTaskProcessor");
+ else
+ QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆恵configKey}銆�,鍝嶅簲鏁版嵁:銆恵result.Data?.Data}銆�,鑰楁椂:{(DateTime.Now - startTime).TotalMilliseconds}ms", "RobotTaskProcessor");
+
+ return result;
}
/// <summary>
@@ -651,8 +743,19 @@
/// <returns>HTTP 鍝嶅簲缁撴灉</returns>
public HttpResponseResult<WebResponseContent> PostSplitPalletConfirmAsync(string palletCode, string deviceName)
{
+ string configKey = nameof(ConfigKey.SplitPalletConfirm);
var request = new { PalletCode = palletCode, DeviceName = deviceName };
- return _httpClientHelper.Post<WebResponseContent>(nameof(ConfigKey.SplitPalletConfirm), request.ToJson());
+ string requestParam = request.ToJson();
+ DateTime startTime = DateTime.Now;
+
+ var result = _httpClientHelper.Post<WebResponseContent>(configKey, requestParam);
+
+ if (!result.IsSuccess || !result.Data.Status)
+ QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�", "RobotTaskProcessor");
+ else
+ QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆恵configKey}銆�,鍝嶅簲鏁版嵁:銆恵result.Data?.Data}銆�,鑰楁椂:{(DateTime.Now - startTime).TotalMilliseconds}ms", "RobotTaskProcessor");
+
+ return result;
}
/// <summary>
@@ -666,8 +769,25 @@
/// <returns>HTTP 鍝嶅簲缁撴灉</returns>
public HttpResponseResult<WebResponseContent> PostGroupPalletConfirmAsync(string palletCode, string deviceName)
{
+ string configKey = nameof(ConfigKey.GroupPalletConfirm);
var request = new { PalletCode = palletCode, DeviceName = deviceName };
- return _httpClientHelper.Post<WebResponseContent>(nameof(ConfigKey.GroupPalletConfirm), request.ToJson());
+ string requestParam = request.ToJson();
+ DateTime startTime = DateTime.Now;
+
+ var result = _httpClientHelper.Post<WebResponseContent>(configKey, requestParam);
+
+ if (!result.IsSuccess || !result.Data.Status)
+ QuartzLogHelper.LogError(_logger, $"璋冪敤WMS鎺ュ彛澶辫触,鎺ュ彛:銆恵configKey}銆�,璇锋眰鍙傛暟:銆恵requestParam}銆�,閿欒淇℃伅:銆恵result.Data?.Message}銆�", "RobotTaskProcessor");
+ else
+ QuartzLogHelper.LogInfo(_logger, $"璋冪敤WMS鎺ュ彛鎴愬姛,鎺ュ彛:銆恵configKey}銆�,鍝嶅簲鏁版嵁:銆恵result.Data?.Data}銆�,鑰楁椂:{(DateTime.Now - startTime).TotalMilliseconds}ms", "RobotTaskProcessor");
+
+ return result;
+ }
+
+ public bool UpdateRobotTask(Dt_RobotTask task)
+ {
+ WebResponseContent content = _robotTaskService.UpdateData(task);
+ return content.Status;
}
}
}
--
Gitblit v1.9.3