From 68343df577836d29f8bd106823b1805d365f4a54 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期四, 17 七月 2025 16:23:40 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/ZhiHuiQiCe/LongDeLiLiKu

---
 项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/成品仓/RGVJob_CP.cs |   84 ++++++++++++++++++++++++++++++++++--------
 1 files changed, 68 insertions(+), 16 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 64903f2..d2a8ad1 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"
@@ -75,28 +75,75 @@
                 if (deviceProRead != null && deviceProWrite != null)
                 {
                     R_RGVCPInfo rgvInfoRead = device.Communicator.ReadCustomer<R_RGVCPInfo>(deviceProRead.DeviceProAddress);
-                    if (rgvInfoRead.Mode==4  && rgvInfoRead.State == 0 && rgvInfoRead.TaskDone==1)
+                    W_RGVCPInfo rgvInfoWrite = device.Communicator.ReadCustomer<W_RGVCPInfo>(deviceProWrite.DeviceProAddress);
+                    if ((rgvInfoRead.Mode == 5 || rgvInfoRead.Mode == 4) && rgvInfoRead.State == 0 && rgvInfoRead.TaskDone==1)
                     {
+                        List<Dt_Task> tasks = _taskRepository.QueryData(x => _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState != TaskStatusEnum.RGV_Execute.ObjToInt() && x.DeviceCode == device.DeviceCode);
                         //鑾峰彇浠诲姟
-                        Dt_Task task = _taskRepository.QueryFirst(x => _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskStatusEnum.RGV_Execute.ObjToInt() && x.DeviceCode==device.DeviceCode);
-                        if (task != null)
+                        Dt_Task? task1 = tasks.FirstOrDefault(x => x.HeightType == 1);
+                        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();
+                        //鍒嗛厤RGV宸ヤ綅浠诲姟
+                        if (tasksDown.Count>=2)
                         {
-                            device.SetValue(W_RgvCPDB.WcsTask, task.TaskNum);
                             device.SetValue(W_RgvCPDB.TaskType, 4);
-                            device.SetValue(W_RgvCPDB.WorkStation, 1);
-                            device.SetValue(W_RgvCPDB.Qu1, task.CurrentAddress);
-                            device.SetValue(W_RgvCPDB.Fang1, task.NextAddress);
+                            //鍗犵敤涓や釜宸ヤ綅
+                            if (tasksDown.Count==2)
+                            {
+                                device.SetValue(W_RgvCPDB.WorkStation, 4);
+                                if (task1 == null)
+                                {
+                                    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);
+                                }
+                                if (task2 == null)
+                                {
+                                    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);
+                                }
+                            }
+                            else //鍗犵敤涓変釜宸ヤ綅
+                            {
+                                device.SetValue(W_RgvCPDB.WorkStation, 7);
+                                if ( task1 == null)
+                                {
+                                    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);
+                                }
+                                if (task2 == null)
+                                {
+                                    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);
+                                }
+                                if (task3 == null)
+                                {
+                                    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);
+                                }
+                            }
                             device.SetValue(W_RgvCPDB.TaskReceivedDone, 1);
-                            Thread.Sleep(1000);
-                            //澶嶄綅淇″彿
-                            device.SetValue(W_RgvCPDB.TaskReceivedDone, 0);
-                            _taskService.UpdateTask(task, TaskStatusEnum.RGV_Executing);
                         }
                     }
-                    else if(rgvInfoRead.Mode == 4 && rgvInfoRead.State == 1 && rgvInfoRead.TaskDone == 3)
+                    else if((rgvInfoRead.Mode == 5 || rgvInfoRead.Mode == 4) && rgvInfoRead.TaskDone == 3)
                     {
                         //鑾峰彇浠诲姟
-                        Dt_Task task = _taskRepository.QueryFirst(x =>x.TaskNum==rgvInfoRead.RgvEndTask &&  _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskStatusEnum.RGV_Executing.ObjToInt() && x.DeviceCode == device.DeviceCode);
+                        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);
                         if (task != null)
                         {
                             //鑾峰彇涓嬩竴涓妭鐐圭殑璺敱
@@ -105,9 +152,6 @@
                             task.NextAddress = "";
                             task.DeviceCode = stationManger.StationDeviceCode;
                             device.SetValue(W_RgvCPDB.TaskReceivedDone, 2);
-                            Thread.Sleep(1000);
-                            //澶嶄綅淇″彿
-                            device.SetValue(W_RgvCPDB.TaskReceivedDone, 0);
                             _taskService.UpdateTask(task, TaskStatusEnum.Line_Execute);
                             WriteError(device.DeviceName, $"RGV浠诲姟瀹屾垚,浠诲姟鍙穥rgvInfoRead.RgvEndTask}");
                         }
@@ -116,6 +160,14 @@
                             WriteError(device.DeviceName, $"鏈壘鍒癛GV瀵瑰簲鐨勭粨鏉熶换鍔rgvInfoRead.RgvEndTask}");
                         }
                     }
+                    else if (rgvInfoRead.TaskDone == 2 && rgvInfoWrite.TaskReceivedDone == 1)
+                    {
+                        device.SetValue(W_RgvCPDB.TaskReceivedDone, 0);
+                    }
+                    else if (rgvInfoRead.TaskDone == 0 && rgvInfoWrite.TaskReceivedDone == 2)
+                    {
+                        device.SetValue(W_RgvCPDB.TaskReceivedDone, 0);
+                    }
                 }
                 else
                 {

--
Gitblit v1.9.3