Beispiel #1
0
        public IEnumerable <Precise4GView> GetTopCountViews(DateTime begin, DateTime end, int topCount,
                                                            OrderPreciseStatPolicy policy, IEnumerable <ENodeb> eNodebs)
        {
            if (topCount <= 0)
            {
                return(new List <Precise4GView>());
            }
            var orderResult = GetTopCountStats(begin, end, topCount, policy, eNodebs);

            return(orderResult.Select(x =>
            {
                var view = Precise4GView.ConstructView(x.PreciseCoverage4G, _eNodebRepository);
                view.TopDates = x.TopDates;
                return view;
            }));
        }
Beispiel #2
0
        public Precise4GView GetOneWeekStats(int cellId, byte sectorId, DateTime date)
        {
            var begin   = date.AddDays(-7);
            var end     = date;
            var stats   = GetTimeSpanStats(cellId, sectorId, begin, end).ToArray();
            var sumStat = new PreciseCoverage4G
            {
                CellId          = cellId,
                SectorId        = sectorId,
                FirstNeighbors  = stats.Sum(q => q.FirstNeighbors),
                SecondNeighbors = stats.Sum(q => q.SecondNeighbors),
                ThirdNeighbors  = stats.Sum(q => q.ThirdNeighbors),
                TotalMrs        = stats.Sum(q => q.TotalMrs)
            };

            return(Precise4GView.ConstructView(sumStat, _eNodebRepository));
        }
Beispiel #3
0
        public async Task <string> ConstructPreciseWorkItem(Precise4GView view, DateTime begin, DateTime end, string userName)
        {
            var existedItem = await _repository.GetPreciseExistedAsync(view.CellId, view.SectorId);

            if (existedItem != null)
            {
                return(null);
            }
            var serialNumber = "SELF-FS-Precise-" + view.CellId + "-" + view.SectorId + "-" + begin.ToString("yyyyMMdd") +
                               "-" + end.ToString("yyyyMMdd");

            existedItem = await _repository.FirstOrDefaultAsync(x => x.SerialNumber == serialNumber);

            if (existedItem != null)
            {
                return(null);
            }
            var item = new WorkItem
            {
                BeginTime    = end,
                Cause        = WorkItemCause.WeakCoverage,
                SerialNumber = serialNumber,
                ENodebId     = view.CellId,
                SectorId     = view.SectorId,
                Deadline     = end.AddMonths(1),
                StaffName    = userName,
                Type         = WorkItemType.SelfConstruction,
                Subtype      = WorkItemSubtype.PreciseRate,
                State        = WorkItemState.ToBeSigned,
                Comments     =
                    "[" + DateTime.Now + "]" + userName + ": 创建工单" + serialNumber + ";精确覆盖率=" + view.SecondRate +
                    ";MR总数=" + view.TotalMrs + ";TOP天数=" + view.TopDates
            };
            var result = await _repository.InsertAsync(item);

            _repository.SaveChanges();
            return(result?.SerialNumber);
        }
Beispiel #4
0
 public IEnumerable <Precise4GView> GetTimeSpanViews(int cellId, byte sectorId, DateTime begin, DateTime end)
 {
     return(_repository.GetAllList(cellId, sectorId, begin, end).OrderBy(x => x.StatTime)
            .Select(x => Precise4GView.ConstructView(x, _eNodebRepository)));
 }
Beispiel #5
0
 public int Post(Precise4GView view)
 {
     return(_service.UpdateNeighborPcis(view.CellId, view.SectorId));
 }