using HH.WCS.Mobox3.ZS7412
|
.util;
|
using Newtonsoft.Json;
|
using System;
|
using System.Collections.Generic;
|
using System.Web.Services.Description;
|
using static HH.WCS.Mobox3.ZS7412.dispatch.HanAo;
|
|
namespace HH.WCS.Mobox3.ZS7412.dispatch {
|
/// <summary>
|
/// 国自调度辅助类
|
/// </summary>
|
public class HanAo {
|
private static readonly HttpHelper apiHelper = new HttpHelper();
|
private static readonly string baseUrl = Settings.HASeverUrl;
|
//private static readonly string logName = "hanao";
|
|
/* private static readonly HttpHelper apiHelper = new HttpHelper();
|
private static readonly string baseUrl = "http://192.168.1.99:2000/"; //待定*/
|
|
|
public static bool CreateOrder(TaskInfoModel model) {
|
var msg = "";
|
var result = true;
|
var request = JsonConvert.SerializeObject(model);
|
var response = apiHelper.Post(baseUrl + ":9001/wcs-admin/api/receive", request);
|
msg = $"[hanao-CreateOrder] request={request} response={response}";
|
Console.WriteLine(msg);
|
if (response != "") {
|
try {
|
var dataResult = JsonConvert.DeserializeObject<HAResult>(response);
|
if (dataResult.code == "0") {
|
result = true;
|
}
|
}
|
catch (Exception ex) {
|
Console.WriteLine(ex.Message);
|
}
|
}
|
else {
|
msg = "[hanao-CreateOrder]创建订单失败";
|
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<HAResult>(response);
|
if (dataResult.code == "0") {
|
result = true;
|
}
|
}
|
else {
|
msg = "[hanao-CancelOrder]取消订单失败";
|
Console.WriteLine(msg);
|
}
|
LogHelper.Info(msg, "杭奥");
|
return result;
|
}
|
public static bool QueryDevice(DeviceInfoModel model) {
|
bool result = false;
|
string msg = "";
|
var request = JsonConvert.SerializeObject(model);
|
var response = apiHelper.Get(baseUrl + ":9003//wcs-admin/api/dvc-state/", request);
|
msg = $"[hanao-QueryDeviceResult] request={request};response={response}";
|
Console.WriteLine(msg);
|
if (response != "") {
|
var dataResult = JsonConvert.DeserializeObject<HAResult>(response);
|
if (dataResult.code == "0") {
|
result = true;
|
}
|
}
|
else {
|
msg = "[hanao-QueryOrderResult]查询订单信息失败";
|
Console.WriteLine(msg);
|
}
|
LogHelper.Info(msg, "杭奥");
|
return result;
|
}
|
|
|
|
/// <summary>
|
/// 任务状态回报上游
|
/// </summary>
|
/// <param name="taskreportInfo"></param>
|
/// <returns></returns>
|
public static bool Taskreport(TaskReportInfo taskreportInfo)
|
{
|
bool result = false;
|
string msg;
|
LogHelper.Info("Taskreport_taskreportInfo :" + JsonConvert.SerializeObject(taskreportInfo), "ZS7412");
|
var response = apiHelper.Post(baseUrl + ":9007/AMS_REPORT_TO_WCS", JsonConvert.SerializeObject(taskreportInfo));
|
LogHelper.Info("Taskreport_response :" + JsonConvert.SerializeObject(response), "ZS7412");
|
if (response != "")
|
{
|
try
|
{
|
var dataResult = JsonConvert.DeserializeObject<AMSResponse>(response);
|
if (dataResult.code == 0)
|
{
|
result = true;
|
}
|
}
|
catch (Exception ex)
|
{
|
LogHelper.Error("任务状态回报上游错误", ex, "ZS7412");
|
}
|
}
|
else
|
{
|
msg = "任务状态回报上游失败";
|
Console.WriteLine(msg);
|
}
|
return result;
|
}
|
|
/// <summary>
|
/// 询问设备 是否可取
|
/// </summary>
|
/// <param name="stnNo"></param>
|
/// <returns></returns>
|
public static bool CanIn(string stnNo)
|
{
|
bool result = false;
|
string msg;
|
CanInInfo canInInfo = new CanInInfo() {
|
stnNo = stnNo
|
};
|
try
|
{
|
var response = apiHelper.Post(baseUrl + ":9005/CAN_IN", JsonConvert.SerializeObject(canInInfo));
|
LogHelper.Info("CanIn:" + JsonConvert.SerializeObject(response), "ZS7412");
|
if (response != "")
|
{
|
var dataResult = JsonConvert.DeserializeObject<AMSResponse>(response);
|
if (dataResult.code == 0 && dataResult.msg.Equals("success"))
|
{
|
result = true;
|
}
|
}
|
else
|
{
|
msg = "询问设备是否可放失败";
|
Console.WriteLine(msg);
|
}
|
}
|
catch (Exception ex)
|
{
|
Console.WriteLine(ex.Message);
|
LogHelper.Error("询问设备是否可放", ex, "ZS7412");
|
}
|
return result;
|
}
|
|
/// <summary>
|
/// 询问设备 是否 可放
|
/// </summary>
|
/// <param name="stnNo"></param>
|
/// <returns></returns>
|
public static bool CanOut(string stnNo)
|
{
|
bool result = false;
|
string msg;
|
CanOutInfo canOutInfo = new CanOutInfo() {
|
stnNo = stnNo
|
};
|
try
|
{
|
var response = apiHelper.Post(baseUrl + ":9006/CAN_OUT ", JsonConvert.SerializeObject(canOutInfo));
|
LogHelper.Info("CanOut:"+ JsonConvert.SerializeObject(response), "ZS7412");
|
if (response != "")
|
{
|
var dataResult = JsonConvert.DeserializeObject<AMSResponse>(response);
|
if (dataResult.code == 0 && dataResult.msg.Equals("success"))
|
{
|
result = true;
|
}
|
}
|
else
|
{
|
msg = "询问设备是否可取";
|
Console.WriteLine(msg);
|
}
|
}
|
catch (Exception ex)
|
{
|
Console.WriteLine(ex.Message);
|
LogHelper.Error("询问设备是否可取", ex, "ZS7412");
|
}
|
return result;
|
}
|
|
/// <summary>
|
/// 请求空托盘垛
|
/// </summary>
|
/// <param name="askCntrInfo"></param>
|
/// <returns></returns>
|
public static bool AskCntr(AskCntrInfo askCntrInfo)
|
{
|
bool result = false;
|
string msg;
|
try
|
{
|
var response = apiHelper.Post(baseUrl + ":9008/call_case", JsonConvert.SerializeObject(askCntrInfo));
|
LogHelper.Info("AskCntr:" + JsonConvert.SerializeObject(response), "ZS7412");
|
if (response != "")
|
{
|
var dataResult = JsonConvert.DeserializeObject<AMSResponse1>(response);
|
if (dataResult.errCode.Equals("0") && dataResult.errMsg.Equals("success"))
|
{
|
result = true;
|
}
|
}
|
else
|
{
|
msg = "请求空托盘垛";
|
Console.WriteLine(msg);
|
}
|
}
|
catch (Exception ex)
|
{
|
Console.WriteLine(ex.Message);
|
LogHelper.Error("请求空托盘垛", ex, "ZS7412");
|
}
|
return result;
|
}
|
|
/// <summary>
|
/// 安全退出
|
/// </summary>
|
/// <param name="stnNo"></param>
|
/// <param name="orderid"></param>
|
/// <param name="flag">1.取货完成2.卸货完成</param>
|
/// <returns></returns>
|
public static bool safeWithdraw(string stnNo, int orderid, int flag)
|
{
|
bool result = false;
|
string msg;
|
SafeWithdrawInfo safeWithdraw = new SafeWithdrawInfo()
|
{
|
stnNo = stnNo,
|
taskNo = orderid.ToString(),
|
state = flag,
|
};
|
try
|
{
|
LogHelper.Info("safeWithdraw:" + JsonConvert.SerializeObject(safeWithdraw), "ZS7412");
|
var response = apiHelper.Post(baseUrl + ":9009/AMS_SAFE_TO_WCS", JsonConvert.SerializeObject(safeWithdraw));
|
LogHelper.Info("safeWithdraw:" + JsonConvert.SerializeObject(response), "ZS7412");
|
if (response != "")
|
{
|
var dataResult = JsonConvert.DeserializeObject<AMSResponse>(response);
|
if (dataResult.code == 0 && dataResult.msg.Equals("success"))
|
{
|
result = true;
|
}
|
}
|
else
|
{
|
msg = "AGV安全退出";
|
Console.WriteLine(msg);
|
}
|
}
|
catch (Exception ex)
|
{
|
Console.WriteLine(ex.Message);
|
LogHelper.Error("AGV安全退出", ex, "ZS7412");
|
}
|
return result;
|
}
|
|
public class SafeWithdrawInfo {
|
public string taskNo { get; set; } //任务号
|
public int state { get; set; } //任务状态
|
public string stnNo { get; set; } // 站台号
|
}
|
|
public class TaskReportInfo
|
{
|
public string taskNo { get; set; } //任务号
|
public int state { get; set; } //任务状态
|
public int agvNo { get; set; } //执行任务车号
|
}
|
|
public class AMSResponse
|
{
|
public int code { get; set; }
|
|
public string msg { get; set; }
|
}
|
|
public class AMSResponse1
|
{
|
public string errCode { get; set; }
|
|
public string errMsg { get; set; }
|
}
|
|
public class CanInInfo
|
{
|
public string stnNo { get; set; } // 站台号
|
}
|
|
public class CanOutInfo
|
{
|
public string stnNo { get; set; }
|
}
|
|
public class AskCntrInfo
|
{
|
public string pos { get; set; }
|
|
public string req { get; set; }
|
}
|
|
|
public class TaskInfoModel {
|
/// <summary>
|
/// 请求pk
|
/// </summary>
|
public string requestPk { get; set; }
|
/// <summary>
|
/// 托盘条码
|
/// </summary>
|
public string contNo { get; set; }
|
/// <summary>
|
/// 托盘类型
|
/// </summary>
|
public string contType { get; set; } = "";
|
/// <summary>
|
/// 任务类型 1-入库 2-出库 3-移库
|
/// </summary>
|
public string trkType { get; set; }
|
/// <summary>
|
/// 1-999(值越大优先级越高)
|
/// </summary>
|
public string trkPrty { get; set; } = "1";
|
public string frmPos { get; set; }
|
public string toPos { get; set; }
|
public string noticeInfo { get; set; } = "";
|
/// <summary>
|
/// 0-空托盘 1-实物
|
/// </summary>
|
public string isFull { get; set; } = "0";
|
public string groupNo { get; set; } = "";
|
public string clientCode { get; set; } = "WMS";
|
/// <summary>
|
/// 格式:2022-11-11 11:32:08
|
/// </summary>
|
public string reqTime { get; set; } = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
|
}
|
public class HAResult {
|
public string code { get; set; }
|
public string msg { get; set; }
|
public string requestPk { get; set; }
|
}
|
public class CancelModel {
|
public string requestPk { get; set; }
|
public string contNo { get; set; }
|
public string clientCode { get; set; }
|
public string reqTime { get; set; } = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
}
|
public class DeviceInfoModel {
|
public string requestPk { get; set; }
|
public string dvcNo { get; set; }
|
public string clientCode { get; set; }
|
public string reqTime { get; set; } = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
}
|
public class TaskStateInfoModel {
|
public string requestPk { get; set; }
|
public string contNo { get; set; }
|
/// <summary>
|
/// 双方系统共同定义 1-入库 2-出库 3-移库 (后续如有增加再协定)
|
/// </summary>
|
public string noticeType { get; set; }
|
public string curPos { get; set; }
|
public string noticeInfo { get; set; }
|
/// <summary>
|
/// 0-成功 (入库上架完成/出库下架完成/库内移库完成:移库只上报最终移库上架) 或 其他-异常码(反馈相关结果原因,WMS根据情况处理
|
/// 1-入库有货 2-入远近有货 3-出库无货 4-出远近有货)
|
/// </summary>
|
public string code { get; set; }
|
public string result { get; set; }
|
public string clientCode { get; set; }
|
public string reqTime { get; set; } = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
}
|
|
}
|
|
|
}
|