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;
///
/// 推送Ants订单
///
///
///
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(response);
if (dataResult.code == 0)
{
var db = new SqlHelper().GetInstance();
//存订单号
var task = db.Queryable().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;
}
///
/// 推送Picking订单
///
///
///
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 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(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; }
public string 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; }
}
}
}