From 7f42a3ef9bc83bdc199317d12c1905d8696dac4f Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期三, 20 八月 2025 17:23:05 +0800
Subject: [PATCH] 代码提交

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGVJob_FirstFloor/CommonRGV_FirstFloorJob.cs |  417 ++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 336 insertions(+), 81 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGVJob_FirstFloor/CommonRGV_FirstFloorJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGVJob_FirstFloor/CommonRGV_FirstFloorJob.cs"
index 1fb6714..728235d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGVJob_FirstFloor/CommonRGV_FirstFloorJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGVJob_FirstFloor/CommonRGV_FirstFloorJob.cs"
@@ -129,12 +129,14 @@
                                                 if (IsExecutingTask.TaskType == (int)TaskInboundTypeEnum.Inbound)
                                                 {
                                                     IsExecutingTask.TargetStation = station.stationRemark;
+                                                    IsExecutingTask.TaskState = (int)TaskInStatusEnum.RGV_TransFer;
                                                 }
                                                 else
                                                 {
                                                     IsExecutingTask.TargetStation = station.remark;
+                                                    IsExecutingTask.TaskState = (int)TaskOutStatusEnum.RGV_TransFer;
                                                 }
-                                                IsExecutingTask.TaskState = (int)TaskInStatusEnum.RGV_TransFer;
+                                                
                                                 _taskRepository.UpdateData(IsExecutingTask);
                                                 Thread.Sleep(1000);
                                             }
@@ -288,15 +290,17 @@
                                                 IsExecutingTask.RGVName = "RGV01";
                                                 IsExecutingTask.CurrentAddress = IsExecutingTask.Remark;
                                                 IsExecutingTask.Remark = "";
-                                                IsExecutingTask.TaskState = (int)TaskInStatusEnum.RGV_TransFer;
+                                                
                                                 Dt_StationManager station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == IsExecutingTask.NextAddress);
                                                 IsExecutingTask.SourceStation = IsExecutingTask.CurrentAddress == "1025" ? 10 : 7;
                                                 if (IsExecutingTask.TaskType == (int)TaskInboundTypeEnum.Inbound)
                                                 {
+                                                    IsExecutingTask.TaskState = (int)TaskInStatusEnum.RGV_TransFer;
                                                     IsExecutingTask.TargetStation = station.stationRemark;
                                                 }
                                                 else
                                                 {
+                                                    IsExecutingTask.TaskState = (int)TaskOutStatusEnum.RGV_TransFer;
                                                     IsExecutingTask.TargetStation = station.remark;
                                                 }
 
@@ -433,7 +437,6 @@
                     {
                         if (commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault))
                         {
-
                             var taskSecond = _taskRepository.QueryFirst(x => x.RGVName == "RGV02" && x.TaskNum == commonRGVSecond.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum) && ((x.TaskType == (int)TaskInboundTypeEnum.Inbound && (x.TaskState < 230||x.TaskState == (int)TaskInStatusEnum.RGV_TransFer|| x.TaskState == (int)TaskInStatusEnum.RGV_TransFerFInish)) || (x.TaskType == (int)TaskOutboundTypeEnum.Outbound)));
                             if (taskSecond != null)
                             {
@@ -447,11 +450,32 @@
 
                                             Thread.Sleep(1000);
 
-                                            if (task.Remark != null)
+                                            if (task.Remark != null || ((task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV02" && task.TargetAddress == "1002") || (task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV01" && (task.TargetAddress == "1030" || task.TargetAddress == "1029"))))
                                             {
-                                                return GetDispatchExecutingTask(task);
+                                                task.Remark = "1025";
+                                                _taskRepository.UpdateData(task);
+                                                return GetDispatchExecutingTask(task, taskSecond);
                                             }
+                                            return task;
+                                        }
+                                    }
+                                }
+                                else if ((taskSecond.CurrentAddress == "1025" || taskSecond.CurrentAddress == "1026") && (taskSecond.TaskState == (int)TaskOutStatusEnum.RGV_OutExecuting || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_InExecuting))
+                                {
+                                    if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || task.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish)
+                                    {
+                                        if (task.TargetStation - taskSecond.SourceStation > 1 && task.TargetStation - taskSecond.TargetStation > 1)
+                                        {
+                                            LogAndWarn("鎵ц璋冨害浠诲姟鎺у埗", $"銆恵commonRGV.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戣澶囩姸鎬侊細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戙�恵commonRGVSecond.DeviceCode}銆戜换鍔°�恵JsonConvert.SerializeObject(taskSecond)}銆憑commonRGVSecond.DeviceCode}杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(task.TaskNum)}銆戙��");
 
+                                            Thread.Sleep(1000);
+
+                                            if (task.Remark != null || ((task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV02" && task.TargetAddress == "1002") || (task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV01" && (task.TargetAddress == "1030" || task.TargetAddress == "1029"))))
+                                            {
+                                                task.Remark = "1025";
+                                                _taskRepository.UpdateData(task);
+                                                return GetDispatchExecutingTask(task, taskSecond);
+                                            }
                                             return task;
                                         }
                                     }
@@ -464,9 +488,11 @@
                                         {
                                             LogAndWarn("鎵ц璋冨害浠诲姟鎺у埗", $"銆恵commonRGV.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戣澶囩姸鎬侊細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戙�恵commonRGVSecond.DeviceCode}銆戜换鍔°�恵JsonConvert.SerializeObject(taskSecond)}銆憑commonRGVSecond.DeviceCode}杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(task.TaskNum)}銆戙��");
                                             Thread.Sleep(1000);
-                                            if (task.Remark != null)
+                                            if (task.Remark != null || ((task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV02" && task.TargetAddress == "1002") || (task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV01" && (task.TargetAddress == "1030" || task.TargetAddress == "1029"))))
                                             {
-                                                return GetDispatchExecutingTask(task);
+                                                task.Remark = "1025";
+                                                _taskRepository.UpdateData(task);
+                                                return GetDispatchExecutingTask(task, taskSecond);
                                             }
                                             return task;
                                         }
@@ -482,6 +508,10 @@
                                 }
                                 if (commonRGVSecond.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) > 35000)
                                 {
+                                    if (commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running))
+                                    {
+                                        return null;
+                                    }
                                     RGVTaskCommand command = new RGVTaskCommand()
                                     {
                                         PickupLocation = (byte)Convert.ToSByte(15),
@@ -489,16 +519,28 @@
                                         TaskType = (byte)Convert.ToSByte(1)
                                     };
                                     SendCommand(commonRGVSecond, command);
-                                    Thread.Sleep(1000);
+                                    Thread.Sleep(3000);
                                     if (!commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running))
                                     {
                                         return null;
                                     }
                                 }
                                 Thread.Sleep(1000);
+                                if (task.Remark != null || ((task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV02" && task.TargetAddress == "1002") || (task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV01" && (task.TargetAddress == "1030" || task.TargetAddress == "1029"))))
+                                {
+                                    task.Remark = "1025";
+                                    _taskRepository.UpdateData(task);
+                                    return GetDispatchExecutingTask(task);
+                                }
                                 return task;
                             }
                         }
+                    }
+                    if (task.Remark != null || ((task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV02" && task.TargetAddress == "1002") || (task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV01" && (task.TargetAddress == "1030" || task.TargetAddress == "1029"))))
+                    {
+                        task.Remark = "1025";
+                        _taskRepository.UpdateData(task);
+                        return GetDispatchExecutingTask(task);
                     }
                     return task;
                 }
@@ -521,9 +563,30 @@
                                             LogAndWarn("鎵ц璋冨害浠诲姟鎺у埗", $"銆恵commonRGV.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戣澶囩姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戙�恵commonRGVFirst.DeviceCode}銆戜换鍔°�恵JsonConvert.SerializeObject(taskSecond)}銆憑commonRGVFirst.DeviceCode}杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(task.TaskNum)}銆戙��");
                                             Thread.Sleep(1000);
 
-                                            if (task.Remark != null)
+                                            if (task.Remark != null || ((task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV02" && task.TargetAddress == "1002") || (task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV01" && (task.TargetAddress == "1030" || task.TargetAddress == "1029"))))
                                             {
-                                                return GetDispatchExecutingTask(task);
+                                                task.Remark = "1026";
+                                                _taskRepository.UpdateData(task);
+                                                return GetDispatchExecutingTask(task, taskSecond);
+                                            }
+                                            return task;
+                                        }
+                                    }
+                                }
+                                else if ((taskSecond.CurrentAddress == "1025" || taskSecond.CurrentAddress == "1026") && (taskSecond.TaskState == (int)TaskOutStatusEnum.RGV_OutExecuting || taskSecond.TaskState == (int)TaskInStatusEnum.RGV_InExecuting))
+                                {
+                                    if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || task.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish)
+                                    {
+                                        if (taskSecond.SourceStation - task.TargetStation > 1 && taskSecond.TargetStation - task.TargetStation > 1)
+                                        {
+                                            LogAndWarn("鎵ц璋冨害浠诲姟鎺у埗", $"銆恵commonRGV.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戣澶囩姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戙�恵commonRGVFirst.DeviceCode}銆戜换鍔°�恵JsonConvert.SerializeObject(taskSecond)}銆憑commonRGVFirst.DeviceCode}杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(task.TaskNum)}銆戙��");
+                                            Thread.Sleep(1000);
+
+                                            if (task.Remark != null || ((task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV02" && task.TargetAddress == "1002") || (task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV01" && (task.TargetAddress == "1030" || task.TargetAddress == "1029"))))
+                                            {
+                                                task.Remark = "1026";
+                                                _taskRepository.UpdateData(task);
+                                                return GetDispatchExecutingTask(task, taskSecond);
                                             }
                                             return task;
                                         }
@@ -538,9 +601,11 @@
                                             LogAndWarn("鎵ц璋冨害浠诲姟鎺у埗", $"銆恵commonRGV.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戣澶囩姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戙�恵commonRGVFirst.DeviceCode}銆戜换鍔°�恵JsonConvert.SerializeObject(taskSecond)}銆憑commonRGVFirst.DeviceCode}杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(task.TaskNum)}銆戙��");
                                             Thread.Sleep(1000);
 
-                                            if (task.Remark != null)
+                                            if (task.Remark != null || ((task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV02" && task.TargetAddress == "1002") || (task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV01" && (task.TargetAddress == "1030" || task.TargetAddress == "1029"))))
                                             {
-                                                return GetDispatchExecutingTask(task);
+                                                task.Remark = "1026";
+                                                _taskRepository.UpdateData(task);
+                                                return GetDispatchExecutingTask(task, taskSecond);
                                             }
                                             return task;
                                         }
@@ -556,6 +621,10 @@
                                 }
                                 if (commonRGVFirst.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) < 420000)
                                 {
+                                    if (commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running))
+                                    {
+                                        return null;
+                                    }
                                     RGVTaskCommand command = new RGVTaskCommand()
                                     {
                                         PickupLocation = (byte)Convert.ToSByte(26),
@@ -563,16 +632,28 @@
                                         TaskType = (byte)Convert.ToSByte(1)
                                     };
                                     SendCommand(commonRGVFirst, command);
-                                    Thread.Sleep(1000);
+                                    Thread.Sleep(3000);
                                     if (!commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running))
                                     {
                                         return null;
                                     }
                                 }
                                 Thread.Sleep(1000);
+                                if (task.Remark != null || ((task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV02" && task.TargetAddress == "1002") || (task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV01" && (task.TargetAddress == "1030" || task.TargetAddress == "1029"))))
+                                {
+                                    task.Remark = "1026";
+                                    _taskRepository.UpdateData(task);
+                                    return GetDispatchExecutingTask(task);
+                                }
                                 return task;
                             }
                         }
+                    }
+                    if (task.Remark != null || ((task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV02" && task.TargetAddress == "1002") || (task.TaskType == (int)TaskOutboundTypeEnum.Outbound && task.RGVName == "RGV01" && (task.TargetAddress == "1030" || task.TargetAddress == "1029"))))
+                    {
+                        task.Remark = "1026";
+                        _taskRepository.UpdateData(task);
+                        return GetDispatchExecutingTask(task);
                     }
                     return task;
                 }
@@ -602,13 +683,13 @@
                         if (commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault))
                         {
                             var taskSecond = _taskRepository.QueryFirst(x => x.RGVName == "RGV02" && x.TaskNum == commonRGVSecond.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum) && ((x.TaskType == (int)TaskInboundTypeEnum.Inbound && (x.TaskState < 230 || x.TaskState == (int)TaskInStatusEnum.RGV_TransFer || x.TaskState == (int)TaskInStatusEnum.RGV_TransFerFInish)) || (x.TaskType == (int)TaskOutboundTypeEnum.Outbound)));
-                             if (taskSecond != null)
+                            if (taskSecond != null)
                             {
                                 task = GetDispatchTask(tasks, taskSecond);
 
                                 LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆恵commonRGV.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戣澶囩姸鎬侊細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戙�恵commonRGVSecond.DeviceCode}銆戜换鍔°�恵JsonConvert.SerializeObject(taskSecond)}銆憑commonRGVSecond.DeviceCode}杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(task.TaskNum)}銆戙��");
-                                Thread.Sleep(1000);
 
+                                Thread.Sleep(1000);
                                 return task;
                             }
                         }
@@ -623,6 +704,10 @@
                         }
                         if (commonRGVSecond.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) > 35000)
                         {
+                            if (commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running))
+                            {
+                                return null;
+                            }
                             RGVTaskCommand command = new RGVTaskCommand()
                             {
                                 PickupLocation = (byte)Convert.ToSByte(15),
@@ -630,40 +715,42 @@
                                 TaskType = (byte)Convert.ToSByte(1)
                             };
                             SendCommand(commonRGVSecond, command);
-                            Thread.Sleep(1000);
+                            Thread.Sleep(3000);
                             if (!commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running))
                             {
                                 return null;
                             }
                         }
-
-                        if (tasks.FirstOrDefault(x => x.RGVName == "RGV01") != null)
+                        task = GetDispatchTask(taskNews, "RGV01");
+                        if (task == null)
                         {
-                            LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆恵commonRGVSecond.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戜綔涓氱姸鎬侊細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running)}銆戣澶囩姸鎬侊細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戞槸鍚︽湁璐э細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock)}銆戣繑鍥炰换鍔★細銆恵JsonConvert.SerializeObject(taskNews.FirstOrDefault(x => x.RGVName == "RGV01").TaskNum)}銆戙��");
-                            Thread.Sleep(1000);
-                            return taskNews.FirstOrDefault(x => x.RGVName == "RGV01");
+                            return tasks.FirstOrDefault(x => x.RGVName != "RGV02");
                         }
-                        else
-                        {
-                            LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆恵commonRGVSecond.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戜綔涓氱姸鎬侊細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running)}銆戣澶囩姸鎬侊細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戞槸鍚︽湁璐э細銆恵commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.InStock)}銆戣繑鍥炰换鍔★細銆恵JsonConvert.SerializeObject(taskNews.FirstOrDefault(x => x.RGVName != "RGV02").TaskNum)}銆戙��");
-                            Thread.Sleep(1000);
-                            return taskNews.FirstOrDefault(x => x.RGVName != "RGV02");
-                        }
+                        return task;
+                        //if (taskNews.FirstOrDefault(x => x.RGVName == "RGV01") != null)
+                        //{
+                        //    return taskNews.FirstOrDefault(x => x.RGVName == "RGV01");
+                        //}
+                        //else
+                        //{
+                        //    return taskNews.FirstOrDefault(x => x.RGVName != "RGV02");
+                        //}
                     }
                     else
                     {
-                        if (tasks.FirstOrDefault(x => x.RGVName == "RGV01") != null)
-                        {
-                            LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆愭湭鎵惧埌RGV02璁惧淇℃伅銆戣繑鍥炰换鍔★細銆恵JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV01").TaskNum)}銆戙��");
-                            Thread.Sleep(1000);
-                            return tasks.FirstOrDefault(x => x.RGVName == "RGV01");
-                        }
-                        else
-                        {
-                            LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆愭湭鎵惧埌RGV02璁惧淇℃伅銆戣繑鍥炰换鍔★細銆恵JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName != "RGV02").TaskNum)}銆戙��");
-                            Thread.Sleep(1000);
-                            return tasks.FirstOrDefault(x => x.RGVName != "RGV02");
-                        }
+                        return GetDispatchTask(tasks, "RGV01");
+                        //if (tasks.FirstOrDefault(x => x.RGVName == "RGV01") != null)
+                        //{
+                        //    LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆愭湭鎵惧埌RGV02璁惧淇℃伅銆戣繑鍥炰换鍔★細銆恵JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV01").TaskNum)}銆戙��");
+                        //    Thread.Sleep(1000);
+                        //    return tasks.FirstOrDefault(x => x.RGVName == "RGV01");
+                        //}
+                        //else
+                        //{
+                        //    LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆愭湭鎵惧埌RGV02璁惧淇℃伅銆戣繑鍥炰换鍔★細銆恵JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName != "RGV02").TaskNum)}銆戙��");
+                        //    Thread.Sleep(1000);
+                        //    return tasks.FirstOrDefault(x => x.RGVName != "RGV02");
+                        //}
                     }
                 }
                 else
@@ -679,7 +766,7 @@
                             {
                                 task = GetDispatchTask(tasks, taskFirst);
 
-                                LogAndWarn("鎵ц璋冨害浠诲姟鎺у埗", $"銆恵commonRGVFirst.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戣澶囩姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戙�恵commonRGVFirst.DeviceCode}銆戜换鍔°�恵JsonConvert.SerializeObject(taskFirst)}銆憑commonRGVFirst.DeviceCode}杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(task.TaskNum)}銆戙��");
+                                LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆恵commonRGVFirst.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戣澶囩姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戙�恵commonRGVFirst.DeviceCode}銆戜换鍔°�恵JsonConvert.SerializeObject(taskFirst)}銆憑commonRGVFirst.DeviceCode}杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(task.TaskNum)}銆戙��");
                                 Thread.Sleep(1000);
 
                                 return task;
@@ -696,6 +783,10 @@
                         }
                         if (commonRGVFirst.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) < 420000)
                         {
+                            if (commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running))
+                            {
+                                return null;
+                            }
                             RGVTaskCommand command = new RGVTaskCommand()
                             {
                                 PickupLocation = (byte)Convert.ToSByte(26),
@@ -703,43 +794,44 @@
                                 TaskType = (byte)Convert.ToSByte(1)
                             };
                             SendCommand(commonRGVFirst, command);
-                            Thread.Sleep(1000);
+                            Thread.Sleep(3000);
                             if (!commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running))
                             {
                                 return null;
                             }
                         }
-
-                        if (tasks.FirstOrDefault(x => x.RGVName == "RGV02") != null)
+                        task = GetDispatchTask(taskNews, "RGV02");
+                        if (task == null)
                         {
-                            LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆恵commonRGVFirst.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戜綔涓氱姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running)}銆戣澶囩姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戞槸鍚︽湁璐э細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock)}銆戣繑鍥炰换鍔★細銆恵JsonConvert.SerializeObject(taskNews.FirstOrDefault(x => x.RGVName == "RGV02").TaskNum)}銆戙��");
-                            Thread.Sleep(1000);
-                            return taskNews.FirstOrDefault(x => x.RGVName == "RGV02");
+                            return tasks.FirstOrDefault(x => x.RGVName != "RGV01");
                         }
-                        else
-                        {
-                            LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆恵commonRGVFirst.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戜綔涓氱姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running)}銆戣澶囩姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戞槸鍚︽湁璐э細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.InStock)}銆戣繑鍥炰换鍔★細銆恵JsonConvert.SerializeObject(taskNews.FirstOrDefault(x => x.RGVName != "RGV01").TaskNum)}銆戙��");
-
-                            Thread.Sleep(1000);
-                            return taskNews.FirstOrDefault(x => x.RGVName != "RGV01");
-                        }
+                        return task;
+                        //if (taskNews.FirstOrDefault(x => x.RGVName == "RGV02") != null)
+                        //{
+                        //    return taskNews.FirstOrDefault(x => x.RGVName == "RGV02");
+                        //}
+                        //else
+                        //{
+                        //    return taskNews.FirstOrDefault(x => x.RGVName != "RGV01");
+                        //}
                     }
                     else
                     {
-                        if (tasks.FirstOrDefault(x => x.RGVName == "RGV02") != null)
-                        {
-                            LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆愭湭鎵惧埌RGV01璁惧淇℃伅銆� 杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV02").TaskNum)}銆戙��");
+                       return GetDispatchTask(tasks, "RGV02");
+                        //if (tasks.FirstOrDefault(x => x.RGVName == "RGV02") != null)
+                        //{
+                        //    LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆愭湭鎵惧埌RGV01璁惧淇℃伅銆� 杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName == "RGV02").TaskNum)}銆戙��");
 
-                            Thread.Sleep(1000);
-                            return tasks.FirstOrDefault(x => x.RGVName == "RGV02");
-                        }
-                        else
-                        {
-                            LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆愭湭鎵惧埌RGV01璁惧淇℃伅銆戣繑鍥炰换鍔★細銆恵JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName != "RGV01").TaskNum)}銆戙��");
+                        //    Thread.Sleep(1000);
+                        //    return tasks.FirstOrDefault(x => x.RGVName == "RGV02");
+                        //}
+                        //else
+                        //{
+                        //    LogAndWarn("璋冨害浠诲姟鎺у埗", $"銆愭湭鎵惧埌RGV01璁惧淇℃伅銆戣繑鍥炰换鍔★細銆恵JsonConvert.SerializeObject(tasks.FirstOrDefault(x => x.RGVName != "RGV01").TaskNum)}銆戙��");
 
-                            Thread.Sleep(1000);
-                            return tasks.FirstOrDefault(x => x.RGVName != "RGV01");
-                        }
+                        //    Thread.Sleep(1000);
+                        //    return tasks.FirstOrDefault(x => x.RGVName != "RGV01");
+                        //}
                     }
                 }
             }
@@ -767,7 +859,6 @@
                     {
                         if (commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Fault))
                         {
-
                             var taskSecond = _taskRepository.QueryFirst(x => x.RGVName == "RGV02" && x.TaskNum == commonRGVSecond.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum) && ((x.TaskType == (int)TaskInboundTypeEnum.Inbound && (x.TaskState < 230 || x.TaskState == (int)TaskInStatusEnum.RGV_TransFer || x.TaskState == (int)TaskInStatusEnum.RGV_TransFerFInish)) || (x.TaskType == (int)TaskOutboundTypeEnum.Outbound)));
                             if (taskSecond != null)
                             {
@@ -799,6 +890,10 @@
                                 }
                                 if (commonRGVSecond.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) > 35000)
                                 {
+                                    if (commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running))
+                                    {
+                                        return null;
+                                    }
                                     RGVTaskCommand command = new RGVTaskCommand()
                                     {
                                         PickupLocation = (byte)Convert.ToSByte(15),
@@ -806,7 +901,7 @@
                                         TaskType = (byte)Convert.ToSByte(1)
                                     };
                                     SendCommand(commonRGVSecond, command);
-                                    Thread.Sleep(1000);
+                                    Thread.Sleep(3000);
                                     if (!commonRGVSecond.GetValue<RGVDBName, bool>(RGVDBName.Running))
                                     {
                                         return null;
@@ -856,7 +951,7 @@
                                 if (taskFirst.TaskState == (int)TaskOutStatusEnum.RGV_Outdispatch || taskFirst.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || taskFirst.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish)
                                 {
 
-                                    task = tasks.FirstOrDefault(x => ((x.SourceStation - taskFirst.TargetStation > 1 && x.SourceStation - taskFirst.SourceStation > 1 && x.TaskType == (int)TaskInboundTypeEnum.Inbound) || (x.SourceStation - taskFirst.TargetStation > 1 && x.TargetStation - taskFirst.SourceStation > 1 && x.SourceStation - taskFirst.SourceStation > 1 && x.TargetStation - taskFirst.TargetStation > 1 && x.TaskType == (int)TaskOutboundTypeEnum.Outbound)) && x.RGVName == "RGV02");
+                                    task = tasks.FirstOrDefault(x => ((taskFirst.TargetStation-x.SourceStation  > 1 &&taskFirst.SourceStation - x.SourceStation > 1 && x.TaskType == (int)TaskInboundTypeEnum.Inbound) || ( taskFirst.TargetStation- x.SourceStation > 1 &&  taskFirst.SourceStation- x.TargetStation > 1 &&  taskFirst.SourceStation- x.SourceStation > 1 && taskFirst.TargetStation - x.TargetStation > 1 && x.TaskType == (int)TaskOutboundTypeEnum.Outbound)) && x.RGVName == "RGV02");
 
 
                                     LogAndWarn("涓浆璋冨害浠诲姟鎺у埗", $"銆恵commonRGVFirst.DeviceCode}宸ヤ綔妯″紡锛氥�恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Automatic)}銆戣澶囩姸鎬侊細銆恵commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Fault)}銆戙�恵commonRGVFirst.DeviceCode}銆戜换鍔°�恵JsonConvert.SerializeObject(taskFirst)}銆憑commonRGVFirst.DeviceCode}杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(task.TaskNum)}銆戙��");
@@ -882,6 +977,10 @@
                                 }
                                 if (commonRGVFirst.GetValue<RGVDBName, int>(RGVDBName.LevelPoint) < 420000)
                                 {
+                                    if (commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running))
+                                    {
+                                        return null;
+                                    }
                                     RGVTaskCommand command = new RGVTaskCommand()
                                     {
                                         PickupLocation = (byte)Convert.ToSByte(26),
@@ -889,7 +988,7 @@
                                         TaskType = (byte)Convert.ToSByte(1)
                                     };
                                     SendCommand(commonRGVFirst, command);
-                                    Thread.Sleep(1000);
+                                    Thread.Sleep(3000);
                                     if (!commonRGVFirst.GetValue<RGVDBName, bool>(RGVDBName.Running))
                                     {
                                         return null;
@@ -1029,24 +1128,49 @@
             return null;
         }
 
-        public Dt_Task? GetDispatchTask(List<Dt_Task> tasks, Dt_Task oldtask)
+        public Dt_Task? GetDispatchTask(List<Dt_Task> tasks,Dt_Task oldtask)
         {
             Dt_Task y = tasks.Where(x => x.Remark != null&& ((x.SourceStation - oldtask.TargetStation > 1 && x.SourceStation - oldtask.SourceStation > 1 && x.TaskType == (int)TaskInboundTypeEnum.Inbound) || (x.SourceStation - oldtask.TargetStation > 1 && x.TargetStation - oldtask.SourceStation > 1 && x.SourceStation - oldtask.SourceStation > 1 && x.TargetStation - oldtask.TargetStation > 1 && x.TaskType == (int)TaskOutboundTypeEnum.Outbound))).FirstOrDefault();
             if (y == null)
             {
-                LogAndWarn("鏌ヨ浠诲姟", $" 杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(oldtask)}銆戙��");
+                WriteInfo("鏌ヨ浠诲姟", $" 杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(oldtask)}銆戙��");
                 if (oldtask.TaskState == (int)TaskOutStatusEnum.RGV_Outdispatch || oldtask.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish || oldtask.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish)
                 {
-
-                    return tasks.FirstOrDefault(x => (x.SourceStation - oldtask.TargetStation > 1 && x.SourceStation - oldtask.SourceStation > 1 && x.TaskType == (int)TaskInboundTypeEnum.Inbound) || (x.SourceStation - oldtask.TargetStation > 1 && x.TargetStation - oldtask.SourceStation > 1 && x.SourceStation - oldtask.SourceStation > 1 && x.TargetStation - oldtask.TargetStation > 1 && x.TaskType == (int)TaskOutboundTypeEnum.Outbound));
+                    if (oldtask.RGVName == "RGV01")
+                    {
+                        return tasks.FirstOrDefault(x => (oldtask.TargetStation - x.SourceStation > 1 && oldtask.SourceStation - x.SourceStation > 1 && x.TaskType == (int)TaskInboundTypeEnum.Inbound) || (oldtask.TargetStation - x.SourceStation > 1 && oldtask.SourceStation - x.TargetStation > 1 && oldtask.SourceStation - x.SourceStation > 1 && oldtask.TargetStation - x.TargetStation > 1 && x.TaskType == (int)TaskOutboundTypeEnum.Outbound));
+                    }
+                    else
+                    {
+                        return tasks.FirstOrDefault(x => (x.SourceStation - oldtask.TargetStation > 1 && x.SourceStation - oldtask.SourceStation > 1 && x.TaskType == (int)TaskInboundTypeEnum.Inbound) || (x.SourceStation - oldtask.TargetStation > 1 && x.TargetStation - oldtask.SourceStation > 1 && x.SourceStation - oldtask.SourceStation > 1 && x.TargetStation - oldtask.TargetStation > 1 && x.TaskType == (int)TaskOutboundTypeEnum.Outbound));
+                        
+                    }
                 }
                 else if ((oldtask.CurrentAddress == "1025" || oldtask.CurrentAddress == "1026") && (oldtask.TaskState == (int)TaskOutStatusEnum.RGV_OutExecuting || oldtask.TaskState == (int)TaskInStatusEnum.RGV_InExecuting))
                 {
-                    return tasks.FirstOrDefault(x => (x.SourceStation - oldtask.TargetStation > 1 && x.SourceStation - oldtask.SourceStation > 1 && x.TaskType == (int)TaskInboundTypeEnum.Inbound) || (x.SourceStation - oldtask.TargetStation > 1 && x.TargetStation - oldtask.SourceStation > 1 && x.SourceStation - oldtask.SourceStation > 1 && x.TargetStation - oldtask.TargetStation > 1 && x.TaskType == (int)TaskOutboundTypeEnum.Outbound));
+                    if (oldtask.RGVName == "RGV01")
+                    {
+                        return tasks.FirstOrDefault(x => (oldtask.TargetStation - x.SourceStation > 1 && oldtask.SourceStation - x.SourceStation > 1 && x.TaskType == (int)TaskInboundTypeEnum.Inbound) || (oldtask.TargetStation - x.SourceStation > 1 && oldtask.SourceStation - x.TargetStation > 1 && oldtask.SourceStation - x.SourceStation > 1 && oldtask.TargetStation - x.TargetStation > 1 && x.TaskType == (int)TaskOutboundTypeEnum.Outbound));
+                    }
+                    else
+                    {
+                        return tasks.FirstOrDefault(x => (x.SourceStation - oldtask.TargetStation > 1 && x.SourceStation - oldtask.SourceStation > 1 && x.TaskType == (int)TaskInboundTypeEnum.Inbound) || (x.SourceStation - oldtask.TargetStation > 1 && x.TargetStation - oldtask.SourceStation > 1 && x.SourceStation - oldtask.SourceStation > 1 && x.TargetStation - oldtask.TargetStation > 1 && x.TaskType == (int)TaskOutboundTypeEnum.Outbound));
+
+                    }
+
                 }
                 else if (oldtask.TaskState == (int)TaskOutStatusEnum.RGV_OutExecuting || oldtask.TaskState == (int)TaskInStatusEnum.RGV_InExecuting)
                 {
-                    return tasks.FirstOrDefault(x => x.SourceStation - oldtask.TargetStation > 1 && x.TargetStation - oldtask.TargetStation > 1);
+                    if (oldtask.RGVName == "RGV01")
+                    {
+                        return tasks.FirstOrDefault(x => oldtask.TargetStation - x.SourceStation > 1 && oldtask.TargetStation - x.TargetStation > 1);
+                        
+                    }
+                    else
+                    {
+                        return tasks.FirstOrDefault(x => x.SourceStation - oldtask.TargetStation > 1 && x.TargetStation - oldtask.TargetStation > 1);
+                    }
+                    
                 }
                 
                 return null;
@@ -1079,6 +1203,10 @@
 
                     return tasks.FirstOrDefault(x => (x.SourceStation - oldtask.TargetStation > 1 && x.SourceStation - oldtask.SourceStation > 1 && x.TaskType == (int)TaskInboundTypeEnum.Inbound) || (x.SourceStation - oldtask.TargetStation > 1 && x.TargetStation - oldtask.SourceStation > 1 && x.SourceStation - oldtask.SourceStation > 1 && x.TargetStation - oldtask.TargetStation > 1 && x.TaskType == (int)TaskOutboundTypeEnum.Outbound));
                 }
+                else if ((oldtask.CurrentAddress == "1025" || oldtask.CurrentAddress == "1026") && (oldtask.TaskState == (int)TaskOutStatusEnum.RGV_OutExecuting || oldtask.TaskState == (int)TaskInStatusEnum.RGV_InExecuting))
+                {
+                    return tasks.FirstOrDefault(x => (x.SourceStation - oldtask.TargetStation > 1 && x.SourceStation - oldtask.SourceStation > 1 && x.TaskType == (int)TaskInboundTypeEnum.Inbound) || (x.SourceStation - oldtask.TargetStation > 1 && x.TargetStation - oldtask.SourceStation > 1 && x.SourceStation - oldtask.SourceStation > 1 && x.TargetStation - oldtask.TargetStation > 1 && x.TaskType == (int)TaskOutboundTypeEnum.Outbound));
+                }
                 else if (oldtask.TaskState == (int)TaskOutStatusEnum.RGV_OutExecuting || oldtask.TaskState == (int)TaskInStatusEnum.RGV_InExecuting)
                 {
                     return tasks.FirstOrDefault(x => x.SourceStation - oldtask.TargetStation > 1 && x.TargetStation - oldtask.TargetStation > 1);
@@ -1087,30 +1215,157 @@
             }
         }
 
-        public Dt_Task? GetDispatchExecutingTask(Dt_Task oldtask)
+        public Dt_Task? GetDispatchTask(List<Dt_Task> tasks,string RGVName)
         {
-            var stationManager = _stationManagerRepository.QueryData(x => x.stationType == 15);
-            if (stationManager.Count() > 0)
+            Dt_Task y = tasks.Where(x => x.Remark != null).FirstOrDefault();
+            if (y == null)
+            {
+                if (RGVName == "RGV01")
+                {
+                    if (tasks.FirstOrDefault(x => x.RGVName == RGVName) != null)
+                    {
+                        return tasks.FirstOrDefault(x => x.RGVName == RGVName);
+                    }
+                    else
+                    {
+                        return tasks.FirstOrDefault(x => x.RGVName != "RGV02");
+                    }
+                }
+                else
+                {
+                    if (tasks.FirstOrDefault(x => x.RGVName == RGVName) != null)
+                    {
+                        return tasks.FirstOrDefault(x => x.RGVName == RGVName);
+                    }
+                    else
+                    {
+                        return tasks.FirstOrDefault(x => x.RGVName != "RGV01");
+                    }
+                }
+            }
+            else
+            {
+                var stationManager = _stationManagerRepository.QueryData(x => x.stationType == 15);
+                if (stationManager.Count() > 0)
+                {
+                    string next = null;
+                    foreach (var item in stationManager)
+                    {
+                        var x = _taskRepository.QueryFirst(x => x.NextAddress == item.stationChildCode || x.CurrentAddress == item.stationChildCode);
+                        if (x == null)
+                        {
+                            next = item.stationChildCode;
+                            break;
+                        }
+                    }
+                    if (next != null)
+                    {
+                        y.Remark = next;
+                        _taskRepository.UpdateData(y);
+                        LogAndWarn("涓浆浠诲姟", $" 杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(y)}銆戙��");
+                        return y;
+                    }
+                }
+                if (RGVName == "RGV01")
+                {
+                    if (tasks.FirstOrDefault(x => x.RGVName == RGVName) != null)
+                    {
+                        return tasks.FirstOrDefault(x => x.RGVName == RGVName);
+                    }
+                    else
+                    {
+                        return tasks.FirstOrDefault(x => x.RGVName != "RGV02");
+                    }
+                }
+                else
+                {
+                    if (tasks.FirstOrDefault(x => x.RGVName == RGVName) != null)
+                    {
+                        return tasks.FirstOrDefault(x => x.RGVName == RGVName);
+                    }
+                    else
+                    {
+                        return tasks.FirstOrDefault(x => x.RGVName != "RGV01");
+                    }
+                }
+            }
+        }
+
+        public Dt_Task? GetDispatchExecutingTask(Dt_Task oldtask,Dt_Task task)
+        {
+            var stationManagers = _stationManagerRepository.QueryData(x => x.stationType == 15);
+            if (stationManagers.Count() > 0)
             {
                 string next = null;
-                foreach (var item in stationManager)
+                foreach (var item in stationManagers)
                 {
                     var x = _taskRepository.QueryFirst(x => x.NextAddress == item.stationChildCode || x.CurrentAddress == item.stationChildCode);
                     if (x == null)
                     {
                         next = item.stationChildCode;
+                        LogAndWarn("涓浆鑾峰彇绔欏彴", $" 杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(x)}銆戙�戙�恵next}銆�");
                         break;
                     }
                 }
                 if (next != null)
                 {
+                    var stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == next);
+                    oldtask.Remark = next;
+                    //oldtask.CurrentAddress = next;
+                    _taskRepository.UpdateData(oldtask);
+                    if (task.RGVName == "RGV01")
+                    {
+                        if (task.TargetStation - stationManager.stationRemark > 1 && task.SourceStation - stationManager.stationRemark > 1 && task.SourceStation - oldtask.SourceStation > 1 && task.TargetStation - oldtask.SourceStation > 1)
+                        {
+                            LogAndWarn("涓浆浠诲姟GetDispatchExecutingTask", $" 杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(oldtask)}銆戙�戙�恵next}銆�");
+                            return oldtask;
+                        }
+                        else
+                        {
+                            return null;
+                        }
+                    }
+                    else
+                    {
+                        if (stationManager.stationRemark - task.TargetStation > 1 && stationManager.stationRemark - task.SourceStation > 1 && oldtask.SourceStation - task.SourceStation > 1 && oldtask.SourceStation - task.TargetStation > 1)
+                        {
+                            LogAndWarn("涓浆浠诲姟GetDispatchExecutingTask", $" 杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(oldtask)}銆戙��");
+                            return oldtask;
+                        }
+                        else
+                        {
+                            return null;
+                        }
+                    } 
+                }
+            }
+            return null;
+        }
+
+        public Dt_Task? GetDispatchExecutingTask(Dt_Task oldtask)
+        {
+            var stationManagers = _stationManagerRepository.QueryData(x => x.stationType == 15);
+            if (stationManagers.Count() > 0)
+            {
+                string next = null;
+                foreach (var item in stationManagers)
+                {
+                    var x = _taskRepository.QueryFirst(x => x.NextAddress == item.stationChildCode || x.CurrentAddress == item.stationChildCode);
+                    if (x == null)
+                    {
+                        next = item.stationChildCode;
+                        LogAndWarn("涓浆鑾峰彇绔欏彴", $" 杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(x)}銆戙�戙�恵next}銆�");
+                        break;
+                    }
+                }
+                if (next != null)
+                {
+                    var stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == next);
                     oldtask.Remark = next;
                     _taskRepository.UpdateData(oldtask);
-                    LogAndWarn("涓浆浠诲姟GetDispatchExecutingTask", $" 杩斿洖浠诲姟锛氥�恵JsonConvert.SerializeObject(oldtask)}銆戙��");
                     return oldtask;
                 }
             }
-
             return null;
         }
 

--
Gitblit v1.9.3