public IHttpActionResult GetAlarmReportDetailDataList(AlarmReportItemModel parameter) { UserApi api = new UserApi(); var userApi = api.GetUserInfoByToken(); parameter.OrgID = userApi.Data.OrgID.ToString(); DeviceMonitoringApi deviceList = new DeviceMonitoringApi(); var deviceApi = deviceList.GetDeviceList(new GetDeviceInfoParameter()); var list = deviceApi.Data; AlarmReportInfoBLL device = new AlarmReportInfoBLL(); var get = device.GetAlarmReportDetailDataList(parameter, list); return(InspurJson <RetAlarmReportDetail>(get)); }
/// <summary> /// 查看单个设备属性报警信息数据列表 /// </summary> /// <returns>成功返回报警记录,失败返回Null.</returns> public ReturnItem <RetAlarmReportDetail> GetAlarmReportDetailDataList(AlarmReportItemModel parameter, List <RetDeviceInfo> Info) { ReturnItem <RetAlarmReportDetail> r = new ReturnItem <RetAlarmReportDetail>(); RetAlarmReportDetail detail = new RetAlarmReportDetail(); List <RetAlarmReportItem> listinfo = new List <RetAlarmReportItem>(); List <RetChartInfo> listchartinfo = new List <RetChartInfo>(); using (AlertPoliciesEntities alert = new AlertPoliciesEntities()) { try { var alertList = alert.A_AlarmHistory.AsQueryable(); if (parameter.AlarmTime != null && !"".Equals(parameter.AlarmTime)) { alertList = alertList.Where(x => x.AlarmTime >= parameter.AlarmTime); } if (parameter.EndTime != null && !"".Equals(parameter.EndTime)) { alertList = alertList.Where(x => x.EndTime <= parameter.EndTime); } if (parameter.OrgID != null && !"".Equals(parameter.OrgID)) { var OrgId = Convert.ToInt32(parameter.OrgID); alertList = alertList.Where(x => x.OrgID == OrgId); } if (parameter.DeviceID != null && !"".Equals(parameter.DeviceID)) { if (parameter.DeviceItemIDList.Count > 0) { var DeviceID = Convert.ToInt32(parameter.DeviceID); alertList = alertList.Where(s => s.DeviceID == DeviceID && parameter.DeviceItemIDList.Contains(s.DeviceItemID.ToString())); } else { var DeviceID = Convert.ToInt32(parameter.DeviceID); alertList = alertList.Where(s => s.DeviceID == DeviceID); } } alertList = alertList.OrderByDescending(s => s.AlarmTime); if (alertList == null) { r.Data = null; r.Code = -1; r.Msg = "没有数据"; return(r); } if (alertList != null) { r.Count = alertList.Count(); if (parameter.PageIndex != 0 && parameter.PageSize != 0) { alertList = alertList.Skip((parameter.PageIndex - 1) * parameter.PageSize).Take(parameter.PageSize); } List <A_AlarmHistory> list = alertList.ToList <A_AlarmHistory>(); List <string> compareValue = new List <string>(); foreach (var item in list) { var alertinfo = new RetAlarmReportItem(); alertinfo.ID = item.ID; alertinfo.DeviceID = item.DeviceID.ToString(); alertinfo.DeviceItemID = item.DeviceItemID.ToString(); alertinfo.StrategyID = item.StrategyID.ToString(); alertinfo.Value = item.Value; alertinfo.AlarmTime = item.AlarmTime; alertinfo.EndTime = item.EndTime; alertinfo.OrgID = item.OrgID.ToString(); var chartinfo = new RetChartInfo(); foreach (var DeviceInfo in Info) { if (DeviceInfo.ID == item.DeviceID) { foreach (var DeviceItemInfo in DeviceInfo.DeviceItems) { if (DeviceItemInfo.ID == item.DeviceItemID) { alertinfo.DeviceName = DeviceInfo.Name; alertinfo.DeviceItemName = DeviceItemInfo.Name; listinfo.Add(alertinfo); if (compareValue == null || (compareValue != null && !compareValue.Exists(x => x == item.DeviceItemID.ToString()))) { compareValue.Add(item.DeviceItemID.ToString()); chartinfo.DeviceItemName = DeviceItemInfo.Name; chartinfo.DeviceItemID = DeviceItemInfo.ID; listchartinfo.Add(chartinfo); } } } } } } detail.AlarmReportItem = listinfo; detail.ChartInfo = listchartinfo; r.Msg = "统计属性报警信息获取成功"; r.Code = 0; r.Data = detail; } } catch (Exception e) { r.Msg = "内部错误请重试"; log.ErrorFormat("内部错误:{0},{1}", e.Message, e.StackTrace); r.Code = -1; return(r); } } return(r); }