| 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 = "收货单", | 
|                 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> | 
|         /// <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> | 
|         /// <param name="outboundModel"></param> | 
|         /// <returns></returns> | 
|         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; | 
|         } | 
|     } | 
| } |