/// <summary>
    ///告警开始时间筛选
    /// </summary>
    public void ScreeningStartTimeAlaim(DateTime dateTime)
    {
        DateTime endT  = Convert.ToDateTime(EndTimeText.text);
        bool     TimeT = DateTime.Compare(dateTime, endT) <= 0;

        pegeNumText.text = "1";
        SaveSelection();
        ScreenDevAlarmList.Clear();
        searchArg             = new AlarmSearchArg();
        searchArg.Page        = new PageInfo();
        searchArg.Page.Number = 0;
        if (TimeT)
        {
            searchArg.Start = dateTime.ToString("yyyy年MM月dd日");;
        }
        else
        {
            StartTimeText.text = dateTime.ToString("yyyy年MM月dd日");
            searchArg.Start    = EndTimeText.text;
        }
        searchArg.End = EndTimeText.text;

        StartPageNum = 0;
        GetDeviceAlarmInfo(searchArg, searchArg.Page);
    }
Пример #2
0
        public Page <DeviceAlarm> GetDeviceAlarmsPage(AlarmSearchArg arg)
        {
            Page <DeviceAlarm> page = new Page <DeviceAlarm>();

            page.Content = GetDeviceAlarms(arg).devAlarmList;
            return(page);
        }
Пример #3
0
    private void LoadData()
    {
        if (IsGetPerData)
        {
            return;
        }
        AlarmItem          = new List <LocationAlarm>();
        perAlarmData       = new AlarmSearchArg();
        perAlarmData.IsAll = false;
        IsGetPerData       = true;
        var personnelAlarm = CommunicationObject.Instance.GetLocationAlarms(perAlarmData);

        if (personnelAlarm != null)
        {
            PerAlarmList = new List <LocationAlarm>(personnelAlarm);
            foreach (var devAlarm in PerAlarmList)
            {
                if (devAlarm.AlarmLevel != LocationAlarmLevel.正常)
                {
                    AlarmItem.Add(devAlarm);
                }
            }
        }
        IsGetPerData = false;
        PersonnelScreenAlarm();
    }
        public List <DeviceAlarm> GetDeviceAlarms(AlarmSearchArg arg)
        {
            var devs = db.DevInfos.ToList();

            if (devs == null)
            {
                return(null);
            }
            List <DeviceAlarm> alarms = new List <DeviceAlarm>();

            alarms.Add(new DeviceAlarm()
            {
                Id = 927, Level = Abutment_DevAlarmLevel.低, Title = "告警1", Message = "设备告警1", CreateTime = new DateTime(2018, 8, 28, 9, 5, 34)
            }.SetDev(devs[926].ToTModel()));
            alarms.Add(new DeviceAlarm()
            {
                Id = 8, Level = Abutment_DevAlarmLevel.中, Title = "告警2", Message = "设备告警2", CreateTime = new DateTime(2018, 8, 28, 9, 5, 34)
            }.SetDev(devs[7].ToTModel()));
            alarms.Add(new DeviceAlarm()
            {
                Id = 1072, Level = Abutment_DevAlarmLevel.高, Title = "告警3", Message = "设备告警3", CreateTime = new DateTime(2018, 9, 1, 13, 44, 11)
            }.SetDev(devs[1071].ToTModel()));
            alarms.Add(new DeviceAlarm()
            {
                Id = 930, Level = Abutment_DevAlarmLevel.中, Title = "告警4", Message = "设备告警4", CreateTime = new DateTime(2018, 9, 2, 14, 55, 20)
            }.SetDev(devs[929].ToTModel()));
            alarms.Add(new DeviceAlarm()
            {
                Id = 4, Level = Abutment_DevAlarmLevel.低, Title = "告警5", Message = "设备告警5", CreateTime = new DateTime(2018, 9, 2, 13, 22, 44)
            }.SetDev(devs[3].ToTModel()));
            return(alarms);
        }
Пример #5
0
 void Start()
 {
     AlarmItem = new List <LocationAlarm>();
     //  ScreenAlarmItem = new List<LocationAlarm>();
     Instance           = this;
     perAlarmData       = new AlarmSearchArg();
     pegeTotalText.text = "1";
     pegeNumText.text   = "1";
     //LoadData();
     //StartPerAlarmUI();
     AddPageBut.onClick.AddListener(AddPerAlarmPage);
     MinusPageBut.onClick.AddListener(MinPerAlarmPage);
     CloseBut.onClick.AddListener(ClosePersonAlarmUI);
     StartcalendarDay.onDayClick.AddListener(ScreeningStartTimeAlaim);
     DealcalendarDay.onDayClick.AddListener(ScreeningSecondTimeAlarm);
     SearchBut.onClick.AddListener(PerAlarmSearchBut_Click);
     pegeNumText.onEndEdit.AddListener(InputPersonnelPage);
     InputPerAlarm.onEndEdit.AddListener(PerAlarmSearch);
     if (RoomFactory.Instance.FactoryType != FactoryTypeEnum.BaoXin)
     {
         PerStatisticalBut.onClick.AddListener(() =>
         {
             PerAlarmStatisticalManage.Instance.ShowPerAlarmStatisticalWindow(true);
             Close_PersonnelAlarm();
         });
     }
     else
     {
         if (PerStatisticalBut != null)
         {
             PerStatisticalBut.gameObject.SetActive(false);
         }
     }
 }
Пример #6
0
        private void Getlocationalarms_Click(object sender, RoutedEventArgs e)
        {
            AlarmSearchArg arg = new AlarmSearchArg();

            arg.IsAll = true;

            LocationAlarm[] recv = client.GetLocationAlarms(arg);
            int             nn   = 0;
        }
Пример #7
0
        private void BtnSearch_OnClick(object sender, RoutedEventArgs e)
        {
            LocationService service = new LocationService();
            AlarmSearchArg  arg     = new AlarmSearchArg();

            arg.IsAll             = true;
            arg.Start             = TbStart.Text;
            arg.End               = TbEnd.Text;
            DataGrid1.ItemsSource = service.GetLocationAlarms(arg);
        }
Пример #8
0
        private void DeviceAlarmScreen(AlarmSearchArg arg, List <DeviceAlarm> ListInfo, List <DeviceAlarm> DevAlarmlist)
        {
            List <DeviceAlarm> DevAlarmLevelList = new List <DeviceAlarm>();

            if (arg.DevTypeName == "所有设备" && arg.Level == 0)
            {
                DevAlarmLevelList.AddRange(ListInfo);
            }
            else
            {
                foreach (var devAlarm in ListInfo)
                {
                    if (arg.DevTypeName == "所有设备" && arg.Level != 0)
                    {
                        if (devAlarm.Level == GetDevAlarmLevel(arg.Level))
                        {
                            DevAlarmLevelList.Add(devAlarm);
                        }
                    }
                    else if (arg.Level == 0 && arg.DevTypeName != "所有设备")
                    {
                        if (arg.DevTypeName == devAlarm.DevTypeName)
                        {
                            DevAlarmLevelList.Add(devAlarm);
                        }
                    }
                    else if (arg.DevTypeName != "所有设备" && arg.Level != 0)
                    {
                        if (arg.DevTypeName == devAlarm.DevTypeName && devAlarm.Level == GetDevAlarmLevel(arg.Level))
                        {
                            DevAlarmLevelList.Add(devAlarm);
                        }
                    }
                }
            }
            if (DevAlarmLevelList.Count == 0)
            {
                DevAlarmTotal = 1;
            }
            else
            {
                int maxPage = (int)Math.Ceiling((double)DevAlarmLevelList.Count / (double)arg.Page.Size);
                DevAlarmTotal = maxPage;
                if (arg.Page.Number > maxPage)
                {
                    arg.Page.Number = maxPage - 1;
                }
                var QueryData = DevAlarmLevelList.Skip(arg.Page.Size * arg.Page.Number).Take(arg.Page.Size);
                foreach (var devAlarm in QueryData)
                {
                    DevAlarmlist.Add(devAlarm);
                }
            }
        }
Пример #9
0
    void GetLocationAlarms()
    {
        Debug.Log("->GetLocationAlarms");
        LocationServiceClient client = GetLocationServiceClient();
        AlarmSearchArg        arg    = new AlarmSearchArg();

        LocationAlarm[] list = client.GetLocationAlarms(arg);
        foreach (LocationAlarm item in list)
        {
            Debug.Log("item:" + item.Content);
        }
    }
    /// <summary>
    /// 刚打开设备告警时的界面
    /// </summary>
    public void StartDevAlarm()
    {
        pegeNumText.text      = "1";
        searchArg             = new AlarmSearchArg();
        searchArg.Page        = new PageInfo();
        searchArg.Page.Number = 0;

        StartPageNum    = 0;
        searchArg.Start = DateTime.Now.Year.ToString() + "年01月01日";
        searchArg.End   = DateTime.Now.ToString("yyyy年MM月dd日");;
        GetDeviceAlarmInfo(searchArg, searchArg.Page);
    }
Пример #11
0
 private void Button_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         AlarmSearchArg arg  = new AlarmSearchArg();
         var            list = client.GetAllCameraAlarms(true);
         DateCameraAlarmInfo.ItemsSource = list;
     }
     catch (Exception exception)
     {
         MessageBox.Show(exception.Message);
     }
 }
    /// <summary>
    /// 搜索选中页
    /// </summary>
    /// <param name="value"></param>
    public void InputDevPage(string value)
    {
        Debug.LogError("--------------value:" + value);
        int currentPage;

        if (IsStartShow)
        {
            return;
        }
        searchArg       = new AlarmSearchArg();
        searchArg.Page  = new PageInfo();
        searchArg.End   = EndTimeText.text;
        searchArg.Start = StartTimeText.text;
        Debug.LogError("--------------searchArg:" + value);
        if (string.IsNullOrEmpty(pegeNumText.text))
        {
            currentPage = 1;
        }
        else
        {
            if (value.Contains("-") || value.Contains("—"))
            {
                pegeNumText.text = "1";
                currentPage      = 1;
            }
            else
            {
                currentPage = int.Parse(value);
            }
        }
        if (currentPage <= 0)
        {
            currentPage      = 1;
            pegeNumText.text = currentPage.ToString();//触发事件2
        }
        if (currentPage > int.Parse(pegeTotalText.text))
        {
            searchArg.Page.Number = 78;
            currentPage           = int.Parse(pegeTotalText.text);
            pegeNumText.text      = pegeTotalText.text.ToString();//触发事件2
        }
        else
        {
            StartPageNum          = currentPage - 1;
            searchArg.Page.Number = StartPageNum;
        }
        //StartPageNum = currentPage - 1;
        //searchArg.Page.Number = StartPageNum;
        GetDeviceAlarmInfo(searchArg, searchArg.Page);
    }
    /// <summary>
    /// 筛选设备类型
    /// </summary>
    /// <param name="level"></param>
    public void GetScreenAlarmType(int level)
    {
        DevType          = level;
        pegeNumText.text = "1";
        SaveSelection();
        ScreenDevAlarmList.Clear();
        searchArg             = new AlarmSearchArg();
        searchArg.Page        = new PageInfo();
        searchArg.End         = EndTimeText.text;
        searchArg.Start       = StartTimeText.text;
        searchArg.Page.Number = 0;

        StartPageNum = 0;
        GetDeviceAlarmInfo(searchArg, searchArg.Page);
    }
    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 List <LocationAlarm> GetLocationAlarms(AlarmSearchArg arg)
        {
            //List<Personnel> ps = GetPersonList();
            //List<LocationAlarm> alarms = new List<LocationAlarm>();
            //alarms.Add(new LocationAlarm() { Id = 0, TagId = 1, AlarmType = 0, AlarmLevel = (LocationAlarmLevel)4, Content = "进入无权限区域", CreateTime = new DateTime(2018, 9, 1, 10, 5, 34) }.SetPerson(ps[0]));
            //alarms.Add(new LocationAlarm() { Id = 1, TagId = 2, AlarmType = 0, AlarmLevel = (LocationAlarmLevel)3, Content = "靠近高风险区域", CreateTime = new DateTime(2018, 9, 4, 15, 5, 11) }.SetPerson(ps[1]));
            //alarms.Add(new LocationAlarm() { Id = 2, TagId = 3, AlarmType = 0, AlarmLevel = (LocationAlarmLevel)2, Content = "进入高风险区域", CreateTime = new DateTime(2018, 9, 7, 13, 35, 20) }.SetPerson(ps[2]));
            //alarms.Add(new LocationAlarm() { Id = 3, TagId = 4, AlarmType = 0, AlarmLevel = (LocationAlarmLevel)1, Content = "进入危险区域", CreateTime = new DateTime(2018, 9, 10, 16, 15, 44) }.SetPerson(ps[3]));
            //return alarms;
            var list    = db.LocationAlarms.ToList();
            var persons = db.Personnels.ToList();

            foreach (var alarm in list)
            {
                alarm.Personnel = persons.Find(i => i.Id == alarm.PersonnelId);
            }
            return(list.ToWcfModelList());
        }
Пример #16
0
        public LocationAlarmInformation GetLocationAlarmByArgs(AlarmSearchArg arg)
        {
            if (allLocationAlarmHistory == null)
            {
                RefreshAlarmBuffer();
            }
            LocationAlarmInformation locationAlarm = new LocationAlarmInformation();
            List <T_LocationAlarm>   alarmsTemp    = TryGetAllLocationAlarms(arg);

            if (alarmsTemp == null || alarmsTemp.Count == 0)
            {
                return(new LocationAlarmInformation());
            }
            alarmsTemp.Sort();
            LocationAlarmInformation devAlarmInfo = GetLocationAlarmPage(arg, alarmsTemp);

            return(locationAlarm);
        }
 /// <summary>
 /// 加一页信息
 /// </summary>
 public void AddDevAlarmPage()
 {
     StartPageNum   += 1;
     searchArg       = new AlarmSearchArg();
     searchArg.Page  = new PageInfo();
     searchArg.End   = EndTimeText.text;
     searchArg.Start = StartTimeText.text;
     if (int.Parse(pegeNumText.text) >= int.Parse(pegeTotalText.text))
     {
         StartPageNum    -= 1;
         pegeNumText.text = pegeTotalText.text.ToString();
     }
     else
     {
         pegeNumText.text = (StartPageNum + 1).ToString();
     }
     searchArg.Page.Number = StartPageNum;
     GetDeviceAlarmInfo(searchArg, searchArg.Page);
 }
 public void LoadDeviceAlarms(Action completed = null)
 {
     Worker.Run(() =>
     {
         Log.Info(LogTags.EventTest, "加载设备告警数据");
         var service        = new LocationService();
         AlarmSearchArg arg = new AlarmSearchArg();
         arg.IsAll          = true;
         deviceAlarms       = service.GetDeviceAlarms(arg).devAlarmList;
     }, () =>
     {
         Log.Info(LogTags.EventTest, "加载设备告警数据-完成");
         DataGridDeviceAlarms.ItemsSource = deviceAlarms;
         if (completed != null)
         {
             completed();
         }
     });
 }
 public void MinDevAlarmPage()
 {
     searchArg       = new AlarmSearchArg();
     searchArg.Page  = new PageInfo();
     searchArg.End   = EndTimeText.text;
     searchArg.Start = StartTimeText.text;
     if (StartPageNum > 0)
     {
         StartPageNum--;
         if (StartPageNum == 0)
         {
             pegeNumText.text = "1";
         }
         else
         {
             pegeNumText.text = (StartPageNum + 1).ToString();
         }
         searchArg.Page.Number = StartPageNum;
         GetDeviceAlarmInfo(searchArg, searchArg.Page);
     }
 }
Пример #20
0
    public void DevLoadData()
    {
        //DevAlarmItem = new List<DeviceAlarm>();
        DeviceAlarmList     = new List <DeviceAlarm>();
        ParkDeviceAlarmList = new List <DeviceAlarm>();

        searchArg = new AlarmSearchArg();
        if (FactoryDepManager.currentDep != null)
        {
            searchArg.AreaId = FactoryDepManager.currentDep.NodeID;
        }
        //todo:设置时间、告警等级。

        var devAlarms = CommunicationObject.Instance.GetDeviceAlarms(searchArg);

        DeviceAlarmList = new List <DeviceAlarm>();
        if (devAlarms != null && devAlarms.devAlarmList != null)
        {
            DeviceAlarmList.AddRange(devAlarms.devAlarmList);
        }
        DevScreenAlarm(DeviceAlarmList);
    }
Пример #21
0
        /// <summary>
        /// 定位告警历史,获取对应切页
        /// </summary>
        /// <param name="arg"></param>
        /// <param name="list"></param>
        /// <returns></returns>
        public LocationAlarmInformation GetLocationAlarmPage(AlarmSearchArg arg, List <Location.TModel.Location.Alarm.LocationAlarm> list)
        {
            LocationAlarmInformation locationAlarmInfo = new LocationAlarmInformation();

            if (list == null || list.Count == 0)
            {
                return(locationAlarmInfo);
            }

            locationAlarmInfo.locationAlarmList = new List <Location.TModel.Location.Alarm.LocationAlarm>();
            var LocationAlarmlist = locationAlarmInfo.locationAlarmList;

            if (list.Count == 0)
            {
                locationAlarmInfo.Total = 1;
            }
            else
            {
                if (arg.Page != null)
                {
                    int maxPage = (int)Math.Ceiling((double)list.Count / (double)arg.Page.Size);
                    locationAlarmInfo.Total = maxPage;
                    if (arg.Page.Number > maxPage)
                    {
                        arg.Page.Number = maxPage - 1;
                    }
                    var queryData  = list.Skip(arg.Page.Size * arg.Page.Number).Take(arg.Page.Size);
                    var resultList = queryData.ToList();
                    LocationAlarmlist.AddRange(resultList);
                }
                else
                {
                    LocationAlarmlist.AddRange(list);
                }
            }
            locationAlarmInfo.SetEmpty();
            return(locationAlarmInfo);
        }
Пример #22
0
        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);
        }
Пример #23
0
 public LocationAlarmInformation GetLocationAlarmByArgs(AlarmSearchArg arg)
 {
     return(service.GetLocationAlarmByArgs(arg));
 }
Пример #24
0
 public List <Location.TModel.Location.Alarm.LocationAlarm> GetLocationAlarms(AlarmSearchArg arg)
 {
     return(service.GetLocationAlarms(arg));
 }
Пример #25
0
 public Page <DeviceAlarm> GetDeviceAlarmsPage(AlarmSearchArg arg)
 {
     return(service.GetDeviceAlarmsPage(arg));
 }
Пример #26
0
 public DeviceAlarmInformation GetDeviceAlarms(AlarmSearchArg arg)
 {
     return(service.GetDeviceAlarms(arg));
 }
Пример #27
0
 public List <T_LocationAlarm> GetLocationAlarms(AlarmSearchArg arg)
 {
     return(TryGetAllLocationAlarms(arg));
 }
Пример #28
0
        /// <summary>
        /// 根据参数,获取所有的定位告警
        /// </summary>
        /// <param name="arg"></param>
        /// <returns></returns>
        private List <T_LocationAlarm> TryGetAllLocationAlarms(AlarmSearchArg arg)
        {
            try
            {
                if (allLocationAlarmHistory == null)
                {
                    RefreshAlarmBuffer();
                }
                var departments = db.Departments.ToDictionary();
                var persons     = db.Personnels.ToDictionary();
                var cards       = db.LocationCards.ToDictionary();
                foreach (var person in persons)
                {
                    if (person.Value.ParentId != null)
                    {
                        int id  = (int)person.Key;
                        int pId = (int)person.Value.ParentId;
                        if (departments.ContainsKey(pId))
                        {
                            persons[id].Parent = departments[pId];
                        }
                    }
                }

                if (arg.IsAll == false)//IsAll==true代表查询实时告警
                {
                    var list = db.LocationAlarms.Where(p => p.AlarmLevel != 0).ToList();

                    SetAlarmPerson(list, persons);
                    SetAlarmTag(cards, list);
                    list.OrderByDescending(i => i.AlarmTimeStamp);
                    return(list.ToWcfModelList());
                }
                else
                {
                    long timeStampStart = 0;
                    long timeStampEnd   = long.MaxValue;
                    if (!string.IsNullOrEmpty(arg.Start))
                    {
                        DateTime start = arg.Start.ToDateTime();
                        start          = new DateTime(start.Year, start.Month, start.Day, 0, 0, 0, 0);
                        timeStampStart = start.ToStamp();
                    }

                    if (!string.IsNullOrEmpty(arg.End))
                    {
                        DateTime end = arg.End.ToDateTime();
                        end          = new DateTime(end.Year, end.Month, end.Day, 23, 59, 59, 999);
                        timeStampEnd = end.ToStamp();
                    }

                    //历史告警
                    var list1 = allLocationAlarmHistory.Where(p =>
                                                              p.AlarmLevel != 0 && p.AlarmTimeStamp >= timeStampStart && p.AlarmTimeStamp <= timeStampEnd)
                                .ToList();

                    List <DbModel.Location.Alarm.LocationAlarm> list3 = new List <DbModel.Location.Alarm.LocationAlarm>();
                    if (list1 != null)
                    {
                        foreach (var alarmHistory in list1)
                        {
                            var alarm = alarmHistory.ConvertToAlarm();
                            list3.Add(alarm);
                        }
                    }

                    //当前的事实告警
                    var list2 = db.LocationAlarms.Where(p =>
                                                        p.AlarmLevel != 0 && p.AlarmTimeStamp >= timeStampStart && p.AlarmTimeStamp <= timeStampEnd).ToList();
                    if (list2 != null)
                    {
                        list3.AddRange(list2);
                    }

                    SetAlarmPerson(list3, persons);
                    SetAlarmTag(cards, list3);
                    list3.OrderByDescending(i => i.AlarmTimeStamp);
                    List <Location.TModel.Location.Alarm.LocationAlarm> send = list3.ToWcfModelList();
                    if (send != null && send.Count() == 0)
                    {
                        send = null;
                    }
                    return(send);
                }
            }
            catch (Exception e)
            {
                Log.Error(LogTags.DbGet, "GetLocationAlarms:" + e);
                return(null);
            }
        }