示例#1
0
        private void cmb_adr_SelectedIndexChanged(object sender, EventArgs e)
        {
            obj.clear();
            obj.analogpoint = cmb_adr.Text;
            List <Jc_DefInfo>      pointDefineList   = pointDefineService.GetAllPointDefineCache().Data;
            List <R_PrealInfo>     prealInfoList     = r_PrealService.GetAllPrealCacheList(new RPrealCacheGetAllRequest()).Data;
            List <R_PersoninfInfo> personinfInfoList = r_PersoninfService.GetAllPersonInfoCache(new BasicRequest()).Data;

            getmsg(pointDefineList, prealInfoList, personinfInfoList);
            realshow();
        }
示例#2
0
        private void cmb_adr_SelectedIndexChanged(object sender, EventArgs e)
        {
            obj.clear();

            R_KqbcInfo DefaultKqbc = r_KqbcService.GetDefaultKqbcCache(new RKqbcCacheGetByConditionRequest()).Data;

            List <R_PrealInfo>     prealInfoList     = r_PrealService.GetAllPrealCacheList(new RPrealCacheGetAllRequest()).Data;
            List <R_PersoninfInfo> personinfInfoList = r_PersoninfService.GetAllPersonInfoCache(new BasicRequest()).Data;
            List <Jc_DefInfo>      pointdefList      = personPointDefineService.GetAllPointDefineCache().Data;

            getmsg(DefaultKqbc, prealInfoList, personinfInfoList, pointdefList);
            realshow();
        }
        public static List <Jc_DefInfo> GetAllPersonPointInfo()
        {
            List <Jc_DefInfo> items = new List <Jc_DefInfo>();
            var result = personPointDefineService.GetAllPointDefineCache();

            if (result.IsSuccess && result.Data != null)
            {
                items = result.Data;
            }
            return(items);
        }
示例#4
0
        /// <summary>
        /// 获取所有测点的实时值
        /// </summary>
        /// <returns>返回格式:测点号,实时值,设备状态,数据状态值,是否报警(1:报警,0:不报警),数据状态文本,设备状态文本,人员定位设备是否呼叫(1:井上呼叫,2,井下呼叫,3,井上和惊吓呼叫,0:不呼叫)</returns>
        private void setAllPointSsz()
        {
            _rwLocker.AcquireWriterLock(-1);
            try
            {
                PointSsz.Clear();
                string pointssz = string.Empty;

                //修改为从实时缓存中读取数据
                DataTable pointsdt = PointInMap;

                var       pointResponse = graphicsbaseinfService.GetDefPointInformationInCache();
                DataTable pointsszdt    = ObjectConverter.ToDataTable <Jc_DefInfo>(pointResponse.Data);

                var       masResponse = graphicsbaseinfService.GetSwitchInformationInCache();
                DataTable dt_ip       = ObjectConverter.ToDataTable <Jc_MacInfo>(masResponse.Data);

                //应急联动配置
                var SysEmergencyLinkageInfos = sysEmergencyLinkageService.GetAllSysEmergencyLinkageList().Data;

                //大数据分析模型
                var largeDataAnalysisInfos = largeDataAnalysisCacheClientService.GetAllLargeDataAnalysisConfigCache(new LargeDataAnalysisCacheClientGetAllRequest()).Data;

                //人员定位
                var prealinfos = prealSerive.GetAllPrealCacheList(new RPrealCacheGetAllRequest()).Data;
                var rdefinfos  = rdefService.GetAllPointDefineCache().Data;
                if (prealinfos == null)
                {
                    prealinfos = new List <R_PrealInfo>();
                }
                var rcallinfos = rcallService.GetAllRCallCache(new RCallCacheGetAllRequest()).Data;

                //视频
                var videoinfos = vdefService.GetAllVideoDefCache().Data;
                //广播
                var bdefinfos = _bdefService.GetAllPointDefineCache().Data;

                //当前应急联动配置
                var currSysEmergencyLinkageInfo = SysEmergencyLinkageInfos.FirstOrDefault(o => o.Id == SysEmergencyLinkageInfoId);
                //应急联动呼叫关联MasterId
                var masterid = "";
                if (currSysEmergencyLinkageInfo != null)
                {
                    masterid = currSysEmergencyLinkageInfo.Type == 2 ? currSysEmergencyLinkageInfo.MasterModelId : currSysEmergencyLinkageInfo.Id;
                }

                dt_ip.Columns.Add("ssz");
                dt_ip.Columns.Add("type");
                DataView dv = pointsszdt.DefaultView;
                dv.Sort    = "alarm Asc";
                pointsszdt = dv.ToTable();
                foreach (DataRow tmpdr in dt_ip.Rows)
                {
                    DataRow drtemp = pointsszdt.NewRow();
                    drtemp["state"]     = tmpdr["state"];
                    drtemp["datastate"] = tmpdr["state"];
                    drtemp["Point"]     = tmpdr["IP"];
                    drtemp["ID"]        = tmpdr["ID"];
                    DataRow[] drstateIP = dtStateVal.Select("lngEnumValue='" + tmpdr["state"].ToString() + "'");
                    if (drstateIP.Length > 0)
                    {
                        drtemp["ssz"]   = drstateIP[0]["strEnumDisplay"].ToString();
                        drtemp["alarm"] = "0";
                    }
                    else
                    {
                        drtemp["ssz"]   = "未知";
                        drtemp["alarm"] = "0";
                    }
                    pointsszdt.Rows.InsertAt(drtemp, 0);
                }

                for (int i = 0; i < pointsdt.Rows.Count; i++)
                {
                    pointssz = "";
                    string callstate = "0";
                    pointssz += pointsdt.Rows[i]["Point"].ToString() + ",";

                    int sysid = Convert.ToInt32(pointsdt.Rows[i]["SysId"].ToString());
                    switch (sysid)
                    {
                    case 0:
                    case (int)SystemEnum.Security:
                        pointssz += SecurityHandle(pointsdt, i, pointsszdt);
                        break;

                    case (int)SystemEnum.Broadcast:
                        pointssz += BroadCastHandle(pointsdt, i, bdefinfos);
                        break;

                    case (int)SystemEnum.Personnel:
                        pointssz += PersonnelHandle(pointsdt, i, pointsszdt, rdefinfos, rcallinfos, prealinfos, masterid, ref callstate);
                        break;

                    case (int)SystemEnum.Video:
                        pointssz += VideoHandle(pointsdt, i, videoinfos, currSysEmergencyLinkageInfo, SysEmergencyLinkageInfos);
                        break;

                    case -1:
                        pointssz += AnalysisConfigHandle(pointsdt, i, largeDataAnalysisInfos);
                        break;

                    default:
                        pointssz += "无数据,0,46,0,未知,未知";
                        break;
                    }

                    pointssz += "," + callstate;
                    PointSsz.Add(pointssz);
                }

                isConnLose = false;
            }
            catch (Exception ex)
            {
                LogHelper.Error("RefPointSsz-setAllPointSsz" + ex.Message + ex.StackTrace);
                isConnLose = true;
            }
            finally
            {
                _rwLocker.ReleaseWriterLock();
            }
        }
示例#5
0
        private void PointEdit_Load(object sender, EventArgs e)
        {
            try
            {
                string type = "0";//加载类型(0:所有测点,1:分站,2:所有传感器,3:交换机,4:开关量,5:模拟量,6:控制量,7:开关量和控制量)
                if (!string.IsNullOrWhiteSpace(EditPointZoomLevel))
                {
                    string[] zoomLevelArr = EditPointZoomLevel.Split('$');
                    this.spinEdit6.Value = int.Parse(zoomLevelArr[0]);
                    this.spinEdit7.Value = int.Parse(zoomLevelArr[1]);
                }


                if (Program.main.GraphOpt.getGraphicNowType() == 3)//SVG组态图形,不判断缩放等级
                {
                    this.spinEdit6.Value = 0;
                    this.spinEdit7.Value = 0;
                }

                if (EditPointBindType == "2" || EditPointBindType == "1")//SVG图元、拓扑图元
                {
                    spinEdit3.Enabled = true;
                    spinEdit4.Enabled = true;
                }
                else
                {
                    spinEdit3.Enabled = false;
                    spinEdit4.Enabled = false;
                }

                if (EditPointBindType == "2")//SVG图元
                {
                    this.spinEdit6.Enabled = true;
                    this.spinEdit7.Enabled = true;
                }
                //else
                //{
                //    this.spinEdit6.Enabled = false;
                //    this.spinEdit7.Enabled = false;
                //}
                if (EditPointBindType == "2" || EditPointBindType == "3")//SVG图元,gif图元
                {
                    spinEdit2.Enabled = true;
                }
                else
                {
                    spinEdit2.Enabled = false;
                }


                //加载测点信息,包括交换机测点
                //dt = Program.main.GraphOpt.LoadAllpointDef(type);

                var definfos = rdefService.GetAllPointDefineCache().Data;
                gridControl1.DataSource = definfos;
                //设置选择状态
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    if (EditPoint.Contains(gridView1.GetDataRow(i).ItemArray[0].ToString()))
                    {
                        gridView1.FocusedRowHandle = i;
                    }
                }

                //设置绑定动画的状态
                spinEdit2.Value = decimal.Parse(EditPointanimationState);

                if (!string.IsNullOrEmpty(EditPointWidth) && !string.IsNullOrEmpty(EditPointHeight))
                {
                    spinEdit3.Value = decimal.Parse(EditPointWidth);
                    spinEdit4.Value = decimal.Parse(EditPointHeight);
                }
                else
                {
                    spinEdit3.Value = 0;
                    spinEdit4.Value = 0;
                }
                //加载双击页面跳转
                IList <GraphicsbaseinfInfo> GraphicsbaseinfDTOs = Program.main.GraphOpt.getAllGraphicDto();
                foreach (GraphicsbaseinfInfo GraphicsbaseinfDTO_ in GraphicsbaseinfDTOs)
                {
                    comboBoxEdit1.Properties.Items.Add(GraphicsbaseinfDTO_.GraphName);
                }
                if (!string.IsNullOrEmpty(EidtPointTurnToPage))
                {
                    comboBoxEdit1.Text = EidtPointTurnToPage;
                }
            }
            catch (Exception ex)
            {
                LogHelper.Error("PointDefEdit_PointEdit_Load" + ex.Message + ex.StackTrace);
            }
        }
        public BasicResponse AddEmergencylinkageconfigMasterInfoPassiveInfo(
            AddEmergencylinkageconfigMasterInfoPassiveInfoRequest request)
        {
            var exist = _Repository.AnySysEmergencyLinkageByLambda(a => a.Name == request.SysEmergencyLinkageInfo.Name && a.Activity == 1);

            if (exist)
            {
                return(new BasicResponse()
                {
                    Code = 1,
                    Message = "应急联动名称已存在!"
                });
            }

            //同一个大数据分析模型只能配置一个联动
            var masterModelId = request.SysEmergencyLinkageInfo.MasterModelId;

            if (masterModelId != "0")
            {
                var req4 = new EmergencyLinkageConfigCacheGetByConditonRequest
                {
                    Predicate = a => a.MasterModelId == masterModelId
                };
                var res4 = _sysEmergencyLinkageCacheService.GetSysEmergencyLinkageCache(req4);
                if (res4.Data.Count != 0)
                {
                    return(new BasicResponse()
                    {
                        Code = 2,
                        Message = "同一个大数据分析模型只能配置一个应急联动!"
                    });
                }
            }

            request.SysEmergencyLinkageInfo.Id = IdHelper.CreateLongId().ToString();

            //主控测点关联id
            if (request.EmergencyLinkageMasterPointAssInfo.Count != 0)
            {
                request.SysEmergencyLinkageInfo.MasterPointAssId = IdHelper.CreateLongId().ToString();
            }
            else
            {
                request.SysEmergencyLinkageInfo.MasterPointAssId = "0";
            }

            //主控设备类型关联id
            if (request.EmergencyLinkageMasterDevTypeAssInfo.Count != 0)
            {
                request.SysEmergencyLinkageInfo.MasterDevTypeAssId = IdHelper.CreateLongId().ToString();
            }
            else
            {
                request.SysEmergencyLinkageInfo.MasterDevTypeAssId = "0";
            }

            //主控区域关联id
            if (request.EmergencyLinkageMasterAreaAssInfo.Count != 0)
            {
                request.SysEmergencyLinkageInfo.MasterAreaAssId = IdHelper.CreateLongId().ToString();
            }
            else
            {
                request.SysEmergencyLinkageInfo.MasterAreaAssId = "0";
            }

            request.SysEmergencyLinkageInfo.MasterTriDataStateAssId = IdHelper.CreateLongId().ToString();       //主控触发数据状态

            //被控测点关联id
            if (request.EmergencyLinkagePassivePointAssInfo.Count != 0)
            {
                request.SysEmergencyLinkageInfo.PassivePointAssId = IdHelper.CreateLongId().ToString();
            }
            else
            {
                request.SysEmergencyLinkageInfo.PassivePointAssId = "0";
            }

            //被控区域关联id
            if (request.EmergencyLinkagePassiveAreaAssInfo.Count != 0)
            {
                request.SysEmergencyLinkageInfo.PassiveAreaAssId = IdHelper.CreateLongId().ToString();
            }
            else
            {
                request.SysEmergencyLinkageInfo.PassiveAreaAssId = "0";
            }

            //被控人员关联id
            if (request.EmergencyLinkagePassivePersonAssInfo.Count != 0)
            {
                request.SysEmergencyLinkageInfo.PassivePersonAssId = IdHelper.CreateLongId().ToString();
            }
            else
            {
                request.SysEmergencyLinkageInfo.PassivePersonAssId = "0";
            }

            foreach (var item in request.EmergencyLinkageMasterAreaAssInfo)
            {
                item.Id = IdHelper.CreateLongId().ToString();
                item.MasterAreaAssId = request.SysEmergencyLinkageInfo.MasterAreaAssId;
            }

            foreach (var item in request.EmergencyLinkageMasterDevTypeAssInfo)
            {
                item.Id = IdHelper.CreateLongId().ToString();
                item.MasterDevTypeAssId = request.SysEmergencyLinkageInfo.MasterDevTypeAssId;
            }

            foreach (var item in request.EmergencyLinkageMasterPointAssInfo)
            {
                item.Id = IdHelper.CreateLongId().ToString();
                item.MasterPointAssId = request.SysEmergencyLinkageInfo.MasterPointAssId;
            }

            foreach (var item in request.EmergencyLinkageMasterTriDataStateAssInfo)
            {
                item.Id = IdHelper.CreateLongId().ToString();
                item.MasterTriDataStateAssId = request.SysEmergencyLinkageInfo.MasterTriDataStateAssId;
            }

            foreach (var item in request.EmergencyLinkagePassiveAreaAssInfo)
            {
                item.Id = IdHelper.CreateLongId().ToString();
                item.PassiveAreaAssId = request.SysEmergencyLinkageInfo.PassiveAreaAssId;
            }

            foreach (var item in request.EmergencyLinkagePassivePersonAssInfo)
            {
                item.Id = IdHelper.CreateLongId().ToString();
                item.PassivePersonAssId = request.SysEmergencyLinkageInfo.PassivePersonAssId;
            }

            var req = new V_DefCacheGetAllRequest();
            var res = _vDefCacheService.GetAll(req);

            if (res.Code != 100)
            {
                throw new Exception(res.Message);
            }
            var allVideoPoint = res.Data;     //所有视频系统测点

            var res2 = _personPointDefineService.GetAllPointDefineCache();

            if (res2.Code != 100)
            {
                throw new Exception(res2.Message);
            }
            var allPersonPoint = res2.Data;     //所有人员定位系统测点

            var req3 = new B_DefCacheGetAllRequest();
            var res3 = _bDefCacheService.GetAll(req3);

            if (res3.Code != 100)
            {
                throw new Exception(res3.Message);
            }
            var allBroadcastPoint = res3.Data;      //所有广播系统测点


            foreach (var item in request.EmergencyLinkagePassivePointAssInfo)
            {
                item.Id = IdHelper.CreateLongId().ToString();
                item.PassivePointAssId = request.SysEmergencyLinkageInfo.PassivePointAssId;

                var existMonitoringPoint = allVideoPoint.Any(a => a.Id == item.PointId);
                if (existMonitoringPoint)
                {
                    item.Sysid = 74;
                }

                var existPersonPoint = allPersonPoint.Any(a => a.PointID == item.PointId);
                if (existPersonPoint)
                {
                    item.Sysid = 11;
                }

                var existBroadcastPoint = allBroadcastPoint.Any(a => a.PointID == item.PointId);
                if (existBroadcastPoint)
                {
                    item.Sysid = 12;
                }
            }

            request.SysEmergencyLinkageInfo.EditTime     = DateTime.Now;
            request.SysEmergencyLinkageInfo.Activity     = 1;
            request.SysEmergencyLinkageInfo.DeletePerson = "";
            request.SysEmergencyLinkageInfo.DeleteTime   = Convert.ToDateTime("1900-01-01");
            request.SysEmergencyLinkageInfo.Bz1          = "";
            request.SysEmergencyLinkageInfo.Bz2          = "";
            request.SysEmergencyLinkageInfo.Bz3          = "";

            TransactionsManager.BeginTransaction(() =>
            {
                var model = ObjectConverter.Copy <SysEmergencyLinkageInfo, SysEmergencyLinkageModel>(request.SysEmergencyLinkageInfo);
                _Repository.AddSysEmergencyLinkage(model);

                foreach (var item in request.EmergencyLinkageMasterAreaAssInfo)
                {
                    var model2 = ObjectConverter
                                 .Copy <EmergencyLinkageMasterAreaAssInfo, EmergencyLinkageMasterAreaAssModel>(item);
                    _emergencyLinkageMasterAreaAssRepository.AddEmergencyLinkageMasterAreaAss(model2);
                }
                foreach (var item in request.EmergencyLinkageMasterDevTypeAssInfo)
                {
                    var model3 = ObjectConverter
                                 .Copy <EmergencyLinkageMasterDevTypeAssInfo, EmergencyLinkageMasterDevTypeAssModel>(item);
                    _emergencyLinkageMasterDevTypeAssRepository.AddEmergencyLinkageMasterDevTypeAss(model3);
                }
                foreach (var item in request.EmergencyLinkageMasterPointAssInfo)
                {
                    var model4 = ObjectConverter
                                 .Copy <EmergencyLinkageMasterPointAssInfo, EmergencyLinkageMasterPointAssModel>(item);
                    _emergencyLinkageMasterPointAssRepository.AddEmergencyLinkageMasterPointAss(model4);
                }
                foreach (var item in request.EmergencyLinkageMasterTriDataStateAssInfo)
                {
                    var model5 = ObjectConverter
                                 .Copy <EmergencyLinkageMasterTriDataStateAssInfo, EmergencyLinkageMasterTriDataStateAssModel>(
                        item);
                    _emergencyLinkageMasterTriDataStateAssRepository.AddEmergencyLinkageMasterTriDataStateAss(model5);
                }
                foreach (var item in request.EmergencyLinkagePassiveAreaAssInfo)
                {
                    var model6 = ObjectConverter
                                 .Copy <EmergencyLinkagePassiveAreaAssInfo, EmergencyLinkagePassiveAreaAssModel>(item);
                    _emergencyLinkagePassiveAreaAssRepository.AddEmergencyLinkagePassiveAreaAss(model6);
                }
                foreach (var item in request.EmergencyLinkagePassivePersonAssInfo)
                {
                    var model7 = ObjectConverter
                                 .Copy <EmergencyLinkagePassivePersonAssInfo, EmergencyLinkagePassivePersonAssModel>(item);
                    _emergencyLinkagePassivePersonAssRepository.AddEmergencyLinkagePassivePersonAss(model7);
                }
                foreach (var item in request.EmergencyLinkagePassivePointAssInfo)
                {
                    var model8 = ObjectConverter
                                 .Copy <EmergencyLinkagePassivePointAssInfo, EmergencyLinkagePassivePointAssModel>(item);
                    _emergencyLinkagePassivePointAssRepository.AddEmergencyLinkagePassivePointAss(model8);
                }
            });

            //更新缓存
            request.SysEmergencyLinkageInfo.MasterAreas           = request.EmergencyLinkageMasterAreaAssInfo;
            request.SysEmergencyLinkageInfo.MasterDevTypes        = request.EmergencyLinkageMasterDevTypeAssInfo;
            request.SysEmergencyLinkageInfo.MasterPoint           = request.EmergencyLinkageMasterPointAssInfo;
            request.SysEmergencyLinkageInfo.MasterTriDataStates   = request.EmergencyLinkageMasterTriDataStateAssInfo;
            request.SysEmergencyLinkageInfo.PassiveAreas          = request.EmergencyLinkagePassiveAreaAssInfo;
            request.SysEmergencyLinkageInfo.PassivePersons        = request.EmergencyLinkagePassivePersonAssInfo;
            request.SysEmergencyLinkageInfo.PassivePoints         = request.EmergencyLinkagePassivePointAssInfo;
            request.SysEmergencyLinkageInfo.EmergencyLinkageState = 0;

            var req2 = new EmergencyLinkageConfigCacheAddRequest
            {
                SysEmergencyLinkageInfo = request.SysEmergencyLinkageInfo
            };

            _sysEmergencyLinkageCacheService.AddSysEmergencyLinkageCache(req2);

            return(new BasicResponse());
        }
示例#7
0
 public BasicResponse <List <Jc_DefInfo> > GetAllPointDefineCache()
 {
     return(_PointDefineService.GetAllPointDefineCache());
 }
示例#8
0
        /// <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);
            }
        }