From c51aaf0a95836b83bb4c209556cfddaf42ea3314 Mon Sep 17 00:00:00 2001
From: xxyy <cathay_xy@163.com>
Date: 星期四, 06 三月 2025 10:09:49 +0800
Subject: [PATCH] 优化缓存使用和定时器设置

---
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/CellState/CellStateService.cs |  107 +++++++++++++++++++++++------------------------------
 1 files changed, 47 insertions(+), 60 deletions(-)

diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/CellState/CellStateService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/CellState/CellStateService.cs
index f0ccf06..7c2baf4 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/CellState/CellStateService.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/CellState/CellStateService.cs
@@ -1,11 +1,18 @@
-锘縰sing LogLibrary.Log;
+锘縰sing AngleSharp.Io;
+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_DTO.MOM;
+using WIDESEA_IRepository;
+using WIDESEA_IServices;
 using WIDESEA_IStorageBasicService;
 using WIDESEA_IStoragIntegrationServices;
+using static Org.BouncyCastle.Math.EC.ECCurve;
 
 namespace WIDESEA_StoragIntegrationServices;
 
@@ -14,10 +21,12 @@
     private readonly LogFactory LogFactory = new LogFactory();
 
     private readonly IBoxingInfoService _boxingInfoService;
+    private readonly ISys_ConfigService _configService;
 
-    public CellStateService(IBoxingInfoService boxingInfoService)
+    public CellStateService(IBoxingInfoService boxingInfoService, ISys_ConfigService configRepository)
     {
         _boxingInfoService = boxingInfoService;
+        _configService = configRepository;
     }
 
     /// <summary>
@@ -34,39 +43,20 @@
             input.EmployeeNo = "MITest";
             input.RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ");
             var inputJson = input.ToDictionary();
-            var x = await HttpsClient.PostAsync("http://ts-momapp01: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
+            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;
 
             LogFactory.GetLog("鍗曠數鑺睘鎬ц幏鍙�").Info(true, $"\r\r--------------------------------------");
-            LogFactory.GetLog("鍗曠數鑺睘鎬ц幏鍙�").Info(true, x);
-            return x;
+            LogFactory.GetLog("鍗曠數鑺睘鎬ц幏鍙�").Info(true, result);
+            return result;
         }
         catch (Exception err)
         {
@@ -93,39 +83,36 @@
             input.EmployeeNo = "MITest";
             input.RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ");
             var inputJson = input.ToDictionary();
-            var x = await HttpsClient.PostAsync("http://ts-momapp01:12020/api/MachineIntegration/TrayCellsStatus", inputJson);
-            if (x != null)
+            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)
             {
-                // 鍙嶅簭鍒楀寲ResultTrayCellsStatus瀵硅薄
-                //ResultTrayCellsStatus result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(x);
-
-                //// 鍒涘缓DtBoxingInfo瀵硅薄
-                //DtBoxingInfo boxingInfo = new DtBoxingInfo
-                //{
-                //    IsFull = true,
-                //    PalletCode = result.TrayBarcode,
-                //};
-
-                //// 浣跨敤LINQ鍒涘缓DtBoxingInfoDetail瀵硅薄鍒楄〃
-                //var details = result.SerialNos.Select(item => new DtBoxingInfoDetail
-                //{
-                //    SerialNumber = item.SerialNo,
-                //    OrderNo = item.PositionNo.ToString(),
-                //    Status = item.SerialNoStatus,
-                //    Remark = result.TrayBarcodePropertys.ToJsonString(),
-                //    MaterielCode = result.BindCode,
-                //}).ToList();
-
-                //// 璧嬪�糄tBoxingInfoDetails
-                //boxingInfo.BoxingInfoDetails = details;
-                //var abc = await _boxingInfoService.AddBoxingInfoAsync(boxingInfo);
-                    content.OK("缁勭洏鎴愬姛", x);
+                throw new InvalidOperationException("WMS IP 鏈厤缃�");
             }
+            var wmsIpAddress = wmsBase + ipAddress;
+
+            var result = HttpsClient.PostAsync(wmsIpAddress, inputJson).Result;
+
+            var respone = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(result.ToString());
+
+            if (!respone.Success)
+            {
+                MoMErrorMsg.AddMoMErrorMsg(0, input.TrayBarcode, respone.MOMMessage, SysConfigConst.TrayCellsStatus);
+            }
+            else
+            {
+                MoMErrorMsg.DeleteMoMErrorMsg(0, input.TrayBarcode);
+            }
+
             LogFactory.GetLog("鏁寸洏鐢佃姱灞炴�ц幏鍙�").Info(true, $"\r\r--------------------------------------");
-            LogFactory.GetLog("鏁寸洏鐢佃姱灞炴�ц幏鍙�").Info(true, x);
+            LogFactory.GetLog("鏁寸洏鐢佃姱灞炴�ц幏鍙�").Info(true, result);
+            content.OK(data: result);
         }
         catch (Exception err)
         {
+            MoMErrorMsg.AddMoMErrorMsg(0, input.TrayBarcode, err.Message, SysConfigConst.TrayCellsStatus);
+
             Console.WriteLine(err.Message.ToString());
             LogFactory.GetLog("鏁寸洏鐢佃姱灞炴�ц幏鍙�").Error(true, $"\r\r--------------------------------------");
             LogFactory.GetLog("鏁寸洏鐢佃姱灞炴�ц幏鍙�").Error(true, $"璇锋眰鍙傛暟: {JsonConvert.SerializeObject(input)}");

--
Gitblit v1.9.3