From ce3b28cdcdb2b6a912413cd9e744d0ecadcb78a0 Mon Sep 17 00:00:00 2001
From: wankeda <Administrator@DESKTOP-HAU3ST3>
Date: 星期二, 13 一月 2026 17:47:30 +0800
Subject: [PATCH] 优化成品出入库流程代码

---
 WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGV/RGVJob_L1.cs |   39 +++++++++++++++++++++++++--------------
 1 files changed, 25 insertions(+), 14 deletions(-)

diff --git a/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGV/RGVJob_L1.cs b/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGV/RGVJob_L1.cs
index fe6d376..5edc6e9 100644
--- a/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGV/RGVJob_L1.cs
+++ b/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGV/RGVJob_L1.cs
@@ -87,7 +87,7 @@
                             Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == device.GetValue<R_RGVConveyorLineDBName, int>(R_RGVConveyorLineDBName.R_TaskNum, item.StationCode) && x.TaskState == TaskStatusEnum.RGV_Executing.ObjToInt());
                             if (task != null)
                             {
-                                if (task.TaskType == TaskTypeEnum.Inbound.ObjToInt())//RGV鍏ュ簱浠诲姟瀹屾垚
+                                if (task.TaskType >= TaskTypeEnum.Inbound.ObjToInt())//RGV鍏ュ簱浠诲姟瀹屾垚
                                 {
                                     Dt_Router routers = _routerRepository.QueryFirst(x => x.StartPosi == task.NextAddress);
                                     _taskService.UpdateTask(task, TaskStatusEnum.RGV_Finish, currentAddress: task.NextAddress, nextAddress: routers.NextPosi);
@@ -99,7 +99,10 @@
                                     _taskService.TaskCompleted(task.TaskNum);
 
                                 }
-                                device.SetValue(W_RGVConveyorLineDBName.W_ACK, true, item.StationCode);
+                                for (int i = 0; i < 3; i++)
+                                {
+                                    device.SetValue(W_RGVConveyorLineDBName.W_ACK, true, item.StationCode);
+                                }
                             }
 
                         }
@@ -108,23 +111,31 @@
                             Dt_Task task = _taskRepository.QueryFirst(x => x.TaskType >= TaskTypeEnum.Inbound.ObjToInt() && x.TaskState == TaskStatusEnum.RGV_NEW.ObjToInt() && x.RGVCode == item.StationCode);
                             if (task != null)
                             {
-                                //鍐欏叆RGV浠诲姟
-                                device.SetValue(W_RGVConveyorLineDBName.W_TaskNo, task.TaskNum, item.StationCode);
-                                device.SetValue(W_RGVConveyorLineDBName.W_StartPos, task.SourceAddress.ObjToInt(), item.StationCode);
-                                device.SetValue(W_RGVConveyorLineDBName.W_TaskType, 2, item.StationCode);
-                                device.SetValue(W_RGVConveyorLineDBName.W_EndPos, task.NextAddress.ObjToInt(), item.StationCode);
-                                device.SetValue(W_RGVConveyorLineDBName.W_STB, true, item.StationCode);
+                                for (int i = 0; i < 3; i++)
+                                {
+                                    //鍐欏叆RGV浠诲姟
+                                    device.SetValue(W_RGVConveyorLineDBName.W_TaskNo, task.TaskNum, item.StationCode);
+                                    device.SetValue(W_RGVConveyorLineDBName.W_StartPos, task.SourceAddress.ObjToInt(), item.StationCode);
+                                    device.SetValue(W_RGVConveyorLineDBName.W_TaskType, 2, item.StationCode);
+                                    device.SetValue(W_RGVConveyorLineDBName.W_EndPos, task.NextAddress.ObjToInt(), item.StationCode);
+                                    device.SetValue(W_RGVConveyorLineDBName.W_STB, true, item.StationCode);
+                                    Thread.Sleep(1000);
+                                }
                                 _taskService.UpdateTask(task, TaskStatusEnum.RGV_Executing);
                             }
                             Dt_Task task1 = _taskRepository.QueryFirst(x => x.TaskType >= TaskTypeEnum.Outbound.ObjToInt() && x.TaskType <= TaskTypeEnum.Inbound.ObjToInt() && x.TaskState == TaskStatusEnum.RGV_Execute.ObjToInt() && x.RGVCode == item.StationCode);
                             if (task1 != null)
                             {
-                                //鍐欏叆RGV浠诲姟
-                                device.SetValue(W_RGVConveyorLineDBName.W_TaskNo, task1.TaskNum, item.StationCode);
-                                device.SetValue(W_RGVConveyorLineDBName.W_StartPos, task1.CurrentAddress, item.StationCode);
-                                device.SetValue(W_RGVConveyorLineDBName.W_TaskType, 2, item.StationCode);
-                                device.SetValue(W_RGVConveyorLineDBName.W_EndPos, task1.TargetAddress, item.StationCode);
-                                device.SetValue(W_RGVConveyorLineDBName.W_STB, true, item.StationCode);
+                                for (int i = 0; i < 3; i++)
+                                {
+                                    //鍐欏叆RGV浠诲姟
+                                    device.SetValue(W_RGVConveyorLineDBName.W_TaskNo, task1.TaskNum, item.StationCode);
+                                    device.SetValue(W_RGVConveyorLineDBName.W_StartPos, task1.CurrentAddress, item.StationCode);
+                                    device.SetValue(W_RGVConveyorLineDBName.W_TaskType, 2, item.StationCode);
+                                    device.SetValue(W_RGVConveyorLineDBName.W_EndPos, task1.TargetAddress, item.StationCode);
+                                    device.SetValue(W_RGVConveyorLineDBName.W_STB, true, item.StationCode);
+                                    Thread.Sleep(1000);
+                                }
                                 _taskService.UpdateTask(task1, TaskStatusEnum.RGV_Executing);
                             }
                         }

--
Gitblit v1.9.3