public void GetDeviceAlarmInfo(AlarmSearchArg arg, PageInfo page) { SaveSelection(); page.Size = 10; page.Number = StartPageNum; arg.Level = AlarmLevel; arg.DevTypeName = GetDevType(DevType); if (IsGetData) { return; } BanClick.SetActive(true); Loom.StartSingleThread(() => { DateTime start = DateTime.Now; IsGetData = true; var devAlarms = CommunicationObject.Instance.GetDeviceAlarms(arg); if (devAlarms == null) { IsGetData = false; } Debug.LogError("--------------------GetDeviceAlarms:" + (DateTime.Now - start).TotalMilliseconds + "ms"); Loom.DispatchToMainThread(() => { IsGetData = false; BanClick.SetActive(false); DevAlarmInfo = new DeviceAlarmInformation(); DevAlarmInfo = devAlarms; if (DevAlarmInfo.Total == 0) { pegeTotalText.text = "1"; } else { pegeTotalText.text = DevAlarmInfo.Total.ToString(); } if (DevAlarmInfo.devAlarmList != null && DevAlarmInfo.Total != 0) { ShowDevAlarmList = new List <DeviceAlarm>(); ShowDevAlarmList.AddRange(DevAlarmInfo.devAlarmList); GetDevAlarmData(ShowDevAlarmList); } }); }); }
public DeviceAlarmInformation GetDeviceAlarms(AlarmSearchArg arg) { if (allAlarms == null) { RefreshAlarmBuffer(); } DeviceAlarmInformation DevAlarm = new DeviceAlarmInformation(); DateTime start = DateTime.Now; var devs = db.DevInfos.ToList().ToTModel(); if (devs == null || devs.Count == 0) { return(null); } var dict = new Dictionary <int, DevInfo>(); foreach (var item in devs) { if (item.ParentId != null) { dict.Add(item.Id, item); } } List <DeviceAlarm> alarms = new List <DeviceAlarm>(); List <DbModel.Location.Alarm.DevAlarm> alarms1 = null; DateTime now = DateTime.Now; DateTime todayStart = new DateTime(now.Year, now.Month, now.Day, 0, 0, 0, 0); DateTime todayEnd = new DateTime(now.Year, now.Month, now.Day, 23, 59, 59, 999); //arg.Start = null; if (arg.Start != null && arg.End != null) { todayStart = Convert.ToDateTime(arg.Start); todayEnd = Convert.ToDateTime(arg.End); } else if (arg.Start != null) { todayStart = Convert.ToDateTime(arg.Start); } else if (arg.End != null) { todayEnd = Convert.ToDateTime(arg.End); } var startStamp = TimeConvert.ToStamp(todayStart); var endStamp = TimeConvert.ToStamp(todayEnd); if (arg.AreaId != 0) { var areas = db.Areas.GetAllSubAreas(arg.AreaId);//获取所有子区域 if (arg.IsAll) { alarms1 = allAlarms.FindAll(i => i.DevInfo != null && areas.Contains(i.DevInfo.ParentId)); } else { alarms1 = allAlarms.FindAll(i => i.DevInfo != null && areas.Contains(i.DevInfo.ParentId) && i.AlarmTimeStamp >= startStamp && i.AlarmTimeStamp <= endStamp); } } else { if (arg.IsAll) { alarms1 = allAlarms; } else { alarms1 = allAlarms.FindAll(i => i.AlarmTimeStamp >= startStamp && i.AlarmTimeStamp <= endStamp); } } if (alarms1 == null) { return(null); } alarms = alarms1.ToTModel(); alarms.Sort(); if (alarms.Count == 0) { } foreach (var item in alarms) { try { if (dict.ContainsKey(item.DevId)) { var dev = dict[item.DevId]; item.SetDev(dev);//这里设置DevId,AreaId等 } } catch (Exception ex) { Log.Error(ex.ToString()); } } DevAlarm.devAlarmList = new List <DeviceAlarm>(); DeviceAlarmScreen(arg, alarms, DevAlarm.devAlarmList); DevAlarm.Total = DevAlarmTotal; TimeSpan time = DateTime.Now - start; DevAlarm.SetEmpty(); return(DevAlarm); }