using Newtonsoft.Json; using System.Collections.Generic; using WIDESEA_Core; using WIDESEA_Core.Helper; using WIDESEA_IBasicService; using WIDESEA_DTO.MES; namespace WIDESEA_BasicService { /// /// MES服务实现 - 陕西顷刻能源科技MES系统对接 /// public class MesService : IMesService { private readonly HttpClientHelper _httpClient; private readonly string _baseUrl; private readonly string _authorization; private const string BindContainerPath = "/EquipmentService/api/v1/BindContainer"; private const string UnBindContainerPath = "/EquipmentService/api/v1/UnBindContainer"; private const string ContainerNgReportPath = "/EquipmentService/api/v1/ContainerNgReport"; private const string InboundInContainerPath = "/EquipmentService/api/v1/InboundInContainer"; private const string OutboundInContainerPath = "/EquipmentService/api/v1/OutboundInContainer"; public MesService(HttpClientHelper httpClient) { _httpClient = httpClient; _baseUrl = AppSettings.Get("MES:BaseUrl").TrimEnd('/'); _authorization = AppSettings.Get("MES:Authorization"); } private HttpRequestConfig BuildConfig() { return new HttpRequestConfig { Headers = new Dictionary { { "Authorization", _authorization } }, TimeoutMs = 30000, MaxRetryCount = 0, EnableLogging = true }; } private HttpResponseResult Post(string url, T request) { string json = JsonConvert.SerializeObject(request); return _httpClient.Post(url, json, "application/json", BuildConfig()); } public HttpResponseResult BindContainer(BindContainerRequest request) { return Post(_baseUrl + BindContainerPath, request); } public HttpResponseResult UnBindContainer(UnBindContainerRequest request) { return Post(_baseUrl + UnBindContainerPath, request); } public HttpResponseResult ContainerNgReport(ContainerNgReportRequest request) { return Post(_baseUrl + ContainerNgReportPath, request); } public HttpResponseResult InboundInContainer(InboundInContainerRequest request) { return Post(_baseUrl + InboundInContainerPath, request); } public HttpResponseResult OutboundInContainer(OutboundInContainerRequest request) { return Post(_baseUrl + OutboundInContainerPath, request); } } }