using Newtonsoft.Json;
|
using Newtonsoft.Json.Serialization;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using WIDESEA_Common.APIEnum;
|
using WIDESEA_Core.Helper;
|
using WIDESEA_External.Model;
|
using WIDESEA_IBasicRepository;
|
using WIDESEA_Model.Models;
|
|
namespace WIDESEA_External.ERPService
|
{
|
/// <summary>
|
/// 调用ERP接口
|
/// </summary>
|
public class InvokeERPService : IInvokeERPService
|
{
|
private readonly IApiInfoRepository _apiInfoRepository;
|
public InvokeERPService(IApiInfoRepository apiInfoRepository)
|
{
|
_apiInfoRepository = apiInfoRepository;
|
}
|
// 创建一个使用小驼峰命名法的序列化设置
|
JsonSerializerSettings settings = new JsonSerializerSettings
|
{
|
ContractResolver = new CamelCasePropertyNamesContractResolver()
|
};
|
/// <summary>
|
/// ERP收货单接口调用
|
/// </summary>
|
/// <param name="receiveModel"></param>
|
/// <returns></returns>
|
public string InvokeMatReceiveApi(ERPReceiveModel receiveModel)
|
{
|
Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
|
ERPBaseModel<ERPReceiveModel> model = new ERPBaseModel<ERPReceiveModel>()
|
{
|
Data = receiveModel,
|
Desc = "WMS收货单推送",
|
Type = "toTCWMSReceive",
|
SecurityCode = "TeChuang"
|
};
|
|
string request = JsonConvert.SerializeObject(model, settings);
|
|
string response = HttpHelper.Post(apiInfo.ApiAddress, request);
|
return response;
|
}
|
|
/// <summary>
|
/// ERP物料IQC检验单接口调用
|
/// </summary>
|
/// <param name="checkModel"></param>
|
/// <returns></returns>
|
public string InvokeCheckOrderApi(ERPCheckModel checkModel)
|
{
|
Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
|
ERPBaseModel<ERPCheckModel> model = new ERPBaseModel<ERPCheckModel>()
|
{
|
Data = checkModel,
|
Desc = "物料IQC检验单",
|
Type = "toTCWMSIQCTest",
|
SecurityCode = "TeChuang"
|
};
|
string request = JsonConvert.SerializeObject(model, settings);
|
|
string response = HttpHelper.Post(apiInfo.ApiAddress, request);
|
return response;
|
}
|
|
/// <summary>
|
/// ERP物料送检接口调用
|
/// </summary>
|
public string InvokeInspectApi(ERPInspectModel eRPInspectModel)
|
{
|
Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
|
ERPBaseModel<ERPInspectModel> model = new ERPBaseModel<ERPInspectModel>()
|
{
|
Data = eRPInspectModel,
|
Desc = "物料出仓检验单",
|
Type = "toTCWMSOUTTest",
|
SecurityCode = "TeChuang"
|
};
|
string request = JsonConvert.SerializeObject(model, settings);
|
|
string response = HttpHelper.Post(apiInfo.ApiAddress, request);
|
return response;
|
}
|
|
/// <summary>
|
/// ERP物料入库单接口调用
|
/// </summary>
|
/// <param name="inboundModel"></param>
|
/// <returns></returns>
|
public string InvokeInboundOrderApi(ERPInboundModel inboundModel)
|
{
|
Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
|
ERPBaseModel<ERPInboundModel> model = new ERPBaseModel<ERPInboundModel>()
|
{
|
Data = inboundModel,
|
Desc = "物料入库单",
|
Type = "toTCWMSMaterialWarehousing",
|
SecurityCode = "TeChuang"
|
};
|
string request = JsonConvert.SerializeObject(model, settings);
|
string response = HttpHelper.Post(apiInfo.ApiAddress, request);
|
return response;
|
}
|
/// <summary>
|
/// ERP领料通知单出库
|
/// </summary>
|
public string InvokeOutStandardsApi(ERPIssueModel issueModel)
|
{
|
Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
|
ERPBaseModel<ERPIssueModel> model = new ERPBaseModel<ERPIssueModel>()
|
{
|
Data = issueModel,
|
Desc = "领料出库通知单",
|
Type = "toStandardPickList",
|
SecurityCode = "TeChuang"
|
};
|
string request = JsonConvert.SerializeObject(model, settings).Replace("issitem", "Issitem");
|
string response = HttpHelper.Post(apiInfo.ApiAddress, request);
|
return response;
|
}
|
/// <summary>
|
/// ERP退料上报接口调用
|
/// </summary>
|
public string InvokeReturnApi(ERPReturnModel returnModel)
|
{
|
Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
|
ERPBaseModel<ERPReturnModel> model = new ERPBaseModel<ERPReturnModel>()
|
{
|
Data = returnModel,
|
Desc = "材料退库",
|
Type = "importMaterialsIssueNoteWMS",
|
SecurityCode = "TeChuang"
|
};
|
string request = JsonConvert.SerializeObject(model, settings).Replace("issitem", "Issitem");
|
string response = HttpHelper.Post(apiInfo.ApiAddress, request);
|
return response;
|
}
|
/// <summary>
|
/// ERP盘赢/亏上报接口调用
|
/// </summary>
|
public string InvokeTakeStockApi(ERPTakeStockModel takeModel)
|
{
|
Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
|
ERPBaseModel<ERPTakeStockModel> model = new ERPBaseModel<ERPTakeStockModel>()
|
{
|
Data = takeModel,
|
Desc = "材料盘点",
|
Type = "toTCWMSMaterialCounting",
|
SecurityCode = "TeChuang"
|
};
|
string request = JsonConvert.SerializeObject(model, settings);
|
string response = HttpHelper.Post(apiInfo.ApiAddress, request);
|
return response;
|
}
|
/// <summary>
|
/// ERP成品出库上报接口调用
|
/// </summary>
|
public string InvokeProOutApi(ERPProOutOrderModel outOrderModel)
|
{
|
Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
|
ERPBaseModel<ERPProOutOrderModel> model = new ERPBaseModel<ERPProOutOrderModel>()
|
{
|
Data = outOrderModel,
|
Desc = "出库成品通知",
|
Type = "toOrderAssignment",
|
SecurityCode = "TeChuang"
|
};
|
string request = JsonConvert.SerializeObject(model, settings);
|
string response = HttpHelper.Post(apiInfo.ApiAddress, request);
|
return response;
|
}
|
/// <summary>
|
/// ERP成品订单客户查询接口调用
|
/// </summary>
|
/// <param name="saleOrderNo"></param>
|
/// <returns></returns>
|
public string InvokeProSaleCustomer(string saleOrderNo)
|
{
|
Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpSaleCustomApi.ToString());
|
object saleObj = new { soNumber=saleOrderNo };
|
string request = JsonConvert.SerializeObject(saleObj, settings);
|
Dictionary<string,string> requestHeader =new Dictionary<string, string>
|
{
|
{ "AccessToken", "TCKJF60B03C07E8E41B0B3CF759B7B01AB81HATC"},
|
};
|
string response = HttpHelper.Post(apiInfo.ApiAddress, request,headers:requestHeader);
|
return response;
|
}
|
/// <summary>
|
/// ERP成品订单出库库存查询
|
/// </summary>
|
/// <returns></returns>
|
public string InvokeOutProErpSync(string outProOrderNo)
|
{
|
Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpOutProErpSyncApi.ToString());
|
object outNoObj = new { shippingNumber = outProOrderNo };
|
string request = JsonConvert.SerializeObject(outNoObj, settings);
|
Dictionary<string, string> requestHeader = new Dictionary<string, string>
|
{
|
{ "AccessToken", "TCKJF60B03C07E8E41B0B3CF759B7B01AB81HATC"},
|
};
|
string response = HttpHelper.Post(apiInfo.ApiAddress, request, headers: requestHeader);
|
return response;
|
}
|
/// <summary>
|
/// ERP成品入库产品型号面积查询
|
/// </summary>
|
/// <returns></returns>
|
public string InvokeProInErpStatic(string partNum,string partNumWithRev)
|
{
|
Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeProInErpStatic.ToString());
|
object inObj = new { partNum, partNumWithRev };
|
string request = JsonConvert.SerializeObject(inObj, settings);
|
Dictionary<string, string> requestHeader = new Dictionary<string, string>
|
{
|
{ "AccessToken", "TCKJF60B03C07E8E41B0B3CF759B7B01AB81HATC"},
|
};
|
string response = HttpHelper.Post(apiInfo.ApiAddress, request, headers: requestHeader);
|
return response;
|
}
|
/// <summary>
|
/// ERP成品入库上报接口调用
|
/// </summary>
|
public string InvokeProInApi(ERPProInboundModel inboundModel)
|
{
|
Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
|
ERPBaseModel<ERPProInboundModel> model = new ERPBaseModel<ERPProInboundModel>()
|
{
|
Data = inboundModel,
|
Desc = "成品入库",
|
Type = "toWOStockForm",
|
SecurityCode = "TeChuang"
|
};
|
string request = JsonConvert.SerializeObject(model, settings);
|
string response = HttpHelper.Post(apiInfo.ApiAddress, request);
|
return response;
|
}
|
/// <summary>
|
/// 成品仓检报废出库推送ERP
|
/// </summary>
|
/// <param name="checkModel"></param>
|
/// <returns></returns>
|
public string InvokeProCheckApi(ERPProductCheckModel checkModel)
|
{
|
Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
|
ERPBaseModel<ERPProductCheckModel> model = new ERPBaseModel<ERPProductCheckModel>()
|
{
|
Data = checkModel,
|
Desc = "成品检验单",
|
Type = "toFGIIqcChecked",
|
SecurityCode = "TeChuang"
|
};
|
string request = JsonConvert.SerializeObject(model, settings);
|
string response = HttpHelper.Post(apiInfo.ApiAddress, request);
|
return response;
|
}
|
/// <summary>
|
/// 成品超周期报废推送ERP
|
/// </summary>
|
/// <param name="sheetModel"></param>
|
/// <returns></returns>
|
public string InvokeProScrapSheetApi(ERPScrapSheetModel sheetModel)
|
{
|
Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
|
ERPBaseModel<ERPScrapSheetModel> model = new ERPBaseModel<ERPScrapSheetModel>()
|
{
|
Data = sheetModel,
|
Desc = "成品报废单",
|
Type = "toFGIScrapSheet",
|
SecurityCode = "TeChuang"
|
};
|
string request = JsonConvert.SerializeObject(model, settings);
|
string response = HttpHelper.Post(apiInfo.ApiAddress, request);
|
return response;
|
}
|
/// <summary>
|
/// 成品盘点盘赢/盘亏
|
/// </summary>
|
/// <param name="stockCheckModel"></param>
|
/// <returns></returns>
|
public string InvokeProStockCheckApi(ERPProStockCheckModel stockCheckModel)
|
{
|
Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
|
ERPBaseModel<ERPProStockCheckModel> model = new ERPBaseModel<ERPProStockCheckModel>()
|
{
|
Data = stockCheckModel,
|
Desc = "成品盘点单",
|
Type = "toStockCheck",
|
SecurityCode = "TeChuang"
|
};
|
string request = JsonConvert.SerializeObject(model, settings);
|
string response = HttpHelper.Post(apiInfo.ApiAddress, request);
|
return response;
|
}
|
/// <summary>
|
/// ERP物料出库接口调用
|
/// </summary>
|
/// <param name="outboundModel"></param>
|
/// <returns></returns>
|
#region 弃用
|
//public string InvokeOutboundOrderApi(ERPOutboundModel outboundModel)
|
//{
|
// Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
|
// ERPBaseModel<ERPOutboundModel> model = new ERPBaseModel<ERPOutboundModel>()
|
// {
|
// Data = outboundModel,
|
// Desc = "材料出库",
|
// Type = "toBomMaterialOutTC",
|
// SecurityCode = "TeChuang"
|
// };
|
// string request = JsonConvert.SerializeObject(model, settings);
|
// string response = HttpHelper.Post(apiInfo.ApiAddress, request);
|
// return response;
|
//}
|
#endregion
|
}
|
}
|