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; 
 | 
        } 
 | 
    } 
 | 
} 
 |