|
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
|
{
|
/// <summary>
|
/// 第三方调用的接口
|
/// </summary>
|
[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')}";
|
}
|
|
/// <summary>
|
/// 入库单同步接口
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[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;
|
}
|
|
/// <summary>
|
/// 出库单同步接口
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[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;
|
}
|
|
/// <summary>
|
/// 转移单同步接口
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[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;
|
}
|
|
/// <summary>
|
/// 移库单同步接口
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[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;
|
}
|
|
/// <summary>
|
/// 冻结单同步接口
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[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<FreezeOrder> 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<FreezeOrderDetail> 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<ShiftingStockOrder> 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<ShiftingStockOrderDetail> 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<TransferOrder> 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<TransferOrderDetail> 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<OutBoundOrder> 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<OutBoundOrderDetail> 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<PutawayOrderIn> 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<PutawayOrderDetail> 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; }
|
}
|
}
|
}
|
}
|