Beispiel #1
0
        /// <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));
        }