Пример #1
0
        ///// <summary>
        ///// 新增设备告警(含有位置信息,区域信息)
        ///// </summary>
        ///// <param name="eventType"></param>
        ///// <param name="device_code"></param>
        ///// <param name="alarm_location"></param>
        ///// <param name="area_id"></param>
        ///// <param name="alarm_level"></param>
        ///// <param name="report_time"></param>
        ///// <param name="content"></param>
        ///// <returns></returns>
        //public bool AddInformAlarm(int eventType, string device_code, string alarm_location, int area_id, int alarm_level, string content)
        //{
        //    try
        //    {
        //        ServInformAlarmModel model = new ServInformAlarmModel();
        //        model.alarm_level = alarm_level;
        //        model.alarm_location = alarm_location;
        //        model.area_id = area_id;
        //        model.content = content;
        //        model.device_code = device_code;
        //        model.event_type = eventType;
        //        model.report_time = DateTime.Now;
        //        model.status = (int)EnumClass.InformAlarmStatus.未处理;
        //        int res = servInformAlarmDal.AddEntity(model);
        //        if (res > 0)
        //        {
        //            return true;
        //        }
        //        else
        //        {
        //            return false;
        //        }
        //    }
        //    catch (Exception ex)
        //    {
        //        throw ex;
        //    }
        //}

        /// <summary>
        /// 页面发送模拟报警至转发层
        /// </summary>
        /// <param name="alarmLevel"></param>
        /// <param name="deviceCode"></param>
        /// <param name="content"></param>
        /// <param name="eventCode"></param>
        /// <returns></returns>
        public bool AddDeviceAlarm(string alarmName, int alarmLevel, string deviceCode, string content, string eventCode)
        {
            try
            {
                sendAlarmPageDele = new SendAlarmPageDele(CSM.Utils.HttpHelper.PostJsonData);
                string              url         = System.Configuration.ConfigurationManager.AppSettings["InterfaceUrl"] + "/api/Interface/Forward";
                ServDeviceInfoDAL   deviceDal   = new ServDeviceInfoDAL();
                AlarmInfoModel      alarmModel  = new AlarmInfoModel();
                InterfaceData       data        = new InterfaceData();
                ServDeviceInfoModel deviceModel = deviceDal.GetDeviceByDeviceCode(deviceCode);
                alarmModel.alarm_cache_status = 0;
                alarmModel.alarm_event        = eventCode;
                alarmModel.alarm_level        = alarmLevel;
                alarmModel.alarm_location     = "";
                alarmModel.alarm_name         = alarmName;
                alarmModel.alarm_subsystem    = deviceModel.subsystem_id;
                alarmModel.alarm_text         = content;
                alarmModel.alarm_time         = DateTime.Now;
                alarmModel.alarm_type         = (int)EnumClass.AlarmType.设备报警;
                alarmModel.code = deviceCode;
                data.data       = alarmModel;
                data.dataType   = 1;
                data.subSysType = deviceModel.subsystem_id;
                data.mark       = "pageMoniter";
                string param = CSM.Utils.JsonHelper.ObjectToString(data);
                sendAlarmPageDele.BeginInvoke(url, param, Encoding.UTF8, null, null);
                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #2
0
        /// <summary>
        /// 获取报警前几条数据
        /// </summary>
        /// <param name="num"></param>
        /// <returns></returns>
        public List <AlarmRecordModel> GetFirstFewAlarm(int num)
        {
            try
            {
                ServDeviceInfoDAL           servDeviceInfoDal = new ServDeviceInfoDAL();
                List <ServAlarmRecordModel> list            = _servAlarmRecordDal.GetFirstFewAlarm(num);
                List <AlarmRecordModel>     alarmRecordInfo = new List <AlarmRecordModel>();
                AlarmRecordModel            alarmRecordModel;

                foreach (ServAlarmRecordModel item in list)
                {
                    alarmRecordModel               = new AlarmRecordModel();
                    alarmRecordModel.id            = item.id;
                    alarmRecordModel.alarmName     = item.alarm_name;
                    alarmRecordModel.confirmState  = Enum.GetName(typeof(EnumClass.ConfirmAlarmState), item.confirm_state);
                    alarmRecordModel.alarmLocation = item.alarm_location;
                    alarmRecordModel.alarmTime     = item.alarm_time;
                    alarmRecordModel.deviceName    = servDeviceInfoDal.GetEntity(item.alarm_code) == null ? "未知:" + item.alarm_code : servDeviceInfoDal.GetEntity(item.alarm_code).device_name;//查询设备名称
                    alarmRecordInfo.Add(alarmRecordModel);
                }
                return(alarmRecordInfo);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #3
0
 /// <summary>
 /// 根据设备code查找设备
 /// </summary>
 /// <param name="code"></param>
 /// <returns></returns>
 private ServDeviceInfoModel GetDeviceInfo(string code)
 {
     try
     {
         ServDeviceInfoDAL deviceInfoDal = new ServDeviceInfoDAL();
         return(deviceInfoDal.GetEntity(code));
     }
     catch (Exception ex)
     {
         Log4NetHelp.Error("根据设备Code获取设备失败:" + code + " 错误信息:" + ex.Message);
         return(null);
     }
 }
Пример #4
0
        /// <summary>
        /// 页面发送模拟报警至转发层
        /// </summary>
        /// <param name="alarmLevel"></param>
        /// <param name="deviceCode"></param>
        /// <param name="content"></param>
        /// <param name="eventCode"></param>
        /// <returns></returns>
        public RetMsgModel AddMapDeviceAlarm(string alarmName, int alarmLevel, string deviceCode, string content, string eventCode)
        {
            try
            {
                RetMsgModel retModel = new RetMsgModel();
                sendAlarmPageDele = new SendAlarmPageDele(CSM.Utils.HttpHelper.PostJsonData);
                string              url         = System.Configuration.ConfigurationManager.AppSettings["InterfaceUrl"] + "/api/Interface/Forward";
                ServDeviceInfoDAL   deviceDal   = new ServDeviceInfoDAL();
                AlarmInfoModel      alarmModel  = new AlarmInfoModel();
                InterfaceData       data        = new InterfaceData();
                ServDeviceInfoModel deviceModel = deviceDal.GetDeviceByDeviceCode(deviceCode);
                alarmModel.alarm_cache_status = 0;
                alarmModel.alarm_event        = eventCode;
                alarmModel.alarm_level        = alarmLevel;
                alarmModel.alarm_location     = "";
                alarmModel.alarm_name         = alarmName;
                alarmModel.alarm_subsystem    = deviceModel.subsystem_id;
                alarmModel.alarm_text         = content;
                alarmModel.alarm_time         = DateTime.Now;
                alarmModel.alarm_type         = (int)EnumClass.AlarmType.设备报警;
                alarmModel.code = deviceCode;
                data.data       = alarmModel;
                data.dataType   = 1;
                data.subSysType = deviceModel.subsystem_id;
                data.mark       = "pageMoniter";
                string param = CSM.Utils.JsonHelper.ObjectToString(data);
                //sendAlarmPageDele.BeginInvoke(url, param, Encoding.UTF8, null, null);
                string ret = Utils.HttpHelper.PostWebRequestBandError(url, param, "application/json;charset=utf-8", Encoding.UTF8);
                if (string.IsNullOrEmpty(ret))
                {
                    retModel.status  = 1;
                    retModel.message = "调用转发层返回值为空!";
                }
                else
                {
                    retModel = Utils.JsonHelper.StringToObject <RetMsgModel>(ret);
                }

                return(retModel);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #5
0
 /// <summary>
 /// 获取监视器
 /// </summary>
 /// <returns></returns>
 public List <GalleryInfo> GetGalleryList(int regionId)
 {
     try
     {
         ServDeviceInfoDAL          deviceInfoDal  = new ServDeviceInfoDAL();
         List <GalleryInfo>         retGalleryList = new List <GalleryInfo>();
         GalleryInfo                gallery        = null;
         List <ServDeviceInfoModel> galleryList    = deviceInfoDal.GetAllDevice(5, regionId);//5代表监视器
         for (int i = 0; i < galleryList.Count; i++)
         {
             gallery               = new GalleryInfo();
             gallery.galleryCode   = galleryList[i].device_code;
             gallery.galleryName   = galleryList[i].device_name;
             gallery.galleryStatus = galleryList[i].device_status;
             gallery.id            = galleryList[i].id;
             retGalleryList.Add(gallery);
         }
         return(retGalleryList);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Пример #6
0
        /// <summary>
        /// 报警数据拼装
        /// </summary>
        /// <param name="sourceModel"></param>
        /// <param name="eventList"></param>
        /// <returns></returns>
        private AlarmRecordModel TranAlarmRecord(AlarmRecordCustom sourceModel, List <BaseEventTypeModel> eventList)
        {
            AlarmRecordModel    retModel            = new AlarmRecordModel();
            ServDeviceInfoDAL   servDeviceInfoDal   = new ServDeviceInfoDAL();
            BaseRegionConfigDAL baseRegionConfigDal = new BaseRegionConfigDAL();
            ServPersonInfoDAL   personInfoDal       = new ServPersonInfoDAL();

            List <BaseRegionConfigModel> regionList = baseRegionConfigDal.GetAllRegionConfig();//获取全部园区

            #region 查找事件  旧版
            //if (alarmEvent == null)   //判断当前事件是否存在
            //{
            //    retModel.alarmEvent = "";
            //    retModel.rootEventId = -1;
            //}
            //else
            //{
            //    if (alarmEvent.pid == -1)  //判断是否是父级事件
            //    {
            //        retModel.alarmEvent = alarmEvent.event_name;
            //        retModel.rootEventId = alarmEvent.id;
            //    }
            //    else
            //    {
            //        var rootEvent = eventList.FirstOrDefault(n => n.id == alarmEvent.pid);//查询父级事件,目前事件只保留两级
            //        if (rootEvent != null)   //找到父级事件
            //        {
            //            retModel.alarmEvent = alarmEvent.event_name + "[" + rootEvent.event_name + "]";
            //            retModel.rootEventId = rootEvent.id;
            //        }
            //        else                    //未找到父级事件
            //        {
            //            retModel.alarmEvent = "[" + rootEvent.event_name + "]";
            //            retModel.rootEventId = -1;
            //        }
            //    }

            //}

            #endregion

            #region   查找事件
            //var alarmEvent = eventList.FirstOrDefault(n => n.id == sourceModel.alarm_event); //查询当前事件
            //if (alarmEvent == null)   //判断当前事件是否存在
            //{
            //    retModel.alarmEvent = "--";
            //    retModel.rootEventId = -1;
            //}
            //else
            //{
            //    if (alarmEvent.pid == -1)  //判断是否是父级事件
            //    {
            //        retModel.alarmEvent = alarmEvent.event_name;
            //        retModel.rootEventId = alarmEvent.id;
            //    }
            //    else
            //    {
            //        var rootEvent = eventList.FirstOrDefault(n => n.id == alarmEvent.pid);//查询父级事件,目前事件只保留两级
            //        if (rootEvent != null)   //找到父级事件
            //        {
            //            retModel.alarmEvent = rootEvent.event_name;
            //            retModel.rootEventId = rootEvent.id;
            //        }
            //        else                    //未找到父级事件
            //        {
            //            retModel.alarmEvent = "--";
            //            retModel.rootEventId = -1;
            //        }
            //    }

            //}
            #endregion

            #region 查找事件  新版
            if (!string.IsNullOrEmpty(sourceModel.alarm_event) && sourceModel.alarm_event != "")
            {
                var alarmEvent = eventList.FirstOrDefault(n => n.event_code == sourceModel.alarm_event);//查找事件
                if (alarmEvent != null)
                {
                    if (alarmEvent.pid == -1)
                    {
                        retModel.alarmEvent  = alarmEvent.event_name;
                        retModel.rootEventId = alarmEvent.id;
                    }
                    else
                    {
                        var rootEvent = eventList.FirstOrDefault(n => n.id == alarmEvent.pid);
                        if (rootEvent != null)   //找到父级事件
                        {
                            retModel.alarmEvent  = rootEvent.event_name;
                            retModel.rootEventId = rootEvent.id;
                        }
                        else                    //未找到父级事件
                        {
                            retModel.alarmEvent  = "--";
                            retModel.rootEventId = -1;
                        }
                    }
                }
                else
                {
                    retModel.alarmEvent  = "--";
                    retModel.rootEventId = -1;
                }
            }
            else
            {
                retModel.alarmEvent  = "--";
                retModel.rootEventId = -1;
            }
            #endregion

            // retModel.alarmEvent = eventList.Find(n => n.id == sourceModel.alarm_event) == null ? "" : eventList.Find(n => n.id == sourceModel.alarm_event).event_name;//将事件类型ID转换为事件名称

            retModel.alarmLevel    = Enum.IsDefined(typeof(EnumClass.AlarmLevel), sourceModel.alarm_level) ? Enum.ToObject(typeof(EnumClass.AlarmLevel), sourceModel.alarm_level).ToString() : "";//转换报警等级
            retModel.alarmLocation = sourceModel.alarm_location;
            // retModel.alarmName = sourceModel.alarm_name;
            retModel.alarmName        = sourceModel.alarm_code;//报警名称不显示,显示设备code
            retModel.alarmText        = sourceModel.alarm_text;
            retModel.alarmTime        = sourceModel.alarm_time;
            retModel.alarmCacheStatus = sourceModel.alarm_cache_status;
            retModel.alarmType        = sourceModel.alarm_type; //设备报警
                                                                // retModel.confirmPersonName = "";//根据ssoid查找人员 需调用sso接口
            retModel.confirmPersonName = personInfoDal.GetPersonInfoBySSOId(sourceModel.confirm_person_id) == null ? "" : personInfoDal.GetPersonInfoBySSOId(sourceModel.confirm_person_id).alias;
            retModel.confirmAlarmTime  = sourceModel.confirm_alarm_time;
            retModel.confirmAlarmText  = sourceModel.confirm_alarm_text;
            retModel.confirmResult     = Enum.IsDefined(typeof(EnumClass.ConfirmAlarmResult), sourceModel.confirm_result) ? Enum.ToObject(typeof(EnumClass.ConfirmAlarmResult), sourceModel.confirm_result).ToString() : "";
            retModel.confirmState      = Enum.IsDefined(typeof(EnumClass.ConfirmAlarmState), sourceModel.confirm_state) ? Enum.ToObject(typeof(EnumClass.ConfirmAlarmState), sourceModel.confirm_state).ToString() : "";
            // retModel.deviceName = servDeviceInfoDal.GetEntity(sourceModel.alarm_code) == null ? "未知:" + sourceModel.alarm_code : servDeviceInfoDal.GetEntity(sourceModel.alarm_code).device_name;//查询设备名称
            retModel.deviceName = sourceModel.device_name == null ? "未知" : sourceModel.device_name;
            retModel.regionName = regionList.Where(n => n.id == sourceModel.region_id).FirstOrDefault() == null ? "" : regionList.Where(n => n.id == sourceModel.region_id).FirstOrDefault().region_name;
            retModel.ext1       = sourceModel.ext1;
            retModel.ext2       = sourceModel.ext2;
            retModel.ext3       = sourceModel.ext3;
            retModel.ext4       = sourceModel.ext4;
            retModel.ext5       = sourceModel.ext5;
            retModel.id         = sourceModel.id;
            retModel.subSystem  = Enum.IsDefined(typeof(EnumClass.SubSystem), sourceModel.alarm_subsystem) ? Enum.ToObject(typeof(EnumClass.SubSystem), sourceModel.alarm_subsystem).ToString() : "";//转换为子系统名称
            return(retModel);
        }
Пример #7
0
 /// <summary>
 /// 处理丛文设备数据
 /// </summary>
 /// <returns></returns>
 private bool HandleCowinDeviceData(object message, string mark)
 {
     try
     {
         List <DeviceModel>         deviceList    = JsonHelper.StringToObject <List <DeviceModel> >(message.ToString());
         ServTempDeviceDAL          tempDeviceDal = new ServTempDeviceDAL();
         ServDeviceInfoDAL          deviceInfoDal = new ServDeviceInfoDAL();
         ConvertChinese             convert       = new ConvertChinese();
         List <BaseDeviceTypeModel> typeList      = null;
         try
         {
             typeList = baseMapConfigBLL.GetAllBaseDeviceTypeModel();
         }
         catch (Exception ex)
         {
             Log4NetHelp.Error("获取基本设备类型失败!" + ex.Message);
         }
         for (int i = 0; i < deviceList.Count; i++)
         {
             //int tempNum = tempDeviceDal.GetTempDeviceByCode(deviceList[i].deviceCode);
             ServTempDeviceModel tempDevice = tempDeviceDal.GetTempDeviceByDeviceCode(deviceList[i].deviceCode);
             ServDeviceInfoModel deviceInfo = deviceInfoDal.GetDeviceByDeviceCode(deviceList[i].deviceCode);
             if (tempDevice == null && deviceInfo == null)
             {
                 ServTempDeviceModel model = new ServTempDeviceModel();
                 var type = typeList.Where(n => n.type_name == deviceList[i].typeName).FirstOrDefault();
                 model.device_type  = type == null ? 0 : type.id;
                 model.create_time  = DateTime.Now;
                 model.device_code  = deviceList[i].deviceCode;
                 model.device_name  = deviceList[i].deviceName;
                 model.search_code  = convert.GetHeadOfChs(deviceList[i].deviceName);
                 model.subsystem_id = deviceList[i].subsystemId;
                 model.ext1         = deviceList[i].serverIp;
                 try
                 {
                     int res = tempDeviceDal.AddEntity(model);
                     if (res == 0)
                     {
                         Log4NetHelp.Error("设备code:" + deviceList[i].deviceCode + " 设备名称:" + deviceList[i].deviceName + " 插入临时表失败!");
                     }
                     else
                     {
                         Log4NetHelp.Info("设备code:" + deviceList[i].deviceCode + " 设备名称:" + deviceList[i].deviceName + " 插入临时表成功!");
                     }
                 }
                 catch (Exception ex)
                 {
                     Log4NetHelp.Error("设备code:" + deviceList[i].deviceCode + " 设备名称:" + deviceList[i].deviceName + " 插入临时表失败!" + ex.Message);
                 }
             }
             else if (tempDevice != null)
             {
                 Log4NetHelp.Error("设备code:" + deviceList[i].deviceCode + " 设备名称:" + deviceList[i].deviceName + " 在临时设备表已存在!");
             }
             else if (deviceInfo != null)
             {
                 Log4NetHelp.Error("设备code:" + deviceList[i].deviceCode + " 设备名称:" + deviceList[i].deviceName + " 在设备表已存在!");
             }
         }
         return(true);
     }
     catch (Exception ex)
     {
         Log4NetHelp.Error("标识为:" + mark + "驱动同步丛文设备数据失败!" + ex.Message);
         return(false);
     }
 }