From a4b847ed80658fe17e27373dc16162ef0d1966f8 Mon Sep 17 00:00:00 2001 From: TianMaiCheng <746290578@qq.com> Date: Mon, 12 Jan 2026 15:37:04 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=99=E5=AE=9D=E9=95=9C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=96=B0=E7=9A=84=E5=8A=9F=E8=83=BD=E5=AD=97=E6=AE=B5=EF=BC=8C?= =?UTF-8?q?=20PMS=E7=B3=BB=E7=BB=9F=E6=95=B0=E6=8D=AE=E6=A0=BC=E5=BC=8F=20?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 给宝镜推送 新功能,增加 RCU离 在线的功能 --- CRICS_V3_1124.suo | Bin 12780544 -> 12780544 bytes Common/OnOffLineData.cs | 2 + Common/XuanZhuOperation.cs | 7 + CommonEntity/CacheKey.cs | 3 + CommonEntity/DataTongJi.cs | 20 +++ ConsoleApplication2/Program.cs | 2 + RCUHost/Implement/HostServer.cs | 143 +++++++++++++++----- RCUHost/Implement/New_RoomStatusReceiver.cs | 17 ++- RCUHost/Implement/RoomStatusReceiver.cs | 17 ++- WebSite/Controllers/IoTController.cs | 17 ++- 10 files changed, 185 insertions(+), 43 deletions(-) diff --git a/CRICS_V3_1124.suo b/CRICS_V3_1124.suo index fd26002953866d984421fcf16615bbf148a1239b..f464c84ab3bc7dd3726e61aabd8abdf2f014d888 100644 GIT binary patch delta 84246 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�vbl1gVlY%rceUgchA8 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 QuL9Ztukj;Kw>xJ3Ka%5lxBvhE diff --git a/Common/OnOffLineData.cs b/Common/OnOffLineData.cs index 55d34c8..8e96055 100644 --- a/Common/OnOffLineData.cs +++ b/Common/OnOffLineData.cs @@ -10,8 +10,10 @@ namespace Common public string HotelCode { get; set; } public string MAC { get; set; } public string HostNumber { get; set; } + public string RoomNumber { get; set; } public string EndPoint { get; set; } public string CurrentStatus { get; set; } public DateTime CurrentTime { get; set; } + } } diff --git a/Common/XuanZhuOperation.cs b/Common/XuanZhuOperation.cs index 96c628d..f276c63 100644 --- a/Common/XuanZhuOperation.cs +++ b/Common/XuanZhuOperation.cs @@ -137,6 +137,13 @@ namespace Common /// public int valve { get; set; } } + public class XuanZhuResponse_Fault + { + public XuanZhuResponse data { get; set; } + public DateTime updatetime { get; set; } + + public string url { get; set; } + } public class XuanZhuResponse { /// diff --git a/CommonEntity/CacheKey.cs b/CommonEntity/CacheKey.cs index 7fb01f8..57f2eda 100644 --- a/CommonEntity/CacheKey.cs +++ b/CommonEntity/CacheKey.cs @@ -125,6 +125,9 @@ namespace CommonEntity public static string WebChatDeviceFault = "WXFault"; public static string DuOSToken = "DuOSToken"; public static string XuanZhuKafka = "XZ_DeviceStatusChange"; + public static string FaultKey_ = "FaultKey_"; + + public static string ServerStartTime = "ServerStartTime"; } public class ChangLiangValue { diff --git a/CommonEntity/DataTongJi.cs b/CommonEntity/DataTongJi.cs index 1d531a2..208e72b 100644 --- a/CommonEntity/DataTongJi.cs +++ b/CommonEntity/DataTongJi.cs @@ -233,7 +233,27 @@ namespace CommonEntity public string Mac { get; set; } public string EndPoint { get; set; } public string Version { get; set; } + /// + /// 这个叫是否 取电 取断电状态 + /// public bool IsTakeCard { get; set; } + + /// + ///短离长离 + ///我们这里叫卡事件 + /// + public ushort CardEvent { get; set; } + + /// + /// 卡身份 + /// + public ushort CardID { get; set; } + + /// + /// PMS 状态 + /// + public string PMS_Status { get; set; } + public int CarbonVIP { get; set; } public double V { get; set; } public double A { get; set; } diff --git a/ConsoleApplication2/Program.cs b/ConsoleApplication2/Program.cs index b9280bf..3d50bf8 100644 --- a/ConsoleApplication2/Program.cs +++ b/ConsoleApplication2/Program.cs @@ -249,6 +249,8 @@ namespace ConsoleApplication2 } static void Main(string[] args) { + var DDD = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.ffffff"); + Console.WriteLine(DDD); var qqqhj = CSRedisCacheHelper.Get_Partition("HostModalStatusReceiver_13_000000001"); var qq223= JsonConvert.DeserializeObject(File.ReadAllText("3.txt")); RedisTest(); diff --git a/RCUHost/Implement/HostServer.cs b/RCUHost/Implement/HostServer.cs index 46e61cf..dafae84 100644 --- a/RCUHost/Implement/HostServer.cs +++ b/RCUHost/Implement/HostServer.cs @@ -63,6 +63,7 @@ namespace RCUHost.Implement #endregion + //public System.Timers.Timer FaultReport = new System.Timers.Timer(); #region Public Properies /// @@ -155,6 +156,12 @@ namespace RCUHost.Implement /// public void Start() { + var DDD = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.ffffff"); + CSRedisCacheHelper.Forever(CacheKey.ServerStartTime, DDD); + //FaultReport.Interval = 10000; + //FaultReport.Elapsed += new System.Timers.ElapsedEventHandler(FaultReport_Elapsed); + //FaultReport.Start(); + Close(); //CSRedisCacheHelper.StreamAdd(1,UDPAllDataKey, data); @@ -183,14 +190,62 @@ namespace RCUHost.Implement } }, i, TaskCreationOptions.LongRunning); } + } catch (Exception ex) { logger.Error("Host Server启动失败,端口:3339"); Close(); - //throw ex;//不能去掉,否则重启iis服务,通讯服务不会再次启动 + throw ex;//不能去掉,否则重启iis服务,通讯服务不会再次启动 } } + + + //public Random rs = new Random(); + ///// + ///// 定时上报 错误 + ///// + ///// + ///// + //void FaultReport_Elapsed(object sender, System.Timers.ElapsedEventArgs e) + //{ + // try + // { + + // //FaultReport.Stop(); + // string FaultKey = CacheKey.FaultKey_; + // //string FFFFFKey = HotelCode + "_" + host.RoomNumber + "_" + hostModal.Modal.ModalAddress; + // var data = CSRedisCacheHelper.HMGetAll(5, FaultKey); + // foreach (var item in data) + // { + // var key = item.Key; + // var val = item.Value; + // var v = JsonConvert.DeserializeObject(val); + // TimeSpan span = DateTime.Now - v.updatetime; + // if (span.TotalSeconds <= 20) + // { + // var fault_data = new Tuple(v.url, v.data); + // Task.Factory.StartNew((State) => + // { + // var DDD = State as Tuple; + // string Res_P = MyHttp.SendHttpData(DDD.Item1, DDD.Item1); + // //XuanZhuOperation.ReportService(DDD.Item1, DDD.Item2); + // logger.Error("Fault Return:" + ""); + // }, fault_data); + // } + // } + // } + // catch (Exception) + // { + + // } + // finally + // { + // var ts = rs.Next(10000, 15000); + // FaultReport.Interval = ts; + // FaultReport.Start(); + // } + //} /// /// 关闭 HostServer /// @@ -1180,22 +1235,37 @@ namespace RCUHost.Implement if (true) { #region 只要有数据包,就是心跳 - - string Key = context111.SystemHeader.Value.HostNumber.ToString(); - string EEE = CSRedisCacheHelper.Get(Key); - if (string.IsNullOrEmpty(EEE)) - { - OnOffLineData o = new OnOffLineData(); - o.HostNumber = Key; - o.HotelCode = hotelCode; - o.CurrentStatus = "on"; - o.CurrentTime = DateTime.Now; - o.EndPoint = context111.RemoteEndPoint.ToString(); - //新来的数据 - var n = Newtonsoft.Json.JsonConvert.SerializeObject(o); - //CSRedisCacheHelper.Publish("redis-on_off_line", n); - } string EndPointStr = context111.RemoteEndPoint.ToString(); + + OnOffLineData o = new OnOffLineData(); + string RoomNUMBER = CSRedisCacheHelper.HMGet(5, CacheKey.RoomNumber_HostNumber, HostNNN)[0]; + if (!string.IsNullOrEmpty(RoomNUMBER)) + { + o.RoomNumber = RoomNUMBER; + } + o.HostNumber = HostNNN; + o.HotelCode = hotelCode; + o.CurrentStatus = "on"; + o.CurrentTime = DateTime.Now; + o.EndPoint = EndPointStr; + //新来的数据 + var n = Newtonsoft.Json.JsonConvert.SerializeObject(o); + CSRedisCacheHelper.Set_PartitionWithTime(EndPointStr, n, 5, 4); + + + //上线 + string EEE = CSRedisCacheHelper.Get(EndPointStr); + var dtstart = CSRedisCacheHelper.ForeverGet(CacheKey.ServerStartTime); + DateTime SSS = DateTime.Now; + DateTime.TryParse(dtstart, out SSS); + TimeSpan ssspan = DateTime.Now - SSS; + if (string.IsNullOrEmpty(EEE) && ssspan.TotalMinutes > 5) + { + CSRedisCacheHelper.Publish("redis-on_off_line", n); + } + + + CSRedisCacheHelper.Set(context111.SystemHeader.Value.HostNumber.ToString(), context111.RemoteEndPoint.Address.ToString() + ":" + context111.RemoteEndPoint.Port.ToString());//主机编码 string KKF = context111.SystemHeader.Value.HostNumber.ToString(); @@ -1830,27 +1900,18 @@ namespace RCUHost.Implement //取电 var TakeCardStatus = reader.ReadByte(); - //string QUDIANKey = CacheKey.NewVersionDeviceStatus + "_" + HostNNN; - //var hostModal = CSRedisCacheHelper.HMGet(1, QUDIANKey, "004000001"); - - //if (hostModal[0] != null) - //{ - // hostModal[0].Status = TakeCardStatus; - // CSRedisCacheHelper.HMSet(1, QUDIANKey, "004000001", hostModal); - //} - //else - //{ - // NewVersionDeviceStatus n = new NewVersionDeviceStatus(); - // n.Status = TakeCardStatus; - // n.HotelCode = CODE; - // n.HostNumber = HostNNN; - // n.ModalType = DeviceType.ServiceInfo; - // n.UpdateTime = DateTime.Now; - // CSRedisCacheHelper.HMSet(1, QUDIANKey, "004000001", n); - //} - //身份 var IdentityInfo = reader.ReadByte(); + + //无卡逻辑状态(对应事件状态) + //0x01:开门进入事件 + //0x02:卡在人离事件 + //0x03:无卡人离事件 + //0x04:室内雷达有人事件 + //0x05:室内雷达无人事件 + //0x06:室内按键触发 + //0x07:短暂人离事件 + //0x08:长时间人离事件 var NOCardInfo = reader.ReadByte(); //服务信息全部回路状态 1~64 64Bit 0 :关 1:开 @@ -1858,6 +1919,7 @@ namespace RCUHost.Implement var N = reader.ReadBytes(8); BitArray bitlist = new BitArray(N); + #region 服务信息 for (int i = 0; i < bitlist.Length; i++) { if (i == 1) @@ -1908,7 +1970,9 @@ namespace RCUHost.Implement // CSRedisCacheHelper.HMSet(1, QUDIANKey, "004000" + SerNo, n); //} } + #endregion + string PMS_CurrentStatus = ""; //PMS房态 //定时上报,之后要设置房态,要用0C //只会上报 01 出租,02退房 @@ -1923,6 +1987,10 @@ namespace RCUHost.Implement //IReceiver receiver1 = receivers[CommandType.RoomStatusChanged]; //(receiver1 as RoomStatusChangedReceiver).SendRoomStatusSelfWithFrameNo("111", "2222", new RoomStatus { ID = 10 }, framenolist);//处理业务逻辑 + if (Q != null) + { + PMS_CurrentStatus = Q.Status.Name; + } if (Q != null && PMS != Q.Status.ID) { IReceiver receiver = receivers[CommandType.RoomStatusChanged]; @@ -2027,7 +2095,10 @@ namespace RCUHost.Implement CreateTime = n.CreateTime, ReportTime = n.ReportTime.ToString("yyyy-MM-dd HH:mm:ss"), AllDeviceData = DeviceStatusList, - IdentityInfo = IdentityInfo + IdentityInfo = IdentityInfo, + CardID = IdentityInfo, + CardEvent = NOCardInfo, + PMS_Status = PMS_CurrentStatus }; string mns = Newtonsoft.Json.JsonConvert.SerializeObject(ns2); diff --git a/RCUHost/Implement/New_RoomStatusReceiver.cs b/RCUHost/Implement/New_RoomStatusReceiver.cs index 1198635..ad5c7b0 100644 --- a/RCUHost/Implement/New_RoomStatusReceiver.cs +++ b/RCUHost/Implement/New_RoomStatusReceiver.cs @@ -1269,7 +1269,8 @@ namespace RCUHost.Implement if (XuanZhuHotelData.dataArray.Contains(int.Parse(codesss))) { XuanZhuRequest resp5 = new XuanZhuRequest(); - resp5.code = host.SysHotel.Code; + //resp5.code = host.SysHotel.Code; + resp5.code = host.SysHotel.Code + "@" + host.SysHotel.CreatedDate.ToString("yyyy-MM-dd"); resp5.roomNumber = host.RoomNumber; resp5.devicetype = hostModal.ModalType.ToString(); resp5.address = hostModal.Modal.ModalAddress; @@ -1644,6 +1645,7 @@ namespace RCUHost.Implement }; string KKK = CacheKey.WebChatDeviceFault + "_" + resp1.code + "_" + resp1.roomNumber; CSRedisCacheHelper.redis_webchat.HMSet(KKK, resp1.address, resp1); + //出现异常信息时上报 if (!string.IsNullOrEmpty(host.SysHotel.FaultPushURL)) { @@ -1657,6 +1659,19 @@ namespace RCUHost.Implement faultType = fault.Value.Type, faultData = fault.Value.Data }; + + + //XuanZhuResponse_Fault hfault = new XuanZhuResponse_Fault() + //{ + // data = resp, + // updatetime = DateTime.Now, + // url = host.SysHotel.FaultPushURL + //}; + + //string FaultKey = CacheKey.FaultKey_; + //string FFFFFKey = HotelCode + "_" + host.RoomNumber + "_" + hostModal.Modal.ModalAddress; + //CSRedisCacheHelper.HMSet(5, 60, FaultKey, FFFFFKey, resp); + //var u = Newtonsoft.Json.JsonConvert.SerializeObject(resp); //logger.Error("logger report fault: "+u); var fault_data = new Tuple(host.SysHotel.FaultPushURL, resp); diff --git a/RCUHost/Implement/RoomStatusReceiver.cs b/RCUHost/Implement/RoomStatusReceiver.cs index 7139d04..e274273 100644 --- a/RCUHost/Implement/RoomStatusReceiver.cs +++ b/RCUHost/Implement/RoomStatusReceiver.cs @@ -1906,7 +1906,7 @@ namespace RCUHost.Implement if (XuanZhuHotelData.dataArray.Contains(int.Parse(codesss))) { XuanZhuRequest resp1 = new XuanZhuRequest(); - resp1.code = host.SysHotel.Code; + resp1.code = host.SysHotel.Code + "@" + host.SysHotel.CreatedDate.ToString("yyyy-MM-dd"); resp1.roomNumber = host.RoomNumber; resp1.devicetype = hostModal.ModalType.ToString(); resp1.address = hostModal.Modal.ModalAddress; @@ -1938,8 +1938,8 @@ namespace RCUHost.Implement else { string NoKey = CacheKey.HostModalStatus_BoolFilterPrefix + "_" + host.ID + "_" + device.Value.Address; - var expiredata = new Random().Next(10, 50); - CSRedisCacheHelper.Set_PartitionWithTime(NoKey, 1, expiredata); + //var expiredata = new Random().Next(10, 50); + CSRedisCacheHelper.Set_PartitionWithTime(NoKey, 1, 30); //logger.Error("内存和数据库都不见这条数据:" + KKey); } #endregion @@ -2202,6 +2202,17 @@ namespace RCUHost.Implement faultType = fault.Value.Type, faultData = fault.Value.Data }; + + //XuanZhuResponse_Fault hfault = new XuanZhuResponse_Fault() + // { + // data = resp, + // updatetime = DateTime.Now, + // url = host.SysHotel.FaultPushURL + // }; + + //string FaultKey = CacheKey.FaultKey_; + //string FFFFFKey = HotelCode + "_" + host.RoomNumber + "_" + hostModal.Modal.ModalAddress; + //CSRedisCacheHelper.HMSet(5, 60, FaultKey, FFFFFKey, resp); //var u = Newtonsoft.Json.JsonConvert.SerializeObject(resp); //logger.Error("logger report fault: "+u); var fault_data = new Tuple(host.SysHotel.FaultPushURL, resp); diff --git a/WebSite/Controllers/IoTController.cs b/WebSite/Controllers/IoTController.cs index 3645f9d..f4c2035 100644 --- a/WebSite/Controllers/IoTController.cs +++ b/WebSite/Controllers/IoTController.cs @@ -7238,6 +7238,11 @@ namespace WebSite.Controllers //艺龙酒店(绥化北林万达广场店) {"1668326697184","1213"} }; + public class GGG + { + public string DeviceName { get; set; } + public string Address { get; set; } + } [HttpPost()] public ActionResult ETV_Controller() @@ -7313,7 +7318,7 @@ namespace WebSite.Controllers IOTMonitorData i = new IOTMonitorData(); i.RemoteIP = IP; i.Step = 0; - string ti =DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.ffffff"); + string ti = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.ffffff"); i.CreateTime = DateTime.Now; i.TriggerTime = ti; i.HotelId = hotelid; @@ -7417,6 +7422,8 @@ namespace WebSite.Controllers HttpContext.Cache.Insert(Hkey, hostModals, null, DateTime.Now.AddMinutes(30), Cache.NoSlidingExpiration); } } + + List lla = new List(); // hostmodal只需要 address 和type // device.Address = hostModal.Modal.ModalAddress; // device.Type = hostModal.Modal.Type @@ -7433,7 +7440,7 @@ namespace WebSite.Controllers } else { - q1 = hostModals.Where(A => A.Modal.Name.Equals(name)||A.Modal.AliasName.Equals(name)).ToList(); + q1 = hostModals.Where(A => A.Modal.Name.Equals(name) || A.Modal.AliasName.Equals(name)).ToList(); } if (q1 != null && q1.Count > 0) { @@ -7452,6 +7459,9 @@ namespace WebSite.Controllers brightness = 0; } Thread.Sleep(50); + GGG vva = new GGG() { DeviceName = item_inter.Modal.Name, Address = item_inter.Modal.ModalAddress }; + + lla.Add(vva); HostModalManager.SetDevice(host, item_inter, status, brightness); } } @@ -7570,7 +7580,8 @@ namespace WebSite.Controllers i.RoomNumber = roomNo; i.RequestId = msgid; i.Platform = "ETV"; - i.CommandDescription = "success"; + + i.CommandDescription = "success: 控制设备"+JsonConvert.SerializeObject(lla); SendMQTTData.Send(i); } return Json(new { code = 200, msg = "控制成功" }, JsonRequestBehavior.AllowGet);