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 |   80 +++++++++++++++++++++++++++++++++++++++-
 1 files changed, 78 insertions(+), 2 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 110d9cc..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,18 +4,23 @@
 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;
 using WIDESEAWCS_Common;
+using WIDESEAWCS_Common.APIEnum;
 using WIDESEAWCS_Common.TaskEnum;
 using WIDESEAWCS_Core;
 using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_DTO.Agv;
 using WIDESEAWCS_DTO.TaskInfo;
-using WIDESEAWCS_DTO.WMS;
+using WIDESEAWCS_IBasicInfoRepository;
 using WIDESEAWCS_ISystemServices;
 using WIDESEAWCS_ITaskInfoRepository;
 using WIDESEAWCS_ITaskInfoService;
@@ -30,15 +35,86 @@
         private readonly ITaskRepository _taskRepository;
         private readonly ITaskService _taskService;
         private readonly ISys_ConfigService _sys_ConfigService;
-        public CommonAGVJob(ITaskRepository taskRepository,ITaskService taskService,ISys_ConfigService configService) 
+        private readonly IDt_StationManagerRepository _stationManagerRepository;
+        public CommonAGVJob(ITaskRepository taskRepository, ITaskService taskService, ISys_ConfigService configService, IDt_StationManagerRepository stationManagerRepository)
         {
             _taskRepository = taskRepository;
             _taskService = taskService;
             _sys_ConfigService = configService;
+            _stationManagerRepository = stationManagerRepository;
         }
 
         public Task Execute(IJobExecutionContext context)
         {
+            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()}");
+                foreach (var task in newTasks)
+                {
+                    try
+                    {
+                        AgvTaskSendDTO agvTaskSend = new AgvTaskSendDTO()
+                        {
+                            MissionData = new List<MissionDataItem>()
+                        };
+                        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