dengjunjie
2025-04-19 9e579eda4601ed7b492b9d19a24e8146f6ebdf8d
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVJob.cs
@@ -5,6 +5,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Reflection.Metadata;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Common.TaskEnum;
@@ -39,7 +40,6 @@
        {
            try
            {
                #region ä»»åŠ¡æ›´æ–°
                var Tasks = _taskService.Db.Queryable<Dt_Task>().Where(x =>
                x.TaskState > (int)TaskInStatusEnum.InNew &&
@@ -48,7 +48,11 @@
                x.TaskState < (int)TaskOutStatusEnum.AGV_OutFinish).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>());
                    var obj = new
                    {
                        outID = Task.TaskNum.ToString()
                    };
                    var ResultData = HttpHelper.PostAsync(AGVInterfaceAddress.taskResult, obj.ToJson(), headers: new Dictionary<string, string>());
                    if (ResultData.Result != null)
                    {
                        var content = JsonConvert.DeserializeObject<AGVReturnInfo>(ResultData.Result);
@@ -65,10 +69,18 @@
                                    {
                                        Task.TaskState = _taskService.TaskInboundTypes.Contains(Task.TaskType) ? (int)TaskInStatusEnum.AGV_InFinish : TaskOutStatusEnum.AGV_OutFinish.ObjToInt();
                                        Task.CurrentAddress = Task.NextAddress;
                                        Task.NextAddress = "";
                                        List<Dt_Router> routers = _routerService.QueryNextRoutes(Task.CurrentAddress, Task.TargetAddress);
                                        if (routers.Count > 0)
                                        {
                                            Task.NextAddress = routers.FirstOrDefault()?.ChildPosi ?? "";
                                        }
                                        if (Task.TaskState == TaskOutStatusEnum.AGV_OutFinish.ObjToInt())
                                        {
                                            #region å‘WMS反馈堆垛机任务完成
                                            WMSTaskDTO WMStask = _mapper.Map<WMSTaskDTO>(Task);
                                            HttpHelper.PostAsync(WMSInterfaceAddress.UpdateTaskStatus, WMStask.ToJson(), headers: new Dictionary<string, string>());
                                            #endregion
                                        }
                                    }
                                    break;
@@ -79,7 +91,7 @@
                            }
                        }
                    }
                    Thread.Sleep(1000);
                    Thread.Sleep(5000);
                }
                _taskService.Db.Updateable(Tasks).ExecuteCommand();
                #endregion
@@ -95,7 +107,8 @@
                    if (content.code == "20000")
                    {
                        var task = newTasks.Where(x => x.TaskNum == agvTaskDTO.outID.ObjToInt()).First();
                        task.TaskState = _taskService.TaskInboundTypes.Contains(task.TaskType)? TaskInStatusEnum.AGV_InSend.ObjToInt(): TaskOutStatusEnum.AGV_OutSend.ObjToInt();
                        task.Dispatchertime = DateTime.Now;
                        task.TaskState = _taskService.TaskInboundTypes.Contains(task.TaskType) ? TaskInStatusEnum.AGV_InSend.ObjToInt() : TaskOutStatusEnum.AGV_OutSend.ObjToInt();
                        UpnewTasks.Add(task);
                    }
                    else