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; })); }
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)); }
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); }
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))); }
public int Post(Precise4GView view) { return(_service.UpdateNeighborPcis(view.CellId, view.SectorId)); }