/// <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; } }
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); }
//根据告警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)); } }
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); }
/// <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; } }
//根据告警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; }
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(""); } }
/// <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; } }
/// <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); }
/// <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; } }