/// <summary> /// 更新主机实时数据 /// </summary> /// <param name="datas">待更新的数据</param> /// <returns></returns> public string UpdatedHostTimeDatas(params HostRealTimeDataInputDto[] datas) { try { int count = 0; HostRealTimeDataRepository.UnitOfWork.BeginTransaction(); foreach (var d in datas) { var value = HostRealTimeDataRepository.TrackEntities.FirstOrDefault(m => m.HostOne.RegPackage == d.RegPackage); if (value != null) { Guid Id = value.Id; var result = d.MapTo(value); result.Id = Id; result.IsOnline = true; count += HostRealTimeDataRepository.Update(result); if (d.EnergyConsumption != 0 && d.EnergyConsumption != -1) { AddEnergyConsumption(value.Host_Id, value.HostOne.Organize_Id, d.EnergyConsumption); } } } HostRealTimeDataRepository.UnitOfWork.Commit(); return(count > 0 ? $"主机实时数据更新影响数据{count}条" : "提交的主机实时数据更新未发生任何改变"); } catch (Exception ex) { return(ex.Message); } }
/// <summary> /// 更新主机应答信息 /// </summary> /// <param name="_0X61_In">数据</param> /// <returns></returns> public OperationResult UpdatedHost_0x61(Host_0x61_In _0X61_In) { var value = HostRealTimeDataRepository.TrackEntities.FirstOrDefault(m => m.HostOne.RegPackage == _0X61_In.RegPackage); if (value != null) { value.Latitude = _0X61_In.Latitude; value.Longitude = _0X61_In.Longitude; value.TimeZone = _0X61_In.TimeZone; value.UpdateTime = DateTime.Now; return(HostRealTimeDataRepository.Update(value) > 0 ? new OperationResult(OperationResultType.Success, $"主机:{_0X61_In.RegPackage} 请求应答的参数更新成功!") : new OperationResult(OperationResultType.NoChanged, $"主机:{_0X61_In.RegPackage} 请求应答的参数更新未发生改变!")); } else { return(new OperationResult(OperationResultType.QueryNull, $"主机:{_0X61_In.RegPackage} 不存在")); } }
/// <summary> /// 设置主机警报信息 /// </summary> /// <param name="repack">主机注册包</param> /// <param name="index">警报类型序号</param> /// <returns></returns> private int SetHostAlert(string repack, int index) { int row = 0; // 获取目标主机信息 var host = HostRepository.Entities.FirstOrDefault(m => m.RegPackage == repack); if (index == 0) { //主机断线时更新主机在线状态 HostRealTimeData hostReal = HostRealTimeDataRepository.TrackEntities.FirstOrDefault(m => m.Host_Id == host.Id); hostReal.IsOnline = false; HostRealTimeDataRepository.Update(hostReal); } // 获取警报类型字典信息(超压 Index = 1) var ditem = DataItemDetailRepository.Entities.FirstOrDefault(m => m.QueryCoding == "InformationType" && m.Index == index); if (host != null && ditem != null) { // 获取管理该组织机构的用户信息 var user_orgs = UserOrganizeMapRepository.Entities.Where(m => m.Organize_Id == host.Organize_Id).ToList(); if (user_orgs != null) { foreach (var user in user_orgs) { row += InformationRepository.Insert(new Information { CreatedTime = DateTime.Now, DataItemDetail_Id = ditem.Id, IsReaded = false, ObjectId = host.Id, Organize_Id = host.Organize_Id, TypeIndex = ditem.Index, TypeName = ditem.FullName, UserLogin_Id = user.UserLogin_Id }); } } } return(row); }