/// <summary> /// 获取不良项目的Top10的统计信息 /// </summary> /// <param name="Projects"></param> /// <returns></returns> public PagedListModel <TopTenQeboardModel> GetNotReachRateHeadData(string Projects, int PageNumber, int PageSize) { var totalCount = 0; var result = NoticeRepository.GetNotReachRateHeadData(Projects); var rr = result.GroupBy(p => p.Process).ToDictionary(p => p.Key, q => q); var resultList = new List <TopTenQeboardModel>(); foreach (var item in rr) { var maxYield = item.Value.Max(P => P.Yield); foreach (var value in item.Value) { value.HistogramRate = ((value.Yield / maxYield) * 100).ToString("F") + "%"; } Int32 makeVirtualData = 0; if (item.Value.Count() >= 10) { resultList.AddRange(item.Value.OrderBy(p => p.FlowChartMaster_UID).Take(10)); makeVirtualData = PageSize - 10; resultList.AddRange(ADDMakeVirtualData(makeVirtualData)); } else if (item.Value.Count() < 10) { resultList.AddRange(item.Value.OrderBy(p => p.FlowChartMaster_UID)); makeVirtualData = PageSize - item.Value.Count(); resultList.AddRange(ADDMakeVirtualData(makeVirtualData)); } } result = resultList.Skip(PageSize * PageNumber).Take(PageSize).ToList(); totalCount = resultList.Count; return(new PagedListModel <TopTenQeboardModel>(totalCount, result)); }