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