yanjinhui
2025-06-09 ac93c4092a21dbf0fa9cf8b9b1302f2d5d183f61
project/ºǫ́¹ÜÀí/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/AlarmResetHsyServer.cs
@@ -10,9 +10,11 @@
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_DTO.Telescopic;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob;
namespace WIDESEAWCS_TelescopicService
{
@@ -31,10 +33,11 @@
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public  WebResponseContent AddAlarmHsy(string alarmContent, bool resetStatus)
        public  WebResponseContent AddAlarmHsy(int deptid, string alarmContent, bool resetStatus)
        {
            var alarm = new Dt_AlarmResetHsy
            {
                  Deptid = deptid,
                 AlarmContent= alarmContent,
                 ResetStatus= resetStatus,
                 AlarmTime=DateTime.Now,
@@ -87,6 +90,41 @@
            {
                return new WebResponseContent { Status = false, Message = "没有要复位数据" };
            }
            // èŽ·å–æ‰€æœ‰ä¸åŒçš„ DeptId(每个代表一个PLC)
            var deptIds = query.Select(x => x.Deptid).Distinct();
            foreach (var deptId in deptIds)
            {
                try
                {
                    var devices = GetDevicesByDeptId(deptId);
                    try
                    {
                        devices.Value.left.Communicator.Write<bool>("M105", true);
                    }
                    catch (Exception)
                    {
                    }
                    try
                    {
                        devices.Value.right.Communicator.Write<bool>("M105", true);
                    }
                    catch (Exception)
                    {
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"向 DeptId={deptId} çš„PLC写入失败:" + ex.Message);
                    // å¯ä»¥é€‰æ‹©ç»§ç»­æˆ–中断
                }
            }
            foreach (var item in query)
            {
                item.ResetStatus = false;
@@ -127,7 +165,43 @@
                return new WebResponseContent { Status = false, Message = "推送失败:" + ex.Message };
            }
        }
        public WebResponseContent DeleteAllinform()
        {
            try
            {
                //找到该轨道站的全部信息
                var alarm = BaseDal.QueryData().ToList();
                if (alarm.Count < 0)
                {
                    return new WebResponseContent { Status = false, Message = $"没有要删除的报警信息" };
                }
                //找到后全部删除
                var reslut = BaseDal.DeleteData(alarm);
                return new WebResponseContent { Status = true, Message = "删除成功", Data = reslut };
            }
            catch (Exception ex)
            {
                return new WebResponseContent { Status = false, Message = ex.Message };
            }
        }
        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);
        }
    }
}