using HH.WCS.XiaoMi.util;
|
using Newtonsoft.Json;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using static HH.WCS.XiaoMi.dispatch.HanAo;
|
|
namespace HH.WCS.XiaoMi.LISTA.dispatch
|
{
|
public class RcsHelper
|
{
|
private static readonly HttpHelper apiHelper = new HttpHelper();
|
private static readonly string baseUrl = Settings.HASeverUrl;
|
|
/// <summary>
|
/// 推送Ants订单
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
public static bool CreateAntsOrder(AntsTaskModel model)
|
{
|
var msg = "";
|
var result = true;
|
var request = JsonConvert.SerializeObject(model);
|
var response = apiHelper.Post(baseUrl + "/api/om/order", request);
|
msg = $"[hanao-CreateAntsOrder] request={request} response={response}";
|
Console.WriteLine(msg);
|
LogHelper.Info("[hanao-CreateAntsOrder]" + msg);
|
if (response != "")
|
{
|
try
|
{
|
var dataResult = JsonConvert.DeserializeObject<RcsResult>(response);
|
if (dataResult.code == 0)
|
{
|
var db = new SqlHelper<WCSTask>().GetInstance();
|
//存订单号
|
var task = db.Queryable<WCSTask>().Where(a => a.S_CODE == model.ts_name).First();
|
task.S_WORKSHOP_NO = dataResult.data.in_order_id;
|
var res = db.Updateable(task).UpdateColumns(it => it.S_WORKSHOP_NO).ExecuteCommand() > 0;
|
if (res)
|
{
|
result = true;
|
}
|
|
}
|
}
|
catch (Exception ex)
|
{
|
Console.WriteLine(ex.Message);
|
}
|
}
|
else
|
{
|
msg = "[hanao-CreateAntsOrder]创建订单失败";
|
Console.WriteLine(msg);
|
}
|
LogHelper.Info(msg, "杭奥");
|
return result;
|
}
|
|
/// <summary>
|
/// 推送Picking订单
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
public static bool CreatePickingOrder(PickingTaskModel model)
|
{
|
var msg = "";
|
var result = true;
|
var request = JsonConvert.SerializeObject(model);
|
var response = apiHelper.Post(baseUrl + "/api/om/order", request);
|
msg = $"[hanao-CreatePickingOrder] request={request} response={response}";
|
Console.WriteLine(msg);
|
if (response != "")
|
{
|
try
|
{
|
var dataResult = JsonConvert.DeserializeObject<RcsResult>(response);
|
if (dataResult.code == 0)
|
{
|
result = true;
|
}
|
}
|
catch (Exception ex)
|
{
|
Console.WriteLine(ex.Message);
|
}
|
}
|
else
|
{
|
msg = "[hanao-CreatePickingOrder]创建订单失败";
|
Console.WriteLine(msg);
|
}
|
LogHelper.Info(msg, "杭奥");
|
return result;
|
}
|
|
/// <summary>
|
/// 删除订单
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
public static bool CancelOrder(CancelModel model)
|
{
|
bool result = false;
|
string msg = "";
|
var request = JsonConvert.SerializeObject(model);
|
var response = apiHelper.Post(baseUrl + ":9002/wcs-admin/api/cancel", request);
|
msg = $"[hanao-CancelOrder] request={request};response={response}";
|
Console.WriteLine(msg);
|
if (response != "")
|
{
|
var dataResult = JsonConvert.DeserializeObject<HAResult>(response);
|
if (dataResult.code == "0")
|
{
|
result = true;
|
}
|
}
|
else
|
{
|
msg = "[hanao-CancelOrder]取消订单失败";
|
Console.WriteLine(msg);
|
}
|
LogHelper.Info(msg, "杭奥");
|
return result;
|
}
|
|
|
/// <summary>
|
/// 创建Ants点到点订单参数
|
/// </summary>
|
public class AntsTaskModel
|
{
|
/// <summary>
|
/// 订单名
|
/// </summary>
|
public string order_name { get; set; }
|
/// <summary>
|
/// 订单优先级,通常为1,最大值为20,超过20的当做20处理,按优先级降序排序
|
/// </summary>
|
public int priority { get; set; }
|
/// <summary>
|
/// 当前时间
|
/// </summary>
|
public string dead_line { get; set; }
|
/// <summary>
|
/// 订单TS名字
|
/// </summary>
|
public string ts_name { get; set; }
|
/// <summary>
|
/// TS订单参数
|
/// </summary>
|
//public AntsParasModel parameters { get; set; }
|
public string parameters { get; set; }
|
|
/// <summary>
|
/// 订单的全局唯一ID
|
/// </summary>
|
public string uid { get; set; }
|
|
/// <summary>
|
/// WCS
|
/// </summary>
|
public string created_user { get; set; }
|
|
}
|
public class AntsParasModel
|
{
|
/// <summary>
|
/// 起点库位名
|
/// </summary>
|
public string src { get; set; }
|
/// <summary>
|
/// 终点库位名
|
/// </summary>
|
public string dst { get; set; }
|
/// <summary>
|
/// 载具类型id,如无需区分载具,默认填-99
|
/// </summary>
|
public string carrier_type_id { get; set; }
|
|
}
|
|
|
/// <summary>
|
/// 创建picking点到点订单参数
|
/// </summary>
|
public class PickingTaskModel
|
{
|
/// <summary>
|
/// 订单名
|
/// </summary>
|
public string order_name { get; set; }
|
/// <summary>
|
/// 订单优先级,通常为1,最大值为20,超过20的当做20处理,按优先级降序排序
|
/// </summary>
|
public string priority { get; set; }
|
/// <summary>
|
/// 订单截止时间
|
/// </summary>
|
public string dead_line { get; set; }
|
/// <summary>
|
/// 订单参数
|
/// </summary>
|
public PickingParasModel parameters { get; set; }
|
|
/// <summary>
|
/// 订单TS名字
|
/// </summary>
|
public string ts_name { get; set; }
|
|
/// <summary>
|
/// 订单的全局唯一ID
|
/// </summary>
|
public string uid { get; set; }
|
|
/// <summary>
|
/// WCS
|
/// </summary>
|
public string created_user { get; set; }
|
|
/// <summary>
|
/// 订单ID
|
/// </summary>
|
public string order_id { get; set; }
|
|
}
|
public class PickingParasModel
|
{
|
/// <summary>
|
/// 托盘名
|
/// </summary>
|
public string tote_id { get; set; }
|
/// <summary>
|
/// 任务类型 inbound | return | outbound | ic | empty | tally | move
|
/// </summary>
|
public string task_type { get; set; }
|
/// <summary>
|
/// 起始库位/区域
|
/// </summary>
|
public string src { get; set; }
|
/// <summary>
|
/// 目标库位/区域
|
/// </summary>
|
public string dst { get; set; }
|
|
/// <summary>
|
/// 托盘冷热度
|
/// </summary>
|
public string indicator { get; set; }
|
/// <summary>
|
/// 任务约束信息
|
/// </summary>
|
public string extra_info { get; set; }
|
|
}
|
/// <summary>
|
/// 取消订单参数
|
/// </summary>
|
public class CancelModel
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public string order_id { get; set; }
|
/// <summary>
|
///
|
/// </summary>
|
public string order_command_type_id { get; set; }
|
|
}
|
|
/// <summary>
|
/// WCS返回结果
|
/// </summary>
|
public class RcsResult
|
{
|
public string app_name { get; set; }
|
public string version { get; set; }
|
public int code { get; set; }
|
public string msg { get; set; }
|
public RcsData data { get; set; }
|
}
|
public class RcsData
|
{
|
public string in_order_id { get; set; }
|
}
|
}
|
}
|