From ef409d6ed01cf7da29f0033f0180b192f18d1e1c Mon Sep 17 00:00:00 2001
From: xiaojiao <xiaojiao@kaokeziliao.com>
Date: 星期四, 30 四月 2026 08:52:46 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/KuKa/BeiJingBeiQiAGV

---
 项目代码/WIDESEA_WCSServer/WIDESEAWCS_Tasks/AGV/CommonAGVJob.cs |  121 ++++++++++++++++++++--------------------
 1 files changed, 61 insertions(+), 60 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WCSServer/WIDESEAWCS_Tasks/AGV/CommonAGVJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WCSServer/WIDESEAWCS_Tasks/AGV/CommonAGVJob.cs"
index 4b89083..4cd812b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WCSServer/WIDESEAWCS_Tasks/AGV/CommonAGVJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WCSServer/WIDESEAWCS_Tasks/AGV/CommonAGVJob.cs"
@@ -4,10 +4,12 @@
 using Newtonsoft.Json.Linq;
 using OfficeOpenXml.FormulaParsing.Excel.Functions.Information;
 using Quartz;
+using SqlSugar;
 using System;
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.Linq;
+using System.Reflection;
 using System.Text;
 using System.Threading.Tasks;
 using WIDESEA_Common.Log;
@@ -34,7 +36,7 @@
         private readonly ITaskService _taskService;
         private readonly ISys_ConfigService _sys_ConfigService;
         private readonly IDt_StationManagerRepository _stationManagerRepository;
-        public CommonAGVJob(ITaskRepository taskRepository,ITaskService taskService,ISys_ConfigService configService,IDt_StationManagerRepository stationManagerRepository) 
+        public CommonAGVJob(ITaskRepository taskRepository, ITaskService taskService, ISys_ConfigService configService, IDt_StationManagerRepository stationManagerRepository)
         {
             _taskRepository = taskRepository;
             _taskService = taskService;
@@ -44,74 +46,73 @@
 
         public Task Execute(IJobExecutionContext context)
         {
-            var newTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => (x.TaskState == TaskAGVCarryStatusEnum.AGV_CarryNew.ObjToInt())).ToList().OrderBy(x => x.Grade).ThenBy(x => x.TaskNum).ToList();
+            var newTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => (x.TaskState == (int)TaskAGVCarryStatusEnum.AGV_CarryNew)).ToList().OrderBy(x => x.Grade).ThenBy(x => x.TaskNum).ToList();
+            return Task.CompletedTask;
             #region 浠诲姟涓嬪彂
             if (newTasks.Count > 0)
             {
                 WriteLog.Write_Log("AGV浠诲姟涓嬪彂", "浠诲姟涓嬪彂鎺ュ彛", "娣诲姞浠诲姟", $"浠诲姟锛歿newTasks.ToJson()}");
-                try
+                foreach (var task in newTasks)
                 {
-                    AgvTaskSendDTO agvTaskSend = new AgvTaskSendDTO()
+                    try
                     {
-                        MissionData = new List<MissionDataItem>()
-                    };
-                    string taskGroupId = Guid.NewGuid().ToString().Replace("-", "");
-
-                    foreach (var task in newTasks)
-                    {
-                        //鑾峰彇鐩爣鐐硅揣浣�
-                        Dt_StationManager stationManagerStart = _stationManagerRepository.QueryFirst(x => x.stationLocation == task.CurrentAddress);
-                        //鑾峰彇鎷i�夊嚭搴撶珯鍙�
-                        Dt_StationManager stationManagerEnd = _stationManagerRepository.QueryFirst(x => x.stationLocation == task.NextAddress);
-
-                        if (stationManagerStart == null || stationManagerStart == null) throw new Exception($"鏈壘鍒颁换鍔″彿${task.TaskNum}璧峰鐐箋task.CurrentAddress}鎴栫洰鏍囩偣{task.NextAddress}浣嶇疆淇℃伅");
-                        agvTaskSend.RequestId = taskGroupId;
-                        agvTaskSend.MissionCode = task.TaskNum.ToString();
-                        agvTaskSend.ViewBoardType = "W01";
-                        //鏂欑瀛愭惉杩愪换鍔�
-                        MissionDataItem missionDataItem = new MissionDataItem()
+                        AgvTaskSendDTO agvTaskSend = new AgvTaskSendDTO()
                         {
-                            Sequence = task.TaskNum,
-                            BinCode = task.PalletCode,
-                            StartPosition = stationManagerStart.stationLocation,
-                            EndPosition = stationManagerEnd.stationLocation,
-                            TakeActionConfirm = false,
-                            TakeActionInform = false,
-                            PutActionConfirm = true,
-                            PutActionInform = true,
+                            MissionData = new List<MissionDataItem>()
                         };
-                        agvTaskSend.MissionData.Add(missionDataItem);
-                    }
-                    if (newTasks.OrderByDescending(x => x.Grade).FirstOrDefault()?.Grade == 0)
-                    {
-                        agvTaskSend.Priority = 99;
-                    }
-                    else
-                    {
-                        agvTaskSend.Priority = 99 - newTasks.OrderByDescending(x => x.Grade).FirstOrDefault().Grade;
-                    }
-                    //鍙戦�丄GV浠诲姟
-                    WebResponseContent content = _taskService.AgvSendTask(agvTaskSend, APIEnum.AgvSendTask);
-                    if (!content.Status)
-                        throw new Exception(content.Message);
-                    newTasks.ForEach(x =>
-                    {
-                        x.Dispatchertime = DateTime.Now;
-                        x.TaskState = TaskAGVCarryStatusEnum.AGV_CarryExecuting.ObjToInt();
-                    });
-                    _taskService.UpdateData(newTasks);
-                    Thread.Sleep(500);
-                }
-                catch (Exception ex)
-                {
-                    newTasks.ForEach(x =>
-                    {
-                        x.TaskState = TaskAGVCarryStatusEnum.AGV_CarryException.ObjToInt();
-                        x.ExceptionMessage = ex.Message;
-                    });
-                    _taskService.UpdateData(newTasks);
-                }
+                        string taskGroupId = Guid.NewGuid().ToString().Replace("-", "");
 
+                        // 鑾峰彇璧峰绔欏彴
+                        Dt_StationManager stationManagerEnd = _stationManagerRepository.QueryFirst(x => x.StationLocation == task.SourceAddress);
+                        // 鑾峰彇鐩殑绔欏彴
+                        Dt_StationManager finalmission = _stationManagerRepository.QueryFirst(x => x.StationLocation == task.TargetAddress);
+
+                        if (stationManagerEnd == null) throw new Exception($"鏈壘鍒颁换鍔″彿${task.TaskId}璧峰鐐箋task.SourceAddress}浣嶇疆淇℃伅");
+                        if (finalmission == null) throw new Exception($"鏈壘鍒颁换鍔″彿${task.TaskId}鐩爣鐐箋task.TargetAddress}浣嶇疆淇℃伅");
+
+                        agvTaskSend.RequestId = taskGroupId;
+                        agvTaskSend.MissionCode = task.TaskId.ToString();
+                        agvTaskSend.ViewBoardType = "W01";
+                        agvTaskSend.ContainerCode = task.PalletCode;
+                        //璐ф灦瀛愭惉杩愪换鍔�
+                        MissionDataItem Startingmission = new MissionDataItem() // 璧风偣
+                        {
+                            Sequence = 1,
+                            Position = stationManagerEnd.StationLocation,
+                        };
+
+                        MissionDataItem Finalmission = new MissionDataItem() // 缁堢偣
+                        {
+                            Sequence = 2,
+                            Position = finalmission.StationLocation,
+                            PutDown = true,
+                        };
+                        agvTaskSend.MissionData.Add(Startingmission);
+                        agvTaskSend.MissionData.Add(Finalmission);
+                        if (task.Grade == 0)
+                        {
+                            agvTaskSend.Priority = 99;
+                        }
+                        else
+                        {
+                            agvTaskSend.Priority = 99 - task.Grade;
+                        }
+                        //鍙戦�丄GV浠诲姟
+                        WebResponseContent content = _taskService.AgvSendTask(agvTaskSend, APIEnum.AgvSendTask);
+                        if (!content.Status)
+                            throw new Exception(content.Message);
+                        task.Dispatchertime = DateTime.Now;
+                        task.TaskState = (int)TaskAGVCarryStatusEnum.AGV_CarryExecuting;
+                        _taskService.UpdateData(task);
+                        Thread.Sleep(500);
+                    }
+                    catch (Exception ex)
+                    {
+                        task.TaskState = (int)TaskAGVCarryStatusEnum.AGV_CarryException;
+                        task.ExceptionMessage = ex.Message;
+                        _taskService.UpdateData(newTasks);
+                    }
+                }
             }
             #endregion
             return Task.CompletedTask;

--
Gitblit v1.9.3