using Autofac.Core;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_DTO.Agv;
using WIDESEAWCS_Common.APIEnum;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.Helper;
namespace WIDESEAWCS_TaskInfoService
{
public partial class TaskService
{
///
/// 发送AGV任务
///
///
///
public WebResponseContent AgvSendTask(AgvTaskDTO taskModel, APIEnum SendTask = APIEnum.Agv_CSJSendTask)
{
WebResponseContent content = new WebResponseContent();
try
{
string? apiAddress = apiInfos.FirstOrDefault(x => x.ApiCode == SendTask.ToString())?.ApiAddress;
if (string.IsNullOrEmpty(apiAddress))
return WebResponseContent.Instance.Error($"未找到发送AGV任务接口,请检查接口配置");
string response = HttpHelper.Post(apiAddress, taskModel.Serialize());
AgvResponseContent agvContent = response.DeserializeObject();
if (agvContent.Code == "0")
{
content.OK(data: agvContent.Data);
}
else
{
content.Error(agvContent.Message);
}
}
catch (Exception ex)
{
content.Error(ex.Message);
}
return content;
}
///
/// 安全信号申请 AGV-WCS
///
public AgvResponseContent AgvSecureApply(AgvSecureApplyDTO secureApplyModel)
{
return new AgvResponseContent();
}
///
/// 安全信号回复 WCS-AGV //AGV任务继续执行
///
///
///
public WebResponseContent AgvSecureReply(AgvSecureReplyDTO secureReplyModel, APIEnum SecureReply = APIEnum.Agv_CSJSecureReply)
{
WebResponseContent content = new WebResponseContent();
try
{
string? apiAddress = apiInfos.FirstOrDefault(x => x.ApiCode == SecureReply.ToString())?.ApiAddress;
if (string.IsNullOrEmpty(apiAddress))
return WebResponseContent.Instance.Error($"未找到发送AGV任务接口,请检查接口配置");
string response = HttpHelper.Post(apiAddress, secureReplyModel.Serialize());
AgvResponseContent agvContent = response.DeserializeObject();
if (agvContent.Code == "0")
{
content.OK(agvContent.Message);
}
else
{
content.Error(agvContent.Message);
}
}
catch (Exception ex)
{
content.Error(ex.Message);
}
return content;
}
///
/// AGV任务状态刷新/AGV任务完成
///
///
///
public AgvResponseContent AgvUpdateTask(AgvUpdateDTO agvUpdateModel)
{
return new AgvResponseContent();
}
}
}