From d723d5c1413bb38ceb7d7404f4817e6540c3c2a0 Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期四, 12 六月 2025 16:18:33 +0800
Subject: [PATCH] 人脸识别

---
 project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs |  171 +++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 112 insertions(+), 59 deletions(-)

diff --git a/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs b/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs
index 8aec54b..1d08638 100644
--- a/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs
+++ b/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs
@@ -14,6 +14,8 @@
 using WIDESEAWCS_QuartzJob;
 using WIDESEAWCS_TelescopicService;
 using WIDESEAWCS_ISystemServices;
+using WIDESEAWCS_Core.Helper;
+
 
 namespace WIDESEAWCS_Tasks
 {
@@ -24,94 +26,145 @@
         private readonly IAlarmResetHsyServer _alarmResetHsyServer;
         private readonly ISys_UserService _UserService;
         WebSocketServer _webSocketServer;
-        
-        
-        
-        public AlarmResetJob(WebSocketServer webSocketServer, IAlarmResetHsyServer alarmResetHsyServer, ISys_UserService UserService)
+        private readonly Idt_ErrormsginfoService _ErrormsginfoService;
+
+
+        public AlarmResetJob(Idt_ErrormsginfoService errormsginfoService, WebSocketServer webSocketServer, IAlarmResetHsyServer alarmResetHsyServer, ISys_UserService UserService)
         {
             _webSocketServer = webSocketServer;
             _alarmResetHsyServer = alarmResetHsyServer;
             _UserService = UserService;
+            _ErrormsginfoService = errormsginfoService;
         }
+
 
         public Task Execute(IJobExecutionContext context)
         {
             try
             {
-              
+
                 //鑾峰彇璁惧鍙�
                 // 鑾峰彇璁惧閰嶇疆
-                OtherDevice serialPortDevice = (OtherDevice)context.JobDetail.JobDataMap.Get("JobParams");
-                if (serialPortDevice!=null)
+                //OtherDevice serialPortDevice = (OtherDevice)context.JobDetail.JobDataMap.Get("JobParams");
+                if (!int.TryParse(AppSettings.Get("DepartmentID"), out int deid))
+                {
+                    Console.WriteLine("閰嶇疆椤� DepartmentID 鏃犳硶杞崲涓烘暣鏁�");
+                }
+                var devices = GetDevicesByDeptId(deid);
+                if (devices != null)
                 {
                     //棣栧厛瑕佷竴鐩磋锛屽鏋滃彂鐢熶簡鏁呴殰瑕佸啓鍒癬alarmResetHsyServer涓褰曚笅鏉ュ苟涓旂粰鍒板墠绔暟鎹�
                     //宸lc
-                   
-                    if (serialPortDevice.DeviceCode == "SSG001")
+                    try
                     {
-                        var leftPLcstuck = serialPortDevice.Communicator.Read<bool>("M104"); //鍗′綇鎶ヨ
-                        var leftPLcOher = serialPortDevice.Communicator.Read<bool>("M105");  //鍏朵粬鎶ヨ //榛樿鏄痜alse
-                        Console.WriteLine($"{serialPortDevice.DeviceName}:鍗′綇鎶ヨ{leftPLcstuck}锛屽叾浠栨姤璀leftPLcOher}");
-                        if (leftPLcstuck == true && leftPLcOher == false)
-                           //if (leftPLcOher == false)
+                        if (devices.Value.left.IsConnected)
+                        {
+                            var leftPLcstuck1 = devices.Value.left.Communicator.Read<bool>("M109"); //鍗′綇鎶ヨ
+                            var leftPLcOher1 = devices.Value.left.Communicator.Read<bool>("M111");  //鍏朵粬鎶ヨ //榛樿鏄痜alse
+                            var leftPLcNowAdd = devices.Value.left.Communicator.Read<float>("D80");
+                            Console.WriteLine($"{devices.Value.left.DeviceName}:鍗′綇鎶ヨ{leftPLcstuck1}锛屽叾浠栨姤璀leftPLcOher1}");
+                            if (leftPLcstuck1 == true && leftPLcOher1 == false)
                             {
-                            string text = "杞ㄩ亾涓�锛氫几缂╁崱浣忔姤璀�";
-                            //鎶ヨ浜嗗湪杩欒皟鐢ㄦ坊鍔犳柟娉曪紝骞朵紶缁欏墠绔�
-                             var reslut = _alarmResetHsyServer.AddAlarmHsy(text, leftPLcstuck);
-                           
-                        }
-                        if (leftPLcOher == true && leftPLcstuck == false)
-                        {
-                            string text = "杞ㄩ亾涓�锛氬叾浠栨晠闅滄姤璀�";
-                            var reslut = _alarmResetHsyServer.AddAlarmHsy(text, leftPLcstuck);
-                            
-                        }
-                        if (leftPLcstuck == true && leftPLcOher == true)//濡傛灉鎶ヨ浜�
-                        {
-                            string text = "杞ㄩ亾涓�锛氭姤璀︿几缂╁崱浣忔姤璀﹀拰鍏朵粬鏁呴殰鎶ヨ";
-                            var reslut = _alarmResetHsyServer.AddAlarmHsy(text, leftPLcstuck);
-                          
-                        }
+                                string text = $"杞ㄩ亾{deid}锛氫几缂╁崱浣忔姤璀�";
+                                //鎶ヨ浜嗗湪杩欒皟鐢ㄦ坊鍔犳柟娉曪紝骞朵紶缁欏墠绔�
+                                var reslut = _alarmResetHsyServer.AddAlarmHsy(deid,text, leftPLcstuck1);
 
-                        var alrt = _alarmResetHsyServer.GetWebSocketInfo();
-                        _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(alrt));//websocketserver杩欑鍙兘浼犵粰鍓嶇json鏍煎紡
+
+                            }
+                            if (leftPLcstuck1 == false && leftPLcOher1 == true)
+                            {
+                                string text = $"杞ㄩ亾{deid}锛氬叾浠栨晠闅滄姤璀�";
+                                var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, leftPLcstuck1);
+
+                            }
+                            if (leftPLcstuck1 == true && leftPLcOher1 == true)//濡傛灉鎶ヨ浜�
+                            {
+                                string text = $"杞ㄩ亾{deid}锛氭姤璀︿几缂╁崱浣忔姤璀﹀拰鍏朵粬鏁呴殰鎶ヨ";
+                                var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, leftPLcstuck1);
+                            }
+                            _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(new
+                            {
+                                device = "宸lc",
+                                Liftvalue = leftPLcNowAdd
+                            }));//鎶奃80缁欏墠绔�
+                        }
                     }
-                    else if (serialPortDevice.DeviceCode == "SSG002")
+                    catch (Exception)
                     {
-                        //鍙硃lc
-                        var rightPLcSuck = serialPortDevice.Communicator.Read<bool>("M104"); //鍗′綇鎶ヨ
-                        var rightPLcOher = serialPortDevice.Communicator.Read<bool>("M105");//鍏朵粬鎶ヨ
-                        Console.WriteLine($"{serialPortDevice.DeviceName}:鍗′綇鎶ヨ{rightPLcSuck}锛屽叾浠栨姤璀rightPLcOher}");
-                        if (rightPLcSuck == true && rightPLcOher == false)
-                        {
-                            string text = "杞ㄩ亾涓�锛氭姤璀︿几缂╁崱浣忔姤璀�";
-                            //鎶ヨ浜嗗湪杩欒皟鐢ㄦ坊鍔犳柟娉曪紝骞朵紶缁欏墠绔�
-                             var reslut = _alarmResetHsyServer.AddAlarmHsy(text, rightPLcSuck);
-                            // _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(reslut));//websocketserver杩欑鍙兘浼犵粰鍓嶇json鏍煎紡
-                        }
-                        if (rightPLcOher == true && rightPLcSuck == false)
-                        {
-                            string text = "杞ㄩ亾涓�锛氬叾浠栨晠闅滄姤璀�";
-                            var reslut = _alarmResetHsyServer.AddAlarmHsy(text, rightPLcOher);
-                        }
-                        if (rightPLcSuck == true && rightPLcOher == true)//濡傛灉鎶ヨ浜�
-                        {
-                            string text = "杞ㄩ亾涓�锛氭姤璀︿几缂╁崱浣忔姤璀﹀拰鍏朵粬鏁呴殰鎶ヨ";
-                            var reslut = _alarmResetHsyServer.AddAlarmHsy(text, rightPLcOher);//娣诲姞鏁版嵁
-                        }
-                        var alrt = _alarmResetHsyServer.GetWebSocketInfo();
-                        _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(alrt));
+                        string text = $"杞ㄩ亾{deid}锛氬乏PLC鏈繛鎺�";
+                        //var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, false);//娣诲姞鏁版嵁
                     }
-                  
+                    
+                    try
+                    {
+                        if (devices.Value.right.IsConnected)//鏄惁杩炴帴涓�
+                        {
+                            //鍙硃lc
+                            var rightPLcSuck = devices.Value.right.Communicator.Read<bool>("M109"); //鍗′綇鎶ヨ
+                            var rightPLcOher = devices.Value.right.Communicator.Read<bool>("M111");//鍏朵粬鎶ヨ
+                            var rightPLcNowAdd = devices.Value.right.Communicator.Read<float>("D80");
+                            Console.WriteLine($"{devices.Value.right.DeviceName}:鍗′綇鎶ヨ{rightPLcSuck}锛屽叾浠栨姤璀rightPLcOher}");
+                            if (rightPLcSuck == true && rightPLcOher == false)
+                            {
+                                string text = $"杞ㄩ亾{deid}锛氭姤璀︿几缂╁崱浣忔姤璀�";
+                                //鎶ヨ浜嗗湪杩欒皟鐢ㄦ坊鍔犳柟娉曪紝骞朵紶缁欏墠绔�
+                                var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, rightPLcSuck);
+                                // _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(reslut));//websocketserver杩欑鍙兘浼犵粰鍓嶇json鏍煎紡
+                            }
+                            if (rightPLcOher == false && rightPLcSuck == true)
+                            {
+                                string text = $"杞ㄩ亾{deid}锛氬叾浠栨晠闅滄姤璀�";
+                                var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, rightPLcOher);
+                            }
+                            if (rightPLcSuck == true && rightPLcOher == true)//濡傛灉鎶ヨ浜�
+                            {
+                                string text = $"杞ㄩ亾{deid}锛氭姤璀︿几缂╁崱浣忔姤璀﹀拰鍏朵粬鏁呴殰鎶ヨ";
+                                var reslut = _alarmResetHsyServer.AddAlarmHsy(deid, text, rightPLcOher);//娣诲姞鏁版嵁
+                            }
+                            _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(new {
+                                device="鍙砅lc",
+                                Rightvalue= rightPLcNowAdd
+                            }));//鎶奃80缁欏墠绔�
+
+                        }
+                    }
+                    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)
+        {
+            // 宸﹁澶囧彿锛�1 -> 001锛�2 -> 003锛�3 -> 005...
+            int baseCode = 1 + (deptId - 1) * 2;
+            string leftCode = $"SSG{baseCode.ToString("D3")}";
+            string rightCode = $"SSG{(baseCode + 1).ToString("D3")}";
+
+            var left = (OtherDevice)Storage.Devices.Find(x => x.DeviceCode == leftCode);
+            var right = (OtherDevice)Storage.Devices.Find(x => x.DeviceCode == rightCode);
+
+            
+            //if (left == null || right == null)
+            //    return null;
+
+            return (left, right);
+        }
     }
 }
+
+

--
Gitblit v1.9.3