コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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));
        }
コード例 #4
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);
            }
        }