From 0b2869539598059704e1d208e2bcb18603b0fe0f Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期五, 01 五月 2026 00:00:30 +0800
Subject: [PATCH] feat(出库时效): 添加出库时效配置功能

---
 Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs |   29 +++++++++++++++++++++++++++--
 1 files changed, 27 insertions(+), 2 deletions(-)

diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs
index 318ed17..93fc738 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs
@@ -124,6 +124,20 @@
         }
 
         /// <summary>
+        /// 鎸変换鍔$紪鍙疯幏鍙栨満鍣ㄤ汉浠诲姟
+        /// </summary>
+        /// <remarks>
+        /// 鐢ㄤ簬 RobotJob 蹇�熸煡鎵炬墽琛屼腑鐨勪换鍔★紝閬垮厤鍏ㄨ〃鎵弿銆�
+        /// 浼樺厛閫氳繃鐘舵�佷腑缂撳瓨鐨� CurrentTaskNum 瀹氫綅浠诲姟銆�
+        /// </remarks>
+        /// <param name="taskNum">鏈哄櫒浜轰换鍔$紪鍙�</param>
+        /// <returns>鍖归厤鐨勪换鍔″璞★紝濡傛灉娌℃湁鍒欒繑鍥� null</returns>
+        public Dt_RobotTask? GetTaskByNum(int taskNum)
+        {
+            return _robotTaskService.Repository.QueryFirst(x => x.RobotTaskNum == taskNum);
+        }
+
+        /// <summary>
         /// 鎸夎澶囩紪鐮佽幏鍙栧綋鍓嶆満鍣ㄤ汉鐨勬墽琛屼腑浠诲姟
         /// </summary>
         /// <remarks>
@@ -186,6 +200,7 @@
 
             // 灏嗕换鍔″叧鑱斿埌鐘舵�佸璞�
             state.CurrentTask = task;
+            state.CurrentTaskNum = task.RobotTaskNum;
 
             if (isScanNG)
             {
@@ -276,6 +291,7 @@
 
             // 灏嗕换鍔″叧鑱斿埌鐘舵�佸璞�
             state.CurrentTask = task;
+            state.CurrentTaskNum = task.RobotTaskNum;
 
             if (_stateManager.TryUpdateStateSafely(state.IPAddress, state))
             {
@@ -346,6 +362,7 @@
 
             task.RobotTaskState = TaskRobotStatusEnum.RobotExecuting.GetHashCode();
             state.CurrentTask = task;
+            state.CurrentTaskNum = task.RobotTaskNum;
 
             if (_stateManager.TryUpdateStateSafely(state.IPAddress, state))
             {
@@ -389,6 +406,7 @@
         {
             task.RobotTaskState = TaskRobotStatusEnum.RobotExecuting.GetHashCode();
             state.CurrentTask = task;
+            state.CurrentTaskNum = task.RobotTaskNum;
 
             if (_stateManager.TryUpdateStateSafely(state.IPAddress, state))
             {
@@ -434,6 +452,7 @@
         {
             task.RobotTaskState = TaskRobotStatusEnum.RobotExecuting.GetHashCode();
             state.CurrentTask = task;
+            state.CurrentTaskNum = task.RobotTaskNum;
 
             if (_stateManager.TryUpdateStateSafely(state.IPAddress, state))
             {
@@ -627,6 +646,12 @@
             // 瑙f瀽 WMS 杩斿洖鐨勪换鍔′俊鎭�
             WMSTaskDTO taskDTO = JsonConvert.DeserializeObject<WMSTaskDTO>(result.Data.Data.ToJson() ?? string.Empty) ?? new WMSTaskDTO();
 
+            var task = await _taskService.Repository.QueryFirstAsync(x => x.PalletCode == taskDTO.PalletCode);
+            if(task != null)
+            {
+                await _taskService.Repository.DeleteDataAsync(task);
+            }
+
             // 璋冪敤浠诲姟鏈嶅姟鎺ユ敹 WMS 浠诲姟
             var content = _taskService.ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO });
             if (!content.Status)
@@ -682,9 +707,9 @@
                         // 閫氶亾/浣嶇疆缂栧彿
                         Channel = x,
 
-                        // 鐢垫睜鏉$爜锛氬鏋滅姸鎬佷腑鏈夋潯鐮佸垪琛紝鍙栧搴斾綅缃殑鏉$爜锛涘惁鍒欎负绌�
+                        // 鐢垫睜鏉$爜锛氫娇鐢ㄥ綋鍓嶆壒娆℃潯鐮佸垪琛紝鍙栧搴斾綅缃殑鏉$爜锛涘惁鍒欎负绌�
                         //CellBarcode = state.CellBarcode?.Count > 0 ? state.CellBarcode[x - 1] : ""
-                        CellBarcode = !state.CellBarcode.IsNullOrEmpty() ? state.CellBarcode[idx].ToString() ?? string.Empty : string.Empty
+                        CellBarcode = !state.CurrentBatchBarcodes.IsNullOrEmpty() ? state.CurrentBatchBarcodes[idx].ToString() ?? string.Empty : string.Empty
                     })
                     .ToList()
             };

--
Gitblit v1.9.3