コード例 #1
0
        /// <summary>
        /// 保存测点信息的函数
        /// </summary>
        public override bool ConfirmInf(Jc_DefInfo point)
        {
            if (!SensorInfoverify())
            {
                return(false);
            }

            point.Bz6 = IsEnableRevised.Checked ? "1" : "0";
            point.Bz7 = RevisedValue.ToString();
            return(true);
        }
コード例 #2
0
        /// <summary>
        /// 批量添加
        /// </summary>
        /// <param name="jc_Defrequest"></param>
        /// <returns></returns>
        public BasicResponse AddPointDefines(PointDefinesAddRequest PointDefineRequest)
        {
            BasicResponse     Result       = new BasicResponse();
            List <Jc_DefInfo> items        = PointDefineRequest.PointDefinesInfo;
            List <Jc_DefInfo> Jc_DefCaches = new List <Jc_DefInfo>();
            Jc_DefInfo        olditem      = null;

            B_DefCacheGetByConditionRequest bDefCacheRequest = new B_DefCacheGetByConditionRequest();

            bDefCacheRequest.predicate = a => a.Activity == "1";
            var result = _b_DefCacheService.Get(bDefCacheRequest);

            Jc_DefCaches = result.Data;

            foreach (Jc_DefInfo item in items)
            {
                olditem = Jc_DefCaches.Find(a => a.Point == item.Point && a.Activity == "1");
                //增加重复判断
                if (olditem != null)
                { //缓存中存在此测点
                    Result.Code    = 1;
                    Result.Message = "当前添加列表中的数据在数据库中已经存在!";
                    return(Result);
                }
            }
            //向网关同步数据
            List <Jc_DefInfo> SendItemList = items;
            var resultSync = SynchronousDataToGateway(SendItemList);

            if (!resultSync)
            {
                Result.Code    = 1;
                Result.Message = "向网关同步数据失败!";
                return(Result);
            }
            TransactionsManager.BeginTransaction(() =>
            {
                foreach (Jc_DefInfo item in items)
                {
                    //保存数据库
                    var _jc_Def      = ObjectConverter.Copy <Jc_DefInfo, B_DefModel>(item);
                    var resultjc_Def = _repository.AddDef(_jc_Def);

                    //置下发初始化标记
                    PointInitializes(item, olditem);
                }
                //添加到缓存
                B_DefCacheBatchInsertRequest batchInsertbDefCacheRequest = new B_DefCacheBatchInsertRequest();
                batchInsertbDefCacheRequest.B_DefInfos = items;
                _b_DefCacheService.BatchInsert(batchInsertbDefCacheRequest);
            });
            return(Result);
        }
コード例 #3
0
 private void LoadPointInfo(Jc_DefInfo temp)
 {
     if (temp.Bz6 == "1")
     {
         IsEnableRevised.Checked = true;
     }
     else
     {
         IsEnableRevised.Checked = false;
     }
     RevisedValue.Text = temp.Bz7;
 }
コード例 #4
0
        public BasicResponse <DataTable> GetDyxFz()
        {
            DataTable     msg  = new DataTable();
            List <string> keys = null;
            Jc_DefInfo    def  = null;

            msg.Columns.Add("fzh", typeof(int));
            msg.Columns.Add("fd", typeof(int));
            msg.TableName = "fz";
            try
            {
                //List<Jc_DefInfo> _JC_DEF = _CacheMrg.ServerCache.Cache_jc_def.QueryAllCacheList();
                var res = _pointDefineService.GetAllPointDefineCache();
                if (!res.IsSuccess)
                {
                    throw new Exception(res.Message);
                }
                List <Jc_DefInfo> _JC_DEF = res.Data;

                if (_JC_DEF.Count > 0)
                {
                    //keys = new List<string>(_CacheMrg.ServerCache.Cache_jc_def._JC_DEF.Keys);
                    for (int i = 0; i < _JC_DEF.Count; i++)
                    {
                        def = _JC_DEF[i];
                        if (def.Activity == "1" && def.DevPropertyID == 0)
                        {
                            if ((def.Bz3 & 0x8) == 0x8)
                            {
                                msg.Rows.Add(def.Fzh, 0);
                            }
                        }
                    }
                }
                if (msg.Rows.Count > 0)
                {
                    DataView ds = new DataView(msg);
                    ds.Sort = "fzh";
                    msg     = ds.ToTable("ff");
                }
            }
            catch (Exception ex)
            {
                LogHelper.Error("获取所有绑定电源箱分站", ex);
            }
            var ret = new BasicResponse <DataTable>
            {
                Data = msg
            };

            return(ret);
        }
コード例 #5
0
        /// <summary>
        /// 根据PointId获取测点
        /// </summary>
        /// <param name="PointId"></param>
        /// <returns></returns>
        public static Jc_DefInfo GetAllSystemPointDefineItemByPointId(string PointId)
        {
            Jc_DefInfo item = new Jc_DefInfo();
            PointDefineGetByPointIDRequest PointDefineRequest = new PointDefineGetByPointIDRequest();

            PointDefineRequest.PointID = PointId;
            var result = allSystemPointDefineService.GetPointDefineCacheByPointID(PointDefineRequest);

            if (result.IsSuccess && result.Data != null && result.Data.Count > 0)
            {
                item = result.Data[0];
            }
            return(item);
        }
コード例 #6
0
ファイル: CuControl.cs プロジェクト: ewin66/Safety-JM-Server
        private void LoadPointInfo(Jc_DefInfo temp)
        {
            #region ==================扩展属性==================

            if (temp.K1 > 0 && temp.K2 > 0)
            {
                Jc_DefInfo FeedBackePoint = Model.DEFServiceModel.QueryPointByCodeCache(temp.K1.ToString().PadLeft(3, '0') + "D" + temp.K2.ToString().PadLeft(2, '0') + temp.K4.ToString());

                if (null != FeedBackePoint)
                {
                    CCmbFeedBackPoint.SelectedItem = FeedBackePoint.Point + "." + FeedBackePoint.Wz;
                }
            }

            CtxbDesc.Text = temp.Remark;//描述

            #endregion

            #region ==================报警==================
            if ((temp.K8 & 0x01) == 1) //0态度是否报警
            {
                CckZeroAlarm.Checked = true;
            }
            else
            {
                CckZeroAlarm.Checked = false;
            }

            if ((temp.K8 & 0x02) == 2)  //1态度是否报警
            {
                CckOneAlarm.Checked = true;
            }
            else
            {
                CckOneAlarm.Checked = false;
            }
            //颜色显示
            try
            {
                this.CpZeroColour.Color = Color.FromArgb(int.Parse(temp.Bz9.ToString()));
                this.CpOneColour.Color  = Color.FromArgb(int.Parse(temp.Bz10.ToString()));
            }
            catch
            { }

            //显示内容
            this.CcmbZeroContent.Text = temp.Bz6;
            this.CcmbOneContent.Text  = temp.Bz7;
            #endregion
        }
コード例 #7
0
 private void PointInitializes(Jc_DefInfo item, Jc_DefInfo olditem)
 {
     //置是否需要下发初始化标记
     //if (item.InfoState == InfoState.AddNew || item.Activity == "0")
     //{
     //    item.DefIsInit = true;//新增加测点,都发初始化
     //}
     if ((item.Bz4 & 0x02) == 0x02)//如果是休眠状态,则暂时置为上一次的状态,待保存巡检的时候再置成休眠(数据处理是直接根据Bz4进行处理的,不然保存了定义就会开始处理了)  20170705
     {
         if (olditem != null)
         {
             item.Bz4 = olditem.Bz4;
         }
     }
 }
コード例 #8
0
        private void gridViewModel_MasterRowExpanding(object sender, DevExpress.XtraGrid.Views.Grid.MasterRowCanExpandEventArgs e)
        {
            List <JC_LargedataAnalysisConfigInfo> dataList = gridControlModel.DataSource as List <JC_LargedataAnalysisConfigInfo>;

            if (dataList == null || dataList.Count == 0)
            {
                return;
            }

            int    rowHandle = gridViewModel.FocusedRowHandle;
            string daID      = gridViewModel.GetRowCellValue(rowHandle, "Id").ToString();  //是ookUpEdit.Properties.ValueMember的值

            //1.根据模型ID查询模型区域断电配置信息
            List <JC_RegionOutageConfigInfo> regionOutageConfigInfoList = regionOutageBusiness.GetRegionOutage(daID);

            List <Jc_DefInfo> LevelTrueDescription  = new List <Jc_DefInfo>();
            List <Jc_DefInfo> LevelFalseDescription = new List <Jc_DefInfo>();

            if (regionOutageConfigInfoList != null && regionOutageConfigInfoList.Count > 0)
            {
                foreach (var item in regionOutageConfigInfoList)
                {
                    //2.根据测点ID查询测点信息
                    Jc_DefInfo jc_DefInfo = new Jc_DefInfo();
                    jc_DefInfo = PointDefineBusiness.QueryPointByPointID(item.PointId);
                    if (item.ControlStatus == 1)
                    {
                        LevelTrueDescription.Add(jc_DefInfo);
                    }
                    else
                    {
                        LevelFalseDescription.Add(jc_DefInfo);
                    }
                }
            }

            //3.初始化测点数据
            foreach (var item in dataList)
            {
                if (item.Id == daID)
                {
                    item.LevelTrueDescription  = LevelTrueDescription;
                    item.LevelFalseDescription = LevelFalseDescription;
                }
            }

            gridControlModel.DataSource = dataList;
        }
コード例 #9
0
        private void lookUpEditAnalysisTemplate_EditValueChanged(object sender, EventArgs e)
        {
            try
            {
                if (this.lookUpEditAnalysisTemplate.EditValue == null)
                {
                    return;
                }
                string daID = this.lookUpEditAnalysisTemplate.EditValue.ToString(); //是ookUpEdit.Properties.ValueMember的值
                if (gridLookUpEdit.EditValue == null)
                {
                    return;
                }
                if (daID.ToLower() == gridLookUpEdit.EditValue.ToString().ToLower())
                {
                    XtraMessageBox.Show("解除模型不能选择当前分析模型.\n要解除当前分析模型的控制请勾选【不满足条件时是否解除控制】", "提示消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    lookUpEditAnalysisTemplate.EditValue = lookUpEditAnalysisTemplate.OldEditValue;
                    return;
                }

                List <JC_RegionOutageConfigInfo> JC_RegionOutageConfigInfoList =
                    regionOutageBusiness.GetRegionOutage(daID);

                List <Jc_DefInfo> pointList        = ObjectConverter.DeepCopy(pointDefineList);
                List <Jc_DefInfo> closeControlList = new List <Jc_DefInfo>();
                if (JC_RegionOutageConfigInfoList != null && JC_RegionOutageConfigInfoList.Count > 0)
                {
                    foreach (var item in JC_RegionOutageConfigInfoList)
                    {
                        if (item.ControlStatus == 0)
                        {
                            continue;//解除控制的跳过,只加载被选模型配置为控制的测点。
                        }
                        Jc_DefInfo addItem = pointList.FirstOrDefault(p => p.PointID == item.PointId);
                        if (null != addItem)
                        {
                            closeControlList.Add(addItem);
                        }
                    }
                }
                //if(closeControlList.Count > 0)
                lookUpEditPoint.Properties.DataSource = (from p in closeControlList orderby p.Point ascending select new { PointName = p.Point, PointId = p.PointID, Point = p.Point, Wz = p.Wz, DevName = p.DevName }).ToList();
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("加载解控测点出错! 错误消息:{0}", ex.StackTrace));
            }
        }
コード例 #10
0
        /// <summary>
        /// 分站电源箱label点击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void SubstationLabelClick(object sender, EventArgs e)
        {
            try
            {
                var tv = (Label)sender;
                var bi = (BatteryItem)tv.Tag;
                //label2.Text = bi.BatteryAddress;
                label2.Text = bi.Channel;

                _lisDef = ControlInterfaceFuction.GetAllSubstation();//重新加载
                string     selectStationPointId = "";
                Jc_DefInfo def = _lisDef.Find(a => a.Fzh == short.Parse(selectFzhNow));
                if (def != null)
                {
                    selectStationPointId = def.PointID;
                }
                //查找分站对应的电源箱5分钟统计信息
                BatteryPowerConsumption batteryPowerConsumption = new BatteryPowerConsumption();
                if (def.BatteryPowerConsumptions != null)
                {
                    batteryPowerConsumption = def.BatteryPowerConsumptions.Find(a => a.Channel == bi.Channel);
                }
                var tempCharge = new CuCharge(bi, batteryPowerConsumption);
                //CpanelPowerPac.Controls.Clear();
                //重写释放控件的方法,直接clear会导致句柄资源一直增加  20180422
                while (CpanelPowerPac.Controls.Count > 0)
                {
                    if (CpanelPowerPac.Controls[0] != null)
                    {
                        CpanelPowerPac.Controls[0].Dispose();
                    }
                }
                CpanelPowerPac.Controls.Add(tempCharge);
                tempCharge.Dock = DockStyle.Fill;

                //var node = treeViewSubstation.SelectedNode;
                //Dictionary<string, object> dic = new Dictionary<string, object>();
                //dic.Add("GetBatteryItem", ((Label)sender).Text);
                //dic.Add("SelNode", node);
                //_refStationBattery = new Thread(GetBatteryItem);

                //_refStationBattery.Start(dic);
            }
            catch (Exception exc)
            {
                XtraMessageBox.Show(exc.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
コード例 #11
0
        /// <summary>
        /// 更新def
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        public static bool UpdateDEFCache(Jc_DefInfo item)
        {
            PointDefineUpdateRequest PointDefineRequest = new PointDefineUpdateRequest();

            PointDefineRequest.PointDefineInfo = item;
            var result = _PointDefineService.UpdatePointDefine(PointDefineRequest);

            if (result.IsSuccess == true)
            {
                return(true);
            }
            else
            {
                throw new Exception(result.Message);
            }
        }
コード例 #12
0
 private void SensorTypeErrorDisplay_Load(object sender, EventArgs e)
 {
     try
     {
         PointDefineGetByPointRequest PointDefineRequest = new PointDefineGetByPointRequest();
         PointDefineRequest.Point = _point;
         Jc_DefInfo jc_defInfo = pointDefineService.GetPointDefineCacheByPoint(PointDefineRequest).Data;
         if (jc_defInfo != null)
         {
             labelControl1.Text = "实际挂接类型:" + jc_defInfo.RealTypeInfo;
             labelControl2.Text = "当前定义类型:" + jc_defInfo.DevName;
         }
     }
     catch (Exception ex)
     {
         Basic.Framework.Logging.LogHelper.Error(ex);
     }
 }
コード例 #13
0
ファイル: FzShowForm.cs プロジェクト: ewin66/Safety-JM-Server
 private void cmb_fzadr_SelectedIndexChanged(object sender, EventArgs e)
 {
     try
     {
         objfz.fzh = int.Parse(cmb_fzadr.Text);
         objfz.showdtfocusrowid   = objfz.showdtfocuscolid = -1;
         objfz.showdtkzfocuscolid = objfz.showdtkzfocusrowid = -1;
         Jc_DefInfo def = Model.RealInterfaceFuction.Getpoint(objfz.point);
         DataTable  dt  = Model.RealInterfaceFuction.Getfzjckz(objfz.fzh);
         getmsg(def, dt);
         realshow();
         InitChargeMrg();//xuzp20151015
     }
     catch (Exception ex)
     {
         Basic.Framework.Logging.LogHelper.Error(ex);
     }
 }
コード例 #14
0
        /// <summary>
        /// 开关量/模拟量实时值
        /// </summary>
        /// <param name="pointId">测点号</param>
        /// <returns>开关量/模拟量实时值</returns>
        public FactorValueInfo OnOffRealtimeValue(string pointId)
        {
            FactorValueInfo factorValueInfo = new FactorValueInfo();
            Jc_DefInfo      pointDefine     = PointCache.Instance.Query(q => q.PointID == pointId, false).FirstOrDefault();

            if (pointDefine != null)
            {
                //(DevPropertyID: 1 模拟量 2 开关量)
                if (pointDefine.DevPropertyID == 1)
                { //模拟量
                    switch (pointDefine.State)
                    {
                    //case 5://红外遥控模拟数据时,也按正常处理  20171219
                    case 21:
                        factorValueInfo.Value = pointDefine.Ssz;
                        break;

                    default:
                        break;
                    }
                }
                else if (pointDefine.DevPropertyID == 2)
                { //开关量
                    switch (pointDefine.DataState)
                    {
                    case 25:
                        factorValueInfo.Value = "0";
                        break;

                    case 26:
                        factorValueInfo.Value = "1";
                        break;

                    case 27:
                        factorValueInfo.Value = "2";
                        break;

                    default:
                        break;
                    }
                }
            }
            return(factorValueInfo);
        }
コード例 #15
0
 /// <summary>
 /// 设备类型变化产生的影响
 /// </summary>
 public override void DevTypeChanngeEvent(long DevID, Jc_DefInfo Point)
 {
     try
     {
         if (Point != null)
         {
             LoadPointInfo(Point);
         }
         else
         {
             IsEnableRevised.Checked = false;
             RevisedValue.Text       = "";
         }
     }
     catch (Exception ex)
     {
         Basic.Framework.Logging.LogHelper.Error(ex);
     }
 }
コード例 #16
0
        private void UpdatePointDefineCacheByBz4(Jc_DefInfo Point)
        {
            Dictionary <string, object> paramater = new Dictionary <string, object>();

            //休眠、检修状态标记
            paramater.Add("Bz4", Point.Bz4);
            //定义改变标记
            paramater.Add("DefIsInit", Point.DefIsInit);


            //修改标记
            paramater.Add("InfoState", Point.InfoState);

            UpdatePropertiesRequest defineCacheUpdatePropertiesRequest = new UpdatePropertiesRequest();

            defineCacheUpdatePropertiesRequest.PointID     = Point.PointID;
            defineCacheUpdatePropertiesRequest.UpdateItems = paramater;
            _b_DefCacheService.UpdateInfo(defineCacheUpdatePropertiesRequest);
        }
コード例 #17
0
        /// <summary>
        /// 加载测点信息的函数
        /// </summary>
        public override void LoadInf(string arrPoint, int _devID)
        {
            if (string.IsNullOrEmpty(arrPoint))
            {
                return;
            }
            Jc_DefInfo temp = Model.DEFServiceModel.QueryPointByCodeCache(arrPoint);

            if (null == temp)
            {
                return;
            }
            Jc_DevInfo tempDev = Model.DEVServiceModel.QueryDevByDevIDCache(temp.Devid);

            if (null == tempDev)
            {
                return;
            }
            LoadPointInfo(temp);
        }
コード例 #18
0
        ///// <summary>
        ///// 更新JC_DEF的alarm  2017.7.12 by
        ///// </summary>
        //private static void UpdateAlarmParameter(Jc_DefInfo def,int alarm)
        //{
        //    try
        //    {
        //        Dictionary<string, object> updateItems = new Dictionary<string, object>();
        //        updateItems.Add("Alarm", alarm);
        //        IPointDefineCacheService pointDefineCacheService = ServiceFactory.Create<IPointDefineCacheService>();
        //        DefineCacheUpdatePropertiesRequest defineCacheUpdatePropertiesRequest = new DefineCacheUpdatePropertiesRequest();
        //        defineCacheUpdatePropertiesRequest.PointID = def.PointID;
        //        defineCacheUpdatePropertiesRequest.UpdateItems = updateItems;
        //        pointDefineCacheService.UpdatePointDefineIfo(defineCacheUpdatePropertiesRequest);
        //    }
        //    catch (Exception ex)
        //    {
        //        LogHelper.Error("UpdateAlarmParameter Error:" + ex.Message);
        //    }
        //}

        ///// <summary>
        ///// 判断开关量逻辑关联测点状态 2017.7.12 by  从取驱动中copy过来
        ///// </summary>
        ///// <param name="pointAlarmState">当前开关量报警状态</param>
        //private static int CheckDerailLogicRelationState(int pointAlarmState, Jc_DefInfo def)
        //{
        //    //逻辑关联处理 与或(1,2)认为此开关量有关联测点
        //    if (def.K4 == 1 || def.K4 == 2)
        //    {
        //        Jc_DefInfo pointItem;
        //        if (def.Fzh > 0 && def.K5 > 0)
        //        {
        //            IPointDefineCacheService pointDefineCacheService = ServiceFactory.Create<IPointDefineCacheService>();
        //            PointDefineCacheGetByConditonRequest stationquest = new PointDefineCacheGetByConditonRequest
        //            {
        //                Predicate = point => point.Fzh == def.Fzh && point.Kh == def.K5 && point.DevPropertyID == (int)DeviceProperty.Derail
        //            };

        //            var relationresponse = pointDefineCacheService.GetPointDefineCache(stationquest);
        //            //如果此开关量有关联测点,则判断关联测点的报警状态
        //            if (relationresponse != null && relationresponse.IsSuccess && relationresponse.Data != null && relationresponse.Data.Any())
        //            {
        //                pointItem = relationresponse.Data.FirstOrDefault();
        //                int relationalarm = 0;
        //                if ((pointItem.DataState == (short)DeviceDataState.DataDerailState0) && ((pointItem.K8 & 0x01) == 0x01) ||
        //                    (pointItem.DataState == (short)DeviceDataState.DataDerailState1) && ((pointItem.K8 & 0x02) == 0x02) ||
        //                    (pointItem.DataState == (short)DeviceDataState.DataDerailState1) && ((pointItem.K8 & 0x04) == 0x04))
        //                    relationalarm = 1;

        //                //当前开关量与关联开关量与或运算,判断当前开关量是否报警
        //                if (def.K4 == 2)
        //                {
        //                    pointAlarmState |= relationalarm;
        //                }
        //                else if (def.K4 == 1)
        //                {
        //                    pointAlarmState &= relationalarm;
        //                }
        //            }
        //        }
        //    }
        //    return pointAlarmState;
        //}

        /// <summary>
        /// 对比2个控制量的信息是否相同 是否需要重新下发初始化
        /// </summary>
        /// <param name="newobj">新对象</param>
        /// <param name="oldobj">旧对象</param>
        /// <returns></returns>
        private static bool CompareMoniterKZL(Jc_DefInfo newitem, Jc_DefInfo olditem, out bool dormancyflag)
        {
            bool flg = olditem.DefIsInit;

            dormancyflag = olditem.Dormancyflag;
            if ((newitem.Bz4 & 0x02) == 0x02)
            {
                dormancyflag = true;
            }
            if (newitem.K2 != olditem.K2 || newitem.K1 != olditem.K1 || newitem.K4 != olditem.K4)//绑定的馈电开关
            {
                flg = true;
            }
            if (newitem.DevModelID != olditem.DevModelID)//设备型号改变,要发初始化  20171031
            {
                flg = true;
            }
            if (newitem.DevClassID != olditem.DevClassID)//设备种类改变,要发初始化  20171031
            {
                flg = true;
            }
            return(flg);
        }
コード例 #19
0
        /// <summary>
        /// 保存测点信息的函数
        /// </summary>
        public override bool ConfirmInf(Jc_DefInfo point)
        {
            if (!SensorInfoverify())
            {
                return(false);
            }
            if (point == null)
            {
                return(false);
            }
            //识别器类型
            point.Bz1 = comboPersonPointType.SelectedIndex + 1;
            //报警时间、离开时间(存成分钟)
            point.K4 = int.Parse(AlarmTime.Text.Substring(0, 2)) * 60 + int.Parse(AlarmTime.Text.Substring(3, 2));
            point.K5 = int.Parse(LeaveTime.Text.Substring(0, 2)) * 60 + int.Parse(LeaveTime.Text.Substring(3, 2));
            //限制进入、禁止进入人员
            point.RestrictedpersonInfoList = restrictedpersonInfoList;

            //超员报警人数(额定人数)
            point.K3 = (int)RatedPersonCount.Value;

            return(true);
        }
コード例 #20
0
        /// <summary>
        /// 从内存中获取当前测点的分析基数(周平均值)
        /// </summary>
        /// <param name="def"></param>
        /// <returns></returns>
        private double GetBasicValueByDef(Jc_DefInfo def)
        {
            double basicValue = 0;

            if (BasisValueItems.ContainsKey(def.Point))
            {
                basicValue = BasisValueItems[def.Point];
            }
            else
            {
                Jc_HourInfo hourInfo = GetHourInfoByPointID(def.PointID);
                if (hourInfo == null)
                {
                    basicValue = 0;
                }
                else
                {
                    basicValue = hourInfo.Pjz;
                }
                BasisValueItems.Add(def.Point, basicValue);
            }
            return(basicValue);
        }
コード例 #21
0
ファイル: FzShowForm.cs プロジェクト: ewin66/Safety-JM-Server
 //private void timer1_Tick(object sender, EventArgs e)
 //{
 //    timer1.Enabled = false;
 //    try
 //    {
 //        getmsg();
 //        realshow();
 //    }
 //    catch (Exception ex)
 //    {
 //        Basic.Framework.Logging.LogHelper.Error(ex);
 //    }
 //    timer1.Enabled = true;
 //}
 private void fthread()
 {
     while (_isRun)
     {
         try
         {
             Jc_DefInfo    def = Model.RealInterfaceFuction.Getpoint(objfz.point);
             DataTable     dt  = Model.RealInterfaceFuction.Getfzjckz(objfz.fzh);
             MethodInvoker In  = new MethodInvoker(() => getmsg(def, dt));
             if (this.InvokeRequired)
             {
                 this.BeginInvoke(In);
             }
             //MethodInvoker In1 = new MethodInvoker(() => realshow());
             //this.BeginInvoke(In1);
         }
         catch (Exception ex)
         {
             Basic.Framework.Logging.LogHelper.Error(ex);
         }
         Thread.Sleep(5000);
     }
 }
コード例 #22
0
ファイル: CuControl.cs プロジェクト: ewin66/Safety-JM-Server
        /// <summary>
        /// 保存测点信息的函数
        /// </summary>
        public override bool ConfirmInf(Jc_DefInfo point)
        {
            EditPoint = point;

            if (!SensorInfoverify())
            {
                return(false);
            }

            Jc_DevInfo temp = new Jc_DevInfo();

            point.Bz9  = CpZeroColour.Color.ToArgb().ToString();            //0态显示颜色
            point.Bz10 = CpOneColour.Color.ToArgb().ToString();             //1态度显示颜色

            point.K8  = Convert.ToByte(CckZeroAlarm.Checked ? 1 : 0);       //0态是否报警
            point.K8 |= Convert.ToByte((CckOneAlarm.Checked ? 1 : 0) << 1); //1态是否报警

            point.Bz6 = CcmbZeroContent.Text;                               //0态显示内容
            point.Bz7 = CcmbOneContent.Text;                                //1态显示内容
            if (!string.IsNullOrEmpty(CCmbFeedBackPoint.Text.Trim()))
            {
                point.K1 = Convert.ToInt32(CCmbFeedBackPoint.Text.Substring(0, 3)); //馈电分站号
                point.K2 = Convert.ToInt32(CCmbFeedBackPoint.Text.Substring(4, 2)); //馈电通道号
                if (CCmbFeedBackPoint.Text.Substring(0, CCmbFeedBackPoint.Text.IndexOf(".")).Length > 6)
                {
                    point.K4 = Convert.ToInt32(CCmbFeedBackPoint.Text.Substring(0, CCmbFeedBackPoint.Text.IndexOf(".")).Substring(6)); //馈电地址号
                }
            }
            else
            {
                point.K1 = 0;
                point.K2 = 0;
                point.K4 = 0;
            }
            point.Remark = CtxbDesc.Text;
            return(true);
        }
コード例 #23
0
        /// <summary>
        /// 对比分站是否需要下发初始化
        /// </summary>
        /// <param name="newitem"></param>
        /// <param name="olditem"></param>
        /// <returns></returns>
        private static bool CompareMonitorStation(Jc_DefInfo newitem, Jc_DefInfo olditem, out bool dormancyflag)
        {
            bool flg = olditem.DefIsInit;

            dormancyflag = olditem.Dormancyflag;
            if ((newitem.Bz4 & 0x02) == 0x02)
            {
                dormancyflag = true;
            }
            if (newitem.ClsCommObj.Cfzfy != olditem.ClsCommObj.Cfzfy ||
                newitem.ClsCommObj.Bddqy != olditem.ClsCommObj.Bddqy)   //抽放(暂时没地方配置)
            {
                flg = true;
            }
            if (newitem.Bz3 != olditem.Bz3)//风电闭锁
            {
                flg = true;
            }
            if (newitem.Bz10 != olditem.Bz10)//风电闭锁
            {
                flg = true;
            }


            //增加以下属性的判断  20170609
            if (newitem.Jckz1 != olditem.Jckz1)//Mac
            {
                flg = true;
            }
            if (newitem.Jckz2 != olditem.Jckz2)//IP
            {
                flg = true;
            }

            return(flg);
        }
コード例 #24
0
ファイル: CuDerail.cs プロジェクト: ewin66/Safety-JM-Server
        private void LoadPointInfo(Jc_DefInfo Point)
        {
            #region ==================扩展属性==================
            if (Point.K4 > 0)
            {
                CcmbLogicAlarmCon.SelectedIndex = Point.K4;//报警逻辑
            }
            if (Point.K5 > 0)
            {
                Jc_DefInfo LogicPoint = Model.DEFServiceModel.QueryPointByCodeCache(Point.Fzh.ToString().PadLeft(3, '0') + "D" + Point.K5.ToString().PadLeft(2, '0') + Point.K6.ToString());
                if (null != LogicPoint)
                {
                    CcmbLogicAlarmPoint.SelectedItem = LogicPoint.Point + "." + LogicPoint.Wz;
                }
            }
            CtxbDesc.Text = Point.Remark;//描述
            #endregion

            ////各态控制口
            //cckLocalControlZero.Text = SetLocalControlText(Point.K1);
            //cckLocalControlOne.Text = SetLocalControlText(Point.K2);
            //cckLocalControlTwo.Text = SetLocalControlText(Point.K3);
            #region ==================报警控制==================

            Jc_DevInfo tempDev = Model.DEVServiceModel.QueryDevByDevIDCache(Point.Devid);

            if ((Point.K8 & 0x01) == 1) //0态度是否报警
            {
                CckZeroAlarm.Checked = true;
            }
            else
            {
                CckZeroAlarm.Checked = false;
            }

            if ((Point.K8 & 0x02) == 2)  //1态度是否报警
            {
                CckOneAlarm.Checked = true;
            }
            else
            {
                CckOneAlarm.Checked = false;
            }

            if ((Point.K8 & 0x04) == 4) //2态度是否报警
            {
                CckTwoAlarm.Checked = true;
            }
            else
            {
                CckTwoAlarm.Checked = false;
            }
            //颜色显示
            try
            {
                this.CpZeroColour.Color = Color.FromArgb(int.Parse(Point.Bz9.ToString()));
                this.CpOneColour.Color  = Color.FromArgb(int.Parse(Point.Bz10.ToString()));
                this.CpTwoColour.Color  = Color.FromArgb(int.Parse(Point.Bz11.ToString()));
            }
            catch
            { }
            //显示内容
            this.CcmbZeroContent.Text = Point.Bz6;
            this.CcmbOneContent.Text  = Point.Bz7;
            this.CcmbTwoContent.Text  = Point.Bz8;
            //各态控制口
            cckLocalControlZero.Text = SetLocalControlText(Point.K1);
            cckLocalControlOne.Text  = SetLocalControlText(Point.K2);
            cckLocalControlTwo.Text  = SetLocalControlText(Point.K3);

            #endregion

            #region ==================交叉控制==================
            getCrossInf(Point.Point);
            CrossControlDT        = ToDataTable(CrossControlList);
            CdgControl.DataSource = CrossControlDT;
            CdgControl.RefreshDataSource();
            #endregion
        }
コード例 #25
0
ファイル: CuDerail.cs プロジェクト: ewin66/Safety-JM-Server
        /// <summary>
        /// 设备类型变化产生的影响
        /// </summary>
        public override void DevTypeChanngeEvent(long DevID, Jc_DefInfo Point)
        {
            try
            {
                if (Point != null)
                {
                    CcmbLogicAlarmCon.Text   = "";
                    CcmbLogicAlarmPoint.Text = "";
                    LoadPointInfo(Point);
                }
                else
                {//取jc_dev的定义信息
                    CcmbLogicAlarmCon.Text   = "";
                    CcmbLogicAlarmPoint.Text = "";
                    CtxbDesc.Text            = "";

                    //各态控制口
                    cckLocalControlZero.Text = "";
                    cckLocalControlOne.Text  = "";
                    cckLocalControlTwo.Text  = "";

                    #region ==================交叉控制==================
                    CrossControlList.Clear();
                    CrossControlDT        = ToDataTable(CrossControlList);
                    CdgControl.DataSource = CrossControlDT;
                    CdgControl.RefreshDataSource();
                    #endregion


                    Jc_DevInfo temp = Model.DEVServiceModel.QueryDevByDevIDCache(DevID.ToString());
                    if (null == temp)
                    {
                        return;
                    }

                    #region ==================报警属性==================
                    if (temp.Pl1 == 1)
                    {
                        CckZeroAlarm.Checked = true;
                    }
                    else
                    {
                        CckZeroAlarm.Checked = false;
                    }
                    if (temp.Pl2 == 1)
                    {
                        CckOneAlarm.Checked = true;
                    }
                    else
                    {
                        CckOneAlarm.Checked = false;
                    }
                    if (temp.Pl3 == 1)
                    {
                        CckTwoAlarm.Checked = true;
                    }
                    else
                    {
                        CckTwoAlarm.Checked = false;
                    }

                    //显示内容
                    this.CcmbZeroContent.Text = temp.Xs1;
                    this.CcmbOneContent.Text  = temp.Xs2;
                    this.CcmbTwoContent.Text  = temp.Xs3;
                    //颜色显示
                    this.CpZeroColour.Color = Color.FromArgb(temp.Color1);
                    this.CpOneColour.Color  = Color.FromArgb(temp.Color2);
                    this.CpTwoColour.Color  = Color.FromArgb(temp.Color3);
                    #endregion
                }
            }
            catch (Exception ex)
            {
                Basic.Framework.Logging.LogHelper.Error(ex);
            }
        }
コード例 #26
0
ファイル: CuDerail.cs プロジェクト: ewin66/Safety-JM-Server
        /// <summary>
        /// 保存测点信息的函数
        /// </summary>
        public override bool ConfirmInf(Jc_DefInfo point)
        {
            if (!SensorInfoverify())
            {
                return(false);
            }

            Jc_DevInfo temp = new Jc_DevInfo();

            point.Bz9  = CpZeroColour.Color.ToArgb().ToString();            //0态显示颜色
            point.Bz10 = CpOneColour.Color.ToArgb().ToString();             //1态度显示颜色
            point.Bz11 = CpTwoColour.Color.ToArgb().ToString();             //2态显示颜色

            point.K8  = Convert.ToByte(CckZeroAlarm.Checked ? 1 : 0);       //0态是否报警
            point.K8 |= Convert.ToByte((CckOneAlarm.Checked ? 1 : 0) << 1); //1态是否报警
            point.K8 |= Convert.ToByte((CckTwoAlarm.Checked ? 1 : 0) << 2); //2态度是否报警

            point.Bz6 = CcmbZeroContent.Text;                               //0态显示内容
            point.Bz7 = CcmbOneContent.Text;                                //1态显示内容
            point.Bz8 = CcmbTwoContent.Text;                                //2态显示内容

            point.K1 = ConfirmCheckBoxValue(cckLocalControlZero.Text);      //0态控制信息
            point.K2 = ConfirmCheckBoxValue(cckLocalControlOne.Text);       //1态控制信息
            point.K3 = ConfirmCheckBoxValue(cckLocalControlTwo.Text);       //2态控制信息
            //先赋默认值,如果未设置,则表示清除  20170629
            point.K4 = 0;
            point.K5 = 0;
            point.K6 = 0;
            if (!string.IsNullOrEmpty(CcmbLogicAlarmCon.Text.Trim()))
            {
                point.K4 = Convert.ToByte(CcmbLogicAlarmCon.SelectedIndex);
                point.K5 = Convert.ToByte(CcmbLogicAlarmPoint.Text.Substring(0, CcmbLogicAlarmPoint.Text.IndexOf('.')).Substring(4, 2));
                if (CcmbLogicAlarmPoint.Text.Substring(0, CcmbLogicAlarmPoint.Text.IndexOf('.')).Length > 6)
                {
                    point.K6 = Convert.ToByte(CcmbLogicAlarmPoint.Text.Substring(0, CcmbLogicAlarmPoint.Text.IndexOf('.')).Substring(6));
                }
            }
            #region ====================交叉控制====================
            point.Jckz1 = "";
            point.Jckz2 = "";
            point.Jckz3 = "";
            List <CrossControlItem> listTemp = new List <CrossControlItem>();
            listTemp = ToList(CrossControlDT); //将数据源DT转换成List
            if (listTemp != null)
            {
                if (listTemp.Count > 0)
                {
                    Jc_DefInfo PointTemp;
                    for (int i = 0; i < listTemp.Count; i++)
                    {
                        if (!string.IsNullOrEmpty(listTemp[i].ArrPoint))
                        {
                            PointTemp = Model.DEFServiceModel.QueryPointByCodeCache(listTemp[i].ArrPoint);
                            if (!string.IsNullOrEmpty(PointTemp.Point))
                            {
                                if (listTemp[i].ControlType == "0态控制")
                                {
                                    point.Jckz1 += PointTemp.Fzh.ToString().PadLeft(3, '0') + "C" + PointTemp.Kh.ToString().PadLeft(2, '0')
                                                   + PointTemp.Dzh.ToString() + "|";
                                }
                                else if (listTemp[i].ControlType == "1态控制")
                                {
                                    point.Jckz2 += PointTemp.Fzh.ToString().PadLeft(3, '0') + "C" + PointTemp.Kh.ToString().PadLeft(2, '0')
                                                   + PointTemp.Dzh.ToString() + "|";
                                }
                                else if (listTemp[i].ControlType == "2态控制")
                                {
                                    point.Jckz3 += PointTemp.Fzh.ToString().PadLeft(3, '0') + "C" + PointTemp.Kh.ToString().PadLeft(2, '0')
                                                   + PointTemp.Dzh.ToString() + "|";
                                }
                                else
                                {
                                    XtraMessageBox.Show("交叉控制中存在控制类型未选择的数据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                    return(false);
                                }
                            }
                        }
                        else
                        {
                            XtraMessageBox.Show("交叉控制中存在受控对象未选择的数据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            return(false);
                        }
                    }
                    //处理完成后去掉最后一根“|”
                    if (point.Jckz1 != null)
                    {
                        if (point.Jckz1.Length > 0)
                        {
                            point.Jckz1 = point.Jckz1.Substring(0, point.Jckz1.Length - 1);
                        }
                    }
                    if (point.Jckz2 != null)
                    {
                        if (point.Jckz2.Length > 0)
                        {
                            point.Jckz2 = point.Jckz2.Substring(0, point.Jckz2.Length - 1);
                        }
                    }
                    if (point.Jckz3 != null)
                    {
                        if (point.Jckz3.Length > 0)
                        {
                            point.Jckz3 = point.Jckz3.Substring(0, point.Jckz3.Length - 1);
                        }
                    }
                }
            }
            #endregion

            point.Remark = CtxbDesc.Text;

            return(true);
        }
コード例 #27
0
ファイル: CuDerail.cs プロジェクト: ewin66/Safety-JM-Server
        /// <summary>
        /// 设置交叉控制信息
        /// </summary>
        /// <param name="arrPoint"></param>
        /// <returns></returns>
        private void getCrossInf(string arrPoint)
        {
            try
            {
                Jc_DefInfo temp = Model.DEFServiceModel.QueryPointByCodeCache(arrPoint);
                if (temp == null)
                {
                    return;
                }
                CrossControlList.Clear();
                string[]         ControlPoints;
                Jc_DefInfo       tempPoint;
                CrossControlItem tempCrossItem;
                if (!string.IsNullOrEmpty(temp.Jckz1))
                {
                    ControlPoints = temp.Jckz1.Split('|');
                    if (ControlPoints.Length > 0)
                    {
                        for (int i = 0; i < ControlPoints.Length; i++)
                        {
                            tempCrossItem = new CrossControlItem();
                            tempPoint     = Model.DEFServiceModel.QueryPointByCodeCache(ControlPoints[i]);
                            if (null != tempPoint)
                            {
                                tempCrossItem.ControlType = "0态控制";
                                tempCrossItem.ArrPoint    = tempPoint.Point;
                                tempCrossItem.PointName   = tempPoint.Point + ":" + tempPoint.Wz;

                                if (tempPoint.K1 > 0 & tempPoint.K2 > 0)
                                {
                                    tempCrossItem.FeedBackPointName = tempPoint.K1.ToString().PadLeft(3, '0') + "D" + tempPoint.K2.ToString().PadLeft(2, '0') + tempPoint.K4.ToString() + "." + Model.DEFServiceModel.QueryPointByCodeCache(tempPoint.K1.ToString().PadLeft(3, '0') + "D" + tempPoint.K2.ToString().PadLeft(2, '0') + tempPoint.K4.ToString()).Wz;
                                }
                                CrossControlList.Add(tempCrossItem);
                            }
                        }
                    }
                }

                if (!string.IsNullOrEmpty(temp.Jckz2))
                {
                    ControlPoints = temp.Jckz2.Split('|');
                    if (ControlPoints.Length > 0)
                    {
                        for (int i = 0; i < ControlPoints.Length; i++)
                        {
                            tempCrossItem = new CrossControlItem();
                            tempPoint     = Model.DEFServiceModel.QueryPointByCodeCache(ControlPoints[i]);
                            if (null != tempPoint)
                            {
                                tempCrossItem.ControlType = "1态控制";
                                tempCrossItem.ArrPoint    = tempPoint.Point;
                                tempCrossItem.PointName   = tempPoint.Point + ":" + tempPoint.Wz;

                                if (tempPoint.K1 > 0 & tempPoint.K2 > 0)
                                {
                                    tempCrossItem.FeedBackPointName = tempPoint.K1.ToString().PadLeft(3, '0') + "D" + tempPoint.K2.ToString().PadLeft(2, '0') + tempPoint.K4.ToString() + "." + Model.DEFServiceModel.QueryPointByCodeCache(tempPoint.K1.ToString().PadLeft(3, '0') + "D" + tempPoint.K2.ToString().PadLeft(2, '0') + tempPoint.K4.ToString()).Wz;
                                }
                                CrossControlList.Add(tempCrossItem);
                            }
                        }
                    }
                }

                if (!string.IsNullOrEmpty(temp.Jckz3))
                {
                    ControlPoints = temp.Jckz3.Split('|');
                    if (ControlPoints.Length > 0)
                    {
                        for (int i = 0; i < ControlPoints.Length; i++)
                        {
                            tempCrossItem = new CrossControlItem();
                            tempPoint     = Model.DEFServiceModel.QueryPointByCodeCache(ControlPoints[i]);
                            if (null != tempPoint)
                            {
                                tempCrossItem.ControlType = "2态控制";
                                tempCrossItem.ArrPoint    = tempPoint.Point;
                                tempCrossItem.PointName   = tempPoint.Point + ":" + tempPoint.Wz;

                                if (tempPoint.K1 > 0 & tempPoint.K2 > 0)
                                {
                                    tempCrossItem.FeedBackPointName = tempPoint.K1.ToString().PadLeft(3, '0') + "D" + tempPoint.K2.ToString().PadLeft(2, '0') + tempPoint.K4.ToString() + "." + Model.DEFServiceModel.QueryPointByCodeCache(tempPoint.K1.ToString().PadLeft(3, '0') + "D" + tempPoint.K2.ToString().PadLeft(2, '0') + tempPoint.K4.ToString()).Wz;
                                }
                                CrossControlList.Add(tempCrossItem);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.Error("获得交叉控制信息【getCrossInf】", ex);
            }
        }
コード例 #28
0
ファイル: CuDerail.cs プロジェクト: ewin66/Safety-JM-Server
        /// <summary>
        /// 加载测点信息的函数
        /// </summary>
        public override void LoadInf(string arrPoint, int _devID)
        {
            if (string.IsNullOrEmpty(arrPoint))
            {
                return;
            }
            Jc_DefInfo temp = Model.DEFServiceModel.QueryPointByCodeCache(arrPoint);

            if (null == temp)
            {
                return;
            }

            LoadPointInfo(temp);

            //#region ==================扩展属性==================
            //if (temp.K4 > 0)
            //{
            //    CcmbLogicAlarmCon.SelectedIndex = temp.K4;//报警逻辑
            //}
            //if (temp.K5 > 0)
            //{
            //    Jc_DefInfo LogicPoint = Model.DEFServiceModel.QueryPointByCodeCache(temp.Fzh.ToString().PadLeft(3, '0') + "D" + temp.K5.ToString().PadLeft(2, '0') + temp.K6.ToString());
            //    if (null != LogicPoint)
            //    {
            //        CcmbLogicAlarmPoint.SelectedItem = LogicPoint.Point + "." + LogicPoint.Wz;
            //    }
            //}
            //CtxbDesc.Text = temp.Remark;//描述

            //#endregion

            //#region ==================报警控制==================

            //Jc_DevInfo tempDev = Model.DEVServiceModel.QueryDevByDevIDCache(temp.Devid);

            //if ((temp.K8 & 0x01) == 1) //0态度是否报警
            //{
            //    CckZeroAlarm.Checked = true;
            //}
            //else
            //{
            //    CckZeroAlarm.Checked = false;
            //}

            //if ((temp.K8 & 0x02) == 2)  //1态度是否报警
            //{
            //    CckOneAlarm.Checked = true;
            //}
            //else
            //{
            //    CckOneAlarm.Checked = false;
            //}

            //if ((temp.K8 & 0x04) == 4) //2态度是否报警
            //{
            //    CckTwoAlarm.Checked = true;
            //}
            //else
            //{
            //    CckTwoAlarm.Checked = false;
            //}
            ////颜色显示
            //try
            //{
            //    this.CpZeroColour.Color = Color.FromArgb(int.Parse(temp.Bz9.ToString()));
            //    this.CpOneColour.Color = Color.FromArgb(int.Parse(temp.Bz10.ToString()));
            //    this.CpTwoColour.Color = Color.FromArgb(int.Parse(temp.Bz11.ToString()));
            //}
            //catch
            //{ }
            ////显示内容
            //this.CcmbZeroContent.Text = temp.Bz6;
            //this.CcmbOneContent.Text = temp.Bz7;
            //this.CcmbTwoContent.Text = temp.Bz8;
            ////各态控制口
            //cckLocalControlZero.Text = SetLocalControlText(temp.K1);
            //cckLocalControlOne.Text = SetLocalControlText(temp.K2);
            //cckLocalControlTwo.Text = SetLocalControlText(temp.K3);

            //#endregion

            //#region ==================交叉控制==================
            //getCrossInf(arrPoint);
            //CrossControlDT = ToDataTable(CrossControlList);
            //CdgControl.DataSource = CrossControlDT;
            //CdgControl.RefreshDataSource();
            //#endregion
        }
コード例 #29
0
        /// <summary>
        /// 同步老广播系统测点定义
        /// </summary>
        /// <returns></returns>
        public BasicResponse <bool> SynchronousPoint(SynchronousPointRequest PointDefineRequest)
        {
            BasicResponse <bool> response = new BasicResponse <bool>();

            try
            {
                bool isupdate = false;

                if (PointDefineRequest.Points != null)
                {
                    var points = _b_DefCacheService.Get(new B_DefCacheGetByConditionRequest
                    {
                        predicate = b => b.Sysid
                                    == (int)SystemEnum.Broadcast
                    }).Data;
                    bool isupdatedb = false;//是否更新数据库,如果只有状态发生改变,则只更新缓存数据;反之需要更新数据库
                    foreach (DataRow row in PointDefineRequest.Points.Rows)
                    {
                        var point = row["AddNum"].ToString();
                        //如果存在则比较更新测点信息;如果不存在则插入测点信息
                        if (points.FirstOrDefault(p => p.Point == point) != null)
                        {
                            Dictionary <string, object> paramater = new Dictionary <string, object>();
                            var definfo = points.FirstOrDefault(p => p.Point == point);
                            //比较位置是否一致
                            if (definfo.Wz != row["Wz"].ToString())
                            {
                                isupdatedb   = true;
                                definfo.Wzid = GetPositionId(row["Wz"].ToString());
                                definfo.Wz   = row["Wz"].ToString();
                                paramater.Add("Wzid", GetPositionId(row["Wz"].ToString()));
                                paramater.Add("Wz", row["Wz"].ToString());
                            }
                            //比较区域是否一致
                            // 20180606
                            //var zoneId = row["ZoneId"];
                            if (row.Table.Columns.Contains("ZoneId") && row["ZoneId"] != null && row["ZoneId"].ToString() != "")
                            {
                                var req = new AreaCacheGetByConditionRequest();
                                req.Predicate = a => a.Areaid == definfo.Areaid;
                                var res      = _areaCacheService.GetAreaCache(req);
                                var areaInfo = res.Data[0];
                                if (areaInfo.Areaname != row["Groupname"].ToString() || areaInfo.Areadescribe != row["ZoneId"].ToString())
                                {
                                    isupdatedb       = true;
                                    definfo.Areaid   = GetAreaId(row["Groupname"].ToString(), row["ZoneId"].ToString());
                                    definfo.AreaName = row["Groupname"].ToString();
                                    paramater.Add("Areaid", GetAreaId(row["Groupname"].ToString(), row["ZoneId"].ToString()));
                                    paramater.Add("AreaName", row["Groupname"].ToString());
                                    paramater.Add("Areadescribe", row["ZoneId"].ToString());
                                }
                            }
                            else
                            {
                                if (definfo.AreaName != row["Groupname"].ToString())
                                {
                                    isupdatedb       = true;
                                    definfo.Areaid   = GetAreaId(row["Groupname"].ToString());
                                    definfo.AreaName = row["Groupname"].ToString();
                                    paramater.Add("Areaid", GetAreaId(row["Groupname"].ToString()));
                                    paramater.Add("AreaName", row["Groupname"].ToString());
                                }
                            }

                            //数据状态与设备状态不做比较,直接更新
                            var state = row["State"].ToString();
                            if (state == "0")
                            {
                                definfo.DataState = 3;
                                definfo.State     = 3;

                                paramater.Add("DataState", 3);
                                paramater.Add("State", 3);
                                paramater.Add("Ssz", EnumHelper.GetEnumDescription(DeviceDataState.EquipmentAC));
                            }
                            else if (state == "1")
                            {
                                definfo.DataState = 49;
                                definfo.State     = 3;

                                paramater.Add("DataState", 49);
                                paramater.Add("State", 3);
                                paramater.Add("Ssz", EnumHelper.GetEnumDescription(DeviceDataState.BroadCastInCall));
                            }
                            else if (state == "2")
                            {
                                definfo.DataState = 0;
                                definfo.State     = 0;

                                paramater.Add("DataState", 0);
                                paramater.Add("State", 0);
                                paramater.Add("Ssz", EnumHelper.GetEnumDescription(DeviceDataState.EquipmentInterrupted));
                            }
                            //比较Mac是否一致
                            if (definfo.Jckz1 != row["Mac"].ToString())
                            {
                                isupdatedb    = true;
                                definfo.Jckz1 = row["Mac"].ToString();
                                paramater.Add("Jckz1", row["Mac"].ToString());
                            }
                            //比较IP是否一致
                            if (definfo.Jckz2 != row["IP"].ToString())
                            {
                                isupdatedb    = true;
                                definfo.Jckz2 = row["IP"].ToString();
                                paramater.Add("Jckz2", row["IP"].ToString());
                            }
                            //比较设备类型是否一致
                            if (definfo.Bz6 != row["Type"].ToString())
                            {
                                isupdatedb  = true;
                                definfo.Bz6 = row["Type"].ToString();
                                paramater.Add("Bz6", row["Type"].ToString());
                            }

                            //更新数据库
                            if (isupdatedb)
                            {
                                isupdate = true;
                                var _jc_Def = ObjectConverter.Copy <Jc_DefInfo, B_DefModel>(definfo);
                                _repository.UpdateDef(_jc_Def);
                            }

                            //更新数据更新时间,每次调用都更新时间  20180422
                            paramater.Add("DttStateTime", DateTime.Now);
                            //更新缓存
                            if (paramater.Count > 0)
                            {
                                UpdatePropertiesRequest updaterequest = new UpdatePropertiesRequest();
                                updaterequest.PointID     = definfo.PointID;
                                updaterequest.UpdateItems = paramater;
                                _b_DefCacheService.UpdateInfo(updaterequest);
                            }
                        }
                        else
                        {
                            var bdev = _devCacheService.GetPointDefineCache(new DeviceDefineCacheGetByConditonRequest
                            {
                                Predicate = dev => dev.Name == "广播主机"
                            }).Data.FirstOrDefault();

                            if (bdev != null)
                            {
                                Jc_DefInfo bdefinfo = new Jc_DefInfo();
                                bdefinfo.ID   = bdefinfo.PointID = IdHelper.CreateLongId().ToString();
                                bdefinfo.Wzid = GetPositionId(row["Wz"].ToString());
                                bdefinfo.Wz   = row["Wz"].ToString();

                                // 20180606
                                //var zoneId = row["ZoneId"];
                                if (row.Table.Columns.Contains("ZoneId") && row["ZoneId"] != null && row["ZoneId"].ToString() != "")
                                {
                                    bdefinfo.Areaid   = GetAreaId(row["Groupname"].ToString(), row["ZoneId"].ToString());
                                    bdefinfo.AreaName = row["Groupname"].ToString();
                                }
                                else
                                {
                                    bdefinfo.Areaid   = GetAreaId(row["Groupname"].ToString());
                                    bdefinfo.AreaName = row["Groupname"].ToString();
                                }

                                bdefinfo.Point            = point;
                                bdefinfo.Upflag           = "1";//子系统同步测点
                                bdefinfo.Jckz1            = row["Mac"].ToString();
                                bdefinfo.Jckz2            = row["IP"].ToString();
                                bdefinfo.Bz6              = row["Type"].ToString();
                                bdefinfo.CreateUpdateTime = DateTime.Now;
                                bdefinfo.DeleteTime       = DateTime.Parse("1900-01-01 00:00:00");
                                bdefinfo.Activity         = "1";
                                bdefinfo.InfoState        = InfoState.AddNew;
                                bdefinfo.DevPropertyID    = 0;
                                bdefinfo.DevProperty      = bdev.DevProperty;
                                bdefinfo.Devid            = bdev.Devid;
                                bdefinfo.DevName          = bdev.Name;
                                bdefinfo.Sysid            = (int)SystemEnum.Broadcast;
                                bdefinfo.DttStateTime     = DateTime.Now;

                                var bdefinfos = _b_DefCacheService.Get(new B_DefCacheGetByConditionRequest
                                {
                                    predicate = b => b.Sysid
                                                == (int)SystemEnum.Broadcast
                                }).Data;

                                //if (bdefinfos.Count == 0)
                                //{
                                //    bdefinfo.Fzh = 256;
                                //}
                                //else
                                //{
                                //    int maxstationnum = bdefinfos.Max(o => o.Fzh);
                                //    bdefinfo.Fzh = (short)(maxstationnum + 1);
                                //}

                                // 20180605
                                //生成分站号
                                var   req             = new B_DefCacheGetAllRequest();
                                var   res             = _b_DefCacheService.GetAll(req);
                                var   broadcastPoints = res.Data;
                                short fzh             = 0;
                                for (int i = 257; i < 513; i++)
                                {
                                    var exist = broadcastPoints.Any(a => a.Fzh == i);
                                    if (!exist)
                                    {
                                        fzh = (short)i;
                                        break;
                                    }
                                }

                                //var fzh = Convert.ToInt32(point) + 256;
                                if (fzh == 0)
                                {
                                    var ret = new BasicResponse <bool>();
                                    ret.Code    = 101;
                                    ret.Data    = false;
                                    ret.Message = "广播设备对应分站号已满。";
                                    return(ret);
                                }
                                bdefinfo.Fzh = fzh;

                                isupdate = true;
                                //添加数据库
                                var _jc_Def      = ObjectConverter.Copy <Jc_DefInfo, B_DefModel>(bdefinfo);
                                var resultjc_Def = _repository.AddDef(_jc_Def);
                                //更新缓存
                                B_DefCacheInsertRequest addbDefCacheRequest = new B_DefCacheInsertRequest();
                                addbDefCacheRequest.B_DefInfo = bdefinfo;
                                _b_DefCacheService.Insert(addbDefCacheRequest);
                            }
                        }
                    }

                    //判断同步数据是否有删除的测点信息,如果有则同步删除
                    for (int i = points.Count - 1; i >= 0; i--)
                    {
                        var pointrow = PointDefineRequest.Points.Select("AddNum = '" + points[i].Point + "'");
                        if (pointrow.Length == 0)
                        {
                            isupdate = true;
                            //删除数据库
                            _repository.Delete(points[i].ID);
                            //删除缓存
                            _b_DefCacheService.Delete(new B_DefCacheDeleteRequest {
                                B_DefInfo = points[i]
                            });
                        }
                    }
                }

                if (isupdate)
                {
                    var saveTime = DateTime.Now;
                    //保存定义更新时间
                    if (Basic.Framework.Data.PlatRuntime.Items.ContainsKey("_DefUpdateTime"))
                    {
                        Basic.Framework.Data.PlatRuntime.Items["_DefUpdateTime"] = saveTime;
                    }
                    else
                    {
                        Basic.Framework.Data.PlatRuntime.Items.Add("_DefUpdateTime", saveTime);
                    }

                    //保存数据库
                    ConfigInfo tempConfig = new ConfigInfo();
                    tempConfig.Name   = "defdatetime";
                    tempConfig.Text   = saveTime.ToString("yyyy-MM-dd HH:mm:ss");
                    tempConfig.Upflag = "0";
                    ConfigCacheGetByKeyRequest configCacheRequest = new ConfigCacheGetByKeyRequest();
                    configCacheRequest.Name = "defdatetime";
                    var        result          = _configCacheService.GetConfigCacheByKey(configCacheRequest);
                    ConfigInfo tempConfigCache = result.Data;
                    if (tempConfig != null)
                    {
                        tempConfig.ID        = tempConfigCache.ID;
                        tempConfig.InfoState = InfoState.Modified;
                        //更新数据库
                        var req2 = ObjectConverter.Copy <ConfigInfo, ConfigModel>(tempConfig);
                        _configRepository.UpdateConfig(req2);
                        //更新缓存
                        ConfigCacheUpdateRequest UpdateConfigCacheRequest = new ConfigCacheUpdateRequest();
                        UpdateConfigCacheRequest.ConfigInfo = tempConfig;
                        _configCacheService.UpdateConfigCahce(UpdateConfigCacheRequest);
                    }
                }

                response.Data = true;
                return(response);
            }
            catch (Exception ex)
            {
                LogHelper.Error("广播同步定义信息出错!" + ex.Message);
                response.Data = true;
                return(response);
            }
        }
コード例 #30
0
        private void UpdatePointDefineCacheByProperty(Jc_DefInfo Point)
        {
            Dictionary <string, object> paramater = new Dictionary <string, object>();

            paramater.Add("Areaid", Point.Areaid);
            paramater.Add("Sysid", Point.Sysid);
            paramater.Add("Activity", Point.Activity);
            paramater.Add("CreateUpdateTime", Point.CreateUpdateTime);
            paramater.Add("DeleteTime", Point.DeleteTime);
            paramater.Add("Fzh", Point.Fzh);
            paramater.Add("Kh", Point.Kh);
            paramater.Add("Dzh", Point.Dzh);
            paramater.Add("Devid", Point.Devid);
            paramater.Add("Wzid", Point.Wzid);
            paramater.Add("Csid", Point.Csid);
            paramater.Add("Point", Point.Point);
            paramater.Add("Jckz1", Point.Jckz1);
            paramater.Add("Jckz2", Point.Jckz2);
            paramater.Add("Jckz3", Point.Jckz3);
            paramater.Add("Z1", Point.Z1);
            paramater.Add("Z2", Point.Z2);
            paramater.Add("Z3", Point.Z3);
            paramater.Add("Z4", Point.Z4);
            paramater.Add("Z5", Point.Z5);
            paramater.Add("Z6", Point.Z6);
            paramater.Add("Z7", Point.Z7);
            paramater.Add("Z8", Point.Z8);
            paramater.Add("K1", Point.K1);
            paramater.Add("K2", Point.K2);
            paramater.Add("K3", Point.K3);
            paramater.Add("K4", Point.K4);
            paramater.Add("K5", Point.K5);
            paramater.Add("K6", Point.K6);
            paramater.Add("K7", Point.K7);
            paramater.Add("K8", Point.K8);
            paramater.Add("Bz1", Point.Bz1);
            paramater.Add("Bz2", Point.Bz2);
            paramater.Add("Bz3", Point.Bz3);
            paramater.Add("Bz4", Point.Bz4);
            paramater.Add("Bz5", Point.Bz5);
            paramater.Add("Bz6", Point.Bz6);
            paramater.Add("Bz7", Point.Bz7);
            paramater.Add("Bz8", Point.Bz8);
            paramater.Add("Bz9", Point.Bz9);
            paramater.Add("Bz10", Point.Bz10);
            paramater.Add("Bz11", Point.Bz11);
            paramater.Add("Bz12", Point.Bz12);
            paramater.Add("Bz13", Point.Bz13);//条件呼叫转移号码
            paramater.Add("Bz18", Point.Bz18);
            //扩展字段更新
            paramater.Add("Wz", Point.Wz);
            paramater.Add("DevName", Point.DevName);
            paramater.Add("DevPropertyID", Point.DevPropertyID);
            paramater.Add("DevClassID", Point.DevClassID);
            paramater.Add("DevModelID", Point.DevModelID);
            paramater.Add("DevProperty", Point.DevProperty);
            paramater.Add("DevClass", Point.DevClass);
            paramater.Add("DevModel", Point.DevModel);
            paramater.Add("Unit", Point.Unit);
            paramater.Add("AreaName", Point.AreaName);
            paramater.Add("AreaLoc", Point.AreaLoc);
            paramater.Add("XCoordinate", Point.XCoordinate);
            paramater.Add("YCoordinate", Point.YCoordinate);

            //定义改变标记
            paramater.Add("PointEditState", Point.PointEditState);
            paramater.Add("DefIsInit", Point.DefIsInit);
            paramater.Add("kzchangeflag", Point.kzchangeflag);
            paramater.Add("ReDoDeal", Point.ReDoDeal);
            paramater.Add("Dormancyflag", Point.Dormancyflag);

            //修改标记
            paramater.Add("InfoState", Point.InfoState);


            UpdatePropertiesRequest bDefCacheRequest = new UpdatePropertiesRequest();

            bDefCacheRequest.PointID     = Point.PointID;
            bDefCacheRequest.UpdateItems = paramater;
            _b_DefCacheService.UpdateInfo(bDefCacheRequest);
        }