From 853f7a71577bd8694c848985e1eb21c74d30eba9 Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期二, 21 四月 2026 21:19:23 +0800
Subject: [PATCH] fix(WCS): 修复输送线任务处理逻辑并更新设备映射
---
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/ConveyorLineDispatchHandler.cs | 87 +++++++++++++++++++++----------------------
1 files changed, 43 insertions(+), 44 deletions(-)
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/ConveyorLineDispatchHandler.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/ConveyorLineDispatchHandler.cs
index 5072e29..a113186 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/ConveyorLineDispatchHandler.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/ConveyorLineDispatchHandler.cs
@@ -1,12 +1,11 @@
using MapsterMapper;
-using Microsoft.Extensions.Logging;
+using Serilog;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core;
-using WIDESEAWCS_Core.Helper;
-using WIDESEAWCS_Core.LogHelper;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob;
+using WIDESEAWCS_QuartzJob.Models;
using WIDESEAWCS_QuartzJob.Service;
namespace WIDESEAWCS_Tasks
@@ -105,8 +104,7 @@
{
// 娓呴櫎浠诲姟鍙凤紝琛ㄧず褰撳墠绌洪棽
conveyorLine.SetValue(ConveyorLineDBNameNew.TaskNo, 0, childDeviceCode);
- _logger.LogDebug("HeartBeat锛氬瓙璁惧 {ChildDeviceCode} 蹇冭烦", childDeviceCode);
- QuartzLogger.Debug($"HeartBeat锛氬瓙璁惧 {childDeviceCode} 蹇冭烦", conveyorLine.DeviceCode);
+ QuartzLogHelper.LogDebug(_logger, $"HeartBeat锛氬瓙璁惧 {childDeviceCode} 蹇冭烦", conveyorLine.DeviceCode);
}
/// <summary>
@@ -125,8 +123,7 @@
/// <param name="childDeviceCode">瀛愯澶囩紪鐮�</param>
public void RequestInbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommandNew command, string childDeviceCode)
{
- _logger.LogInformation("RequestInbound锛氬瓙璁惧 {ChildDeviceCode} 璇锋眰鍏ュ簱", childDeviceCode);
- QuartzLogger.Info($"璇锋眰鍏ュ簱锛屽瓙璁惧: {childDeviceCode}", conveyorLine.DeviceCode);
+ QuartzLogHelper.LogInfo(_logger, $"璇锋眰鍏ュ簱锛屽瓙璁惧: {childDeviceCode}", conveyorLine.DeviceCode);
// 鍚� WMS 璇锋眰鏂颁换鍔★紙鍩轰簬鏉$爜锛�
if (_taskFilter.RequestWmsTask(command.Barcode, childDeviceCode))
@@ -147,8 +144,7 @@
// 鏇存柊浠诲姟鐘舵�佸埌涓嬩竴闃舵
_taskService.UpdateTaskStatusToNext(task);
- _logger.LogInformation("RequestInbound锛氬叆搴撲换鍔″凡涓嬪彂锛屼换鍔″彿: {TaskNum}锛屽瓙璁惧: {ChildDeviceCode}", task.TaskNum, childDeviceCode);
- QuartzLogger.Info($"鍏ュ簱浠诲姟宸蹭笅鍙戯紝浠诲姟鍙�: {task.TaskNum}锛屽瓙璁惧: {childDeviceCode}", conveyorLine.DeviceCode);
+ QuartzLogHelper.LogInfo(_logger, $"鍏ュ簱浠诲姟宸蹭笅鍙戯紝浠诲姟鍙�: {task.TaskNum}锛屽瓙璁惧: {childDeviceCode}", conveyorLine.DeviceCode);
}
}
}
@@ -169,25 +165,27 @@
Dt_Task? task = _taskFilter.QueryExecutingTask(command.TaskNo, childDeviceCode);
if (task == null)
{
- _logger.LogDebug("RequestInNextAddress锛氫换鍔� {TaskNo} 涓嶅瓨鍦�", command.TaskNo);
- QuartzLogger.Debug($"RequestInNextAddress锛氫换鍔� {command.TaskNo} 涓嶅瓨鍦�", conveyorLine.DeviceCode);
+ QuartzLogHelper.LogDebug(_logger, $"RequestInNextAddress锛氫换鍔� {command.TaskNo} 涓嶅瓨鍦�", conveyorLine.DeviceCode);
return;
}
- _logger.LogInformation("RequestInNextAddress锛氬叆搴撲笅涓�鍦板潃锛屼换鍔″彿: {TaskNum}锛屽瓙璁惧: {ChildDeviceCode}", task.TaskNum, childDeviceCode);
- QuartzLogger.Info($"RequestInNextAddress锛氬叆搴撲笅涓�鍦板潃锛屼换鍔″彿: {task.TaskNum}锛屽瓙璁惧: {childDeviceCode}", conveyorLine.DeviceCode);
+ QuartzLogHelper.LogInfo(_logger, $"RequestInNextAddress锛氬叆搴撲笅涓�鍦板潃锛屼换鍔″彿: {task.TaskNum}锛屽瓙璁惧: {childDeviceCode}", conveyorLine.DeviceCode);
- // 濡傛灉涓嶆槸绌烘墭鐩樹换鍔★紝澶勭悊鐩爣鍦板潃锛堜笌鎷樻潫鏈�/鎻掓嫈閽夋満浜や簰锛�
- if (task.TaskType != (int)TaskOutboundTypeEnum.OutEmpty)
- {
- _targetAddressSelector.HandleInboundNextAddress(conveyorLine, task.NextAddress, childDeviceCode);
- }
+ //// 濡傛灉涓嶆槸绌烘墭鐩樹换鍔★紝澶勭悊鐩爣鍦板潃
+ //if (task.TaskType != (int)TaskOutboundTypeEnum.OutEmpty)
+ //{
+
+ Dt_Router routers = _routerService.QueryNextRoute(task.NextAddress, task.TargetAddress);
+ if (routers == null) throw new Exception($"鏈壘鍒拌澶囪矾鐢变俊鎭�");
+
+ _targetAddressSelector.HandleInboundNextAddress(conveyorLine, routers.ChildPosi, childDeviceCode);
+ //}
// 鏇存柊浠诲姟褰撳墠浣嶇疆
_ = _taskService.UpdatePosition(task.TaskNum, task.CurrentAddress);
// 璁剧疆 WCS_STB 鏍囧織锛岃〃绀� WCS 宸插鐞�
- conveyorLine.SetValue(ConveyorLineDBNameNew.WCS_STB, 1, childDeviceCode);
+ conveyorLine.SetValue(ConveyorLineDBNameNew.WCS_ACK, (short)1, childDeviceCode);
}
/// <summary>
@@ -206,14 +204,13 @@
Dt_Task? task = _taskFilter.QueryExecutingTask(command.TaskNo, childDeviceCode);
if (task != null)
{
- // 鍥炲 ACK 纭
- conveyorLine.SetValue(ConveyorLineDBNameNew.WCS_ACK, 1, childDeviceCode);
-
// 鏇存柊浠诲姟鐘舵�佸埌涓嬩竴闃舵锛堥�氬父鏄畬鎴愶級
- WebResponseContent content = _taskService.UpdateTaskStatusToNext(task);
-
- _logger.LogInformation("ConveyorLineInFinish锛氬叆搴撳畬鎴愶紝浠诲姟鍙�: {TaskNum}锛屽瓙璁惧: {ChildDeviceCode}", task.TaskNum, childDeviceCode);
- QuartzLogger.Info($"鍏ュ簱瀹屾垚锛屼换鍔″彿: {task.TaskNum}", conveyorLine.DeviceCode);
+ if (_taskService.UpdateTaskStatusToNext(task).Status)
+ {
+ // 鍥炲 ACK 纭
+ conveyorLine.SetValue(ConveyorLineDBNameNew.WCS_ACK, (short)1, childDeviceCode);
+ QuartzLogHelper.LogInfo(_logger, $"鍏ュ簱瀹屾垚锛屼换鍔″彿: {task.TaskNum},瀛愯澶�:{childDeviceCode}", conveyorLine.DeviceCode);
+ }
}
}
@@ -246,13 +243,12 @@
conveyorLine.SetValue(ConveyorLineDBNameNew.Target, task.NextAddress, childDeviceCode);
// 鍥炲 ACK 纭
- conveyorLine.SetValue(ConveyorLineDBNameNew.WCS_ACK, 1, childDeviceCode);
+ conveyorLine.SetValue(ConveyorLineDBNameNew.WCS_ACK, (short)1, childDeviceCode);
// 鏇存柊浠诲姟鐘舵��
_taskService.UpdateTaskStatusToNext(task);
- _logger.LogInformation("RequestOutbound锛氬嚭搴撲换鍔″凡涓嬪彂锛屼换鍔″彿: {TaskNum}锛屽瓙璁惧: {ChildDeviceCode}", task.TaskNum, childDeviceCode);
- QuartzLogger.Info($"鍑哄簱浠诲姟宸蹭笅鍙戯紝浠诲姟鍙�: {task.TaskNum}", conveyorLine.DeviceCode);
+ QuartzLogHelper.LogInfo(_logger, "RequestOutbound锛氬嚭搴撲换鍔″凡涓嬪彂锛屼换鍔″彿: {TaskNum}锛屽瓙璁惧: {ChildDeviceCode}", $"鍑哄簱浠诲姟宸蹭笅鍙戯紝浠诲姟鍙�: {task.TaskNum}", conveyorLine.DeviceCode, task.TaskNum, childDeviceCode);
}
}
@@ -272,25 +268,26 @@
Dt_Task? task = _taskFilter.QueryExecutingTask(command.TaskNo, childDeviceCode);
if (task == null)
{
- _logger.LogDebug("RequestOutNextAddress锛氫换鍔� {TaskNo} 涓嶅瓨鍦�", command.TaskNo);
- QuartzLogger.Debug($"RequestOutNextAddress锛氫换鍔� {command.TaskNo} 涓嶅瓨鍦�", conveyorLine.DeviceCode);
+ QuartzLogHelper.LogDebug(_logger, $"RequestOutNextAddress锛氫换鍔� {command.TaskNo} 涓嶅瓨鍦�", conveyorLine.DeviceCode);
return;
}
- _logger.LogInformation("RequestOutNextAddress锛氬嚭搴撲笅涓�鍦板潃锛屼换鍔″彿: {TaskNum}锛屽瓙璁惧: {ChildDeviceCode}", task.TaskNum, childDeviceCode);
- QuartzLogger.Info($"RequestOutNextAddress锛氬嚭搴撲笅涓�鍦板潃锛屼换鍔″彿: {task.TaskNum}锛屽瓙璁惧: {childDeviceCode}", conveyorLine.DeviceCode);
+ QuartzLogHelper.LogInfo(_logger, $"RequestOutNextAddress锛氬嚭搴撲笅涓�鍦板潃锛屼换鍔″彿: {task.TaskNum}锛屽瓙璁惧: {childDeviceCode}", conveyorLine.DeviceCode);
// 濡傛灉涓嶆槸绌烘墭鐩樹换鍔★紝澶勭悊鐩爣鍦板潃
- if (task.TaskType != (int)TaskOutboundTypeEnum.OutEmpty)
- {
- _targetAddressSelector.HandleOutboundNextAddress(conveyorLine, task.NextAddress, childDeviceCode);
- }
+ //if (task.TaskType != (int)TaskOutboundTypeEnum.OutEmpty)
+ //{
+ Dt_Router routers = _routerService.QueryNextRoute(task.NextAddress, task.TargetAddress);
+ if (routers == null) throw new Exception($"鏈壘鍒拌澶囪矾鐢变俊鎭�");
+
+ _targetAddressSelector.HandleOutboundNextAddress(conveyorLine, routers.ChildPosi, childDeviceCode);
+ //}
// 鏇存柊浠诲姟褰撳墠浣嶇疆
_ = _taskService.UpdatePosition(task.TaskNum, task.CurrentAddress);
// 鍥炲 ACK 纭
- conveyorLine.SetValue(ConveyorLineDBNameNew.WCS_ACK, 1, childDeviceCode);
+ conveyorLine.SetValue(ConveyorLineDBNameNew.WCS_ACK, (short)1, childDeviceCode);
}
/// <summary>
@@ -309,15 +306,17 @@
Dt_Task? task = _taskFilter.QueryExecutingTask(command.TaskNo, childDeviceCode);
if (task != null)
{
- // 鍥炲 ACK 纭
- conveyorLine.SetValue(ConveyorLineDBNameNew.WCS_ACK, 1, childDeviceCode);
-
// 鏇存柊浠诲姟鐘舵�佸埌涓嬩竴闃舵锛堥�氬父鏄畬鎴愶級
WebResponseContent content = _taskService.UpdateTaskStatusToNext(task);
- _logger.LogInformation("ConveyorLineOutFinish锛氬嚭搴撳畬鎴愶紝浠诲姟鍙�: {TaskNum}锛屽瓙璁惧: {ChildDeviceCode}", task.TaskNum, childDeviceCode);
- QuartzLogger.Info($"鍑哄簱瀹屾垚锛屼换鍔″彿: {task.TaskNum}", conveyorLine.DeviceCode);
+ if (content.Status)
+ {
+ // 鍥炲 ACK 纭
+ conveyorLine.SetValue(ConveyorLineDBNameNew.WCS_ACK, (short)1, childDeviceCode);
+ }
+
+ QuartzLogHelper.LogInfo(_logger, $"鍑哄簱瀹屾垚锛屽畬鎴愮粨鏋滐細{content.Status}锛屼换鍔″彿: {task.TaskNum}锛岄敊璇秷鎭細{content.Message}", conveyorLine.DeviceCode);
}
}
}
-}
+}
\ No newline at end of file
--
Gitblit v1.9.3