public BasicResponse <SysEmergencyLinkageInfo> GetSysEmergencyLinkageById( SysEmergencyLinkageGetRequest sysEmergencyLinkageRequest) { var result = _Repository.GetSysEmergencyLinkageById(sysEmergencyLinkageRequest.Id); var sysEmergencyLinkageInfo = ObjectConverter.Copy <SysEmergencyLinkageModel, SysEmergencyLinkageInfo>(result); var sysEmergencyLinkageresponse = new BasicResponse <SysEmergencyLinkageInfo>(); sysEmergencyLinkageresponse.Data = sysEmergencyLinkageInfo; return(sysEmergencyLinkageresponse); }
public BasicResponse <List <Jc_DefInfo> > GetAllMasterPointsById(SysEmergencyLinkageGetRequest request) { List <Jc_DefInfo> masterpoints = new List <Jc_DefInfo>(); EmergencyLinkageConfigCacheGetByKeyRequest getrequest = new EmergencyLinkageConfigCacheGetByKeyRequest(); getrequest.Id = request.Id; SysEmergencyLinkageInfo item = _sysEmergencyLinkageCacheService.GetSysEmergencyLinkageCacheByKey(getrequest).Data; PointDefineCacheGetByConditonRequest pointgetrequest = new PointDefineCacheGetByConditonRequest(); if (item != null && !string.IsNullOrEmpty(item.MasterAreaAssId) && item.MasterAreaAssId != "0") { item.MasterAreas.ForEach(area => { pointgetrequest.Predicate = p => p.Areaid == area.AreaId; var areapoints = _pointDefineCacheService.GetPointDefineCache(pointgetrequest).Data; masterpoints.AddRange(areapoints); }); } else if (item != null && !string.IsNullOrEmpty(item.MasterDevTypeAssId) && item.MasterDevTypeAssId != "0") { item.MasterDevTypes.ForEach(devtype => { pointgetrequest.Predicate = p => p.Devid == devtype.DevId; var areapoints = _pointDefineCacheService.GetPointDefineCache(pointgetrequest).Data; masterpoints.AddRange(areapoints); }); } else if (item != null && !string.IsNullOrEmpty(item.MasterPointAssId) && item.MasterPointAssId != "0") { item.MasterPoint.ForEach(point => { pointgetrequest.Predicate = p => p.PointID == point.PointId; var pointdefine = _pointDefineCacheService.GetPointDefineCache(pointgetrequest).Data.FirstOrDefault(); masterpoints.Add(pointdefine); }); } var response = new BasicResponse <List <Jc_DefInfo> >(); response.Data = masterpoints; return(response); }
public BasicResponse <List <Jc_DefInfo> > GetAllMasterPointsById(SysEmergencyLinkageGetRequest request) { var responseStr = HttpClientHelper.Post(Webapi + "/v1/SysEmergencyLinkage/GetAllMasterPointsById?token=" + Token, JSONHelper.ToJSONString(request)); return(JSONHelper.ParseJSONString <BasicResponse <List <Jc_DefInfo> > >(responseStr)); }
/// <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); } }