using Newtonsoft.Json;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Net.Http;
|
using System.Text;
|
using System.Threading.Tasks;
|
using System.Web.Http;
|
using System.Xml.Linq;
|
using System.Xml;
|
using static HH.WCS.Mobox3.pinggao.models.SapRoot;
|
using HH.WCS.Mobox3.pinggao;
|
using Newtonsoft.Json.Linq;
|
using static HH.WCS.Mobox3.pinggao.api.ApiModel;
|
using System.Reflection;
|
using HH.WCS.Mobox3.pinggao.api;
|
using static HH.WCS.Mobox3.pinggao.api.OtherModel;
|
using static HH.WCS.Mobox3.pinggao.api.ApibackModel;
|
using HH.WCS.Mobox3.pinggao.models;
|
|
namespace HH.WCS.Mobox3.pinggao.api
|
{
|
public class WmsSapController : System.Web.Http.ApiController
|
{
|
/// <summary>
|
/// 供应商接收接口获取
|
/// </summary>
|
/// <param name="xmlData"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public GYSReturnRoot.Root GYSReceiveXmlData([FromBody] GYSDto.Root xmlData)
|
{
|
#region xml数据接收转数组
|
|
LogHelper.Info("供应商接收接口:" + JsonConvert.SerializeObject(xmlData));
|
|
////接收xml数据
|
//XmlDocument xmlDoc = new XmlDocument();
|
//xmlDoc.LoadXml(xmlData.ToString());
|
|
//// 将 XmlDocument 转换为 JSON 字符串
|
//JObject jsonObject = JsonConvert.DeserializeObject<JObject>(JsonConvert.SerializeXmlNode(xmlDoc));
|
|
//// 处理特定字段,强制转换为数组
|
//WmsSpaHelper.EnsureArrayFormats(jsonObject, "ITEM");
|
//// 反序列化为RootWithArray
|
//var data = JsonConvert.DeserializeObject<OrderDto.Root>(jsonObject.ToString());
|
#endregion
|
|
#region 外采入库业务流程
|
GYSReturnRoot.Root simpleResult = WmsSpaHelper.GYS_In(xmlData);
|
//接收返回参数 生成sap对接文档返回格式
|
//var json = WmsSpaHelper.GetJsonResult(simpleResult.WLPZBH, simpleResult.resultCode.ToString(), simpleResult.resultMsg);
|
|
#endregion
|
#region 返回xml
|
//string xml = JsonConvert.DeserializeXmlNode(json, "root").OuterXml;
|
////返回json
|
//var response = new HttpResponseMessage()
|
//{
|
// Content = new StringContent(xml, Encoding.UTF8, "application/xml")
|
//};
|
//return response;
|
return simpleResult;
|
#endregion
|
}
|
|
|
/// <summary>
|
/// 生产订单信息获取
|
/// </summary>
|
/// <param name="xmlData"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public Orderback.Root OrderReceiveXmlData([FromBody] OrderDto.Root xmlData)
|
{
|
#region xml数据接收转数组
|
|
LogHelper.Info("生产订单接收接口:" + JsonConvert.SerializeObject(xmlData));
|
|
////接收xml数据
|
//XmlDocument xmlDoc = new XmlDocument();
|
//xmlDoc.LoadXml(xmlData.ToString());
|
|
//// 将 XmlDocument 转换为 JSON 字符串
|
//JObject jsonObject = JsonConvert.DeserializeObject<JObject>(JsonConvert.SerializeXmlNode(xmlDoc));
|
|
//// 处理特定字段,强制转换为数组
|
//WmsSpaHelper.EnsureArrayFormats(jsonObject, "ITEM");
|
//// 反序列化为RootWithArray
|
//var data = JsonConvert.DeserializeObject<OrderDto.Root>(jsonObject.ToString());
|
#endregion
|
|
#region 外采入库业务流程
|
Orderback.Root simpleResult = WmsSpaHelper.Mater_In(xmlData);
|
//接收返回参数 生成sap对接文档返回格式
|
//var json = WmsSpaHelper.GetJsonResult(simpleResult.WLPZBH, simpleResult.resultCode.ToString(), simpleResult.resultMsg);
|
|
#endregion
|
#region 返回xml
|
//string xml = JsonConvert.DeserializeXmlNode(json, "root").OuterXml;
|
////返回json
|
//var response = new HttpResponseMessage()
|
//{
|
// Content = new StringContent(xml, Encoding.UTF8, "application/xml")
|
//};
|
//return response;
|
return simpleResult;
|
#endregion
|
}
|
/// <summary>
|
/// 主物料信息获取
|
/// </summary>
|
/// <param name="xmlData"></param>
|
/// <returns></returns>
|
|
[HttpPost]
|
public WLReturnRoot.Root MaterReceiveXmlData([FromBody] MaterDto.Root xmlData)
|
{
|
#region xml数据接收转数组
|
|
LogHelper.Info("物料接收接口:" + JsonConvert.SerializeObject(xmlData));
|
|
////接收xml数据
|
//XmlDocument xmlDoc = new XmlDocument();
|
//xmlDoc.LoadXml(xmlData.ToString());
|
|
//// 将 XmlDocument 转换为 JSON 字符串
|
//JObject jsonObject = JsonConvert.DeserializeObject<JObject>(JsonConvert.SerializeXmlNode(xmlDoc));
|
|
//// 处理特定字段,强制转换为数组
|
//WmsSpaHelper.EnsureArrayFormats(jsonObject, "ITEM");
|
//// 反序列化为RootWithArray
|
//var data = JsonConvert.DeserializeObject<MaterDto.Root>(jsonObject.ToString());
|
#endregion
|
|
#region 外采入库业务流程
|
WLReturnRoot.Root simpleResult = WmsSpaHelper.Mater_In(xmlData);
|
//接收返回参数 生成sap对接文档返回格式
|
//var json = WmsSpaHelper.GetJsonResult(simpleResult.WLPZBH, simpleResult.resultCode.ToString(), simpleResult.resultMsg);
|
|
//#endregion
|
//#region 返回xml
|
//string xml = JsonConvert.DeserializeXmlNode(json, "root").OuterXml;
|
////返回json
|
//var response = new HttpResponseMessage()
|
//{
|
// Content = new StringContent(xml, Encoding.UTF8, "application/xml")
|
//};
|
//return response;
|
|
var json = JsonConvert.SerializeObject(simpleResult);
|
return simpleResult;
|
#endregion
|
}
|
|
/// <summary>
|
/// 外采收货
|
/// </summary>
|
/// <param name="xmlData"></param>
|
/// <returns></returns>
|
|
[HttpPost]
|
public WcReturnRoot.Root WCReceiveXmlData([FromBody] SapRoot.Root xmlData)
|
{
|
#region xml数据接收转数组
|
LogHelper.Info("外采收货接口:" + JsonConvert.SerializeObject(xmlData));
|
//接收xml数据
|
//XmlDocument xmlDoc = new XmlDocument();
|
//xmlDoc.LoadXml(xmlData.ToString());
|
|
// 将 XmlDocument 转换为 JSON 字符串
|
//JObject jsonObject = JsonConvert.DeserializeObject<JObject>(JsonConvert.SerializeXmlNode(xmlDoc));
|
|
// 处理特定字段,强制转换为数组
|
//WmsSpaHelper.EnsureArrayFormat(jsonObject, "ITME", "ITEM1");
|
// 反序列化为RootWithArray
|
//var data = JsonConvert.DeserializeObject<Root>(jsonObject.ToString());
|
#endregion
|
|
#region 外采入库业务流程
|
List<SimpleResult> simpleResult = WmsSpaHelper.Inbound_Order_In(xmlData);
|
//接收返回参数 生成sap对接文档返回格式
|
List<WcReturnRoot.ITEM> wcReturnRoots = new List<WcReturnRoot.ITEM>();
|
foreach (var item in simpleResult)
|
{
|
WcReturnRoot.ITEM wcReturnRoot = new WcReturnRoot.ITEM();
|
wcReturnRoot.WLPZH = item.WLPZBH;
|
wcReturnRoot.WLPZND = item.WLPZND;
|
wcReturnRoot.MSGCODE = item.resultCode;
|
wcReturnRoot.MSGDESP = item.resultMsg;
|
wcReturnRoots.Add(wcReturnRoot);
|
}
|
//var json = WmsSpaHelper.GetJsonResult(simpleResult.WLPZBH, simpleResult.resultCode.ToString(), simpleResult.resultMsg);
|
// 完整嵌套实例化
|
var result = new WcReturnRoot.Root
|
{
|
ROOT = new WcReturnRoot.ROOT
|
{
|
ITEM = wcReturnRoots
|
}
|
};
|
#endregion
|
#region 返回xml
|
var json = JsonConvert.SerializeObject(result);
|
//string xml = JsonConvert.DeserializeXmlNode(json, "ROOT").OuterXml;
|
////返回json
|
//var response = new HttpResponseMessage()
|
//{
|
// Content = new StringContent(xml, Encoding.UTF8, "application/xml")
|
//};
|
return result;
|
#endregion
|
}
|
|
/// <summary>
|
/// 内采入库/出库
|
/// </summary>
|
/// <param name="xmlData"></param>
|
/// <returns></returns>
|
|
[HttpPost]
|
public WcReturnRoot.Root NCReceiveXmlData([FromBody] NcDto.Root xmlData)
|
{
|
#region xml数据接收转数组
|
|
|
//NcDto.ROOT rOOT = new NcDto.ROOT();
|
//rOOT.WLPZ = new NcDto.WLPZ();
|
LogHelper.Info("内采收货接口:" + JsonConvert.SerializeObject(xmlData));
|
|
////接收xmloo
|
//XmlDocument xmlDoc = new XmlDocument();
|
//xmlDoc.LoadXml(xmlData.ToString());
|
|
//// 将 XmlDocument 转换为 JSON 字符串
|
//JObject jsonObject = JsonConvert.DeserializeObject<JObject>(JsonConvert.SerializeXmlNode(xmlDoc));
|
|
//// 处理特定字段,强制转换为数组
|
//WmsSpaHelper.EnsureArrayFormat(jsonObject, "ITME", "ITEM1");
|
//// 反序列化为RootWithArray
|
//var data = JsonConvert.DeserializeObject<NcDto.Root>(jsonObject.ToString());
|
|
//// SimpleResult simpleResult = WmsSpaHelper.OtherOut_Order_Ins(data);
|
|
|
//#endregion
|
//#region 返回xml
|
//string xml = JsonConvert.DeserializeXmlNode(json, "ROOT").OuterXml;
|
////返回json
|
//var response = new HttpResponseMessage()
|
//{
|
// Content = new StringContent(xml, Encoding.UTF8, "application/xml")
|
//};
|
//return response;
|
|
#endregion
|
|
List<SimpleResult> simpleResult = WmsSpaHelper.NCInbound_Order_In(xmlData);
|
//接收返回参数 生成sap对接文档返回格式
|
List<WcReturnRoot.ITEM> wcReturnRoots = new List<WcReturnRoot.ITEM>();
|
foreach (var item in simpleResult)
|
{
|
WcReturnRoot.ITEM wcReturnRoot = new WcReturnRoot.ITEM();
|
wcReturnRoot.WLPZH = item.WLPZBH;
|
wcReturnRoot.WLPZND = item.WLPZND;
|
wcReturnRoot.MSGCODE = item.resultCode;
|
wcReturnRoot.MSGDESP = item.resultMsg;
|
wcReturnRoots.Add(wcReturnRoot);
|
}
|
//var json = WmsSpaHelper.GetJsonResult(simpleResult.WLPZBH, simpleResult.resultCode.ToString(), simpleResult.resultMsg);
|
// 完整嵌套实例化
|
var result = new WcReturnRoot.Root
|
{
|
ROOT = new WcReturnRoot.ROOT
|
{
|
ITEM = wcReturnRoots
|
}
|
};
|
#region 返回xml
|
var json = JsonConvert.SerializeObject(result);
|
return result;
|
#endregion
|
|
}
|
/// <summary>
|
/// 其他出入库[FromBody] XElement xmlData
|
/// </summary>
|
/// <param name="xmlData"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public OtherReturnRoot.Root OtherReceiveXmlData([FromBody] otherDto.Root xmlData)
|
{
|
#region xml数据接收转数组
|
LogHelper.Info("其他出入库sap接口:" + JsonConvert.SerializeObject(xmlData));
|
|
////接收xml数据
|
//XmlDocument xmlDoc = new XmlDocument();
|
//xmlDoc.LoadXml(xmlData.ToString());
|
|
//// 将 XmlDocument 转换为 JSON 字符串
|
//JObject jsonObject = JsonConvert.DeserializeObject<JObject>(JsonConvert.SerializeXmlNode(xmlDoc));
|
|
//// 处理特定字段,强制转换为数组
|
//WmsSpaHelper.EnsureArrayFormat(jsonObject, "ITEM", "ITEM1");
|
//// 反序列化为RootWithArray
|
//var data = JsonConvert.DeserializeObject<otherDto.Root>(jsonObject.ToString());
|
#endregion
|
#region 其他出入库业务流程
|
List<SimpleResult> simpleResult = WmsSpaHelper.Otherbound_Order_In(xmlData);
|
//接收返回参数 生成sap对接文档返回格式
|
//var json = WmsSpaHelper.GetJsonResult(simpleResult.WLPZBH, simpleResult.resultCode.ToString(), simpleResult.resultMsg);
|
|
#endregion
|
#region 返回xml
|
//string xml = JsonConvert.DeserializeXmlNode(json, "ROOT").OuterXml;
|
////返回json
|
//var response = new HttpResponseMessage()
|
//{
|
// Content = new StringContent(xml, Encoding.UTF8, "application/xml")
|
//};
|
//return response;
|
#endregion
|
List<OtherReturnRoot.ITEM> wcReturnRoots = new List<OtherReturnRoot.ITEM>();
|
foreach (var item in simpleResult)
|
{
|
OtherReturnRoot.ITEM wcReturnRoot = new OtherReturnRoot.ITEM();
|
wcReturnRoot.WLPZBH = item.WLPZBH;
|
wcReturnRoot.WLPZND = item.WLPZND;
|
wcReturnRoot.MSGCODE = item.resultCode;
|
wcReturnRoot.MSGDESP = item.resultMsg;
|
wcReturnRoots.Add(wcReturnRoot);
|
}
|
//var json = WmsSpaHelper.GetJsonResult(simpleResult.WLPZBH, simpleResult.resultCode.ToString(), simpleResult.resultMsg);
|
// 完整嵌套实例化
|
var result = new OtherReturnRoot.Root
|
{
|
ROOT = new OtherReturnRoot.ROOT
|
{
|
ITEM = wcReturnRoots
|
}
|
};
|
return result;
|
// 处理XML数据
|
// ...
|
}
|
|
|
|
|
/// <summary>
|
/// 码盘入库
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public SimpleResult InboundOrderSorting(MPSorting model)
|
{
|
return WmsSpaHelper.InboundOrderSorting(model);
|
}
|
|
/// <summary>
|
/// pda分拣
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public Task<SimpleResult> OutboundOrderSorting(FJSorting model)
|
{
|
return WmsSpaHelper.OutboundOrderSorting(model);
|
}
|
|
/// <summary>
|
/// 空托出入库
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public Task<SimpleResult> InOutKT(KtSorting model)
|
{
|
return WmsSpaHelper.KtSorting(model);
|
}
|
|
|
/// <summary>
|
/// 生产订单领料单(出库单)
|
/// </summary>
|
/// <param name="xmlData"></param>
|
/// <returns></returns>
|
|
//[HttpPost]
|
//public HttpResponseMessage ReceiveXmlCKData([FromBody] XElement xmlData)
|
//{
|
// #region xml数据接收转数组
|
// ROOT rOOT = new ROOT();
|
// rOOT.WLPZ = new WLPZ();
|
// LogHelper.Info("外采收货接口:" + xmlData.ToString());
|
|
// //接收xml数据
|
// XmlDocument xmlDoc = new XmlDocument();
|
// xmlDoc.LoadXml(xmlData.ToString());
|
|
// // 将 XmlDocument 转换为 JSON 字符串
|
// JObject jsonObject = JsonConvert.DeserializeObject<JObject>(JsonConvert.SerializeXmlNode(xmlDoc));
|
|
// // 处理特定字段,强制转换为数组
|
|
// //WmsSpaHelper.EnsureArrayFormat(jsonObject, "ITME");
|
// WmsSpaHelper.EnsureArrayFormat(jsonObject["ROOT"]["SCDDLL"] as JObject, "ITEM");
|
// // 反序列化为RootWithArray
|
// var data = JsonConvert.DeserializeObject<CKDdto.Root>(jsonObject.ToString());
|
// #endregion
|
|
// #region 出库业务流程
|
// var json = WmsSpaHelper.Out_Order_In(data);
|
// //接收返回参数 生成sap对接文档返回格式
|
// //var json = WmsSpaHelper.GetJsonResult(simpleResult.WLPZBH, simpleResult.resultCode.ToString(), simpleResult.resultMsg);
|
|
// #endregion
|
// #region 返回xml
|
// string xml = JsonConvert.DeserializeXmlNode(json, "root").OuterXml;
|
// //返回json
|
// var response = new HttpResponseMessage()
|
// {
|
// Content = new StringContent(xml, Encoding.UTF8, "application/xml")
|
// };
|
// return response;
|
// #endregion
|
//}
|
|
|
|
/// <summary>
|
/// 生产订单领料单(生成领料单)
|
/// </summary>
|
/// <param name="xmlData"></param>
|
/// <returns></returns>
|
|
[HttpPost]
|
public LLDReturnRoot.Root LLDReceiveXmlData([FromBody] CKDdto.Root xmlData)
|
{
|
#region xml数据接收转数组
|
LogHelper.Info("生产订单领料单(生成领料单)接口:" + JsonConvert.SerializeObject(xmlData));
|
|
////接收xml数据
|
//XmlDocument xmlDoc = new XmlDocument();
|
//xmlDoc.LoadXml(xmlData.ToString());
|
|
//// 将 XmlDocument 转换为 JSON 字符串
|
//JObject jsonObject = JsonConvert.DeserializeObject<JObject>(JsonConvert.SerializeXmlNode(xmlDoc));
|
|
//// 处理特定字段,强制转换为数组
|
|
////WmsSpaHelper.EnsureArrayFormat(jsonObject, "ITME");
|
//WmsSpaHelper.EnsureArrayFormat(jsonObject["ROOT"]["SCDDLL"] as JObject, "ITEM");
|
//// 反序列化为RootWithArray
|
//var data = JsonConvert.DeserializeObject<CKDdto.Root>(jsonObject.ToString());
|
#endregion
|
|
#region 出库业务流程
|
LLDReturnRoot.Root json = WmsSpaHelper.Out_Order_Ins(xmlData);
|
//接收返回参数 生成sap对接文档返回格式
|
//var json = WmsSpaHelper.GetJsonResult(simpleResult.WLPZBH, simpleResult.resultCode.ToString(), simpleResult.resultMsg);
|
//接收返回参数 生成sap对接文档返回格式
|
List<WcReturnRoot.ITEM> wcReturnRoots = new List<WcReturnRoot.ITEM>();
|
|
return json;
|
#endregion
|
//#region 返回xml
|
//string xml = JsonConvert.DeserializeXmlNode(json, "root").OuterXml;
|
////返回json
|
//var response = new HttpResponseMessage()
|
//{
|
// Content = new StringContent(xml, Encoding.UTF8, "application/xml")
|
//};
|
//return response;
|
//#endregion
|
}
|
|
/// <summary>
|
/// 领料单生成出库单
|
/// </summary>
|
/// <param name="xmlData"></param>
|
/// <returns></returns>
|
|
[HttpPost]
|
public WeiLiResult GetLLDReceiveXmlData(LLDDto dto)
|
{
|
|
|
var json = WmsSpaHelper.Out_Order_Inss(dto.S_NO);
|
|
|
return json;
|
}
|
#region wms-sap接口
|
|
|
/// <summary>
|
/// 外采入库/内采入库/计划外退料入库审核接口
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public async Task<SimpleResult> WcInboundOrderAccieve(WcRkDto model)
|
{
|
return await WmsSpaHelper.NcRkBacking(model);
|
}
|
|
|
///// <summary>
|
///// 内采收货入库接口
|
///// </summary>
|
///// <param name="model"></param>
|
///// <returns></returns>
|
//[HttpPost]
|
//public async Task<SimpleResult> NcInboundOrderAccieve(WcRkDto model)
|
//{
|
// return await WmsSpaHelper.NcRkBacking(model);
|
//}
|
#endregion
|
|
|
/// <summary>
|
/// 测试接口
|
/// </summary>
|
/// <param name="xmlData"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public HttpResponseMessage cesReceiveXmlData([FromBody] XElement xmlData)
|
{
|
string xmlDatas = "{\r\n \"ROOT\": {\r\n \"ITEM\": {\r\n \"KEY\": \"唯一标识\",\r\n \"WLPZBH\": \"物料凭证号\",\r\n " +
|
" \"WLPZND\": \"物料凭年度\",\r\n \"MSGCODE\": \"1\",\r\n \"MSGDESP\": \"失败原因或者成功信息字符长度255\"\r\n }\r\n }\r\n}";
|
var data = JsonConvert.DeserializeObject<ReturnWcBcak.Root>(xmlDatas);
|
|
string xml = JsonConvert.DeserializeXmlNode(xmlDatas, "").OuterXml;
|
//返回json
|
var response = new HttpResponseMessage()
|
{
|
Content = new StringContent(xml, Encoding.UTF8, "application/xml")
|
};
|
return response;
|
|
}
|
}
|
|
|
}
|