From 2381da9301f2a269e763b1325fb1ea0d5dfd1005 Mon Sep 17 00:00:00 2001
From: zhangchengsong <zhangchengsong@hnkhzn.com>
Date: 星期四, 23 四月 2026 20:47:26 +0800
Subject: [PATCH] 最新
---
项目代码/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs | 22 +++++++++++++++++++---
1 files changed, 19 insertions(+), 3 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs"
index 987e148..c683664 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs"
@@ -64,6 +64,8 @@
private static readonly Dictionary<string, bool> _deviceLastStatus = new Dictionary<string, bool>();
public string urlWMSdeverror = WIDESEAWCS_Core.Helper.AppSettings.Configuration["urlWMSdeverror"];
private static readonly StackerFault[] _stackerFaultEnumCache = Enum.GetValues(typeof(StackerFault)).Cast<StackerFault>().ToArray();
+ // 鐢ㄦ潵璁板綍鍝簺浠诲姟宸茬粡涓婃姤杩囨斁璐т腑
+ private static readonly HashSet<int> _reportedPickupTaskIds = new HashSet<int>();
@@ -473,13 +475,27 @@
{
var dtTask = _taskRepository.QueryFirst(x => x.TaskNum == taskNum);
if (dtTask == null) return;
- //鍫嗗灈鏈烘斁璐т腑鏄换鍔$姸鎬佸洖璋冩嬁pickup
- if (dtTask.TaskType == 200 && stackerCraneWorkStatusDes == "鏀捐揣涓�")
+ //鍫嗗灈鏈烘斁璐т腑鏄换鍔$姸鎬佸洖璋冩嬁pickup
+ // ===================== 鍑哄簱鏀捐揣涓細鍙笂鎶�1娆� =====================
+ if (dtTask.TaskType == (int)TaskTypeEnum.Inbound && stackerCraneWorkStatusDes == "鏀捐揣涓�")
{
+ // 鍒ゆ柇鏄惁宸茬粡涓婃姤杩�
+ if (_reportedPickupTaskIds.Contains(taskNum))
+ {
+ return; // 宸蹭笂鎶ワ紝鐩存帴璺宠繃
+ }
+ // 绗竴娆′笂鎶�
string Result = WMSTaskStatusEnum.pickup.GetDescription();
Dt_roadwayinfo roadwayinfo = _Dt_roadwayinfoService.GetRoadwayinfo(dtTask.Roadway);
CommandResult command = _taskService.taskreturn(int.Parse(dtTask.WMStaskid), Result, roadwayinfo.WarehouseInvType, "");
- return;
+
+ // 鏍囪涓哄凡涓婃姤
+ _reportedPickupTaskIds.Add(taskNum);
+ }
+ // 浠诲姟瀹屾垚鏃舵竻鐞嗚褰�
+ if (stackerCraneWorkStatusDes == "浠诲姟瀹屾垚")
+ {
+ _reportedPickupTaskIds.Remove(taskNum);
}
string[] targets = { "G02", "G03", "G04", "C02", "C01" };
if (dtTask.TaskType != 100 || !targets.Contains(dtTask.TargetAddress)) return;
--
Gitblit v1.9.3