From b2ad000e07e1c87d3561b5aa94fdc88c779872f0 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期二, 18 二月 2025 22:34:54 +0800
Subject: [PATCH] 1

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVJob.cs |   52 ++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 48 insertions(+), 4 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVJob.cs"
index 883d815..4acc714 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVJob.cs"
@@ -15,6 +15,7 @@
 using WIDESEAWCS_ITaskInfoService;
 using WIDESEAWCS_Model.Models;
 using WIDESEAWCS_QuartzJob;
+using WIDESEAWCS_QuartzJob.Models;
 using WIDESEAWCS_QuartzJob.Service;
 
 namespace WIDESEAWCS_Tasks
@@ -38,7 +39,49 @@
         {
             try
             {
-                List<Dt_Task> UpTasks = new List<Dt_Task>();
+
+                #region 浠诲姟鏇存柊
+                var Tasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState > (int)TaskInStatusEnum.InNew && x.TaskState < (int)TaskInStatusEnum.AGV_InFinish).ToList().OrderBy(x => x.Grade).ThenBy(x => x.CreateDate).ToList();
+                foreach (var Task in Tasks)
+                {
+                    var ResultData = HttpHelper.PostAsync(AGVInterfaceAddress.taskResult + Task.TaskNum, null, headers: new Dictionary<string, string>());
+                    if (ResultData.Result != null)
+                    {
+                        var content = JsonConvert.DeserializeObject<AGVReturnInfo>(ResultData.Result);
+                        if (content.code == "20000")
+                        {
+                            switch (content.status)
+                            {
+                                case "01":
+                                    break;
+                                case "02":
+                                    Task.TaskState = TaskInStatusEnum.AGV_InExecuting.ObjToInt();
+                                    break;
+                                case "08":
+                                    {
+                                        Task.TaskState = (int)TaskInStatusEnum.AGV_InFinish;
+                                        Task.CurrentAddress = Task.NextAddress;
+                                        List<Dt_Router> routers = _routerService.QueryNextRoutes(Task.CurrentAddress, Task.TargetAddress);
+                                        if (routers.Count > 0)
+                                        {
+                                            Task.NextAddress = routers.FirstOrDefault().ChildPosi;
+                                        }
+                                    }
+                                    break;
+                                case "09":
+                                    break;
+                                default:
+                                    break;
+                            }
+                        }
+                    }
+                    Thread.Sleep(1000);
+                }
+                _taskService.Db.Updateable(Tasks).ExecuteCommand();
+                #endregion
+
+                #region 浠诲姟涓嬪彂
+                List<Dt_Task> UpnewTasks = new List<Dt_Task>();
                 var newTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == (int)TaskInStatusEnum.InNew).ToList().OrderBy(x => x.Grade).ThenBy(x => x.CreateDate).ToList();
                 foreach (var agvTaskDTO in GetAGVTaskDTOs(newTasks))
                 {
@@ -49,17 +92,18 @@
                     {
                         var task = newTasks.Where(x => x.TaskNum == agvTaskDTO.outID.ObjToInt()).First();
                         task.TaskState = TaskInStatusEnum.AGV_InSend.ObjToInt();
-                        UpTasks.Add(task);
+                        UpnewTasks.Add(task);
                     }
                     else
                     {
                         var task = newTasks.Where(x => x.TaskNum == agvTaskDTO.outID.ObjToInt()).First();
                         task.ExceptionMessage = content.message;
-                        UpTasks.Add(task);
+                        UpnewTasks.Add(task);
                     }
                     Thread.Sleep(1000);
                 }
-                var count = _taskService.Db.Updateable(UpTasks).ExecuteCommand();
+                if (UpnewTasks.Count > 0) _taskService.Db.Updateable(UpnewTasks).ExecuteCommand();
+                #endregion
             }
             catch (Exception ex)
             {

--
Gitblit v1.9.3