Ejemplo n.º 1
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);
        }