Exemplo n.º 1
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;
            }
        }
Exemplo n.º 2
0
        private List <AlarmRecordModel> GetRecords(string result, DateTime now)
        {
            JsonElement jobj    = JsonSerializer.Deserialize <JsonElement>(result);
            var         records = new List <AlarmRecordModel>();

            if (jobj.GetProperty("hits").GetProperty("total").GetProperty("value").GetInt32() > 0)
            {
                foreach (var item in jobj.GetProperty("hits").GetProperty("hits").EnumerateArray())
                {
                    var record = new AlarmRecordModel()
                    {
                        Time = now
                    };
                    var traceId = item.GetProperty("_source").GetProperty("traceId").GetString();
                    record.TraceId = traceId;
                    string proId   = string.Empty;
                    string proName = string.Empty;
                    int    code    = 0;
                    string message = string.Empty;
                    if (item.GetProperty("_source").TryGetProperty("response", out var response))
                    {
                        if (response.TryGetProperty("proID", out var proIdPro))
                        {
                            proId            = proIdPro.GetString();
                            record.ProductId = proId;
                        }
                        if (response.TryGetProperty("code", out var codePro))
                        {
                            if (codePro.ValueKind == JsonValueKind.Number)
                            {
                                code = codePro.GetInt32();
                            }
                            else
                            {
                                code = -99999;
                            }
                            record.ErrorCode = code;
                        }
                        if (response.TryGetProperty("message", out var messagePro) || response.TryGetProperty("errorMsg", out messagePro))
                        {
                            message        = messagePro.GetString();
                            record.Message = message;
                        }
                    }
                    else
                    {
                        Console.WriteLine($"数据异常:{result}");
                    }
                    records.Add(record);
                }
            }

            return(records);
        }
Exemplo n.º 3
0
 //根据告警ID获取一条告警信息
 public JsonResult GetAlarmByalarmIdData(int alarm_id)
 {
     try
     {
         AlarmRecordModel alarm = _servAlarmRecordBll.GetEntity(alarm_id);
         return(Json(alarm));
     }
     catch (Exception ex)
     {
         return(Json(new { state = 1, message = "获取确警信息出现!" + ex.Message }, JsonRequestBehavior.AllowGet));
     }
 }
Exemplo n.º 4
0
        public AlarmRecordModel GetAlarmRecordModel(int did)
        {
            IQueryable <AlarmRecordModel> source = from record in base.DataContext.AlarmRecordInfos
                                                   join rule in base.DataContext.AlarmRuleInfos on record.RuleDID equals rule.RuleDID
                                                   join content in base.DataContext.AlarmContentInfos on rule.AlarmTypeDID equals content.DID
                                                   //join craft in base.DataContext.CraftInfos on record.CraftDID equals craft.CraftDID
                                                   //join process in base.DataContext.ProcessInfos on record.ProcessDID equals process.ProcessDID
                                                   join facility in base.DataContext.FacilityInfos on record.FacilityDID equals facility.FacilityDID
                                                   //join unit in base.DataContext.UnitInfos on record.UnitDID equals unit.UnitDID
                                                   join alarmLocationImage in base.DataContext.AlarmLocationImageInfos on rule.AlarmLocationImageDID equals alarmLocationImage.DID
                                                   join solution in base.DataContext.SolutionInfos on rule.SolutionDID equals solution.DID
                                                   join solutionImage in base.DataContext.SolutionImageInfos on rule.SolutionImageDID equals solutionImage.DID
                                                   join reason in base.DataContext.AlarmReasonInfos on rule.AlarmTypeDID equals reason.DID
                                                   join alarmType in base.DataContext.AlarmTypeInfos on rule.AlarmTypeDID equals alarmType.DID
                                                   where record.AlarmRecordDID == did
                                                   select new AlarmRecordModel
            {
                AlarmContent = content.Content,
                DID          = record.AlarmRecordDID,
                AlarmTime    = record.AlarmTime,
                DisposeTime  = record.DisposeTime,
                Duration     = record.Duration,
                FacilityName = facility.MMName,
                //ProcessName = process.Name,
                //UnitName = unit.Name,
                //CraftName = craft.Name,
                AlarmCount             = (int?)record.AlarmCount,
                Address                = record.Address,
                AlarmLocationImagePath = alarmLocationImage.Path,
                AlarmReason            = reason.Content,
                //BatteryBarCode = record.BatteryBarCode,
                CraftDID     = record.FacilityDID,
                DisposeState = (int?)record.DisposeState,
                FacilityDID  = record.FacilityDID,
                Handler      = record.Handler,
                //ProcessDID = record.ProcessDID,
                Remark            = record.Remark,
                RuleDID           = record.RuleDID,
                SolutionImagePath = solutionImage.Path,
                SolutionText      = solution.Content,
                //UnitDID = record.UnitDID,
                AlarmTypeName = alarmType.Type
            };
            AlarmRecordModel alarmRecordModel = source.FirstOrDefault <AlarmRecordModel>();

            if (alarmRecordModel != null)
            {
                alarmRecordModel.FieldValues = this.GetAlarmRuleFieldValues(alarmRecordModel.RuleDID);
            }
            return(alarmRecordModel);
        }
Exemplo n.º 5
0
        /// <summary>
        /// 带条件分页查询
        /// </summary>
        /// <param name="pageIndex">第几页</param>
        /// <param name="pageSize">每页数量</param>
        /// <param name="alarmCode">报警编号</param>
        /// <param name="alarmType">报警类型</param>
        /// <param name="subSystem">子系统类型</param>
        /// <param name="startTime">起始时间</param>
        /// <param name="endTime">截止时间</param>
        /// <param name="totalNumber">总条数</param>
        /// <returns></returns>
        public List <AlarmRecordModel> QueryPageList(int pageIndex, int pageSize, int regionId, int confirmState, int alarmType, int alarmLevel, int[] subSystem, string startTime, string endTime, out int totalNumber)
        {
            List <AlarmRecordModel> retList  = new List <AlarmRecordModel>();
            AlarmRecordModel        retModel = null;

            try
            {
                // ServDeviceInfoDAL servDeviceInfoDal = null;
                ServAlarmRecordQuery queryModel = new ServAlarmRecordQuery();
                queryModel.alarmCode    = "";
                queryModel.confirmState = confirmState;
                queryModel.alarmType    = alarmType;
                queryModel.alarmLevel   = alarmLevel;
                queryModel.endTime      = endTime;
                queryModel.pageIndex    = pageIndex;
                queryModel.pageSize     = pageSize;
                queryModel.startTime    = startTime;
                queryModel.regionId     = regionId;
                if (subSystem != null && subSystem.Length > 0)
                {
                    queryModel.subSystem = subSystem;
                }
                else
                {
                    queryModel.subSystem = null;
                }
                //   return _servAlarmRecordDal.GetEntities(queryModel, out totalNumber);
                List <AlarmRecordCustom> list = _servAlarmRecordDal.GetEntities(queryModel, out totalNumber);  //分页查询报警信息
                if (list != null)
                {
                    BaseEventTypeBLL          baseEventTypeBll = new BaseEventTypeBLL();
                    List <BaseEventTypeModel> eventList        = baseEventTypeBll.GetAllEventType(); //获取全部事件类型
                    foreach (AlarmRecordCustom model in list)
                    {
                        retModel = TranAlarmRecord(model, eventList);
                        retList.Add(retModel);
                    }
                }
                return(retList);
            }
            catch (Exception ex)
            {
                //log BLL层查询设备报警列表失败+ex.message
                throw ex;
            }
        }
Exemplo n.º 6
0
 //根据告警ID获取一条确警信息
 public AlarmRecordModel GetEntity(int id)
 {
     try
     {
         ServAlarmRecordModel alarm = _servAlarmRecordDal.GetEntity(id);
         AlarmRecordModel     model = new AlarmRecordModel();
         model.confirmAlarmText = alarm.confirm_alarm_text;
         //创建人
         var a = servPersonInfoDAL.GetPersonInfoBySSOId(alarm.confirm_person_id);
         model.confirmPersonName = a == null ? "未知" : a.alias;
         model.confirmResult     = Enum.GetName(typeof(EnumClass.ConfirmAlarmResult), alarm.confirm_result);
         model.alarmLocation     = alarm.alarm_location;
         return(model);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
        private void Page_Loaded(object sender, RoutedEventArgs e)
        {
            AlarmRecordGetResponse recordGetResponse = LocalApi.GetAlarmRecord(new AlarmRecordGetRequest()
            {
                AlarmRecordDID = this.AlarmRecordDID
            });

            if (recordGetResponse.AlarmRecord == null)
            {
                return;
            }
            this.model = recordGetResponse.AlarmRecord;
            List <FieldRow> fieldRowList1 = new List <FieldRow>();
            List <FieldRow> fieldRowList2 = fieldRowList1;
            FieldRow        fieldRow1     = new FieldRow();

            fieldRow1.FieldName = "报警编号";
            string string1 = this.model.RuleDID.ToString();

            fieldRow1.FieldValue = string1;
            fieldRowList2.Add(fieldRow1);
            List <FieldRow> fieldRowList3 = fieldRowList1;
            FieldRow        fieldRow2     = new FieldRow();

            fieldRow2.FieldName = "报警时间";
            string string2 = this.model.AlarmTime.ToString("yyyy-MM-dd HH:mm:ss");

            fieldRow2.FieldValue = string2;
            fieldRowList3.Add(fieldRow2);
            List <FieldRow> fieldRowList4 = fieldRowList1;
            FieldRow        fieldRow3     = new FieldRow();

            fieldRow3.FieldName = "报警内容";
            string alarmContent = this.model.AlarmContent;

            fieldRow3.FieldValue = alarmContent;
            fieldRowList4.Add(fieldRow3);
            List <FieldRow> fieldRowList5 = fieldRowList1;
            FieldRow        fieldRow4     = new FieldRow();

            fieldRow4.FieldName = "报警部件";
            string unitName = this.model.UnitName;

            fieldRow4.FieldValue = unitName;
            fieldRowList5.Add(fieldRow4);
            List <FieldRow> fieldRowList6 = fieldRowList1;
            FieldRow        fieldRow5     = new FieldRow();

            fieldRow5.FieldName = "所在工位";
            string facilityName = this.model.FacilityName;

            fieldRow5.FieldValue = facilityName;
            fieldRowList6.Add(fieldRow5);
            fieldRowList1.Add(new FieldRow()
            {
                FieldName  = "报警类型",
                FieldValue = ""
            });
            List <FieldRow> fieldRowList7 = fieldRowList1;
            FieldRow        fieldRow6     = new FieldRow();

            fieldRow6.FieldName = "异常原因";
            string alarmReason = this.model.AlarmReason;

            fieldRow6.FieldValue = alarmReason;
            fieldRowList7.Add(fieldRow6);
            List <FieldRow> fieldRowList8 = fieldRowList1;
            FieldRow        fieldRow7     = new FieldRow();

            fieldRow7.FieldName = "解决方案";
            string solutionText = this.model.SolutionText;

            fieldRow7.FieldValue = solutionText;
            fieldRowList8.Add(fieldRow7);
            List <FieldRow> fieldRowList9 = fieldRowList1;
            FieldRow        fieldRow8     = new FieldRow();

            fieldRow8.FieldName = "报警地址";
            string address = this.model.Address;

            fieldRow8.FieldValue = address;
            fieldRowList9.Add(fieldRow8);
            List <FieldRow> fieldRowList10 = fieldRowList1;
            FieldRow        fieldRow9      = new FieldRow();

            fieldRow9.FieldName = "恢复时间";
            string string3 = this.model.DisposeTime.Value.ToString("yyyy-MM-dd HH:mm:ss");

            fieldRow9.FieldValue = string3;
            fieldRowList10.Add(fieldRow9);
            List <FieldRow> fieldRowList11 = fieldRowList1;
            FieldRow        fieldRow10     = new FieldRow();

            fieldRow10.FieldName = "处理人";
            string handler = this.model.Handler;

            fieldRow10.FieldValue = handler;
            fieldRowList11.Add(fieldRow10);
            foreach (AlarmFieldValue fieldValue in this.model.FieldValues)
            {
                fieldRowList1.Add(new FieldRow()
                {
                    FieldName  = fieldValue.FieldDescription,
                    FieldValue = fieldValue.FieldValue
                });
            }
            //string urlstring = "C:/" + this.model.AlarmLocationImagePath;
            string urlstring = System.Environment.CurrentDirectory + this.model.AlarmLocationImagePath;

            if (System.IO.File.Exists(urlstring))
            {
                this.imgAlarmLocation.Source = new BitmapImage(new Uri(urlstring, UriKind.Absolute));
            }
            else
            {
                urlstring = urlstring = urlstring = System.Environment.CurrentDirectory + "/ErrorPic/Error.jpg";
            }
            this.imgAlarmLocation.Source = new BitmapImage(new Uri(urlstring, UriKind.Absolute));

            this.dataGrid.ItemsSource = fieldRowList1;
        }
Exemplo n.º 8
0
        public AlarmRecordModel GetAlarmRecordModel(int did)
        {
            Database equipDB = dataProvider.EQUIPDataBase;
            string   sql     = sql = string.Format(
                @"select temp.alarm_record_did
						    , temp.rule_did
						    , cr.craft_did
						    , p.process_did
						    , f.facility_did
						    , u.unit_did
						    , temp.alarm_time
						    , temp.dispose_state
						    , temp.dispose_state
						    , temp.dispose_time
						    , temp.handler
						    , temp.duration
						    , temp.address
						    , temp.remark
	                        , rule.alarm_content
	                        , rule.alarm_reason
	                        , sl.content
	                        , slimage.path
	                        , image.path
	                        , cr.craft_name
	                        , u.unit_name
	                        , p.process_name
	                        , f.MMName
	                        , almtp.type
                    from alarm_record temp 
                    join facility_info f on f.facility_did = temp.facility_did
                    join alarm_rule rule on rule.rule_did = temp.rule_did
                    join craft cr on cr.craft_did = rule.craft_did
                    join unit u on u.unit_did = rule.unit_did
                    join alarm_type almtp on almtp.did = rule.alarm_type_did
                    join process p on p.process_did = f.process_did
					left join alarm_location_image image on image.did = rule.alarm_location_image_did
					left join solution sl on sl.did = rule.solution_did
					left join solution_image slimage on slimage.did = rule.solution_image_did
                   where temp.alarm_record_did = {0};"
                , did);

            DataSet   ds = equipDB.ExecuteDataSet(CommandType.Text, sql);
            DataTable tb = ds.Tables[0];

            if (tb != null && tb.Rows.Count > 0)
            {
                AlarmRecordModel model = new AlarmRecordModel();

                model.DID         = int.Parse(tb.Rows[0][0].ToString());
                model.RuleDID     = tb.Rows[0][1].ToString();
                model.CraftDID    = int.Parse(tb.Rows[0][2].ToString());
                model.ProcessDID  = int.Parse(tb.Rows[0][3].ToString());
                model.FacilityDID = int.Parse(tb.Rows[0][4].ToString());
                model.UnitDID     = int.Parse(tb.Rows[0][5].ToString());
                model.AlarmTime   = DateTime.Parse(tb.Rows[0][6].ToString());
                if (tb.Rows[0][7].ToString() != "")
                {
                    model.AlarmCount = int.Parse(tb.Rows[0][7].ToString());
                }
                if (tb.Rows[0][8].ToString() != "")
                {
                    model.DisposeState = int.Parse(tb.Rows[0][8].ToString());
                }
                if (tb.Rows[0][9].ToString() != "")
                {
                    model.DisposeTime = DateTime.Parse(tb.Rows[0][9].ToString());
                }
                model.Handler = tb.Rows[0][10].ToString();
                if (tb.Rows[0][11].ToString() != "")
                {
                    model.Duration = int.Parse(tb.Rows[0][11].ToString());
                }
                model.Address                = tb.Rows[0][12].ToString();
                model.Remark                 = tb.Rows[0][13].ToString();
                model.AlarmContent           = tb.Rows[0][14].ToString();
                model.AlarmReason            = tb.Rows[0][15].ToString();
                model.SolutionText           = tb.Rows[0][16].ToString();
                model.SolutionImagePath      = tb.Rows[0][17].ToString();
                model.AlarmLocationImagePath = tb.Rows[0][18].ToString();
                model.CraftName              = tb.Rows[0][19].ToString();
                model.UnitName               = tb.Rows[0][20].ToString();
                model.ProcessName            = tb.Rows[0][21].ToString();
                model.FacilityName           = tb.Rows[0][22].ToString();
                model.AlarmTypeName          = tb.Rows[0][23].ToString();

                model.FieldValues = this.GetAlarmRuleFieldValues(model.RuleDID);
                return(model);
            }
            else
            {
                throw new Exception("");
            }
        }
Exemplo n.º 9
0
 /// <summary>
 /// 获取卷宗信息
 /// </summary>
 /// <param name="id"></param>
 /// <returns></returns>
 public ArchiveInfoList GetDossierInfo(int id)
 {
     try
     {
         //根据id 获取卷宗信息
         ServArchiveInfoModel    ArchiveInfo        = servArchiveInfoDAL.GetEntity(id);
         List <AlarmRecordModel> AlarmRecorInfoList = new List <AlarmRecordModel>();
         //获取报警信息
         if (ArchiveInfo != null)
         {
             ServAlarmRecordModel AlarmRecorInfo = new ServAlarmRecordModel();
             if (!string.IsNullOrEmpty(ArchiveInfo.alarm_id))
             {
                 string[] alarmArray = ArchiveInfo.alarm_id.Split(',');
                 for (int i = 0; i < alarmArray.Length; i++)
                 {
                     AlarmRecordModel AlarmRecordModel = new AlarmRecordModel();
                     AlarmRecorInfo      = servAlarmRecordDAL.GetEntity(Convert.ToInt32(alarmArray[i]));
                     AlarmRecordModel.id = AlarmRecorInfo.id;
                     // var e= baseEventTypeDAL.GetEntity(AlarmRecorInfo.alarm_event);
                     if (AlarmRecorInfo.alarm_event != "" && !string.IsNullOrEmpty(AlarmRecorInfo.alarm_event))
                     {
                         var e = baseEventTypeDAL.GetEntityByCode(AlarmRecorInfo.alarm_event);
                         AlarmRecordModel.alarmEvent = e == null ? "未知" : e.event_name;
                     }
                     else
                     {
                         AlarmRecordModel.alarmEvent = "未知";
                     }
                     AlarmRecordModel.alarmLocation = AlarmRecorInfo.alarm_location;
                     AlarmRecordModel.subSystem     = Enum.GetName(typeof(EnumClass.SubSystem), AlarmRecorInfo.alarm_subsystem);
                     AlarmRecordModel.alarmTime     = AlarmRecorInfo.alarm_time;
                     AlarmRecorInfoList.Add(AlarmRecordModel);
                 }
             }
         }
         //获取关联文件
         List <ServArchiveFileModel> archiveFile = servArchiveFileDAL.GetArchiveFile(id);
         //获取文件信息
         List <ServFileInfoModel> FileInfoList = new List <ServFileInfoModel>();
         for (var i = 0; i < archiveFile.Count; i++)
         {
             ServFileInfoModel fileInfo = servFileInfoDAL.GetEntity(archiveFile[i].relate_id);
             FileInfoList.Add(fileInfo);
         }
         //获取更改日志
         List <ServArhiveUpdateLogModel> ServArhiveUpdateLogList = servArhiveUpdateLogDAL.GetArhiveUpdateLogInfo(id);
         ArchiveInfoList archiveInfoList = new ArchiveInfoList();
         ArchiveInfo     archiveInfo     = new Model.CustomModel.ArchiveInfo();
         archiveInfo.id                 = ArchiveInfo.id;
         archiveInfo.archive_num        = ArchiveInfo.archive_num;
         archiveInfo.archive_name       = ArchiveInfo.archive_name;
         archiveInfo.create_time        = ArchiveInfo.create_time;
         archiveInfo.update_time        = ArchiveInfo.update_time;
         archiveInfo.archive_decription = ArchiveInfo.archive_decription;
         archiveInfo.report_person      = ArchiveInfo.report_person;
         archiveInfo.archive_status     = ArchiveInfo.archive_status;
         archiveInfo.report_type        = ArchiveInfo.report_type;
         archiveInfo.create_persson_id  = ArchiveInfo.create_persson_id;
         //获取卷宗类别类型
         var u = baseReportTypeDAL.GetEntity(ArchiveInfo.report_type);
         archiveInfo.report_name = u == null ? "未知" : u.type_name;
         //创建人
         var a = servPersonInfoDAL.GetPersonInfoBySSOId(ArchiveInfo.create_persson_id);
         archiveInfo.create_name         = a == null ? "未知" : a.alias;
         archiveInfo.status_name         = Enum.GetName(typeof(EnumClass.ArchiveStatus), ArchiveInfo.archive_status);
         archiveInfo.alarm_id            = ArchiveInfo.alarm_id;
         archiveInfoList.archiveInfo     = archiveInfo;
         archiveInfoList.alarmRecord     = AlarmRecorInfoList;
         archiveInfoList.fileInfo        = FileInfoList;
         archiveInfoList.arhiveUpdateLog = ServArhiveUpdateLogList;
         return(archiveInfoList);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Exemplo n.º 10
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);
        }
Exemplo n.º 11
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="startTime"></param>
        /// <param name="endTime"></param>
        /// <param name="confirmState"></param>
        /// <param name="alarmType"></param>
        /// <param name="subSystem"></param>
        /// <param name="alarmLevel"></param>
        /// <returns></returns>
        public System.IO.MemoryStream GetAllAlarmRecordCondition(int regionId, string startTime, string endTime, int confirmState, int alarmType, string subSystem, int alarmLevel)
        {
            List <AlarmRecordModel> retList = new List <AlarmRecordModel>();

            #region   拼接DataTable列头
            System.Data.DataTable table = new System.Data.DataTable();
            table.Columns.Add("告警编号");
            table.Columns.Add("设备编号");
            table.Columns.Add("事件类型");
            table.Columns.Add("设备名称");
            table.Columns.Add("子系统类型");
            table.Columns.Add("报警时间");
            table.Columns.Add("报警级别");
            table.Columns.Add("确警人");
            table.Columns.Add("园区");
            table.Columns.Add("确警时间");
            table.Columns.Add("确警结果");
            table.Columns.Add("报警位置");
            table.Columns.Add("确警描述");

            #endregion
            AlarmRecordModel retModel = null;
            try
            {
                DefinedAlarmRecordQuery queryModel = new DefinedAlarmRecordQuery();
                queryModel.alarmCode    = "";
                queryModel.confirmState = confirmState;
                queryModel.alarmType    = alarmType;
                queryModel.alarmLevel   = alarmLevel;
                queryModel.endTime      = endTime;
                queryModel.startTime    = startTime;
                queryModel.regionId     = regionId;
                if (!string.IsNullOrEmpty(subSystem))
                {
                    if (subSystem.Contains(','))
                    {
                        string[] arr    = subSystem.Split(',');
                        int[]    intArr = Array.ConvertAll <string, int>(arr, n => int.Parse(n));
                        queryModel.subSystem = intArr;
                    }
                    else
                    {
                        int[] intArr = new int[] { int.Parse(subSystem) };
                        queryModel.subSystem = intArr;
                    }
                }
                else
                {
                    queryModel.subSystem = null;
                }
                List <AlarmRecordCustom> list = _servAlarmRecordDal.GetAllAlarmRecordCondition(queryModel);  //分页查询报警信息
                if (list != null)
                {
                    BaseEventTypeBLL          baseEventTypeBll = new BaseEventTypeBLL();
                    List <BaseEventTypeModel> eventList        = baseEventTypeBll.GetAllEventType(); //获取全部事件类型
                    foreach (AlarmRecordCustom model in list)
                    {
                        retModel = TranAlarmRecord(model, eventList);
                        System.Data.DataRow row = table.NewRow();
                        row["告警编号"]  = retModel.id;
                        row["设备编号"]  = retModel.alarmName;
                        row["事件类型"]  = retModel.alarmEvent;
                        row["设备名称"]  = retModel.deviceName;
                        row["子系统类型"] = retModel.subSystem;
                        row["报警时间"]  = retModel.alarmTime.ToString();
                        row["报警级别"]  = retModel.alarmLevel;
                        row["确警人"]   = retModel.confirmPersonName;
                        row["园区"]    = retModel.regionName;
                        row["确警时间"]  = retModel.alarmTime == retModel.confirmAlarmTime ? "" : retModel.confirmAlarmTime.ToString();
                        row["确警结果"]  = retModel.confirmResult;
                        row["报警位置"]  = retModel.alarmLocation;
                        row["确警描述"]  = retModel.confirmAlarmText;
                        table.Rows.Add(row);
                        // retList.Add(retModel);
                    }
                }
                //  System.Data.DataTable dt= CSM.Utils.ExcelHelper.ToDataTable(retList);
                // System.IO.MemoryStream ms = CSM.Utils.ExcelHelper.DataTableToExcel(dt, "sheet2");

                System.IO.MemoryStream ms = CSM.Utils.ExcelHelper.DataTableToExcel(table, "sheet2");
                // System.IO.MemoryStream ms = CSM.Utils.ExcelHelper.GetExcelStream(retList);
                return(ms);
            }
            catch (Exception ex)
            {
                //log BLL层查询设备报警列表失败+ex.message
                throw ex;
            }
        }