| using AngleSharp.Io; | 
| using LogLibrary.Log; | 
| using Masuit.Tools; | 
| using Newtonsoft.Json; | 
| using WIDESEA_Common; | 
| using WIDESEA_Core; | 
| using WIDESEA_Core.Const; | 
| using WIDESEA_DTO; | 
| using WIDESEA_DTO.MOM; | 
| using WIDESEA_IServices; | 
| using WIDESEA_IStoragIntegrationServices; | 
|   | 
| namespace WIDESEA_StoragIntegrationServices; | 
|   | 
| public class AgingInOrOutInputService : IAgingInOrOutInputService | 
| { | 
|     private readonly LogFactory LogFactory = new LogFactory(); | 
|     private readonly ISys_ConfigService _configService; | 
|   | 
|     public AgingInOrOutInputService(ISys_ConfigService configRepository) | 
|     { | 
|         _configService = configRepository; | 
|     } | 
|   | 
|     /// <summary> | 
|     /// 静置\陈化入库(整托盘) | 
|     /// </summary> | 
|     /// <param name="input">入库数据</param> | 
|     /// <returns></returns> | 
|     public async Task<WebResponseContent> GetOCVInputAsync(AgingInputDto 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 = Masuit.Tools.ObjectExtensions.ToDictionary(input); // Specify the namespace explicitly | 
|             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.AgingInput)?.ConfigValue; | 
|             if (wmsBase == null || ipAddress == null) | 
|             { | 
|                 throw new InvalidOperationException("WMS IP 未配置"); | 
|             } | 
|             var wmsIpAddress = wmsBase + ipAddress; | 
|   | 
|             var result = HttpsClient.PostAsync(wmsIpAddress, inputJson).Result; | 
|             content.OK(data: result); | 
|   | 
|             var respone = JsonConvert.DeserializeObject<ResponeAgingInputDto>(result.ToString()); | 
|             if (!respone.Success) | 
|             { | 
|                 MoMErrorMsg.AddMoMErrorMsg(0, input.TrayBarcode, respone.MOMMessage, SysConfigConst.AgingInput); | 
|             } | 
|             else | 
|             { | 
|                 MoMErrorMsg.DeleteMoMErrorMsg(0, input.TrayBarcode); | 
|             } | 
|   | 
|             LogFactory.GetLog("静置陈化入库(整托盘)").Info(true, $"\r\r--------------------------------------"); | 
|             LogFactory.GetLog("静置陈化入库(整托盘)").Info(true, input.TrayBarcode); | 
|             LogFactory.GetLog("静置陈化入库(整托盘)").Info(true, result); | 
|         } | 
|         catch (Exception err) | 
|         { | 
|             MoMErrorMsg.AddMoMErrorMsg(0, input.TrayBarcode, err.Message, SysConfigConst.AgingInput); | 
|             Console.WriteLine(err.Message.ToString()); | 
|             LogFactory.GetLog("静置陈化入库(整托盘)").Error(true, $"\r\r--------------------------------------"); | 
|             LogFactory.GetLog("静置陈化入库(整托盘)").Error(true, err.StackTrace); | 
|         } | 
|         return content; | 
|     } | 
|   | 
|     /// <summary> | 
|     /// 静置\陈化出库(整托盘) | 
|     /// </summary> | 
|     /// <param name="input">出库数据</param> | 
|     /// <returns></returns> | 
|     public async Task<WebResponseContent> GetOCVOutputAsync(AgingOutputDto 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 = Masuit.Tools.ObjectExtensions.ToDictionary(input); // Specify the namespace explicitly | 
|             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.AgingOutput)?.ConfigValue; | 
|             if (wmsBase == null || ipAddress == null) | 
|             { | 
|                 throw new InvalidOperationException("WMS IP 未配置"); | 
|             } | 
|             var wmsIpAddress = wmsBase + ipAddress; | 
|   | 
|             var result = HttpsClient.PostAsync(wmsIpAddress, inputJson).Result; | 
|   | 
|             var respone = JsonConvert.DeserializeObject<ResponeAgingInputDto>(result.ToString()); | 
|             if (!respone.Success) | 
|             { | 
|                 MoMErrorMsg.AddMoMErrorMsg(0, input.TrayBarcode, respone.MOMMessage, SysConfigConst.AgingOutput); | 
|             } | 
|             else | 
|             { | 
|                 MoMErrorMsg.DeleteMoMErrorMsg(0, input.TrayBarcode); | 
|             } | 
|   | 
|             content.OK(data: result); | 
|             LogFactory.GetLog("静置陈化出库(整托盘)").Info(true, $"\r\r--------------------------------------"); | 
|             LogFactory.GetLog("静置陈化出库(整托盘)").Info(true, input.TrayBarcode); | 
|             LogFactory.GetLog("静置陈化出库(整托盘)").Info(true, result); | 
|         } | 
|         catch (Exception err) | 
|         { | 
|             MoMErrorMsg.AddMoMErrorMsg(0, input.TrayBarcode, err.Message, SysConfigConst.AgingOutput); | 
|             Console.WriteLine(err.Message.ToString()); | 
|             LogFactory.GetLog("静置陈化出库(整托盘)").Error(true, $"\r\r--------------------------------------"); | 
|             LogFactory.GetLog("静置陈化出库(整托盘)").Error(true, err.StackTrace); | 
|             content.Error(err.Message); | 
|         } | 
|         return content; | 
|     } | 
| } |