using AngleSharp.Io; using HslCommunication; using Mapster; using Newtonsoft.Json; using SkiaSharp; using System.Diagnostics.CodeAnalysis; using WIDESEAWCS_Common; using WIDESEAWCS_Common.TaskEnum; using WIDESEAWCS_Core; using WIDESEAWCS_Core.Helper; using WIDESEAWCS_Core.LogHelper; using WIDESEAWCS_DTO.AGV; using WIDESEAWCS_DTO.TaskInfo; using WIDESEAWCS_Model.Models; using WIDESEAWCS_QuartzJob; namespace WIDESEAWCS_TaskInfoService { public partial class TaskService { #region AGV接口 private string GetAGVIPAddress(string baseIp, string name) { var configz = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); var wcsBasez = configz.Where(x => x.ConfigKey == baseIp).FirstOrDefault()?.ConfigValue; var address = configz.Where(x => x.ConfigKey == name).FirstOrDefault()?.ConfigValue; if (wcsBasez == null || address == null) { throw new InvalidOperationException("WMS IP 未配置"); } return wcsBasez + address; } public async Task SendAgvTask(string modelProcessCode,Dt_Task task) { WebResponseContent content = new WebResponseContent(); try { SendTask sendTask = new SendTask() { modelProcessCode = modelProcessCode, priority = 1, fromSystem = "WMS", orderId = task.TaskNum.ToString(), orderDetail = new taskOrderDetail() { taskPath = $"{task.CurrentAddress},{task.NextAddress}", shelfNumber = "", } }; var AgvSendTaskAddrss = GetAGVIPAddress(SysConfigKeyConst.AGVIP_BASE, SysConfigKeyConst.SendAGVTask); // 发送请求并等待响应 var result = await HttpHelper.PostAsync(AgvSendTaskAddrss, sendTask.ToJsonString()); var respone = JsonConvert.DeserializeObject(result.ToString()); if (respone.code != 1000) { content.Error(respone.desc); } content.OK("任务下发至AGV系统"); } catch (Exception ex) { content.Error(ex.Message); } return content; } #endregion } }