121 lines
4.7 KiB
C#
121 lines
4.7 KiB
C#
using JSMachine.WMS.Common;
|
|||
|
|
using JSMachine.WMS.Infrastructure.Helper;
|
||
|
|
using JSMachine.WMS.RPC.ErpRPC.Dto.Out;
|
||
|
|
using JSMachine.WMS.RPC.RcsRPC.Dto;
|
||
|
|
using JSMachine.WMS.RPC.RcsRPC.Dto.In;
|
||
|
|
using JSMachine.WMS.RPC.RcsRPC.IService;
|
||
|
|
using Newtonsoft.Json;
|
||
|
|
using RestSharp;
|
||
|
|
|
||
|
|
namespace JSMachine.WMS.RPC.RcsRPC.Service
|
||
|
|
{
|
||
|
|
/// <summary>
|
||
|
|
/// RCS HTTP RPC 客户端,封装任务创建和取消接口调用及统一错误转换。
|
||
|
|
/// </summary>
|
||
|
|
public class RcsService: IRcsService
|
||
|
|
{
|
||
|
|
private static readonly string rcsUrl = Global.AppSettings.RcsConfig.RcsUrl;
|
||
|
|
private static readonly string createTaskUrl = Global.AppSettings.RcsConfig.CreateTaskUrl;
|
||
|
|
private static readonly string cancelTaskUrl = Global.AppSettings.RcsConfig.CancelTaskUrl;
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// 创建任务
|
||
|
|
/// </summary>
|
||
|
|
/// <param name="createTaskParam"></param>
|
||
|
|
/// <returns></returns>
|
||
|
|
/// <remarks>外部接口返回码为 1000 时转换为本地成功码 200。</remarks>
|
||
|
|
public async Task<ApiReturnResult<bool>> CreateTask(CreateTaskParam createTaskParam)
|
||
|
|
{
|
||
|
|
var result = new ApiReturnResult<bool>();
|
||
|
|
try
|
||
|
|
{
|
||
|
|
var url = rcsUrl + createTaskUrl;
|
||
|
|
var jsonParam = new CreateTaskParam
|
||
|
|
{
|
||
|
|
modelProcessCode = createTaskParam.modelProcessCode,
|
||
|
|
priority = createTaskParam.priority,
|
||
|
|
fromSystem = createTaskParam.fromSystem,
|
||
|
|
orderId = createTaskParam.orderId,
|
||
|
|
};
|
||
|
|
jsonParam.taskOrderDetail = new TaskOrderDetailDto
|
||
|
|
{
|
||
|
|
taskPath = createTaskParam.taskOrderDetail.taskPath,
|
||
|
|
shelfNumber = createTaskParam.taskOrderDetail.shelfNumber,
|
||
|
|
};
|
||
|
|
|
||
|
|
string resStr = await HttpRequestHelper.RequestByJson(url, Method.POST, JsonConvert.SerializeObject(jsonParam));
|
||
|
|
if (string.IsNullOrEmpty(resStr))
|
||
|
|
{
|
||
|
|
var msg = $"调用Rcs创建任务接口失败(CreateTask)";
|
||
|
|
LogHelper.Error(msg);
|
||
|
|
result.ErrorMsg = msg;
|
||
|
|
|
||
|
|
return result;
|
||
|
|
}
|
||
|
|
var apiResult = JsonConvert.DeserializeObject<RcsApiResult>(resStr);
|
||
|
|
if (apiResult.code != 1000)
|
||
|
|
{
|
||
|
|
var msg = $"创建任务失败(CreateTask): {apiResult.desc}";
|
||
|
|
LogHelper.Error(msg);
|
||
|
|
result.ErrorMsg = msg;
|
||
|
|
|
||
|
|
return result;
|
||
|
|
}
|
||
|
|
result.ResultCode = "200";
|
||
|
|
}
|
||
|
|
catch (Exception ex)
|
||
|
|
{
|
||
|
|
var msg = $"创建任务异常(CreateTask):: {ex.Message} \n {ex.StackTrace}";
|
||
|
|
LogHelper.Error(msg);
|
||
|
|
result.ErrorMsg = msg;
|
||
|
|
}
|
||
|
|
return result;
|
||
|
|
}
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// 向 RCS 批量提交任务取消请求。
|
||
|
|
/// </summary>
|
||
|
|
/// <param name="cancelTaskParams">待取消的 RCS 任务参数。</param>
|
||
|
|
/// <returns>外部接口成功时返回本地成功码,否则携带错误信息。</returns>
|
||
|
|
public async Task<ApiReturnResult<bool>> CancelTask(List<CancelTaskParam> cancelTaskParams)
|
||
|
|
{
|
||
|
|
var result = new ApiReturnResult<bool>();
|
||
|
|
try
|
||
|
|
{
|
||
|
|
var url = rcsUrl + cancelTaskUrl;
|
||
|
|
var jsonParam = new List<CancelTaskParam>();
|
||
|
|
foreach (var item in cancelTaskParams)
|
||
|
|
{
|
||
|
|
jsonParam.Add(item);
|
||
|
|
}
|
||
|
|
string resStr = await HttpRequestHelper.RequestByJson(url, Method.POST, JsonConvert.SerializeObject(jsonParam));
|
||
|
|
if (string.IsNullOrEmpty(resStr))
|
||
|
|
{
|
||
|
|
var msg = $"调用Rcs取消任务接口失败(CancelTask)";
|
||
|
|
LogHelper.Error(msg);
|
||
|
|
result.ErrorMsg = msg;
|
||
|
|
|
||
|
|
return result;
|
||
|
|
}
|
||
|
|
var apiResult = JsonConvert.DeserializeObject<RcsApiResult>(resStr);
|
||
|
|
if (apiResult.code != 1000)
|
||
|
|
{
|
||
|
|
var msg = $"取消任务失败(CancelTask): {apiResult.desc}";
|
||
|
|
LogHelper.Error(msg);
|
||
|
|
result.ErrorMsg = msg;
|
||
|
|
|
||
|
|
return result;
|
||
|
|
}
|
||
|
|
result.ResultCode = "200";
|
||
|
|
}
|
||
|
|
catch (Exception ex)
|
||
|
|
{
|
||
|
|
var msg = $"取消任务异常(CancelTask):: {ex.Message} \n {ex.StackTrace}";
|
||
|
|
LogHelper.Error(msg);
|
||
|
|
result.ErrorMsg = msg;
|
||
|
|
}
|
||
|
|
return result;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|