/// <summary> /// 通过分站号查询手动控制 /// </summary> /// <param name="wz"></param> /// <returns></returns> public static IList <Jc_JcsdkzInfo> QueryJCSDKZbyInf(int Type, string ZkPoint, string BkPoint) { //IJC_JCSDKZService JCSDKZService = ServiceFactory.CreateService<IJC_JCSDKZService>(); //return JCSDKZService.QueryJCSDKZbyInf( Type, ZkPoint, BkPoint) ; //var req = new ManualCrossControlCacheGetByConditionRequest //{ // Predicate = // a => // (a.Bkpoint == BkPoint) && (a.Type == Type) && (a.ZkPoint == ZkPoint) && // (a.InfoState != InfoState.Delete) //}; //var res = ManualCrossControlCacheService.GetManualCrossControlByDynamicCondition(req); var req = new ManualCrossControlGetByTypeZkPointBkPointRequest { Type = Type, ZkPoint = ZkPoint, BkPoint = BkPoint }; var res = ManualCrossControlCacheService.GetManualCrossControlByTypeZkPointBkPoint(req); if (!res.IsSuccess) { throw new Exception(res.Message); } return(res.Data); }
/// <summary> /// 传感器分级报警输出 /// </summary> /// <param name="analysisConfigInfo"></param> /// <param name="analysistemplatealarmlevelInfo"></param> private void AnalysistemplateAlarmLevelHandle(JC_LargedataAnalysisConfigInfo analysisConfigInfo, Jc_AnalysistemplatealarmlevelInfo analysistemplatealarmlevelInfo) { try { //如果分析配置成立,则添加手动控制 if (analysisConfigInfo.AnalysisResult == 2) { string level = analysistemplatealarmlevelInfo.Level.ToString(); if (analysisConfigInfo.AnalysisSuccessfulPointList.Count > 0) { List <Jc_JcsdkzInfo> jckzinfos = new List <Jc_JcsdkzInfo>(); List <Jc_JcsdkzInfo> updatejckzinfos = new List <Jc_JcsdkzInfo>(); analysisConfigInfo.AnalysisSuccessfulPointList.ForEach(point => { //判断是否存在同一配置被控测点的控制缓存,如果不存在则新增一条控制 ManualCrossControlGetByTypeZkPointBkPointRequest mcrequest = new ManualCrossControlGetByTypeZkPointBkPointRequest(); mcrequest.Type = 12; mcrequest.ZkPoint = analysisConfigInfo.Id; mcrequest.BkPoint = point.Point; var kzinfo = manualCrossControlService.GetManualCrossControlByTypeZkPointBkPoint(mcrequest).Data.FirstOrDefault(); if (kzinfo == null) { Jc_JcsdkzInfo JkInfo = new Jc_JcsdkzInfo(); JkInfo.ID = IdHelper.CreateLongId().ToString(); JkInfo.Type = 12; JkInfo.ZkPoint = analysisConfigInfo.Id; JkInfo.Bkpoint = point.Point; JkInfo.Upflag = level; jckzinfos.Add(JkInfo); } else if (kzinfo.Upflag != level) { kzinfo.Upflag = level; updatejckzinfos.Add(kzinfo); } }); //删除已经结束的分级报警传感器 20180919 List <Jc_JcsdkzInfo> manualCrossControlList = manualCrossControlService.GetAllManualCrossControl().Data.FindAll(a => a.Upflag != "0"); foreach (Jc_JcsdkzInfo manualCrossControl in manualCrossControlList) { bool isInanalysisConfigInfo = false; foreach (AnalysisSuccessfulPointInfo point in analysisConfigInfo.AnalysisSuccessfulPointList) { if (point.Point == manualCrossControl.Bkpoint) { isInanalysisConfigInfo = true; break; } } if (!isInanalysisConfigInfo)//如果在当前成立的表达式中没有找到对应交叉控制测点的表达式,则清除传感器分级报警 { manualCrossControl.Upflag = "0"; updatejckzinfos.Add(manualCrossControl); } } if (jckzinfos.Count > 0) { ManualCrossControlsRequest batchinsertrequest = new ManualCrossControlsRequest(); batchinsertrequest.ManualCrossControlInfos = jckzinfos; manualCrossControlService.AddManualCrossControls(batchinsertrequest); } if (updatejckzinfos.Count > 0) { ManualCrossControlsRequest updaterequest = new ManualCrossControlsRequest(); updaterequest.ManualCrossControlInfos = updatejckzinfos; manualCrossControlService.UpdateManualCrossControls(updaterequest); } } } //如果分析不成立,则修改报警等级为0 else { ManualCrossControlGetByTypeZkPointRequest mcrequest = new ManualCrossControlGetByTypeZkPointRequest(); mcrequest.Type = 12; mcrequest.ZkPoint = analysisConfigInfo.Id; var kzinfo = manualCrossControlService.GetManualCrossControlByTypeZkPoint(mcrequest).Data; if (kzinfo.Count > 0) { kzinfo.ForEach(kz => kz.Upflag = "0"); ManualCrossControlsRequest updaterequest = new ManualCrossControlsRequest(); updaterequest.ManualCrossControlInfos = kzinfo; manualCrossControlService.UpdateManualCrossControls(updaterequest); } } } catch (Exception ex) { LogHelper.Info("传感器分级报警输出出错!" + ex.Message); } }
/// <summary> /// 通过类型、主控测点号、被控测点号查询手动/交叉控制 /// </summary> /// <param name="manualCrossControlCacheRequest"></param> /// <returns></returns> public BasicResponse <List <Jc_JcsdkzInfo> > GetManualCrossControlByTypeZkPointBkPoint(ManualCrossControlGetByTypeZkPointBkPointRequest ManualCrossControlRequest) { BasicResponse <List <Jc_JcsdkzInfo> > Result = new BasicResponse <List <Jc_JcsdkzInfo> >(); ManualCrossControlCacheGetByConditionRequest manualCrossControlCacheRequest = new ManualCrossControlCacheGetByConditionRequest(); manualCrossControlCacheRequest.Predicate = a => a.Bkpoint == ManualCrossControlRequest.BkPoint && a.ZkPoint == ManualCrossControlRequest.ZkPoint && a.Type == ManualCrossControlRequest.Type; var result = _ManualCrossControlCacheService.GetManualCrossControlCache(manualCrossControlCacheRequest); Result.Data = result.Data; return(Result); }