Ejemplo n.º 1
0
 public BasicResponse <bool> HasRegionOutageForAnalysisModel(GetByAnalysisModelIdRequest getByAnalysisModelIdRequest)
 {
     return(_regionOutageConfigService.HasRegionOutageForAnalysisModel(getByAnalysisModelIdRequest));
 }
        /// <summary>
        /// 删除分析模型
        /// </summary>
        /// <param name="jc_LargedataAnalysisConfigRsequest">删除分析模型的请求对象</param>
        /// <returns>Mas应答对象</returns>
        public BasicResponse DeleteLargeDataAnalysisConfig(LargedataAnalysisConfigDeleteRequest jc_LargedataAnalysisConfigRsequest)
        {
            var jC_Largedataanalysisconfigresponse = new BasicResponse();

            try
            {
                //检查, 报警,控制,应急联动配置
                BasicResponse <bool> hasAlarmNotificationResponse = _AlarmNotificationPersonnelConfigService.HasAlarmNotificationForAnalysisModel(new Sys.Safety.Request.AlarmNotificationPersonnelConfig.GetAlarmNotificationByAnalysisModelIdRequest()
                {
                    AnalysisModelId = jc_LargedataAnalysisConfigRsequest.Id
                });
                if (hasAlarmNotificationResponse.IsSuccess && hasAlarmNotificationResponse.Data)
                {
                    return(new BasicResponse()
                    {
                        Code = -100, Message = "此分析模型存在报警配置信息, 请先删除报警配置然后再删除此模型."
                    });
                }
                BasicResponse <bool> hasRegionOutageResponse = _RegionOutageConfigService.HasRegionOutageForAnalysisModel(new Sys.Safety.Request.RegionOutageConfig.GetByAnalysisModelIdRequest()
                {
                    AnalysisModelId = jc_LargedataAnalysisConfigRsequest.Id
                });
                if (hasRegionOutageResponse.IsSuccess && hasRegionOutageResponse.Data)
                {
                    return(new BasicResponse()
                    {
                        Code = -100, Message = "此分析模型存在区域断电配置信息, 请先删除区域断电配置然后再删除此模型."
                    });
                }

                //删除分析模型
                _Repository.DeleteJC_Largedataanalysisconfig(jc_LargedataAnalysisConfigRsequest.Id);

                BasicResponse <JC_LargedataAnalysisConfigInfo> cachedLargedataAnalysisConfigInfo = _LargeDataAnalysisConfigCacheService.GetLargeDataAnalysisConfigCacheByKey(new Sys.Safety.Request.Cache.LargeDataAnalysisConfigCacheGetByKeyRequest()
                {
                    Id = jc_LargedataAnalysisConfigRsequest.Id
                });
                if (cachedLargedataAnalysisConfigInfo != null && cachedLargedataAnalysisConfigInfo.Data != null)
                {
                    try
                    {
                        //删除分析模型时,关闭和模型有关的未关闭的报警处理信息.
                        alarmHandleService.CloseUnclosedAlarmHandleByAnalysisModelId(new AlarmHandleGetByAnalysisModelIdRequest()
                        {
                            AnalysisModelId = cachedLargedataAnalysisConfigInfo.Data.Id
                        });
                    }
                    catch (Exception ex)
                    {
                        Basic.Framework.Logging.LogHelper.Error(string.Format("删除分析模型时,关闭和模型有关的未关闭的报警处理信息出错. 错误消息:{0}", ex.StackTrace));
                    }
                    try
                    {
                        //删除分析模型时,解除和模型有关的控制
                        BasicResponse <List <Jc_JcsdkzInfo> > analysisZKResponse = manualCrossControlService.GetManualCrossControlByTypeZkPoint(new ManualCrossControlGetByTypeZkPointRequest()
                        {
                            ZkPoint = cachedLargedataAnalysisConfigInfo.Data.Id, Type = (short)Enums.ControlType.LargeDataAnalyticsAreaPowerOff
                        });
                        if (analysisZKResponse != null && analysisZKResponse.Data != null && analysisZKResponse.Data.Count > 0)
                        {
                            manualCrossControlService.DeleteManualCrossControls(new ManualCrossControlsRequest()
                            {
                                ManualCrossControlInfos = analysisZKResponse.Data
                            });
                        }
                    }
                    catch (Exception ex)
                    {
                        Basic.Framework.Logging.LogHelper.Error(string.Format("删除分析模型时,解除和模型有关的控制出错. 错误消息:{0}", ex.StackTrace));
                    }
                    try
                    {
                        //删除缓存
                        _LargeDataAnalysisConfigCacheService.DeleteLargeDataAnalysisConfigCache(new LargeDataAnalysisConfigCacheDeleteRequest()
                        {
                            LargeDataAnalysisConfigInfo = cachedLargedataAnalysisConfigInfo.Data
                        });
                    }
                    catch (Exception ex)
                    {
                        Basic.Framework.Logging.LogHelper.Error(string.Format("删除分析模型后再删除缓存出错:{0}", ex.StackTrace));
                    }
                }

                if (Basic.Framework.Data.PlatRuntime.Items.ContainsKey(DataContract.UserRoleAuthorize.KeyConst.AnalysisModelChangedKey))
                {
                    Basic.Framework.Data.PlatRuntime.Items[DataContract.UserRoleAuthorize.KeyConst.AnalysisModelChangedKey] = DateTime.Now;
                }
                else
                {
                    Basic.Framework.Data.PlatRuntime.Items.Add(DataContract.UserRoleAuthorize.KeyConst.AnalysisModelChangedKey, DateTime.Now);
                }
            }
            catch (Exception ex)
            {
                jC_Largedataanalysisconfigresponse.Code    = 2;
                jC_Largedataanalysisconfigresponse.Message = ex.Message;
            }

            return(jC_Largedataanalysisconfigresponse);
        }