/// <summary>
        /// 新增配置区域断电
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public string AddRegionOutageConfig(RegionOutageBusinessModel data)
        {
            try
            {
                string error = "";

                //2.新增
                RegionOutageConfigListAddRequest regionOutageConfigListRequest = new RegionOutageConfigListAddRequest();
                regionOutageConfigListRequest.JC_RegionOutageConfigInfoList = data.RegionOutageConfigInfoList;
                regionOutageConfigListRequest.AnalysisModelId = data.AnalysisModelId;
                //调用接口
                Basic.Framework.Web.BasicResponse <List <JC_RegionOutageConfigInfo> > analysisTemplateResult =
                    regionOutageConfigService.AddJC_RegionOutageConfigList(regionOutageConfigListRequest);

                if (analysisTemplateResult.IsSuccess == false)
                {
                    error = analysisTemplateResult.Message;
                }
                else
                {
                    if (analysisTemplateResult.Code != 100)
                    {
                        error = analysisTemplateResult.Message;
                    }
                    else
                    {
                        error = "100";
                    }
                }

                return(error);
            }
            catch (Exception ex)
            {
                return("-100");
            }
        }
        public BasicResponse <List <JC_RegionOutageConfigInfo> > AddJC_RegionOutageConfigList(RegionOutageConfigListAddRequest jC_RegionOutageConfigListAddRequest)
        {
            var responseStr = HttpClientHelper.Post(Webapi + "/v1/RegionOutageConfig/AddJC_RegionOutageConfigList?token=" + Token, JSONHelper.ToJSONString(jC_RegionOutageConfigListAddRequest));

            return(JSONHelper.ParseJSONString <BasicResponse <List <JC_RegionOutageConfigInfo> > >(responseStr));
        }
        /// <summary>
        /// 批量新增区域断点设置
        /// </summary>
        /// <param name="jC_RegionOutageConfigListAddRequest"></param>
        /// <returns></returns>
        public BasicResponse <List <JC_RegionOutageConfigInfo> > AddJC_RegionOutageConfigList(RegionOutageConfigListAddRequest jC_RegionOutageConfigListAddRequest)
        {
            string analysisModelId        = jC_RegionOutageConfigListAddRequest.AnalysisModelId;
            var    _jC_RegionOutageConfig = ObjectConverter.CopyList <JC_RegionOutageConfigInfo, JC_RegionoutageconfigModel>(jC_RegionOutageConfigListAddRequest.JC_RegionOutageConfigInfoList);
            List <JC_RegionoutageconfigModel> updateList = _jC_RegionOutageConfig == null ? new List <JC_RegionoutageconfigModel>() : _jC_RegionOutageConfig.ToList();
            List <JC_RegionoutageconfigModel> regionOutageByModelList = _Repository.GetRegionOutageConfigListByAnalysisModelId(analysisModelId);
            List <JC_RegionoutageconfigModel> removeList = new List <JC_RegionoutageconfigModel>();
            List <Jc_JcsdkzInfo> removeSDKZControlList   = new List <Jc_JcsdkzInfo>();


            if (regionOutageByModelList != null && regionOutageByModelList.Count > 0)
            {
                var oriControlList = regionOutageByModelList.Where(q => q.ControlStatus == 1).ToList();
                //var oriRemoveControlList = regionOutageByModelList.Where(q => q.ControlStatus == 0).ToList();
                foreach (var item in oriControlList)
                {
                    if (!updateList.Where(q => q.ControlStatus == 1).ToList().Exists(q => q.PointId == item.PointId))
                    {
                        removeList.Add(item);
                    }
                }

                /*
                 * foreach (var item in oriRemoveControlList)
                 * {
                 *  if (!updateList.Where(q => q.ControlStatus == 0).ToList().Exists(q => q.PointId == item.PointId))
                 *  {
                 *      var switchModelId = ObjectConverter.Copy<JC_RegionoutageconfigModel, JC_RegionoutageconfigModel>(item);
                 *      switchModelId.AnalysisModelId = switchModelId.RemoveModelId;
                 *      removeList.Add(switchModelId);
                 *  }
                 * }
                 */
            }
            if (removeList.Count > 0)
            {
                IEnumerable <IGrouping <string, JC_RegionoutageconfigModel> > removeSDKZModelGroup = removeList.GroupBy(p => p.AnalysisModelId);
                foreach (var removeSDKZModelList in removeSDKZModelGroup)
                {
                    string queryAnalysisModelId = removeSDKZModelList.FirstOrDefault().AnalysisModelId;
                    BasicResponse <List <Jc_JcsdkzInfo> > analysisZKResponse = manualCrossControlService.GetManualCrossControlByTypeZkPoint(new ManualCrossControlGetByTypeZkPointRequest()
                    {
                        ZkPoint = queryAnalysisModelId, Type = (short)Enums.ControlType.LargeDataAnalyticsAreaPowerOff
                    });
                    if (analysisZKResponse != null && analysisZKResponse.Data != null && analysisZKResponse.Data.Count > 0)
                    {
                        foreach (var removeSDKZModel in removeSDKZModelList)
                        {
                            BasicResponse <Jc_DefInfo> cachedPoint = pointDefineCacheService.PointDefineCacheByPointIdRequeest(new Sys.Safety.Request.Cache.PointDefineCacheByPointIdRequeest()
                            {
                                PointID = removeSDKZModel.PointId
                            });
                            if (null != cachedPoint && cachedPoint.Data != null)
                            {
                                Jc_JcsdkzInfo removeSDKZInfo = analysisZKResponse.Data.FirstOrDefault(q => q.Bkpoint == cachedPoint.Data.Point);
                                if (null != removeSDKZInfo)
                                {
                                    removeSDKZControlList.Add(removeSDKZInfo);
                                }
                            }
                        }
                    }
                }
            }

            TransactionsManager.BeginTransaction(() =>
            {
                if (removeSDKZControlList.Count > 0)
                {
                    manualCrossControlService.DeleteManualCrossControls(new ManualCrossControlsRequest()
                    {
                        ManualCrossControlInfos = removeSDKZControlList
                    });
                }
                _Repository.DeleteUserRoleByAnalysisModelId(analysisModelId);
                _Repository.AddJC_RegionOutageConfigList(_jC_RegionOutageConfig.ToList());
            });
            if (Basic.Framework.Data.PlatRuntime.Items.ContainsKey(DataContract.UserRoleAuthorize.KeyConst.RegionOutageChangedKey))
            {
                Basic.Framework.Data.PlatRuntime.Items[DataContract.UserRoleAuthorize.KeyConst.RegionOutageChangedKey] = DateTime.Now;
            }
            else
            {
                Basic.Framework.Data.PlatRuntime.Items.Add(DataContract.UserRoleAuthorize.KeyConst.RegionOutageChangedKey, DateTime.Now);
            }
            var jC_RegionOutageConfig = new BasicResponse <List <JC_RegionOutageConfigInfo> >();

            jC_RegionOutageConfig.Data = jC_RegionOutageConfigListAddRequest.JC_RegionOutageConfigInfoList;
            return(jC_RegionOutageConfig);
        }
Example #4
0
 public BasicResponse <List <JC_RegionOutageConfigInfo> > AddJC_RegionOutageConfigList(RegionOutageConfigListAddRequest jC_RegionOutageConfigListAddRequest)
 {
     return(_regionOutageConfigService.AddJC_RegionOutageConfigList(jC_RegionOutageConfigListAddRequest));
 }