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<WebResponseContent> 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<AgvRespone>(result.ToString());
|
|
if (respone.code != 1000)
|
{
|
content.Error(respone.desc);
|
}
|
content.OK("任务下发至AGV系统");
|
}
|
catch (Exception ex)
|
{
|
content.Error(ex.Message);
|
}
|
return content;
|
}
|
|
#endregion
|
}
|
}
|