yanjinhui
2025-05-08 dce06906b2757824ad6ecfd02c1ff04ee8e9ad20
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs
@@ -11,6 +11,11 @@
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_TelescopicService;
<<<<<<< Updated upstream:项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs
=======
using WIDESEAWCS_ISystemServices;
using WIDESEAWCS_Core.Helper;
>>>>>>> Stashed changes:project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs
namespace WIDESEAWCS_Tasks
{
@@ -28,16 +33,113 @@
            _alarmResetHsyServer = alarmResetHsyServer;
        }
        /// <summary>
        /// è¿™ä¸ªåˆ°æ—¶å€™æ ¹æ®çŽ°åœºæƒ…å†µæ¥é…ç½®ï¼Œè®¾å¤‡å·å’ŒçŽ°åœºæƒ…å†µæ¥å®šã€‚
        /// ä¸€ä¸ªè½¨é“俩个plc
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        //public Task Execute(IJobExecutionContext context)
        //{
        //    try
        //    {
        //        //获取设备号
        //        // èŽ·å–è®¾å¤‡é…ç½®
        //        OtherDevice serialPortDevice = (OtherDevice)context.JobDetail.JobDataMap.Get("JobParams");
        //        if (serialPortDevice!=null)
        //        {
        //            //首先要一直读,如果发生了故障要写到_alarmResetHsyServer中记录下来并且给到前端数据
        //            //å·¦plc
        //            if (serialPortDevice.DeviceCode == "SSG001")
        //            {
        //                var leftPLcstuck = serialPortDevice.Communicator.Read<bool>("M104"); //卡住报警
        //                var leftPLcOher = serialPortDevice.Communicator.Read<bool>("M105");  //其他报警 //默认是false
        //                Console.WriteLine($"{serialPortDevice.DeviceName}:卡住报警{leftPLcstuck},其他报警{leftPLcOher}");
        //                if (leftPLcstuck == true && leftPLcOher == false)
        //                   //if (leftPLcOher == 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);
        //                }
        //                var alrt = _alarmResetHsyServer.GetWebSocketInfo();
        //                _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(alrt));//websocketserver这种只能传给前端json格式
        //            }
        //            else if (serialPortDevice.DeviceCode == "SSG002")
        //            {
        //                //右plc
        //                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));
        //            }
        //        }
        //    }
        //    catch (Exception ex)
        //    {
        //        Console.WriteLine("错误信息:" + ex.Message);
        //        Console.WriteLine(ex.StackTrace);
        //    }
        //    return Task.CompletedTask;
        //}
        public Task Execute(IJobExecutionContext context)
        {
            try
            {
<<<<<<< Updated upstream:项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs
=======
>>>>>>> Stashed changes:project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs
                //获取设备号
                // èŽ·å–è®¾å¤‡é…ç½®
                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中记录下来并且给到前端数据
<<<<<<< Updated upstream:项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs
                    if (serialPortDevice.DeviceName=="左汇川PLC")
                    {
                        //å·¦plc
@@ -49,18 +151,36 @@
                           //if (leftPLcOher == false)
                            {
                            string text = "伸缩卡住报警";
=======
                    //å·¦plc
                    var leftPLcstuck1 = devices.Value.left.Communicator.Read<bool>("M104"); //卡住报警
                        var leftPLcOher1 = devices.Value.left.Communicator.Read<bool>("M105");  //其他报警 //默认是false
                        Console.WriteLine($"{devices.Value.left.DeviceName}:默认是false,现在卡住报警值:{leftPLcstuck1},现在其他报警值:{leftPLcOher1}");
                        if (leftPLcstuck1 == true && leftPLcOher1 == false)
                        //if (leftPLcOher1 == false)
                        {
                            string text =$"轨道{deid}:伸缩卡住报警";
>>>>>>> Stashed changes:project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs
                            //报警了在这调用添加方法,并传给前端
                             var reslut = _alarmResetHsyServer.AddAlarmHsy(text, leftPLcstuck);
                            var reslut = _alarmResetHsyServer.AddAlarmHsy(text, leftPLcstuck1);
                           
                        }
                        if (leftPLcOher == true && leftPLcstuck == false)
                        if (leftPLcstuck1 == true && leftPLcOher1 == false)
                        {
<<<<<<< Updated upstream:项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs
                            string text = "其他故障报警";
                            var reslut = _alarmResetHsyServer.AddAlarmHsy(text, leftPLcstuck);
                            
=======
                            string text = $"轨道{deid}:其他故障报警";
                            var reslut = _alarmResetHsyServer.AddAlarmHsy(text, leftPLcstuck1);
>>>>>>> Stashed changes:project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs
                        }
                        if (leftPLcstuck == true && leftPLcOher == true)//如果报警了
                        if (leftPLcstuck1 == true && leftPLcOher1 == true)//如果报警了
                        {
<<<<<<< Updated upstream:项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs
                            string text = "报警伸缩卡住报警和其他故障报警";
                            var reslut = _alarmResetHsyServer.AddAlarmHsy(text, leftPLcstuck);
                          
@@ -77,26 +197,52 @@
                        if (rightPLcSuck == true && rightPLcOher == false)
                        {
                            string text = "报警伸缩卡住报警";
=======
                            string text = $"轨道{deid}:报警伸缩卡住报警和其他故障报警";
                            var reslut = _alarmResetHsyServer.AddAlarmHsy(text, leftPLcstuck1);
                        }
                        //右plc
                        var rightPLcSuck = devices.Value.right.Communicator.Read<bool>("M104"); //卡住报警
                        var rightPLcOher = devices.Value.right.Communicator.Read<bool>("M105");//其他报警
                        Console.WriteLine($"{devices.Value.right.DeviceName}::默认是false,现在卡住报警值:{rightPLcSuck},:现在其他报警值:{rightPLcOher}");
                        if (rightPLcSuck == true && rightPLcOher == false)
                        {
                            string text = $"轨道{deid}:报警伸缩卡住报警";
>>>>>>> Stashed changes:project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs
                            //报警了在这调用添加方法,并传给前端
                             var reslut = _alarmResetHsyServer.AddAlarmHsy(text, rightPLcSuck);
                            // _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(reslut));//websocketserver这种只能传给前端json格式
                        }
                        if (rightPLcOher == true && rightPLcSuck == false)
                        {
<<<<<<< Updated upstream:项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs
                            string text = "其他故障报警";
=======
                            string text = $"轨道{deid}:其他故障报警";
>>>>>>> Stashed changes:project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs
                            var reslut = _alarmResetHsyServer.AddAlarmHsy(text, rightPLcOher);
                        }
                        if (rightPLcSuck == true && rightPLcOher == true)//如果报警了
                        {
<<<<<<< Updated upstream:项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs
                            string text = "报警伸缩卡住报警和其他故障报警";
=======
                            string text = $"轨道{deid}:报警伸缩卡住报警和其他故障报警";
>>>>>>> Stashed changes:project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs
                            var reslut = _alarmResetHsyServer.AddAlarmHsy(text, rightPLcOher);//添加数据
                           
                        }
                        var alrt = _alarmResetHsyServer.GetWebSocketInfo();
                        _webSocketServer.PublishAllClientPayload(JsonConvert.SerializeObject(alrt));
<<<<<<< Updated upstream:项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs
                    } 
                }
=======
                    }
>>>>>>> Stashed changes:project/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SSG/AlarmResetJob.cs
            }
            catch (Exception ex)
            {
@@ -106,5 +252,20 @@
            }
            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);
        }
    }
}