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;
|
using WIDESEAWCS_DTO.Agv;
|
|
namespace WIDESEAWCS_TaskInfoService
|
{
|
public partial class TaskService
|
{
|
/// <summary>
|
/// 发送AGV任务
|
/// </summary>
|
/// <param name="taskModel"></param>
|
/// <returns></returns>
|
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<AgvResponseContent>();
|
if (agvContent.Code == "0")
|
{
|
content.OK(data: agvContent.Data);
|
}
|
else
|
{
|
content.Error(agvContent.Message);
|
}
|
}
|
catch (Exception ex)
|
{
|
content.Error(ex.Message);
|
}
|
return content;
|
}
|
/// <summary>
|
/// 安全信号申请 AGV-WCS
|
/// </summary>
|
public AgvResponseContent AgvSecureApply(AgvSecureApplyDTO secureApplyModel)
|
{
|
return new AgvResponseContent();
|
}
|
/// <summary>
|
/// 安全信号回复 WCS-AGV //AGV任务继续执行
|
/// </summary>
|
/// <param name="secureModel"></param>
|
/// <returns></returns>
|
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<AgvResponseContent>();
|
if (agvContent.Code == "0")
|
{
|
content.OK(agvContent.Message);
|
}
|
else
|
{
|
content.Error(agvContent.Message);
|
}
|
}
|
catch (Exception ex)
|
{
|
content.Error(ex.Message);
|
}
|
return content;
|
}
|
/// <summary>
|
/// CTU取消任务
|
/// </summary>
|
public WebResponseContent AgvBoxApplyPass(AgvCTUCancelDTO applyPassDTO, APIEnum SecureReply = APIEnum.AGV_CTUCancelTask)
|
{
|
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, applyPassDTO.Serialize());
|
AgvResponseContent agvContent = response.DeserializeObject<AgvResponseContent>();
|
if (agvContent.Code == "0")
|
{
|
content.OK(agvContent.Message);
|
}
|
else
|
{
|
content.Error(agvContent.Message);
|
}
|
}
|
catch (Exception ex)
|
{
|
content.Error(ex.Message);
|
}
|
return content;
|
}
|
/// <summary>
|
/// AGV成品取放货通知
|
/// </summary>
|
public WebResponseContent AgvBoxApplyPass(AGVBoxApplyPassDTO applyPassDTO, APIEnum SecureReply = APIEnum.AGV_CPBoxApplyPass)
|
{
|
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, applyPassDTO.Serialize());
|
AgvResponseContent agvContent = response.DeserializeObject<AgvResponseContent>();
|
if (agvContent.Code == "0")
|
{
|
content.OK(agvContent.Message);
|
}
|
else
|
{
|
content.Error(agvContent.Message);
|
}
|
}
|
catch (Exception ex)
|
{
|
content.Error(ex.Message);
|
}
|
return content;
|
}
|
public WebResponseContent AgvPreScheduleTask(AgvScheduleTaskDTO scheduleTaskDTO, APIEnum ScheduleTask = APIEnum.AGV_CTUScheduleTaskTask)
|
{
|
WebResponseContent content = new WebResponseContent();
|
try
|
{
|
string? apiAddress = apiInfos.FirstOrDefault(x => x.ApiCode == ScheduleTask.ToString())?.ApiAddress;
|
if (string.IsNullOrEmpty(apiAddress))
|
return WebResponseContent.Instance.Error($"未找到发送AGV任务接口,请检查接口配置");
|
string response = HttpHelper.Post(apiAddress, scheduleTaskDTO.Serialize());
|
AgvResponseContent agvContent = response.DeserializeObject<AgvResponseContent>();
|
if (agvContent.Code == "0")
|
{
|
content.OK(agvContent.Message);
|
}
|
else
|
{
|
content.Error(agvContent.Message);
|
}
|
}
|
catch (Exception ex)
|
{
|
content.Error(ex.Message);
|
}
|
return content;
|
}
|
/// <summary>
|
/// AGV任务状态刷新/AGV任务完成
|
/// </summary>
|
/// <param name="agvUpdateModel"></param>
|
/// <returns></returns>
|
public AgvResponseContent AgvUpdateTask(AgvUpdateDTO agvUpdateModel)
|
{
|
return new AgvResponseContent();
|
}
|
public WebResponseContent AgvPodBerthAndMat(AgvPodBerthAndMatDTO agvPodModel, APIEnum PodBerthAndMat = APIEnum.Agv_CSJPodBerthAndMat)
|
{
|
WebResponseContent content = new WebResponseContent();
|
try
|
{
|
string? apiAddress = apiInfos.FirstOrDefault(x => x.ApiCode == PodBerthAndMat.ToString())?.ApiAddress;
|
if (string.IsNullOrEmpty(apiAddress))
|
return WebResponseContent.Instance.Error($"未找到发送AGV任务接口,请检查接口配置");
|
string response = HttpHelper.Post(apiAddress, agvPodModel.Serialize());
|
AgvResponseContent agvContent = response.DeserializeObject<AgvResponseContent>();
|
if (agvContent.Code == "1")
|
{
|
content.OK(agvContent.Message);
|
}
|
else
|
{
|
content.Error(agvContent.Message);
|
}
|
}
|
catch (Exception ex)
|
{
|
content.Error(ex.Message);
|
}
|
return content;
|
}
|
}
|
}
|