using HH.WCS.Mobox3.SXJK.api; using HH.WCS.Mobox3.SXJK.models; using HH.WCS.Mobox3.SXJK.util; using Newtonsoft.Json; using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using static HH.WCS.Mobox3.SXJK.api.WmsController; using static HH.WCS.Mobox3.SXJK.api.WmsController.PutawayOrderIn; using static HH.WCS.Mobox3.SXJK.dispatch.WMSDispatch.TrayRequestInStockData; namespace HH.WCS.Mobox3.SXJK.dispatch { internal class WMSDispatch { private static readonly HttpHelper apiHelper = new HttpHelper(); private static readonly string baseUrl = Settings.WMSSeverUrl; /// /// 收货回传WMS接口 /// /// /// public static bool ReceiveGoodsFeedback(object obj) { ReceiveGoodsFeedbackData data = new ReceiveGoodsFeedbackData(); IS_BC_INFO iS_BC_INFO = new IS_BC_INFO() { CUSTOMERID = Settings.orgInfo.customerId, IFID = "CF_AGV101", IFNAME = "收货回传WMS接口", UUID = WmsController.GenerateTaskNo(), MSGID = "", SEND_DT = DateTime.Now.ToString("yyyyMMddHHmmss"), }; data.IS_BC_INFO = iS_BC_INFO; data.IT_DATA = (List)obj; var msg = ""; bool result = false; var request = JsonConvert.SerializeObject(data); var response = apiHelper.Post(baseUrl + "/JIP/WMS/WMS_JK_AGV_ASNSH", request); msg = $"[WMS-ReceiveGoodsFeedback] request={request} response={response}"; LogHelper.Info(msg, "WMS"); if (response != "") { try { var dataResult = JsonConvert.DeserializeObject(response); if (dataResult.ES_BC_INFO.TYPE == "S") { result = true ; } } catch (Exception ex) { msg = "[WMS-ReceiveGoodsFeedback]收货回传WMS接口返回数据解析错误,错误原因:"+ex.Message; LogHelper.Info(msg, "WMS"); } } else { msg = "[WMS-ReceiveGoodsFeedback]收货回传WMS接口失败"; LogHelper.Info(msg, "WMS"); } return result; } /// /// 托盘请求入库接口 /// /// /// public static WMSTrayRequestResponse TrayRequestInStock(object obj) { TrayRequestInStockData data = new TrayRequestInStockData(); IS_BC_INFO iS_BC_INFO = new IS_BC_INFO() { CUSTOMERID = Settings.orgInfo.customerId, IFID = "CF_AGV102", IFNAME = "托盘请求入库接口", UUID = WmsController.GenerateTaskNo(), MSGID = "", SEND_DT = DateTime.Now.ToString("yyyyMMddHHmmss"), }; data.IS_BC_INFO = iS_BC_INFO; data.IT_DATA = (List)obj; var msg = ""; WMSTrayRequestResponse requestResponse = null; try { var request = JsonConvert.SerializeObject(data); LogHelper.Info("托盘请求入库接口", "WMS"); var response = apiHelper.Post(baseUrl + "/JIP/WMS/WMS_JK_AGV_TRACEID_REQUEST", request); msg = $"[WMS-TrayRequestInStock] request={request} response={response}"; LogHelper.Info(msg, "WMS"); if (response != "") { var dataResult = JsonConvert.DeserializeObject(response); if (dataResult.ES_BC_INFO.TYPE == "S") { requestResponse = dataResult; } } else { msg = "[WMS-TrayRequestInStock]托盘请求入库接口失败"; LogHelper.Info(msg, "WMS"); } } catch (Exception ex) { msg = "[WMS-TrayRequestInStock]托盘请求入库接口返回错误,错误原因:" + ex.Message; LogHelper.Info(msg, "WMS"); } return requestResponse; } /// /// 发货托盘回传WMS系统接口 /// /// /// public static bool ShipmentsTrayFeedback(object obj) { ShipmentsTrayFeedbackData data = new ShipmentsTrayFeedbackData(); IS_BC_INFO iS_BC_INFO = new IS_BC_INFO() { CUSTOMERID = Settings.orgInfo.customerId, IFID = "CF_AGV103", IFNAME = "发货托盘回传WMS系统接口", UUID = WmsController.GenerateTaskNo(), MSGID = "", SEND_DT = DateTime.Now.ToString("yyyyMMddHHmmss"), }; data.IS_BC_INFO = iS_BC_INFO; data.IT_DATA = (List)obj; var msg = ""; bool result = false; var request = JsonConvert.SerializeObject(data); var response = apiHelper.Post(baseUrl + "/JIP/WMS/WMS_JK_AGV_TRACEID_SO", request); msg = $"[WMS-ShipmentsTrayFeedback] request={request} response={response}"; LogHelper.Info(msg, "WMS"); if (response != "") { try { var dataResult = JsonConvert.DeserializeObject(response); if (dataResult.ES_BC_INFO.TYPE == "S") { result = true; } } catch (Exception ex) { msg = "[WMS-ShipmentsTrayFeedback]发货托盘回传WMS系统接口返回数据解析错误,错误原因:" + ex.Message; LogHelper.Info(msg, "WMS"); } } else { msg = "[WMS-ShipmentsTrayFeedback]发货托盘回传WMS系统接口失败"; LogHelper.Info(msg, "WMS"); } return result; } /// /// 移库单移库反馈接口 /// /// /// public static bool ShiftingStockOrderFeedback(object obj) { ShiftingStockOrderFeedbackData data = new ShiftingStockOrderFeedbackData(); IS_BC_INFO iS_BC_INFO = new IS_BC_INFO() { CUSTOMERID = Settings.orgInfo.customerId, IFID = "CF_AGV104", IFNAME = "移库单移库反馈接口", UUID = WmsController.GenerateTaskNo(), MSGID = "", SEND_DT = DateTime.Now.ToString("yyyyMMddHHmmss"), }; data.IS_BC_INFO = iS_BC_INFO; data.IT_DATA = (List)obj; var msg = ""; bool result = false; var request = JsonConvert.SerializeObject(data); var response = apiHelper.Post(baseUrl + "/JIP/WMS/WMS_JK_AGV_TRACEID_MD", request); msg = $"[WMS-ShiftingStockOrderFeedback] request={request} response={response}"; LogHelper.Info(msg, "WMS"); if (response != "") { try { var dataResult = JsonConvert.DeserializeObject(response); if (dataResult.ES_BC_INFO.TYPE == "S") { result = true; } } catch (Exception ex) { msg = "[WMS-ShiftingStockOrderFeedback]移库单移库反馈接口返回数据解析错误,错误原因:" + ex.Message; LogHelper.Info(msg, "WMS"); } } else { msg = "[WMS-ShiftingStockOrderFeedback]移库单移库反馈接口失败"; LogHelper.Info(msg, "WMS"); } return result; } public class ShiftingStockOrderFeedbackData { public IS_BC_INFO IS_BC_INFO { get; set; } public List IT_DATA { get; set; } public class FeedbackData { public string organizationId { get; set; } // 组织编号 public string warehouseId { get; set; } // 仓库编号 public string customerId { get; set; } // 工厂ID public string mdocNo { get; set; } // 发运订单 public string mdocType { get; set; } // 移库类型 AGV WMS public string traceId { get; set; } // 托盘号 public string toLocation { get; set; } // 集货位 public string udf01 { get; set; } public string udf02 { get; set; } public string udf03 { get; set; } public string udf04 { get; set; } public string udf05 { get; set; } } } public class ShipmentsTrayFeedbackData { public IS_BC_INFO IS_BC_INFO { get; set; } public List IT_DATA { get; set; } public class FeedbackData { public string organizationId { get; set; } // 组织编号 public string warehouseId { get; set; } // 仓库编号 public string customerId { get; set; } // 工厂ID public string orderNo { get; set; } // 发运订单 public string sku { get; set; } // 物料号 public string qty { get; set; } // 数量 public string weighQty { get; set; } // 称重数量 public string traceId { get; set; } // 托盘号 public string serialNo { get; set; } // 箱号 public string toLocationId { get; set; } // 集货位 public string completedFlag { get; set; } // 订单收货完成标记 N未收货完成 Y已收货完成 public string udf01 { get; set; } public string udf02 { get; set; } public string udf03 { get; set; } public string udf04 { get; set; } public string udf05 { get; set; } public FeedbackData ShallowCopy() { return (FeedbackData)this.MemberwiseClone(); } } } public class WMSTrayRequestResponse { public ES_BC_INFO ES_BC_INFO; public List IT_DATA; } public class TrayRequestInStockData { public IS_BC_INFO IS_BC_INFO { get; set; } public List IT_DATA { get; set; } public class RequestData { public string organizationId { get; set; } // 组织编号 public string warehouseId { get; set; } // 仓库编号 public string customerId { get; set; } // 工厂ID public string traceId { get; set; } // 托盘号 public string udf01 { get; set; } public string udf02 { get; set; } public string udf03 { get; set; } public string udf04 { get; set; } public string udf05 { get; set; } } } public class WMSResponse { public ES_BC_INFO ES_BC_INFO; } public class ReceiveGoodsFeedbackData { public IS_BC_INFO IS_BC_INFO { get; set; } public List IT_DATA { get; set; } public class FeedbackData { public string organizationId { get; set; } // 组织编号 public string warehouseId { get; set; } // 仓库编号 public string customerId { get; set; } // 工厂ID public string ASNNo { get; set; } // 预期到货通知单 public string sku { get; set; } // 物料号 public string qty { get; set; } // 数量 public string weighQty { get; set; } // 称重数量 public string traceId { get; set; } // 托盘号 public string serialNo { get; set; } // 箱号 public string locationId { get; set; } // 收货库位 public string completedFlag { get; set; } // 订单收货完成标记 N未收货完成 Y已收货完成 public string udf01 { get; set; } public string udf02 { get; set; } public string udf03 { get; set; } public string udf04 { get; set; } public string udf05 { get; set; } } } } }