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