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);
        }