using HH.WCS.Mobox3.SXJK.wms;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Web.Http;
using static HH.WCS.Mobox3.SXJK.api.ApiHelper;
using static HH.WCS.Mobox3.SXJK.api.ApiModel;
using static HH.WCS.Mobox3.SXJK.api.OtherModel;
using static HH.WCS.Mobox3.SXJK.api.WmsController.OutBoundOrder;
using static HH.WCS.Mobox3.SXJK.api.WmsController.ShiftingStockOrder;
using static HH.WCS.Mobox3.SXJK.api.WmsController.TransferOrder;
using static Topshelf.Runtime.Windows.NativeMethods;
namespace HH.WCS.Mobox3.SXJK.api
{
///
/// 第三方调用的接口
///
[RoutePrefix("api")]
public class WmsController : System.Web.Http.ApiController
{
internal static string GenerateTaskNo()
{
var id = SYSHelper.GetSerialNumber("通讯ID", "UUID");
var date = DateTime.Now.ToString("yyMMdd");
return $"UUID{date}{id.ToString().PadLeft(4, '0')}";
}
///
/// 入库单同步接口
///
///
///
[HttpPost]
[Route("inStockListSync")]
public ResponseData inStockListSync(PutawayOrderData model) {
LogHelper.Info("inStockListSync Request:" + JsonConvert.SerializeObject(model), "WMS");
ResponseData responseData = new ResponseData();
ES_BC_INFO es_bc_info = new ES_BC_INFO()
{
UUID = model.IS_BC_INFO.UUID,
MSGID = model.IS_BC_INFO.MSGID,
IFID = model.IS_BC_INFO.IFID,
IFNAME = model.IS_BC_INFO.IFNAME,
SENDER = model.IS_BC_INFO.RECEIVER,
RECEIVER = model.IS_BC_INFO.SENDER,
SEND_DT = DateTime.Now.ToString("yyyyMMddHHmmss"),
};
try
{
model.IT_DATA.ForEach(a =>
{
var result = ApiHelper.putawayOrderSync(a);
if (!result) {
es_bc_info.TYPE = "E";
es_bc_info.MSG = "入库单同步错误";
}
});
}
catch (Exception ex) {
LogHelper.Info("inStockListSync 接口错误:" + ex.Message, "WMS");
Console.WriteLine("入库单同步接口错误,错误信息:" + ex.Message);
es_bc_info.TYPE = "E";
es_bc_info.MSG = "入库单同步错误";
}
responseData.ES_BC_INFO = es_bc_info;
LogHelper.Info("inStockListSync response:" + JsonConvert.SerializeObject(responseData), "WMS");
return responseData;
}
///
/// 出库单同步接口
///
///
///
[HttpPost]
[Route("outStockListSync")]
public ResponseData outStockListSync(OutboundOrderData model) {
LogHelper.Info("outStockListSync Request:" + JsonConvert.SerializeObject(model), "WMS");
ResponseData responseData = new ResponseData();
ES_BC_INFO es_bc_info = new ES_BC_INFO()
{
UUID = model.IS_BC_INFO.UUID,
MSGID = model.IS_BC_INFO.MSGID,
IFID = model.IS_BC_INFO.IFID,
IFNAME = model.IS_BC_INFO.IFNAME,
SENDER = model.IS_BC_INFO.RECEIVER,
RECEIVER = model.IS_BC_INFO.SENDER,
SEND_DT = DateTime.Now.ToString("yyyyMMddHHmmss"),
};
try
{
model.IT_DATA.ForEach(a =>
{
var result = ApiHelper.outboundOrderSync(a);
if (!result)
{
es_bc_info.TYPE = "E";
es_bc_info.MSG = "入库单同步错误";
}
});
}
catch (Exception ex)
{
Console.WriteLine("出库单同步接口错误,错误信息:" + ex.Message);
es_bc_info.TYPE = "E";
es_bc_info.MSG = "出库单同步错误";
}
responseData.ES_BC_INFO = es_bc_info;
LogHelper.Info("outStockListSync response:" + JsonConvert.SerializeObject(responseData), "WMS");
return responseData;
}
///
/// 转移单同步接口
///
///
///
[HttpPost]
[Route("transferListSync")]
public ResponseData transferListSync(TransferOrderData model)
{
LogHelper.Info("transferListSync Request:" + JsonConvert.SerializeObject(model), "WMS");
ResponseData responseData = new ResponseData();
ES_BC_INFO es_bc_info = new ES_BC_INFO()
{
UUID = model.IS_BC_INFO.UUID,
MSGID = model.IS_BC_INFO.MSGID,
IFID = model.IS_BC_INFO.IFID,
IFNAME = model.IS_BC_INFO.IFNAME,
SENDER = model.IS_BC_INFO.RECEIVER,
RECEIVER = model.IS_BC_INFO.SENDER,
SEND_DT = DateTime.Now.ToString("yyyyMMddHHmmss"),
};
try
{
model.IT_DATA.ForEach(a =>
{
var result = ApiHelper.transferOrderSync(a);
if (!result)
{
es_bc_info.TYPE = "E";
es_bc_info.MSG = "转移单同步错误";
}
});
}
catch (Exception ex)
{
Console.WriteLine("转移单同步接口错误,错误信息:" + ex.Message);
es_bc_info.TYPE = "E";
es_bc_info.MSG = "转移单同步错误";
}
responseData.ES_BC_INFO = es_bc_info;
LogHelper.Info("transferListSync response:" + JsonConvert.SerializeObject(responseData), "WMS");
return responseData;
}
///
/// 移库单同步接口
///
///
///
[HttpPost]
[Route("shiftingStockListSync")]
public ResponseData shiftingStockListSync(ShiftingStockOrderData model)
{
LogHelper.Info("shiftingStockListSync Request:" + JsonConvert.SerializeObject(model), "WMS");
ResponseData responseData = new ResponseData();
ES_BC_INFO es_bc_info = new ES_BC_INFO()
{
UUID = model.IS_BC_INFO.UUID,
MSGID = model.IS_BC_INFO.MSGID,
IFID = model.IS_BC_INFO.IFID,
IFNAME = model.IS_BC_INFO.IFNAME,
SENDER = model.IS_BC_INFO.RECEIVER,
RECEIVER = model.IS_BC_INFO.SENDER,
SEND_DT = DateTime.Now.ToString("yyyyMMddHHmmss"),
};
try
{
model.IT_DATA.ForEach( a =>
{
var result = ApiHelper.shiftingStockOrderSync(a);
if (!result) {
es_bc_info.TYPE = "E";
es_bc_info.MSG = "移库单同步错误";
}
});
}
catch (Exception ex)
{
Console.WriteLine("移库单同步接口错误,错误信息:" + ex.Message);
es_bc_info.TYPE = "E";
es_bc_info.MSG = "移库单同步错误";
}
responseData.ES_BC_INFO = es_bc_info;
LogHelper.Info("shiftingStockListSync response:" + JsonConvert.SerializeObject(responseData), "WMS");
return responseData;
}
///
/// 冻结单同步接口
///
///
///
[HttpPost]
[Route("freezeListSync")]
public ResponseData freezeListSync(FreezeOrderData model)
{
LogHelper.Info("freezeListSync Request:" + JsonConvert.SerializeObject(model), "WMS");
ResponseData responseData = new ResponseData();
ES_BC_INFO es_bc_info = new ES_BC_INFO()
{
UUID = model.IS_BC_INFO.UUID,
MSGID = model.IS_BC_INFO.MSGID,
IFID = model.IS_BC_INFO.IFID,
IFNAME = model.IS_BC_INFO.IFNAME,
SENDER = model.IS_BC_INFO.RECEIVER,
RECEIVER = model.IS_BC_INFO.SENDER,
SEND_DT = DateTime.Now.ToString("yyyyMMddHHmmss"),
};
try
{
model.IT_DATA.ForEach(a =>
{
var result = ApiHelper.freezeOrderSync(a);
if (!result)
{
es_bc_info.TYPE = "E";
es_bc_info.MSG = "冻结单同步错误";
}
});
}
catch (Exception ex)
{
Console.WriteLine("冻结单同步接口错误,错误信息:" + ex.Message);
es_bc_info.TYPE = "E";
es_bc_info.MSG = "冻结单同步错误";
}
responseData.ES_BC_INFO = es_bc_info;
LogHelper.Info("freezeListSync response:" + JsonConvert.SerializeObject(responseData), "WMS");
return responseData;
}
public class ResponseData {
public ES_BC_INFO ES_BC_INFO { get; set; }
}
public class ES_BC_INFO
{
public string IFID { get; set; } = "WESWMS_ORDER_001"; // 接口ID
public string UUID { get; set; } // UUID每次通讯要求唯一
public string MSGID { get; set; } // 业务ID
public string RESEND_ID { get; set; } = "001"; // 重复次数
public string BUSTYP { get; set; } = "创建"; // 状态
public string IFNAME { get; set; } = "WES成品收货信息传递到WMS"; // 接口描述
public string SEND_DT { get; set; } // 响应日期
public string SENDER { get; set; } = "WES"; // 发送人系统
public string RECEIVER { get; set; } = "WMS"; // 接收人系统
public string TYPE { get; set; } = "S"; // 业务成功标记 E失败 S成功
public string MSG { get; set; } = "Success"; // 异常描述
}
public class FreezeOrderData
{
public IS_BC_INFO IS_BC_INFO { get; set; }
public List IT_DATA { get; set; }
}
public class FreezeOrder {
public string organizationId { get; set; }
public string warehouseId { get; set; }
public string customerId { get; set; }
public string holdNo { get; set; }
public string status { 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 List Details { get; set; }
public class FreezeOrderDetail {
public string holdNo { get; set; }
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 ShiftingStockOrderData {
public IS_BC_INFO IS_BC_INFO { get; set; }
public List IT_DATA { get; set; }
}
public class ShiftingStockOrder {
public string organizationId { get; set; }
public string warehouseId { get; set; }
public string customerId { get; set; }
public string mdocNo { get; set; }
public string mdocType { get; set; }
public string status { 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 List Details { get; set; }
public class ShiftingStockOrderDetail {
public string mdocNo { get; set; }
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 TransferOrderData {
public IS_BC_INFO IS_BC_INFO { get; set; }
public List IT_DATA { get; set; }
}
public class TransferOrder {
public string organizationId { get; set; }
public string warehouseId { get; set; }
public string customerId { get; set; }
public string tdocNo { get; set; }
public string tdocType { get; set; }
public string status { 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 List Details { get; set; }
public class TransferOrderDetail {
public string tdocNo { get; set; }
public string traceId { get; set; }
public string serialNo { get; set; }
public string tolotAtt01 { get; set; }
public string tolotAtt02 { get; set; }
public string tolotAtt03 { get; set; }
public string tolotAtt04 { get; set; }
public string tolotAtt05 { get; set; }
public string tolotAtt06 { get; set; }
public string tolotAtt07 { get; set; }
public string tolotAtt08 { get; set; }
public string tolotAtt09 { get; set; }
public string tolotAtt10 { get; set; }
public string tolotAtt11 { get; set; }
public string tolotAtt12 { get; set; }
public string tolotAtt13 { get; set; }
public string tolotAtt14 { get; set; }
public string tolotAtt15 { get; set; }
public string tolotAtt16 { get; set; }
public string tolotAtt17 { get; set; }
public string tolotAtt18 { get; set; }
public string tolotAtt19 { get; set; }
public string tolotAtt20 { get; set; }
public string tolotAtt21 { get; set; }
public string tolotAtt22 { get; set; }
public string tolotAtt23 { get; set; }
public string tolotAtt24 { 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 OutboundOrderData
{
public IS_BC_INFO IS_BC_INFO { get; set; }
public List IT_DATA { get; set; }
}
public class OutBoundOrder {
public string organizationId { get; set; }
public string warehouseId { get; set; }
public string customerId { get; set; }
public string orderNo { get; set; }
public string orderType { get; set; }
public string soStatus { get; set; }
public string soReference1 { 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 List Details { get; set; }
public class OutBoundOrderDetail
{
public string orderNo { get; set; }
public string sku { get; set; }
public string seqNo { get; set; }
public string qty { get; set; }
public string lotAtt01 { get; set; }
public string lotAtt02 { get; set; }
public string lotAtt03 { get; set; }
public string lotAtt04 { get; set; }
public string lotAtt05 { get; set; }
public string lotAtt06 { get; set; }
public string lotAtt07 { get; set; }
public string lotAtt08 { get; set; }
public string lotAtt09 { get; set; }
public string lotAtt10 { get; set; }
public string lotAtt11 { get; set; }
public string lotAtt12 { get; set; }
public string lotAtt13 { get; set; }
public string lotAtt14 { get; set; }
public string lotAtt15 { get; set; }
public string lotAtt16 { get; set; }
public string lotAtt17 { get; set; }
public string lotAtt18 { get; set; }
public string lotAtt19 { get; set; }
public string lotAtt20 { get; set; }
public string lotAtt21 { get; set; }
public string lotAtt22 { get; set; }
public string lotAtt23 { get; set; }
public string lotAtt24 { 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 PutawayOrderData {
public IS_BC_INFO IS_BC_INFO { get; set; }
public List IT_DATA { get; set; }
}
public class IS_BC_INFO
{
public string CUSTOMERID { get; set; }
public string BUSTYP { get; set; } = "回传";
public string IFID { get; set; }
public string IFNAME { get; set; }
public string MSGID { get; set; }
public string RECEIVER { get; set; } = "MES";
public string RESEND_ID { get; set; } = "001";
public string SENDER { get; set; } = "WMS";
public string SEND_DT { get; set; }
public string UUID { get; set; }
}
public class PutawayOrderIn {
public string organizationId { get; set; }
public string warehouseId { get; set; }
public string customerId { get; set; }
public string ASNNo { get; set; }
public string ASNType { get; set; }
public string asnStatus { get; set; }
public string asnReference1 { 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 List Details { get; set; }
public class PutawayOrderDetail {
public string WERKS { get; set; }
public string ASNNo { get; set; }
public string sku { get; set; }
public string skuDescr { get; set; }
public string qty { get; set; }
public string traceId { get; set; }
public string serialNo { get; set; }
public string containerWeight { get; set; }
public string lotAtt01 { get; set; }
public string lotAtt02 { get; set; }
public string lotAtt03 { get; set; }
public string lotAtt04 { get; set; }
public string lotAtt05 { get; set; }
public string lotAtt06 { get; set; }
public string lotAtt07 { get; set; }
public string lotAtt08 { get; set; }
public string lotAtt09 { get; set; }
public string lotAtt10 { get; set; }
public string lotAtt11 { get; set; }
public string lotAtt12 { get; set; }
public string lotAtt13 { get; set; }
public string lotAtt14 { get; set; }
public string lotAtt15 { get; set; }
public string lotAtt16 { get; set; }
public string lotAtt17 { get; set; }
public string lotAtt18 { get; set; }
public string lotAtt19 { get; set; }
public string lotAtt20 { get; set; }
public string lotAtt21 { get; set; }
public string lotAtt22 { get; set; }
public string lotAtt23 { get; set; }
public string lotAtt24 { 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; }
}
}
}
}