yanjinhui
2025-06-09 ac93c4092a21dbf0fa9cf8b9b1302f2d5d183f61
project/ºǫ́¹ÜÀí/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/AlarmResetHsyServer.cs
@@ -14,6 +14,7 @@
using WIDESEAWCS_DTO.Telescopic;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob;
namespace WIDESEAWCS_TelescopicService
{
@@ -89,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;
@@ -151,6 +187,21 @@
                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);
        }
    }
}