using LogLibrary.Log; using Masuit.Tools; using Newtonsoft.Json; using WIDESEA_Common; using WIDESEA_Core; using WIDESEA_Core.Const; using WIDESEA_Core.Helper; using WIDESEA_DTO; using WIDESEA_IRepository; using WIDESEA_IServices; using WIDESEA_IStorageBasicService; using WIDESEA_IStoragIntegrationServices; using static Org.BouncyCastle.Math.EC.ECCurve; namespace WIDESEA_StoragIntegrationServices; public class CellStateService : ICellStateService { private readonly LogFactory LogFactory = new LogFactory(); private readonly IBoxingInfoService _boxingInfoService; private readonly ISys_ConfigService _configService; public CellStateService(IBoxingInfoService boxingInfoService, ISys_ConfigService configRepository) { _boxingInfoService = boxingInfoService; _configService = configRepository; } /// /// 单电芯属性获取 /// /// 电芯数据 /// public async Task GetCellStateAsync(CellStateDto input) { WebResponseContent content = new WebResponseContent(); try { input.SessionId = Guid.NewGuid().ToString(); input.EmployeeNo = "MITest"; input.RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ"); var inputJson = input.ToDictionary(); var configs = _configService.GetConfigsByCategory(CateGoryConst.SYS_MOMIPAddress); var wmsBase = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.MOMBaseIP)?.ConfigValue; var ipAddress = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.CellState)?.ConfigValue; if (wmsBase == null || ipAddress == null) { throw new InvalidOperationException("WMS IP 未配置"); } var wmsIpAddress = wmsBase + ipAddress; var result = HttpsClient.PostAsync(wmsIpAddress, inputJson).Result; //var x = await HttpsClient.PostAsync("http://c24-cellmi3:12020/api/MachineIntegration/CellState", inputJson); #region //if (x != null) //{ // ResultCellState result = JsonConvert.DeserializeObject(x); // DtBoxingInfo boxingInfo = new DtBoxingInfo() // { // IsFull = true, // PalletCode = "", // }; // var details = new List(); // foreach (var item in result.SerialNos) // { // DtBoxingInfoDetail detail = new DtBoxingInfoDetail() // { // SerialNumber = item.SerialNo, // OrderNo = item.BindCode, // Status = item.SerialNoStatus, // }; // details.Add(detail); // } // boxingInfo.BoxingInfoDetails = details; // var abc = await _boxingInfoService.AddBoxingInfoAsync(boxingInfo); // if (abc.Status) // return content.OK("组盘成功"); // else // return content.Error("组盘失败"); //} #endregion LogFactory.GetLog("单电芯属性获取").Info(true, $"\r\r--------------------------------------"); LogFactory.GetLog("单电芯属性获取").Info(true, result); return result; } catch (Exception err) { Console.WriteLine(err.Message.ToString()); LogFactory.GetLog("单电芯属性获取").Error(true, $"\r\r--------------------------------------"); LogFactory.GetLog("单电芯属性获取").Error(true, $"请求参数: {JsonConvert.SerializeObject(input)}"); LogFactory.GetLog("单电芯属性获取").Error(true, err.Message); LogFactory.GetLog("单电芯属性获取").Error(true, err.StackTrace); } return Task.FromResult(null); } /// /// 整盘电芯属性获取 /// /// 电芯数据 /// public async Task GetTrayCellStatusAsync(TrayCellsStatusDto input) { WebResponseContent content = new WebResponseContent(); try { input.SessionId = Guid.NewGuid().ToString(); input.EmployeeNo = "MITest"; input.RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ"); var inputJson = input.ToDictionary(); var configs = _configService.GetConfigsByCategory(CateGoryConst.SYS_MOMIPAddress); var wmsBase = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.MOMBaseIP)?.ConfigValue; var ipAddress = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.TrayCellsStatus)?.ConfigValue; if (wmsBase == null || ipAddress == null) { throw new InvalidOperationException("WMS IP 未配置"); } var wmsIpAddress = wmsBase + ipAddress; var result = HttpsClient.PostAsync(wmsIpAddress, inputJson).Result; //var x = await HttpsClient.PostAsync("http://c24-cellmi3:12020/api/MachineIntegration/TrayCellsStatus", inputJson); LogFactory.GetLog("整盘电芯属性获取").Info(true, $"\r\r--------------------------------------"); LogFactory.GetLog("整盘电芯属性获取").Info(true, result); content.OK(data: result); } catch (Exception err) { Console.WriteLine(err.Message.ToString()); LogFactory.GetLog("整盘电芯属性获取").Error(true, $"\r\r--------------------------------------"); LogFactory.GetLog("整盘电芯属性获取").Error(true, $"请求参数: {JsonConvert.SerializeObject(input)}"); LogFactory.GetLog("整盘电芯属性获取").Error(true, err.Message); LogFactory.GetLog("整盘电芯属性获取").Error(true, err.StackTrace); } return content; } }