| 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; | 
|     } | 
|   | 
|     /// <summary> | 
|     /// 单电芯属性获取 | 
|     /// </summary> | 
|     /// <param name="input">电芯数据</param> | 
|     /// <returns></returns> | 
|     public async Task<dynamic> 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<ResultCellState>(x); | 
|             //    DtBoxingInfo boxingInfo = new DtBoxingInfo() | 
|             //    { | 
|             //        IsFull = true, | 
|             //        PalletCode = "", | 
|             //    }; | 
|             //    var details = new List<DtBoxingInfoDetail>(); | 
|             //    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<dynamic>(null); | 
|     } | 
|   | 
|     /// <summary> | 
|     /// 整盘电芯属性获取 | 
|     /// </summary> | 
|     /// <param name="input">电芯数据</param> | 
|     /// <returns></returns> | 
|     public async Task<WebResponseContent> 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; | 
|     } | 
| } |