/// <summary> /// 构造反馈统计绑定数据的对象集 /// </summary> /// <returns></returns> List <AdviceRate> CreateAdviceRateList() { List <AdviceRate> adviceRateList = new List <AdviceRate>(); //数据对象集 List <Advice> adviceInfoTypeList = AdviceHelper.CreatedAdviceRate(AdviceTypeID); //此对象仅为反馈信息类型去重后的结果。 CurrentQuery.AdviceTypeID = AdviceTypeID; for (int i = 0; i < adviceInfoTypeList.Count; i++) { CurrentQuery.AdviceInfoType = adviceInfoTypeList[i].AdviceInfoType; //CurrentQuery.State = 0; //CurrentQuery.NotEnumState = -1; AdviceRate adviceRate = new AdviceRate(); adviceRate.AdviceCount = AdviceHelper.GetAdviceCount(CurrentQuery);//总件数 adviceRate.AdviceInfoType = adviceInfoTypeList[i].AdviceInfoType; adviceRate.AdviceTypeID = AdviceTypeID; adviceRate.AdviceTypeTitle = adviceInfoTypeList[i].TypeTitle; CurrentQuery.State = (int)AdviceState.Finished; adviceRate.HandleCount = AdviceHelper.GetAdviceCount(CurrentQuery);//总处理数 CurrentQuery.State = 0; CurrentQuery.MustHandle = 1; adviceRate.HandleNumber = AdviceHelper.GetAdviceCount(CurrentQuery);//应处理数 CurrentQuery.NotState = (int)AdviceState.Finished; adviceRate.NoHandleCount = AdviceHelper.GetAdviceCount(CurrentQuery);//未处理数 CurrentQuery.NotEnumState = (int)EnumLibrary.AdviceEnum.AdminHandle; CurrentQuery.State = (int)AdviceState.Finished; CurrentQuery.NotState = -1; adviceRate.NotAdminMustHandleCount = AdviceHelper.GetAdviceCount(CurrentQuery);//办理人处理的必须办理的信息数 CurrentQuery.MustHandle = -1; adviceRate.NoAdminHandleCount = AdviceHelper.GetAdviceCount(CurrentQuery); //办理人处理数 adviceRate.NoHandleNumber = adviceRate.AdviceCount - adviceRate.HandleNumber; //不需处理数 int count = 0; if (adviceRate.NoAdminHandleCount > 0 && adviceRate.HandleNumber > 0) { count = (int)(((double)adviceRate.NotAdminMustHandleCount / (double)adviceRate.HandleNumber) * 100); } if (count > 100) { count = 100; } adviceRate.HandleRate = count + "%"; adviceRateList.Add(adviceRate); CurrentQuery = CreateQuery(); } return(adviceRateList); }
/// <summary> /// 反馈信息按反馈模型统计(AdviceType表) /// 统计标准为Advice表State = (int)AdviceState.Finished /// </summary> protected void AdviceModuleStatistics() { //1.获取所有的反馈模型 adTypeList List <AdviceType> adTypeList = new List <AdviceType>(); adTypeList = AdviceTypeHelper.GetAdviceTypes(); if (adTypeList != null) { //翻页控件属性赋值 if (AdviceReplyStatisticsPager.Count < 0) { AdviceReplyStatisticsPager.PageIndex = 0; } AdviceReplyStatisticsPager.FreshMyself(); AdviceReplyStatisticsPager.RecorderCount = adTypeList.Count; if (AdviceReplyStatisticsPager.RecorderCount < 1) { StatisticsDataGridView.DataSource = null; } else { //反馈统计对象 List <AdviceRate> adRateList = new List <AdviceRate>(); foreach (AdviceType adType in adTypeList) { AdviceRate adRate = new AdviceRate(); if (adType != null && adType.ID != "") { adRate.AdviceTypeID = CurrentQuery.AdviceTypeID = adType.ID; adRate.AdviceTypeTitle = adType.Title; //2.根据条件循环获取每个模型的反馈信息数据 adList List <Advice> adList = AdviceHelper.GetAdviceByQuery(CurrentQuery, 0, 0); adRate.AdviceCount = adList.Count; for (int i = 0; i < adList.Count; i++) { if (adList != null && adList.Count != 0) { //根据获取到的反馈信息数据给反馈统计对象赋值 if (adList[i].MustHandle == 1) { adRate.HandleNumber += 1; } if (adList[i].State == (int)AdviceState.Finished) { adRate.HandleCount += 1; if (adList[i].EnumState != EnumLibrary.AdviceEnum.AdminHandle.ToString())//管理员办理的除去 { adRate.NoAdminHandleCount += 1; if (adList[i].MustHandle == 1) { adRate.NotAdminMustHandleCount += 1; } } } if (adList[i].State != (int)AdviceState.Finished && adList[i].MustHandle == 1) { adRate.NoHandleCount += 1; } } } } adRate.NoHandleNumber = adRate.AdviceCount - adRate.HandleNumber; int count = 0; if (adRate.NoAdminHandleCount > 0 && adRate.HandleNumber > 0) { count = (int)(((double)adRate.NotAdminMustHandleCount / (double)adRate.HandleNumber) * 100); } if (count > 100) { count = 100; } adRate.HandleRate = count + "%"; adRateList.Add(adRate); } StatisticsDataGridView.DataSource = adRateList; } } StatisticsDataGridView.DataBind(); }