From d3091b37a593885877f4ed4180d49e5ce259b657 Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期一, 04 八月 2025 10:27:55 +0800
Subject: [PATCH] 优化接口

---
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs |  329 ++++++++++++++++++++++++++++++------------------------
 1 files changed, 180 insertions(+), 149 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs"
index 4fc54c3..7d3f56a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs"
@@ -15,6 +15,10 @@
 using WIDESEAWCS_TelescopicService;
 using WIDESEAWCS_ISystemServices;
 using WIDESEAWCS_Core.Helper;
+using Microsoft.AspNetCore.Http;
+using System.Collections.Concurrent;
+using Microsoft.AspNetCore.Hosting.Server;
+using static System.Collections.Specialized.BitVector32;
 
 namespace WIDESEAWCS_Tasks
 {
@@ -26,6 +30,7 @@
         WebSocketServer _webSocketServer;
         private readonly Idt_ErrormsginfoService _ErrormsginfoService;
         private readonly AlarmResetHsyServer _alarmResetHsy;
+        private readonly IIPaddressServer _cunstomipService;
         //private static readonly object _lockObj = new object(); //鍔犻攣
 
 
@@ -45,183 +50,209 @@
             ["M120"] = false,//闅滅鎶ヨ
         };
 
-        public AlarmResetJob(Idt_ErrormsginfoService errormsginfoService, WebSocketServer webSocketServer, IAlarmResetHsyServer alarmResetHsyServer, ISys_UserService UserService)
+        public AlarmResetJob(Idt_ErrormsginfoService errormsginfoService, WebSocketServer webSocketServer, IAlarmResetHsyServer alarmResetHsyServer, ISys_UserService UserService, IIPaddressServer cunstomipService)
         {
             _webSocketServer = webSocketServer;
             _alarmResetHsyServer = alarmResetHsyServer;
             _UserService = UserService;
             _ErrormsginfoService = errormsginfoService;
+            _cunstomipService = cunstomipService;    
         }
+
+       
 
         public Task Execute(IJobExecutionContext context)
         {
             try
             {
-                if (!int.TryParse(AppSettings.Get("DepartmentID"), out int deid))
+                WebSocketSession[] webSocketSessions = _webSocketServer.OnlineSessions;//灏嗘墍鏈夌殑杩炴帴淇℃伅瀛樺埌杩欓噷
+                //string clientIp = webSocketSessions[0].Remote.Address.ToString().Replace("::ffff", ""); //鑾峰彇涓�涓猧p鍦板潃
+
+                foreach (var session in webSocketSessions)
                 {
-                    Console.WriteLine("閰嶇疆椤� DepartmentID 鏃犳硶杞崲涓烘暣鏁�");
-                }
-                var devices = GetDevicesByDeptId(deid);
-                if (devices != null)
-                {
-                        // Left PLC processing
-                        try
+                    string clientIp = session.Remote.Address.ToString().Replace("::ffff:", "");
+                    var customip = _cunstomipService.GetStandid(clientIp);
+                    if (customip.Status && customip.Data != null)
                     {
-                        if (devices.Value.left.IsConnected)
+                        //var deid = customip.Data.StationID;
+                        var deid = Convert.ToInt32(customip.Data);
+                        var devices = GetDevicesByDeptId(deid);
+
+
+
+                        //if (!int.TryParse(AppSettings.Get("DepartmentID"), out int deid))
+                        //{
+                        //    Console.WriteLine("閰嶇疆椤� DepartmentID 鏃犳硶杞崲涓烘暣鏁�");
+                        //}
+                        //var devices = GetDevicesByDeptId(deid);
+
+
+
+                        if (devices != null)
                         {
-                            var leftPLcstuck1 = devices.Value.left.Communicator.Read<bool>("M109"); // Servo alarm
-                            var leftPLcOher1 = devices.Value.left.Communicator.Read<bool>("M111");  // Other alarm
-                            var leftscram = devices.Value.left.Communicator.Read<bool>("M110");     // Emergency stop
-                            var leftstop = devices.Value.left.Communicator.Read<bool>("M120");      // Obstacle stop
-
-                            var leftPLcNowAdd = devices.Value.left.Communicator.Read<float>("D80");
-                            Console.WriteLine($"{devices.Value.left.DeviceName}:鍗′綇鎶ヨ{leftPLcstuck1}锛屽叾浠栨姤璀leftPLcOher1}");
-
-                           
-                                // Check and record alarms only when state changes from false to true
-                                if (leftPLcstuck1 && !_leftAlarmStates["M109"])
-                                {
-                                    string text = $"妫�8閬撳乏渚ц鎯曟満鏋勶細浼哥缉鍗′綇鎶ヨ";
-                                    var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, leftPLcstuck1);
-                                    _leftAlarmStates["M109"] = true;
-                                }
-                                else if (!leftPLcstuck1)
-                                {
-                                    _leftAlarmStates["M109"] = false;
-                                }
-
-                                if (leftPLcOher1 && !_leftAlarmStates["M111"])
-                                {
-                                    string text = $"妫�8閬撳乏渚ц鎯曟満鏋勶細鍏朵粬鏁呴殰鎶ヨ";
-                                    var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, leftPLcOher1);
-                                    _leftAlarmStates["M111"] = true;
-                                }
-                                else if (!leftPLcOher1)
-                                {
-                                    _leftAlarmStates["M111"] = false;
-                                }
-
-                                if (leftscram && !_leftAlarmStates["M110"])
-                                {
-                                    string text = $"妫�8閬撳乏渚ц鎯曟満鏋勶細鎬ュ仠鎶ヨ";
-                                    var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, leftscram);
-                                    _leftAlarmStates["M110"] = true;
-                                }
-                                else if (!leftscram)
-                                {
-                                    _leftAlarmStates["M110"] = false;
-                                }
-
-                                if (leftstop && !_leftAlarmStates["M120"])
-                                {
-                                    string text = $"妫�8閬撳乏渚ц鎯曟満鏋勶細閬囬殰纰嶅仠姝㈡姤璀�";
-                                    var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, leftstop);
-                                    _leftAlarmStates["M120"] = true;
-                                }
-                                else if (!leftstop)
-                                {
-                                    _leftAlarmStates["M120"] = false;
-                                }
-                            
-
-                            _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(new
+                            // Left PLC processing
+                            try
                             {
-                                device = "宸lc",
-                                Liftvalue = leftPLcNowAdd
-                            }));
+                                if (devices.Value.left.IsConnected)
+                                {
+                                    var leftPLcstuck1 = devices.Value.left.Communicator.Read<bool>("M109"); // Servo alarm
+                                    var leftPLcOher1 = devices.Value.left.Communicator.Read<bool>("M111");  // Other alarm
+                                    var leftscram = devices.Value.left.Communicator.Read<bool>("M110");     // Emergency stop
+                                    var leftstop = devices.Value.left.Communicator.Read<bool>("M120");      // Obstacle stop
+
+                                    var leftPLcNowAdd = devices.Value.left.Communicator.Read<float>("D80"); //褰撳墠浣嶇疆
+                                    Console.WriteLine($"{devices.Value.left.DeviceName}:鍗′綇鎶ヨ{leftPLcstuck1}锛屽叾浠栨姤璀leftPLcOher1}");
+
+
+                                    // Check and record alarms only when state changes from false to true
+                                    if (leftPLcstuck1 && !_leftAlarmStates["M109"])
+                                    {
+                                        string text = $"妫�{deid}閬撳乏渚ц鎯曟満鏋勶細浼哥缉鍗′綇鎶ヨ";
+                                        var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, leftPLcstuck1);
+                                        _leftAlarmStates["M109"] = true;
+                                    }
+                                    else if (!leftPLcstuck1)
+                                    {
+                                        _leftAlarmStates["M109"] = false;
+                                    }
+
+                                    if (leftPLcOher1 && !_leftAlarmStates["M111"])
+                                    {
+                                        string text = $"妫�{deid}閬撳乏渚ц鎯曟満鏋勶細鍏朵粬鏁呴殰鎶ヨ";
+                                        var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, leftPLcOher1);
+                                        _leftAlarmStates["M111"] = true;
+                                    }
+                                    else if (!leftPLcOher1)
+                                    {
+                                        _leftAlarmStates["M111"] = false;
+                                    }
+
+                                    if (leftscram && !_leftAlarmStates["M110"])
+                                    {
+                                        string text = $"妫�{deid}閬撳乏渚ц鎯曟満鏋勶細鎬ュ仠鎶ヨ";
+                                        var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, leftscram);
+                                        _leftAlarmStates["M110"] = true;
+                                    }
+                                    else if (!leftscram)
+                                    {
+                                        _leftAlarmStates["M110"] = false;
+                                    }
+
+                                    if (leftstop && !_leftAlarmStates["M120"])
+                                    {
+                                        string text = $"妫�{deid}閬撳乏渚ц鎯曟満鏋勶細閬囬殰纰嶅仠姝㈡姤璀�";
+                                        var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, leftstop);
+                                        _leftAlarmStates["M120"] = true;
+                                    }
+                                    else if (!leftstop)
+                                    {
+                                        _leftAlarmStates["M120"] = false;
+                                    }
+
+
+                                    _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(new
+                                    {
+                                        device = "宸lc",
+                                        Liftvalue = leftPLcNowAdd
+                                    })); //杩斿洖褰撳墠plc浣嶇疆
+                                }
+                            }
+                            catch (Exception)
+                            {
+                                string text = $"杞ㄩ亾{deid}锛氬乏PLC鏈繛鎺�";
+                                //var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, false);
+                            }
+
+                            // Right PLC processing
+                            try
+                            {
+                                if (devices.Value.right.IsConnected)
+                                {
+                                    var rightPLcSuck = devices.Value.right.Communicator.Read<bool>("M109"); // Servo alarm
+                                    var rightPLcOher = devices.Value.right.Communicator.Read<bool>("M111"); // Other alarm
+                                    var rightscram = devices.Value.right.Communicator.Read<bool>("M110"); // Emergency stop
+                                    var rightstop = devices.Value.right.Communicator.Read<bool>("M120");     // Obstacle stop
+
+                                    var rightPLcNowAdd = devices.Value.right.Communicator.Read<float>("D80");
+                                    Console.WriteLine($"{devices.Value.right.DeviceName}:鍗′綇鎶ヨ{rightPLcSuck}锛屽叾浠栨姤璀rightPLcOher}");
+
+
+                                    // Check and record alarms only when state changes from false to true
+                                    if (rightPLcSuck && !_rightAlarmStates["M109"])
+                                    {
+                                        string text = $"妫�{deid}閬撳彸渚ц鎯曟満鏋勶細鎶ヨ浼哥缉鍗′綇鎶ヨ";
+                                        var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, rightPLcSuck);
+                                        _rightAlarmStates["M109"] = true;
+                                    }
+                                    else if (!rightPLcSuck)
+                                    {
+                                        _rightAlarmStates["M109"] = false;
+                                    }
+
+                                    if (rightPLcOher && !_rightAlarmStates["M111"])
+                                    {
+                                        string text = $"妫�{deid}閬撳彸渚ц鎯曟満鏋勶細鍏朵粬鏁呴殰鎶ヨ";
+                                        var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, rightPLcOher);
+                                        _rightAlarmStates["M111"] = true;
+                                    }
+                                    else if (!rightPLcOher)
+                                    {
+                                        _rightAlarmStates["M111"] = false;
+                                    }
+
+                                    if (rightscram && !_rightAlarmStates["M110"])
+                                    {
+                                        string text = $"妫�{deid}閬撳彸渚ц鎯曟満鏋勶細鎬ュ仠鎶ヨ";
+                                        var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, rightscram);
+                                        _rightAlarmStates["M110"] = true;
+                                    }
+                                    else if (!rightscram)
+                                    {
+                                        _rightAlarmStates["M110"] = false;
+                                    }
+
+                                    if (rightstop && !_rightAlarmStates["M120"])
+                                    {
+                                        string text = $"妫�{deid}閬撳彸渚ц鎯曟満鏋勶細閬囬殰纰嶅仠姝㈡姤璀�";
+                                        var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, rightstop);
+                                        _rightAlarmStates["M120"] = true;
+                                    }
+                                    else if (!rightstop)
+                                    {
+                                        _rightAlarmStates["M120"] = false;
+                                    }
+
+                                    _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(new
+                                    {
+                                        device = "鍙砅lc",
+                                        Rightvalue = rightPLcNowAdd
+                                    }));
+                                }
+                            }
+                            catch (Exception)
+                            {
+                                string text = $"杞ㄩ亾{deid}锛氬彸PLC鏈繛鎺�";
+                                //var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, false);
+                            }
+
+                            var alrt = _alarmResetHsyServer.GetWebSocketInfo(deid);
+                            _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(alrt)); //杩斿洖鎵�鏈夌殑鎶ヨ琛ㄧ殑淇℃伅
                         }
                     }
-                    catch (Exception)
-                    {
-                        string text = $"杞ㄩ亾{deid}锛氬乏PLC鏈繛鎺�";
-                        //var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, false);
                     }
-
-                    // Right PLC processing
-                    try
-                    {
-                        if (devices.Value.right.IsConnected)
-                        {
-                            var rightPLcSuck = devices.Value.right.Communicator.Read<bool>("M109"); // Servo alarm
-                            var rightPLcOher = devices.Value.right.Communicator.Read<bool>("M111"); // Other alarm
-                            var rightscram = devices.Value.right.Communicator.Read<bool>("M110"); // Emergency stop
-                            var rightstop = devices.Value.right.Communicator.Read<bool>("M120");     // Obstacle stop
-
-                            var rightPLcNowAdd = devices.Value.right.Communicator.Read<float>("D80");
-                            Console.WriteLine($"{devices.Value.right.DeviceName}:鍗′綇鎶ヨ{rightPLcSuck}锛屽叾浠栨姤璀rightPLcOher}");
-
-                           
-                                // Check and record alarms only when state changes from false to true
-                                if (rightPLcSuck && !_rightAlarmStates["M109"])
-                                {
-                                    string text = $"妫�8閬撳彸渚ц鎯曟満鏋勶細鎶ヨ浼哥缉鍗′綇鎶ヨ";
-                                    var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, rightPLcSuck);
-                                    _rightAlarmStates["M109"] = true;
-                                }
-                                else if (!rightPLcSuck)
-                                {
-                                    _rightAlarmStates["M109"] = false;
-                                }
-
-                                if (rightPLcOher && !_rightAlarmStates["M111"])
-                                {
-                                    string text = $"妫�8閬撳彸渚ц鎯曟満鏋勶細鍏朵粬鏁呴殰鎶ヨ";
-                                    var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, rightPLcOher);
-                                    _rightAlarmStates["M111"] = true;
-                                }
-                                else if (!rightPLcOher)
-                                {
-                                    _rightAlarmStates["M111"] = false;
-                                }
-
-                                if (rightscram && !_rightAlarmStates["M110"])
-                                {
-                                    string text = $"妫�8閬撳彸渚ц鎯曟満鏋勶細鎬ュ仠鎶ヨ";
-                                    var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, rightscram);
-                                    _rightAlarmStates["M110"] = true;
-                                }
-                                else if (!rightscram)
-                                {
-                                    _rightAlarmStates["M110"] = false;
-                                }
-
-                                if (rightstop && !_rightAlarmStates["M120"])
-                                {
-                                    string text = $"妫�8閬撳彸渚ц鎯曟満鏋勶細閬囬殰纰嶅仠姝㈡姤璀�";
-                                    var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, rightstop);
-                                    _rightAlarmStates["M120"] = true;
-                                }
-                                else if (!rightstop)
-                                {
-                                    _rightAlarmStates["M120"] = false;
-                                }
-                            
-                            _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(new
-                            {
-                                device = "鍙砅lc",
-                                Rightvalue = rightPLcNowAdd
-                            }));
-                        }
-                    }
-                    catch (Exception)
-                    {
-                        string text = $"杞ㄩ亾{deid}锛氬彸PLC鏈繛鎺�";
-                        //var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, false);
-                    }
-
-                    var alrt = _alarmResetHsyServer.GetWebSocketInfo(deid);
-                    _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(alrt));
                 }
-            }
             catch (Exception ex)
             {
                 _ErrormsginfoService.UpdateErrorMsg(ex.Message, 1);
                 Console.WriteLine("閿欒淇℃伅锛�" + ex.Message);
                 Console.WriteLine(ex.StackTrace);
             }
+
             return Task.CompletedTask;
+
         }
 
+
         public (OtherDevice left, OtherDevice right)? GetDevicesByDeptId(int deptId)
         {
             int baseCode = 1 + (deptId - 1) * 2;

--
Gitblit v1.9.3