using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEAWCS_Common.TaskEnum; using WIDESEAWCS_Core.Helper; using WIDESEAWCS_DTO; using WIDESEAWCS_Model.Models; namespace WIDESEAWCS_Tasks { public partial class TaskJob { #region 下发凯乐士AGV任务 public void SendGALAXISTask(List tasks) { GALAXISTaskInfo gALAXISTaskInfo = new(); try { gALAXISTaskInfo.groupId = DateTime.Now.ToString("yyMMddHHmmss"); gALAXISTaskInfo.msgTime = DateTime.Now.ToString(); gALAXISTaskInfo.tasks = new List(); foreach (var task in tasks) { GALAXISTask gALAXISTask = new GALAXISTask() { taskId = task.WMSTaskNum, taskType = task.TaskType == (int)TaskTypeEnum.MLInbound ? 0 : 1, barCode = task.PalletCode, endNode = task.TargetAddress, startNode = task.SourceAddress, priorityCode = task.Grade }; gALAXISTaskInfo.tasks.Add(gALAXISTask); } Dt_ApiInfo? apiInfo = _apiInfoService.Repository.QueryFirst(x => x.ApiCode == nameof(GALAXISTaskInfo)) ?? throw new Exception("未找到凯乐士AGV任务下发接口配置信息!请检查接口配置"); string response = HttpHelper.Post(apiInfo.ApiAddress, gALAXISTaskInfo.Serialize()); GALAXISReturn agvContent = response.DeserializeObject(); if (agvContent.success) { if (agvContent.data.returnStatus != 0) throw new Exception(agvContent.data.returnInfo); tasks.ForEach(task => { task.TaskState = (int)TaskStatusEnum.Execut; }); _taskService.UpdateData(tasks); } } catch (Exception ex) { WriteError(nameof(TaskJob), ex.Message, ex); } } #endregion } }