qiuyao
2025-04-28 1dcc7b63a20daad7c7060f18878d8e8dbaad02de
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/AlarmResetHsyServer.cs
@@ -1,4 +1,8 @@
using System;
using HslCommunication.WebSocket;
using Newtonsoft.Json;
using SqlSugar;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -6,6 +10,7 @@
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_DTO.Telescopic;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
@@ -14,9 +19,10 @@
    public class AlarmResetHsyServer : ServiceBase<Dt_AlarmResetHsy, IRepository<Dt_AlarmResetHsy>>, IAlarmResetHsyServer
    {
        public IRepository<Dt_AlarmResetHsy> Repository => BaseDal;
        public AlarmResetHsyServer(IRepository<Dt_AlarmResetHsy> BaseDal) : base(BaseDal)
        private readonly WebSocketServer _webSocketServer;
        public AlarmResetHsyServer(IRepository<Dt_AlarmResetHsy> BaseDal, WebSocketServer webSocketServer) : base(BaseDal)
        {
            _webSocketServer = webSocketServer;
        }
@@ -34,11 +40,98 @@
                 AlarmTime=DateTime.Now,
            };
            BaseDal.AddData(alarm);
            return base.AddData(alarm);
            return new WebResponseContent { Status=true, Data = alarm };
        }
       
        public WebResponseContent GetWebSocketInfo()
        {
            try
            {
                // æŸ¥è¯¢å¹¶æŽ’序,确保 ResetStatus ä¸º true çš„记录排在前面,并按 CreateDate é™åºæŽ’列
                // var query = Db.Queryable<Dt_AlarmResetHsy>()
                // .OrderBy(x => new { ResetStatus = SqlFunc.IsNull(x.ResetStatus, false), x.CreateDate }, OrderByType.Desc); // æŒ‰ ResetStatus ä¸º true æŽ’在前,并按 CreateDate é™åº
                var query = BaseDal.QueryData().OrderByDescending(x => x.ResetStatus). ThenByDescending(x => x.CreateDate);  // å†æŒ‰ CreateDate é™åº;
                // å¦‚果需要根据其他字段进行过滤或模糊查询,可以在此添加
                return new WebResponseContent
                {
                    Status = true,
                    Message = "查询成功",
                    Data = query
                };
            }
            catch (Exception ex)
            {
                // å¼‚常捕获和错误返回
                return new WebResponseContent { Status = false, Message = "错误:" + ex.Message };
            }
        }
        /// <summary>
        /// å°†è¡¨ä¸­çŠ¶æ€å…¨éƒ¨ä¸ºtrue的改为false
        /// </summary>
        /// <param name="status"></param>
        /// <returns></returns>
        public WebResponseContent BecomeTrue()
        {
            var query=BaseDal.QueryData(x=>x.ResetStatus==true).ToList();
            // å¦‚果没有找到符合条件的数据
            if (query.Count == 0)
            {
                return new WebResponseContent { Status = false, Message = "没有要复位数据" };
            }
            foreach (var item in query)
            {
                item.ResetStatus = false;
                item.ResetTime = DateTime.Now;
            }
            // æ‰§è¡Œæ‰¹é‡æ›´æ–°æ“ä½œ
            var updateResult = BaseDal.UpdateData(query);
            // æ£€æŸ¥æ›´æ–°æ˜¯å¦æˆåŠŸ
            if (updateResult)
            {
                return new WebResponseContent { Status = true, Message = "数据已成功复位", Data = query };
            }
            else
            {
                return new WebResponseContent { Status = false, Message = "复位操作失败" };
            }
        }
        public WebResponseContent UpstreamInspectionRoad(UpstreamIDTO upstreamIDTO)
        {
            try
            {
                // å°† upstreamIDTO è½¬æˆ JSON å­—符串
                var json = JsonConvert.SerializeObject(upstreamIDTO);
                // æŽ¨é€åˆ°æ‰€æœ‰ WebSocket å®¢æˆ·ç«¯
                _webSocketServer.PublishAllClientPayload(json);
                return new WebResponseContent { Status = true, Message = "推送成功" };
            }
            catch (Exception ex)
            {
                // å‡ºçŽ°å¼‚å¸¸ï¼Œè¿”å›žå¤±è´¥
                return new WebResponseContent { Status = false, Message = "推送失败:" + ex.Message };
            }
        }
    }
}