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 { /// /// 杭奥 /// 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(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(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(response); if (dataResult.code == "0") { result = true; } } else { msg = "[hanao-QueryOrderResult]查询订单信息失败"; Console.WriteLine(msg); } LogHelper.Info(msg, "杭奥"); return result; } /// /// 任务状态回报上游 /// /// /// 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(response); if (dataResult.code == 0) { result = true; } } catch (Exception ex) { LogHelper.Error("任务状态回报上游错误", ex, "ZS7412"); } } else { msg = "任务状态回报上游失败"; Console.WriteLine(msg); } return result; } /// /// 询问设备 是否可取 /// /// /// 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(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; } /// /// 询问设备 是否 可放 /// /// /// 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(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; } /// /// 请求空托盘垛 /// /// /// 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(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; } /// /// 安全退出 /// /// /// /// 1.取货完成2.卸货完成 /// 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(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 { /// /// 请求pk /// public string requestPk { get; set; } /// /// 托盘条码 /// public string contNo { get; set; } /// /// 托盘类型 /// public string contType { get; set; } = ""; /// /// 任务类型 1-入库 2-出库 3-移库 /// public string trkType { get; set; } /// /// 1-999(值越大优先级越高) /// public string trkPrty { get; set; } = "1"; public string frmPos { get; set; } public string toPos { get; set; } public string noticeInfo { get; set; } = ""; /// /// 0-空托盘 1-实物 /// public string isFull { get; set; } = "0"; public string groupNo { get; set; } = ""; public string clientCode { get; set; } = "WMS"; /// /// 格式:2022-11-11 11:32:08 /// 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; } /// /// 双方系统共同定义 1-入库 2-出库 3-移库 (后续如有增加再协定) /// public string noticeType { get; set; } public string curPos { get; set; } public string noticeInfo { get; set; } /// /// 0-成功 (入库上架完成/出库下架完成/库内移库完成:移库只上报最终移库上架) 或 其他-异常码(反馈相关结果原因,WMS根据情况处理 /// 1-入库有货 2-入远近有货 3-出库无货 4-出远近有货) /// 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"); } } }