From 05a9d230c8f515bc59b491311bd2897b82164fab Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期六, 12 七月 2025 18:31:49 +0800
Subject: [PATCH] 增强异常处理错误信息返回在 `TaskService.cs` 文件中,更新了异常处理逻辑,错误信息现在包含异常的堆栈跟踪信息 `ex.StackTrace`,以提供更详细的调试信息。

---
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/CellState/CellStateService.cs |  115 +++++++++++++++++++++++++--------------------------------
 1 files changed, 51 insertions(+), 64 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 bb14e28..e61bb34 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>
@@ -33,44 +42,25 @@
             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 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
+            var inputJson = Masuit.Tools.ObjectExtensions.ToDictionary(input);
+            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)
         {
-            Console.WriteLine(err.Message.ToString());
+            //Console.WriteLine(err.Message.ToString());
             LogFactory.GetLog("鍗曠數鑺睘鎬ц幏鍙�").Error(true, $"\r\r--------------------------------------");
             LogFactory.GetLog("鍗曠數鑺睘鎬ц幏鍙�").Error(true, $"璇锋眰鍙傛暟: {JsonConvert.SerializeObject(input)}");
             LogFactory.GetLog("鍗曠數鑺睘鎬ц幏鍙�").Error(true, err.Message);
@@ -92,41 +82,38 @@
             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 x = await HttpsClient.PostAsync("http://c24-cellmi3:12020/api/MachineIntegration/TrayCellsStatus", inputJson);
-            if (x != null)
+            var inputJson = Masuit.Tools.ObjectExtensions.ToDictionary(input);
+            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)
         {
-            Console.WriteLine(err.Message.ToString());
+            //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)}");
             LogFactory.GetLog("鏁寸洏鐢佃姱灞炴�ц幏鍙�").Error(true, err.Message);

--
Gitblit v1.9.3