Пример #1
0
        public AreaStatistics GetAreaStatistics(int id)
        {
            ShowLog(">>>>> GetAreaStatistics id=" + id);
            Stopwatch watch = new Stopwatch();

            watch.Start();
            List <int?> lst = new List <int?>();
            List <int?> lstRecv;

            var areaList = db.Areas.ToList();
            var a1       = areaList.Find(p => p.Id == id);

            if (a1 == null)
            {
                return(new AreaStatistics());
            }

            lst.Add(a1.Id);
            lstRecv = GetAreaStatisticsInner(a1.Id, areaList);
            if (lstRecv != null || lstRecv.Count > 0)
            {
                lst.AddRange(lstRecv);
            }

            AreaService    asr = new AreaService();
            AreaStatistics ast = asr.GetAreaStatisticsCount(lst);

            watch.Stop();
            TimeSpan time = watch.Elapsed;

            ShowLog("time:" + time);
            ShowLog("<<<<<< GetAreaStatistics id=" + id);
            return(ast);
        }
Пример #2
0
        public AreaStatistics GetAreaStatisticsCount(List <int?> lst)
        {
            var query = from t1 in db.LocationCardPositions.DbSet
                        join t2 in db.Personnels.DbSet on t1.PersonId equals t2.Id
                        where lst.Contains(t1.AreaId)
                        select t2;

            var query2 = from t1 in db.DevInfos.DbSet
                         where lst.Contains(t1.ParentId)
                         select t1;

            var query3 = from t1 in db.LocationAlarms.DbSet
                         where lst.Contains(t1.AreaId) && t1.AlarmLevel != 0
                         select t1;

            var query4 = from t1 in db.DevInfos.DbSet
                         join t2 in db.DevAlarms.DbSet on t1.Id equals t2.DevInfoId
                         where lst.Contains(t1.ParentId)
                         select t2;

            var pList  = query.ToList();
            var dvList = query2.ToList();
            var laList = query3.ToList();
            var daList = query4.ToList();

            var ass = new AreaStatistics();

            ass.PersonNum        = pList.Count;
            ass.DevNum           = dvList.Count;
            ass.LocationAlarmNum = laList.Count;
            ass.DevAlarmNum      = daList.Count;
            return(ass);
        }
Пример #3
0
        public AreaStatistics GetAreaStatistics(int id)
        {
            try
            {
                Log.Info(tag, ">>>>> GetAreaStatistics id=" + id);
                Stopwatch watch = new Stopwatch();
                watch.Start();

                if (id == 0)
                {
                    id = 2;
                    Log.Info(tag, "0=>2");             //四会热电厂
                }
                var lst = db.Areas.GetAllSubAreas(id); //获取所有的子区域,和自身
                if (lst.Count == 0)
                {
                    Log.Error(tag, "Count == 0 !!");
                    return(new AreaStatistics());
                }

                //AreaService asr = new AreaService();
                AreaStatistics ast = GetAreaStatisticsCount(lst);
                //AreaStatistics ast2 = GetAreaStatisticsCount();
                watch.Stop();
                TimeSpan time = watch.Elapsed;
                Log.Info(tag, "time:" + time);
                Log.Info(tag, "<<<<<< GetAreaStatistics id=" + id);
                return(ast);
            }
            catch (System.Exception ex)
            {
                Log.Error(tag, "GetAreaStatistics", ex.ToString());
                return(null);
            }
        }
Пример #4
0
        public AreaStatistics GetAreaStatisticsCount(List <int?> lst)
        {
            try
            {
                var query = from t1 in db.LocationCardPositions.DbSet
                            join t2 in db.Personnels.DbSet on t1.PersonId equals t2.Id
                            where lst.Contains(t1.AreaId)
                            select t2;

                var query2 = from t1 in db.DevInfos.DbSet
                             where lst.Contains(t1.ParentId) && t1.Local_TypeCode != 20180821 //把基站排除了
                             select t1;

                var query3 = from t1 in db.LocationAlarms.DbSet
                             where lst.Contains(t1.AreaId) && t1.AlarmLevel != 0
                             select t1;

                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);
                var      startStamp = TimeConvert.ToStamp(todayStart);
                var      endStamp   = TimeConvert.ToStamp(todayEnd);

                var query4 = from t1 in db.DevInfos.DbSet
                             join t2 in db.DevAlarms.DbSet on t1.Id equals t2.DevInfoId
                             where lst.Contains(t1.ParentId) && t2.AlarmTimeStamp >= startStamp && t2.AlarmTimeStamp <= endStamp
                             select t2;

                var query5 = (from t1 in db.LocationAlarms.DbSet
                              where lst.Contains(t1.AreaId) && t1.AlarmLevel != 0
                              select t1.PersonnelId).Distinct().ToList();

                var ass = new AreaStatistics();


                ass.PersonNum        = query.Count();
                ass.DevNum           = query2.Count();
                ass.LocationAlarmNum = query3.Count();
                ass.DevAlarmNum      = query4.Count();
                ass.AlarmPersonNum   = query5.Count();//只需要数量信息,不要用ToList(),避免大量数据时封装到实体类的消耗


                PersonService personService = new PersonService(db);
                var           list          = personService.GetList(false, false);
                if (list != null)
                {
                    ass.PersonNum = list.Count;
                }
                else
                {
                    ass.PersonNum = 0;
                }
                return(ass);
            }
            catch (System.Exception ex)
            {
                Log.Error(tag, "GetAreaStatisticsCount", ex.ToString());
                return(null);
            }
        }
        public AreaStatistics GetAreaStatistics(int id)
        {
            List <int?> lst = new List <int?>();
            List <int?> lstRecv;

            var areaList = db.Areas.ToList();
            var a1       = areaList.Find(p => p.Id == id);

            if (a1 == null)
            {
                return(new AreaStatistics());
            }

            lst.Add(a1.Id);
            lstRecv = GetAreaStatisticsInner(a1.Id, areaList);
            if (lstRecv != null || lstRecv.Count > 0)
            {
                lst.AddRange(lstRecv);
            }

            AreaService    asr = new AreaService();
            AreaStatistics ast = asr.GetAreaStatisticsCount(lst);

            return(ast);
        }
Пример #6
0
    public void DoGetAreaStatisticsAsync(int Id, Action <AreaStatistics> callback)
    {
        Log.Info("GetAreaStatisticsAsync Start >>>>>>>>>>");
        var clet = GetServiceClient();

        //Debug.LogError("BeginGetAreaStatistics........");
        clet.BeginGetAreaStatistics(Id, (ar) =>
        {
            AreaStatistics result = null;
            try
            {
                LocationServiceClient client = ar.AsyncState as LocationServiceClient;
                //Debug.LogError("EndGetAreaStatistics........");
                result = client.EndGetAreaStatistics(ar);
                client.Close();//异步方式用完Close
            }
            catch (Exception ex)
            {
                LogError("CommunicationObject", ex.ToString());
            }
            DoCallBack(callback, result);
            if (result == null)
            {
                LogError("GetAreaStatisticsAsync", "result == null");
            }
            Log.Info("GetAreaStatisticsAsync End <<<<<<<<<<");
        }, clet);
        //clet.Close();
    }
Пример #7
0
 private void BtnGetAreaStatistics_OnClick(object sender, RoutedEventArgs e)
 {
     AreaStatistics recv             = client.GetAreaStatistics(1);
     int            PersonNum        = recv.PersonNum;
     int            DevNum           = recv.DevNum;
     int            LocationAlarmNum = recv.LocationAlarmNum;
     int            DevAlarmNum      = recv.DevAlarmNum;
 }
Пример #8
0
 private void MenuCmd1_OnClick(object sender, RoutedEventArgs e)
 {
     LocationService client           = new LocationService();
     AreaStatistics  recv             = client.GetAreaStatistics(1);
     int             PersonNum        = recv.PersonNum;
     int             DevNum           = recv.DevNum;
     int             LocationAlarmNum = recv.LocationAlarmNum;
     int             DevAlarmNum      = recv.DevAlarmNum;
 }
Пример #9
0
 private void AfterGetAreaInfo(AreaStatistics areaStatistics)
 {
     if (areaStatistics == null)
     {
         Log.Error("FVIntroduce.AfterGetAreaInfo", "areaStatistics==null"); return;
     }
     SetInfo(AreaInfoContent.transform.GetChild(1), areaStatistics.PersonNum.ToString());
     SetInfo(AreaInfoContent.transform.GetChild(2), areaStatistics.DevNum.ToString());
     SetInfo(AreaInfoContent.transform.GetChild(3), areaStatistics.LocationAlarmNum.ToString());
     SetInfo(AreaInfoContent.transform.GetChild(4), areaStatistics.DevAlarmNum.ToString());
     isRefresh = false;
 }
Пример #10
0
 private void ShowParkDataInfo(AreaStatistics data)
 {
     TitleText.text = CurrentSelectNode.NodeName.ToString();
     if (data == null)
     {
         Log.Error("ParkInfomationManage.ShowParkDataInfo", "data==null"); return;
     }
     //if(LocationManager.Instance&&!LocationManager.Instance.IsShowLocation)
     //{
     //    PersonnelNumText.text = data.PersonNum.ToString();
     //}
     DevNumText.text   = data.DevNum.ToString();
     PosAlarmText.text = data.AlarmPersonNum.ToString();
     DevAlarmText.text = data.DevAlarmNum.ToString();
 }
Пример #11
0
        private void BtnGetAreaStatistics_OnClick(object sender, RoutedEventArgs e)
        {
            try
            {
                DateTime       start            = DateTime.Now;
                AreaStatistics recv             = client.GetAreaStatistics(Convert.ToInt32(TbStatisticArea.Text));
                int            PersonNum        = recv.PersonNum;
                int            DevNum           = recv.DevNum;
                int            LocationAlarmNum = recv.LocationAlarmNum;
                int            DevAlarmNum      = recv.DevAlarmNum;
                TimeSpan       time             = DateTime.Now - start;

                MessageBox.Show(string.Format("PersonNum:{0};DevNum:{1};LocationAlarmNum:{2};DevAlarmNum:{3}.Time:{4}", PersonNum, DevNum, LocationAlarmNum, DevAlarmNum, time));
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }