using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using HH.WCS.Mobox3.YNJT_BZP.util;
namespace HH.WCS.Mobox3.YNJT_BZP.dispatch
{
public class NDCApi
{
private static readonly HttpHelper apiHelper = new HttpHelper();
public static string NDCApiUrl { set; get; }
static NDCApi() {
NDCApiUrl = Settings.NDCApiUrl;
}
///
/// 下发任务
///
///
///
///
///
///
public static AgvApiResult AddOrderNew(int ts, int pri, string taskNo, List paramList)
{
var agvApiResult = new AgvApiResult();
var model = new AddOrderNewModel();
model.ts_no = ts;
model.pri = pri;
model.task_no = taskNo;
model.param = paramList;
try {
LogHelper.Info($"任务{taskNo}下发,{JsonConvert.SerializeObject(model)}" , "NDC");
var result = apiHelper.Post(NDCApiUrl + "Add",JsonConvert.SerializeObject(model));
LogHelper.Info($"任务下发结果res={result}", "NDC");
agvApiResult = JsonConvert.DeserializeObject(result);
return agvApiResult;
}
catch (Exception e) {
LogHelper.Info($"任务下发失败 res={e.Message}", "NDC");
agvApiResult.err_code = -1;
agvApiResult.err_msg = e.Message;
return agvApiResult;
}
}
///
/// 下发任务
///
///
///
public static AgvApiResult AddOrderNew(AddOrderNewModel model)
{
var agvApiResult = new AgvApiResult();
try
{
LogHelper.Info($"任务{model.task_no}下发,{JsonConvert.SerializeObject(model)}", "NDC");
var result = apiHelper.Post(NDCApiUrl + "Add", JsonConvert.SerializeObject(model));
LogHelper.Info($"任务下发结果res={result}", "NDC");
agvApiResult = JsonConvert.DeserializeObject(result);
return agvApiResult;
}
catch (Exception e)
{
LogHelper.Info($"任务下发失败 res={e.Message}", "NDC");
agvApiResult.err_code = -1;
agvApiResult.err_msg = e.Message;
return agvApiResult;
}
}
///
/// 取消任务
///
///
///
///
public static AgvApiResult CancelOrder(string tsNo, bool is_force)
{
var agvApiResult = new AgvApiResult();
var model = new CancelOrderModel();
model.task_no = tsNo;
model.is_force = is_force;
try {
LogHelper.Info($"任务{model.task_no}取消,{JsonConvert.SerializeObject(model)}", "NDC");
Console.WriteLine($"任务{model.task_no}取消,{JsonConvert.SerializeObject(model)}", "NDC");
var result = apiHelper.Post(NDCApiUrl + "Cancel", JsonConvert.SerializeObject(model));
LogHelper.Info($"任务{model.task_no}取消结果={result}", "NDC");
Console.WriteLine($"任务{model.task_no}取消结果={result}", "NDC");
agvApiResult = JsonConvert.DeserializeObject(result);
return agvApiResult;
}
catch (Exception e) {
LogHelper.Info($"CancelOrder res={e.Message}", "NDC");
agvApiResult.err_code = -1;
agvApiResult.err_msg = e.Message;
return agvApiResult;
}
}
///
/// 取消任务
///
///
///
public static AgvApiResult CancelOrder(CancelOrderModel model)
{
var agvApiResult = new AgvApiResult();
try
{
LogHelper.Info($"任务{model.task_no}取消,{JsonConvert.SerializeObject(model)}", "NDC");
var result = apiHelper.Post(NDCApiUrl + "Cancel", JsonConvert.SerializeObject(model));
LogHelper.Info($"任务{model.task_no}取消结果={result}", "NDC");
agvApiResult = JsonConvert.DeserializeObject(result);
return agvApiResult;
}
catch (Exception e)
{
LogHelper.Info($"CancelOrder res={e.Message}", "NDC");
agvApiResult.err_code = -1;
agvApiResult.err_msg = e.Message;
return agvApiResult;
}
}
///
/// 改变任务优先级
///
///
///
///
public static AgvApiResult ChangeOrderPri(string taskNo, int newPri)
{
var agvApiResult = new AgvApiResult();
var model = new ChangePriModel();
model.task_no = taskNo;
model.pri = newPri;
try
{
LogHelper.Info($"任务{model.task_no}优先级更改,{JsonConvert.SerializeObject(model)}", "NDC");
var result = apiHelper.Post(NDCApiUrl + "ChangePri", JsonConvert.SerializeObject(model));
LogHelper.Info($"任务{model.task_no}优先级更改结果={result}", "NDC");
agvApiResult = JsonConvert.DeserializeObject(result);
return agvApiResult;
}
catch (Exception e)
{
LogHelper.Info($"ChangeOrderPri res={e.Message}", "NDC");
agvApiResult.err_code = -1;
agvApiResult.err_msg = e.Message;
return agvApiResult;
}
}
///
/// 改变任务优先级
///
///
///
public static AgvApiResult ChangeOrderPri(ChangePriModel model)
{
var agvApiResult = new AgvApiResult();
try
{
LogHelper.Info($"任务{model.task_no}优先级更改,{JsonConvert.SerializeObject(model)}", "NDC");
var result = apiHelper.Post(NDCApiUrl + "ChangePri", JsonConvert.SerializeObject(model));
LogHelper.Info($"任务{model.task_no}优先级更改结果={result}", "NDC");
agvApiResult = JsonConvert.DeserializeObject(result);
return agvApiResult;
}
catch (Exception e)
{
LogHelper.Info($"ChangeOrderPri res={e.Message}", "NDC");
agvApiResult.err_code = -1;
agvApiResult.err_msg = e.Message;
return agvApiResult;
}
}
///
/// 参数更改
///
///
///
///
///
public static AgvApiResult ChangeOrderParam(string taskNo,int paramNo, string paramStr)
{
var agvApiResult = new AgvApiResult();
var model = new ChangeParamModel();
model.task_no = taskNo;
model.param_no = paramNo;
model.param = paramStr;
try {
LogHelper.Info($"任务{model.task_no}参数更改,{JsonConvert.SerializeObject(model)}", "NDC");
var result = apiHelper.Post(NDCApiUrl + "ChangeParam", JsonConvert.SerializeObject(model));
LogHelper.Info($"任务{model.task_no}参数更改结果={result}", "NDC");
agvApiResult = JsonConvert.DeserializeObject(result);
return agvApiResult;
}
catch (Exception e) {
LogHelper.Info($"ChangeOrderParam res={e.Message}", "NDC");
agvApiResult.err_code = -1;
agvApiResult.err_msg = e.Message;
return agvApiResult;
}
}
///
/// 参数更改
///
///
///
public static AgvApiResult ChangeOrderParam(ChangeParamModel model)
{
var agvApiResult = new AgvApiResult();
try
{
LogHelper.Info($"任务{model.task_no}参数更改,{JsonConvert.SerializeObject(model)}", "NDC");
var result = apiHelper.Post(NDCApiUrl + "ChangeParam", JsonConvert.SerializeObject(model));
LogHelper.Info($"任务{model.task_no}参数更改结果={result}", "NDC");
agvApiResult = JsonConvert.DeserializeObject(result);
return agvApiResult;
}
catch (Exception e)
{
LogHelper.Info($"ChangeOrderParam res={e.Message}", "NDC");
agvApiResult.err_code = -1;
agvApiResult.err_msg = e.Message;
return agvApiResult;
}
}
}
///
/// 返回信息Model
///
public class AgvApiResult
{
public int err_code { set; get; }//异常码:0 - 正常,其它值为异常错误码
public string err_msg { set; get; }//返回的错误描述,在 err_code <> 0 时返回
public object result { set; get; }//正确返回的结果内容,在 err_code = 0 且有返回内容时
}
public class AddOrderNewModel
{
public int ts_no { set; get; }//TS 号,必须有值
public int pri { set; get; }//优先级
public string task_no { set; get; }//上游任务编码,如果 no_feedback = 1 时,可以为空
public List param { set; get; } = new List();//参数列表
}
public class Param
{
public string name { set; get; }//参数名
public string value { set; get; }//参数值
}
public class CancelOrderModel
{
public string task_no { set; get; }//上游任务编码
public bool is_force { set; get; }//是否强制取消,1 – 强制
}
public class ChangeParamModel
{
public string task_no { set; get; }//上游任务编码
public int param_no { set; get; }//参数号
public string param { set; get; }//参数内容,多个参数以英文分号(;)分隔
}
public class ChangePriModel
{
public string task_no { set; get; }//上游任务编码
public int pri { set; get; }//新优先级
}
}