From 011ca316e6ec2ed93e31c45a9ebd9d3c66664871 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期五, 17 四月 2026 11:47:03 +0800
Subject: [PATCH] 代码更新

---
 项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/成品仓/RGVJob_CP.cs |   47 +++++++++++++++++++++++++++++------------------
 1 files changed, 29 insertions(+), 18 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/RGVJob_CP.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/RGVJob_CP.cs"
index 4663e0d..3f1fba4 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/RGVJob_CP.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/RGVJob_CP.cs"
@@ -88,6 +88,7 @@
                         Dt_Task? task2 = tasks.FirstOrDefault(x => x.HeightType == 2);
                         Dt_Task? task3 = tasks.FirstOrDefault(x => x.HeightType == 3);
                         List<Dt_Task> tasksDown = _taskRepository.QueryData(x => _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskStatusEnum.RGV_Execute.ObjToInt() && x.DeviceCode == device.DeviceCode).OrderBy(x=>x.CreateDate).Take(3).ToList();
+                        List<Dt_Task> taskSends = new List<Dt_Task>();
                         if (tasksDown.Count>0)
                         {
                             bool ReceivedDone = false;
@@ -102,8 +103,7 @@
                                     device.SetValue(W_RgvCPDB.Qu1, tasksDown[0].CurrentAddress);
                                     device.SetValue(W_RgvCPDB.Fang1, tasksDown[0].NextAddress);
                                     tasksDown[0].HeightType = 1;
-                                    _taskService.UpdateTask(tasksDown[0], TaskStatusEnum.RGV_Executing);
-                                    Thread.Sleep(100);
+                                    taskSends.Add(tasksDown[0]);
                                     ReceivedDone=true;
                                 }
                             }
@@ -114,19 +114,16 @@
                                 {
                                     //涓嬪彂鎵ц宸ヤ綅
                                     device.SetValue(W_RgvCPDB.WorkStation, 4);
-
                                     device.SetValue(W_RgvCPDB.WcsTask1, tasksDown[0].TaskNum);
                                     device.SetValue(W_RgvCPDB.Qu1, tasksDown[0].CurrentAddress);
                                     device.SetValue(W_RgvCPDB.Fang1, tasksDown[0].NextAddress);
                                     tasksDown[0].HeightType = 1;
-                                    _taskService.UpdateTask(tasksDown[0], TaskStatusEnum.RGV_Executing);
-                                    Thread.Sleep(100);
                                     device.SetValue(W_RgvCPDB.WcsTask2, tasksDown[1].TaskNum);
                                     device.SetValue(W_RgvCPDB.Qu2, tasksDown[1].CurrentAddress);
                                     device.SetValue(W_RgvCPDB.Fang2, tasksDown[1].NextAddress);
                                     tasksDown[1].HeightType = 2;
-                                    _taskService.UpdateTask(tasksDown[1], TaskStatusEnum.RGV_Executing);
-                                    Thread.Sleep(100);
+                                    taskSends.Add(tasksDown[0]);
+                                    taskSends.Add(tasksDown[1]);
                                     ReceivedDone = true;
                                 }
                             }
@@ -136,39 +133,53 @@
                                 {
                                     //涓嬪彂鎵ц宸ヤ綅
                                     device.SetValue(W_RgvCPDB.WorkStation, 7);
-
                                     device.SetValue(W_RgvCPDB.WcsTask1, tasksDown[0].TaskNum);
                                     device.SetValue(W_RgvCPDB.Qu1, tasksDown[0].CurrentAddress);
                                     device.SetValue(W_RgvCPDB.Fang1, tasksDown[0].NextAddress);
                                     tasksDown[0].HeightType = 1;
-                                    _taskService.UpdateTask(tasksDown[0], TaskStatusEnum.RGV_Executing);
-                                    Thread.Sleep(100);
                                     device.SetValue(W_RgvCPDB.WcsTask2, tasksDown[1].TaskNum);
                                     device.SetValue(W_RgvCPDB.Qu2, tasksDown[1].CurrentAddress);
                                     device.SetValue(W_RgvCPDB.Fang2, tasksDown[1].NextAddress);
                                     tasksDown[1].HeightType = 2;
-                                    _taskService.UpdateTask(tasksDown[1], TaskStatusEnum.RGV_Executing);
-                                    Thread.Sleep(100);
                                     device.SetValue(W_RgvCPDB.WcsTask3, tasksDown[2].TaskNum);
                                     device.SetValue(W_RgvCPDB.Qu3, tasksDown[2].CurrentAddress);
                                     device.SetValue(W_RgvCPDB.Fang3, tasksDown[2].NextAddress);
                                     tasksDown[2].HeightType = 3;
-                                    _taskService.UpdateTask(tasksDown[2], TaskStatusEnum.RGV_Executing);
-                                    Thread.Sleep(100);
+                                    taskSends.Add(tasksDown[0]);
+                                    taskSends.Add(tasksDown[1]);
+                                    taskSends.Add(tasksDown[2]);
                                     ReceivedDone = true;
                                 }
                             }
+                            //涓嬪彂鏇存柊浠诲姟
                             if (ReceivedDone)
                             {
                                 device.SetValue(W_RgvCPDB.TaskType, 4);
                                 device.SetValue(W_RgvCPDB.TaskReceivedDone, 1);
+                                foreach (var item in taskSends)
+                                {
+                                    _taskService.UpdateTask(item, TaskStatusEnum.RGV_Executing);
+                                }
                             }
                         }
                     }
                     else if((rgvInfoRead.Mode == 5 || rgvInfoRead.Mode == 4) && rgvInfoRead.TaskDone == 3)
                     {
+                        int taskNum = 0;
+                        if (rgvInfoRead.RgvTask > 0)
+                        {
+                            taskNum = rgvInfoRead.RgvTask;
+                        }
+                        else if (rgvInfoRead.RgvEndTask > 0)
+                        {
+                            taskNum = rgvInfoRead.RgvEndTask;
+                        }
+                        else if (rgvInfoRead.RgvLastTask > 0)
+                        {
+                            taskNum = rgvInfoRead.RgvLastTask;
+                        }
                         //鑾峰彇浠诲姟
-                        Dt_Task task = _taskRepository.QueryFirst(x =>x.TaskNum==rgvInfoRead.RgvTask &&  _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskStatusEnum.RGV_Executing.ObjToInt() && x.DeviceCode == device.DeviceCode);
+                        Dt_Task task = _taskRepository.QueryFirst(x =>x.TaskNum== taskNum &&  _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskStatusEnum.RGV_Executing.ObjToInt() && x.DeviceCode == device.DeviceCode);
                         if (task != null)
                         {
                             //鑾峰彇涓嬩竴涓妭鐐圭殑璺敱
@@ -178,18 +189,18 @@
                             task.DeviceCode = stationManger.StationDeviceCode;
                             device.SetValue(W_RgvCPDB.TaskReceivedDone, 2);
                             _taskService.UpdateTask(task, TaskStatusEnum.Line_Execute);
-                            WriteInfo(device.DeviceName, $"RGV浠诲姟瀹屾垚,浠诲姟鍙穥rgvInfoRead.RgvEndTask}");
+                            WriteInfo(device.DeviceName, $"RGV浠诲姟瀹屾垚,浠诲姟鍙穥taskNum}");
                         }
                         else
                         {
-                            WriteInfo(device.DeviceName, $"鏈壘鍒癛GV瀵瑰簲鐨勭粨鏉熶换鍔rgvInfoRead.RgvEndTask}");
+                            WriteInfo(device.DeviceName, $"鏈壘鍒癛GV瀵瑰簲鐨勭粨鏉熶换鍔taskNum}");
                         }
                     }
                     else if (rgvInfoRead.TaskDone == 2 && rgvInfoWrite.TaskReceivedDone == 1)
                     {
                         device.SetValue(W_RgvCPDB.TaskReceivedDone, 0);
                     }
-                    else if (rgvInfoRead.TaskDone == 0 && rgvInfoWrite.TaskReceivedDone == 2)
+                    else if (rgvInfoRead.TaskDone != 3 && rgvInfoWrite.TaskReceivedDone == 2)
                     {
                         device.SetValue(W_RgvCPDB.TaskReceivedDone, 0);
                     }

--
Gitblit v1.9.3