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; }
}
}
}
}