using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; using System; using System.Collections.Generic; using System.Linq; using System.Net; 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 下发任务 /// /// 下发任务 /// public void SendTask() { try { var newTasks = _taskService.Db.Queryable().Where(x => x.TaskState == (int)TaskStatusEnum.New).ToList(); if (newTasks.Count > 0) { #region 查找凯乐士任务 var Tasks = newTasks.Where(x => x.TaskType == (int)TaskTypeEnum.MLInbound || x.TaskType == (int)TaskTypeEnum.MLOutbound).ToList(); if (Tasks.Count > 0) SendGALAXISTask(Tasks); #endregion } } catch (Exception ex) { WriteError(nameof(TaskJob), ex.Message, ex); } } #endregion #region 下发待执行任务 /// /// 下发待执行任务 /// public void SendWaitToTask() { try { } catch (Exception ex) { WriteError(nameof(TaskJob), ex.Message, ex); } } #endregion #region 下发凯乐士AGV任务 public void SendGALAXISTask(List tasks) { GALAXISTaskInfo gALAXISTaskInfo = new GALAXISTaskInfo(); 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 #region 下发四向车任务 public void SendRGVTask(List tasks) { } #endregion #region 下发海康AGV任务 public void SendHIKROBOTTask(List tasks) { } #endregion } }