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_Common.CommonEnum; using WIDESEA_Core.Helper; using WIDESEA_External.Model; using WIDESEA_IBasicRepository; using WIDESEA_Model.Models; namespace WIDESEA_External.ERPService { /// /// 调用ERP接口 /// public class InvokeERPService : IInvokeERPService { private readonly IApiInfoRepository _apiInfoRepository; public InvokeERPService(IApiInfoRepository apiInfoRepository) { _apiInfoRepository = apiInfoRepository; } // 创建一个使用小驼峰命名法的序列化设置 JsonSerializerSettings settings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }; /// /// 调用BST上报RFID接口 /// public string BSTPurchaseUp(BSTPurchaseUpModel bSTPurchaseUpModel) { Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x=>x.ApiCode==APIEnum.BSTPurchaseUp.ToString()); if (apiInfo.Enable == WhetherEnum.False.ObjToInt()) { BSTResponse bSTResponse = new BSTResponse() { Code=200,Msg="接口禁用"}; return bSTResponse.Serialize(); } string request = JsonConvert.SerializeObject(bSTPurchaseUpModel, settings); string response = HttpHelper.Post(apiInfo.ApiAddress, request); return response; } /// /// 调用ERP原纸库存接口 /// public string BSTStockAsync(string barCode) { Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.BSTStockAsync.ToString() && x.Enable == WhetherEnum.True.ObjToInt()); string response = HttpHelper.Post(apiInfo.ApiAddress + "?barcode=" + barCode); return response; } /// /// 推送原纸采购入库 /// /// /// public string ERPPurchaseUp(ERPPurchaseUpModel eRPPurchaseUpModel) { Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.ERPPurchaseUpModel.ToString() && x.Enable == WhetherEnum.True.ObjToInt()); string response = HttpHelper.Post(apiInfo.ApiAddress, eRPPurchaseUpModel.Serialize().ToUpper()); return response; } /// /// 推送成品销售出库 /// /// /// public string ERPProOutUp(ERPProOutUpModel eRPProOutUpModel) { Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.ERPProOutUp.ToString() && x.Enable == WhetherEnum.True.ObjToInt()); string response = HttpHelper.Post(apiInfo.ApiAddress, eRPProOutUpModel.Serialize().ToUpper()); return response; } } }