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; 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); if (response != "") { try { var dataResult = JsonConvert.DeserializeObject(response); if (dataResult.code == 0) { result = true; } } catch (Exception ex) { Console.WriteLine(ex.Message); } } else { msg = "[hanao-CreateAntsOrder]创建订单失败"; Console.WriteLine(msg); } LogHelper.Info(msg, "杭奥"); return result; } 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(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; } public static bool CancelPickingOrder(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(response); if (dataResult.code == "0") { result = true; } } else { msg = "[hanao-CancelOrder]取消订单失败"; Console.WriteLine(msg); } LogHelper.Info(msg, "杭奥"); return result; } /// /// 创建Ants点到点订单参数 /// public class AntsTaskModel { /// /// 订单名 /// public string order_name { get; set; } /// /// 订单优先级,通常为1,最大值为20,超过20的当做20处理,按优先级降序排序 /// public int priority { get; set; } /// /// 当前时间 /// public string dead_line { get; set; } /// /// 订单TS名字 /// public string ts_name { get; set; } /// /// TS订单参数 /// public AntsParasModel parameters { get; set; } /// /// 订单的全局唯一ID /// public string uid { get; set; } /// /// WCS /// public string created_user { get; set; } } public class AntsParasModel { /// /// 起点库位名 /// public string src { get; set; } /// /// 终点库位名 /// public string dst { get; set; } /// /// 载具类型id,如无需区分载具,默认填-99 /// public string carrier_type_id { get; set; } } /// /// 创建picking点到点订单参数 /// public class PickingTaskModel { /// /// 订单名 /// public string order_name { get; set; } /// /// 订单优先级,通常为1,最大值为20,超过20的当做20处理,按优先级降序排序 /// public string priority { get; set; } /// /// 订单截止时间 /// public string dead_line { get; set; } /// /// 订单参数 /// public PickingParasModel parameters { get; set; } /// /// 订单TS名字 /// public string ts_name { get; set; } /// /// 订单的全局唯一ID /// public string uid { get; set; } /// /// WCS /// public string created_user { get; set; } /// /// 订单ID /// public string order_id { get; set; } } public class PickingParasModel { /// /// 托盘名 /// public string tote_id { get; set; } /// /// 任务类型 inbound | return | outbound | ic | empty | tally | move /// public string task_type { get; set; } /// /// 起始库位/区域 /// public string src { get; set; } /// /// 目标库位/区域 /// public string dst { get; set; } /// /// 托盘冷热度 /// public string indicator { get; set; } /// /// 任务约束信息 /// public string extra_info { get; set; } } /// /// 取消订单参数 /// public class CancelModel { /// /// /// public string order_id { get; set; } /// /// /// public string order_command_type_id { get; set; } } /// /// WCS返回结果 /// 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; } } } }