private void GetGridControlDataSource() { _sysEmergencyLinkageInfo = sysEmergencyLinkageService.GetSysEmergencyLinkageById(new Sys.Safety.Request.SysEmergencyLinkage.SysEmergencyLinkageGetRequest { Id = _emergencyLinkageId }).Data; //普通联动获取监控主控测点 if (_sysEmergencyLinkageInfo != null && _sysEmergencyLinkageInfo.Type == 1) { realInfos = sysEmergencyLinkageService.GetAllMasterPointsById(new Sys.Safety.Request.SysEmergencyLinkage.SysEmergencyLinkageGetRequest { Id = _emergencyLinkageId }).Data.Select(o => new DefInfoExtend { Point = o.Point, Wz = o.Wz, DevName = o.DevName, Ssz = o.Ssz, DataState = EnumHelper.GetEnumDescription((DeviceDataState)o.DataState), State = EnumHelper.GetEnumDescription((DeviceRunState)o.State), }).ToList(); } //大数据分析联动获取分析模型 else if (_sysEmergencyLinkageInfo != null && _sysEmergencyLinkageInfo.Type == 2) { var analysisConfigs = largedataAnalysisConfigCacheService.GetAllLargeDataAnalysisConfigCache(new Sys.Safety.Request.LargeDataAnalysisCacheClientGetAllRequest()).Data; if (analysisConfigs != null && analysisConfigs.Count > 0) { analysisConfig = analysisConfigs.Where(o => o.Id == _sysEmergencyLinkageInfo.MasterModelId).Select(o => new AnalysisConfigExtend { Name = o.Name, Result = o.AnalysisResult == 2 ? o.TrueDescription : o.FalseDescription }).ToList(); } } }
public Basic.Framework.Web.BasicResponse <List <Sys.Safety.DataContract.Jc_DefInfo> > GetAllMasterPointsById(Sys.Safety.Request.SysEmergencyLinkage.SysEmergencyLinkageGetRequest request) { return(_sysEmergencyLinkageService.GetAllMasterPointsById(request)); }
/// <summary> /// 获取应急联动实时主控和被控测点 /// </summary> private string RefreshRealPoint() { try { string jsonStr = string.Empty; if (!string.IsNullOrEmpty(selectid)) { var selectSysEmergencyLinkageInfo = SysEmergencyLinkageInfos.FirstOrDefault(o => o.Id == selectid); //获取选中应急联动配置的主控测点 SysEmergencyLinkageGetRequest getrequest = new SysEmergencyLinkageGetRequest(); getrequest.Id = selectid; var masterpoints = sysEmergencyLinkageService.GetAllMasterPointsById(getrequest).Data; //如果不存在主控测点,则获取关联大数据分析模型配置 if (masterpoints.Count > 0) { masterpoints.ForEach(o => { jsonStr += o.Point + "|"; }); } else if (!string.IsNullOrEmpty(selectSysEmergencyLinkageInfo.MasterModelId)) { var analysisConfigs = largedataAnalysisConfigCacheService.GetAllLargeDataAnalysisConfigCache(new Sys.Safety.Request.LargeDataAnalysisCacheClientGetAllRequest()).Data; if (analysisConfigs != null && analysisConfigs.Count > 0) { var analysisConfig = analysisConfigs.FirstOrDefault(o => o.Id == selectSysEmergencyLinkageInfo.MasterModelId); if (analysisConfig != null) { jsonStr += analysisConfig.Name + "|"; } } } //获取选中应急联动配置的被控测点 //如果应急联动配置存在被控区域,则获取此区域的人员设备和广播设备 if (selectSysEmergencyLinkageInfo.PassiveAreas.Count > 0) { selectSysEmergencyLinkageInfo.PassiveAreas.ForEach(area => { //处理区域广播呼叫 var bdefinforesponse = bdefService.GetAllPointDefineCache(); if (bdefinforesponse.IsSuccess) { var areabdefinfos = bdefinforesponse.Data.Where(b => b.Areaid == area.AreaId).ToList(); areabdefinfos.ForEach(def => jsonStr += def.Point + "|"); } //处理区域人员呼叫 var rdefinforesponse = rdefService.GetAllPointDefineCache(); if (rdefinforesponse.IsSuccess) { var areardefinfos = rdefinforesponse.Data.Where(b => b.Areaid == area.AreaId).ToList(); areardefinfos.ForEach(def => jsonStr += def.Point + "|"); } }); } //如果应急联动配置存在被控人员,则获取被控人员实时识别器列表 if (selectSysEmergencyLinkageInfo.PassivePersons.Count > 0) { var prealinfos = prealService.GetAllPrealCacheList(new RPrealCacheGetAllRequest()).Data; if (prealinfos != null) { selectSysEmergencyLinkageInfo.PassivePersons.ForEach(p => { var personreponse = personinfoService.GetAllDefinedPersonInfoCache(new BasicRequest()); if (personreponse.IsSuccess) { var person = personinfoService.GetPersoninfCache(new R_PersoninfGetRequest() { Id = p.PersonId }).Data; var preal = prealinfos.FirstOrDefault(pr => pr.Bh == person.Bh); if (preal != null) { var persondef = rdefService.GetPointDefineCacheByPointID(new PointDefineGetByPointIDRequest { PointID = preal.Pointid }).Data; if (persondef != null && !jsonStr.Contains(persondef.Point)) { jsonStr += persondef.Point + "|"; } } } }); } } //如果应急联动配置存在被控设备,则根据类型获取被控测点 if (selectSysEmergencyLinkageInfo.PassivePoints.Count > 0) { selectSysEmergencyLinkageInfo.PassivePoints.ForEach(p => { //人员定位 if (p.Sysid == (int)SystemEnum.Personnel) { var rdef = rdefService.GetPointDefineCacheByPointID(new PointDefineGetByPointIDRequest { PointID = p.PointId }).Data; if (rdef != null && !jsonStr.Contains(rdef.Point)) { jsonStr += rdef.Point + "|"; } } //广播 else if (p.Sysid == (int)SystemEnum.Broadcast) { var bdef = bdefService.GetPointDefineCacheByPointID(new PointDefineGetByPointIDRequest { PointID = p.PointId }).Data; var bdefpoints = jsonStr.Split('|'); if (bdef != null && !bdefpoints.Contains(bdef.Point)) { jsonStr += bdef.Point + "|"; } } //视频 else if (p.Sysid == (int)SystemEnum.Video) { var vdef = vdefService.GetDefById(new Sys.Safety.Request.Def.DefGetRequest { Id = p.PointId }).Data; if (vdef != null && !jsonStr.Contains(vdef.IPAddress)) { jsonStr += vdef.IPAddress + "|"; } } }); } if (jsonStr.LastIndexOf('|') > 0) { jsonStr = jsonStr.Substring(0, jsonStr.Length - 1); } } return(jsonStr); } catch (Exception ex) { LogHelper.Info("获取应急联动配置主控被控测点出错:" + ex.Message); return(string.Empty); } }