public ActionResult ComplaintReportPersonalDetail(DateTime?beginTime, DateTime?endTime, string personalId = "", string personalName = "", int?complaintType = 0, string complaintTypeName = "", int?complaintLevel = 0, string complaintLevelName = "") { int detailType; string detailXValue; //初始化统计条件 StatDetailTypeInit(ref beginTime, ref endTime, out detailType, out detailXValue); // 获取数据 var result = STAT_COMPLAINT_REPORT_DAL.GetStatistics_ComplaintReportDetailPersonalChart(beginTime, endTime, personalId, detailType, detailXValue, complaintType, complaintLevel); var chartData = new DataTable(); if (result != null && result.Any()) { chartData.Columns.Add("周期"); chartData.Columns.Add(complaintTypeName); foreach (var re in result) { var dr = chartData.NewRow(); dr["周期"] = re.X_ShowName; dr[complaintTypeName] = re.Y_Value; chartData.Rows.Add(dr); } } //投诉类型名称 if (!string.IsNullOrEmpty(complaintTypeName)) { complaintTypeName = string.Format("--{0}", complaintTypeName); } //投诉级别名称 if (!string.IsNullOrEmpty(complaintLevelName)) { complaintLevelName = string.Format("({0})", complaintLevelName); } string titleName = string.Format("投诉举报分析{0}{1}", complaintTypeName, complaintLevelName); var mainTielt = string.IsNullOrEmpty(personalId) ? GetOrgName(null, OrgHighLevel) : personalName; var subtitle = GetTitleName(mainTielt, "", beginTime.GetValueOrDefault(), endTime.GetValueOrDefault(), false); // 输出图表 ViewBag.ChartColumn3DXML = CreateMSColumn3DChart(titleName, chartData, 580, subtitle); ViewBag.ChartSplineXML = CreateMSSplineChart(titleName, chartData, 580, null, null, subtitle); ViewBag.ChartPie3DXML = CreatePie3DChart(titleName, chartData, 580, subtitle); return(View("ComplaintReportDetail")); }
public ActionResult HallIndex(DateTime?beginTime, DateTime?endTime, bool export = false) { // 初始化日期 DateTimeInit(ref beginTime, ref endTime); // 获取数据 var result = STAT_COMPLAINT_REPORT_DAL.GetStatistics_ComplaintReportChart(UserState.UserID, beginTime, endTime); const string titleName = "投诉举报分析"; var mainTielt = GetOrgName(null, OrgHighLevel); ViewBag.MainTitle = GetTitleName(mainTielt, titleName, beginTime.GetValueOrDefault(), endTime.GetValueOrDefault()); var subtitle = GetTitleName(mainTielt, "", beginTime.GetValueOrDefault(), endTime.GetValueOrDefault(), false); var exceltitle = GetTitleName(mainTielt, titleName, beginTime.GetValueOrDefault(), endTime.GetValueOrDefault(), false); var dataTable = new DataTable(); dataTable.Columns.Add("序号"); dataTable.Columns.Add("服务厅编号"); dataTable.Columns.Add("服务厅"); dataTable.Columns.Add("处理情况"); dataTable.Columns.Add("处理情况类型"); dataTable.Columns.Add("投诉类型编号"); //获取投诉类型集合 var complaints = new Dictionary <int, string>(); if (result != null && result.Any()) { foreach (var re in result.Select(r => new { COMPLAIN_TYP_ID = r.COMPLAIN_TYP_ID, COMPLAIN_NAM = r.COMPLAIN_NAM }).Distinct()) { if (!complaints.ContainsKey(re.COMPLAIN_TYP_ID)) { complaints.Add(re.COMPLAIN_TYP_ID, re.COMPLAIN_NAM); dataTable.Columns.Add(re.COMPLAIN_NAM); } } } ViewBag.Complaints = complaints; if (result != null && result.Any()) { var index = 0; var complaintCount = complaints.Count; for (var mIndex = 0; mIndex < result.Count; mIndex++) { var itemHall = result[mIndex]; var levelCodes = new[] { "N", "R", "U", "H" }; foreach (var levelCode in levelCodes) { var itemLevels = result.Where(r => r.HALL_NO == itemHall.HALL_NO && r.L_Code == levelCode).ToList(); var itemLevel = itemLevels.First(); var dr = dataTable.NewRow(); dr["序号"] = (++index); dr["服务厅"] = itemHall.HALL_NAM; dr["服务厅编号"] = itemHall.HALL_NO; dr["处理情况"] = itemLevel.L_Name; dr["处理情况类型"] = itemLevel.L_Value; foreach (var complaint in complaints) { var itemComplaint = itemLevels.First(r => r.COMPLAIN_TYP_ID == complaint.Key); dr["投诉类型编号"] = itemComplaint.COMPLAIN_TYP_ID; dr[itemComplaint.COMPLAIN_NAM] = itemComplaint.Count_Value; } dataTable.Rows.Add(dr); } mIndex += (complaintCount * 4 - 1); } } //导出 if (export) { var exportData = dataTable.Copy(); exportData.Columns.Remove("服务厅编号"); exportData.Columns.Remove("处理情况类型"); exportData.Columns.Remove("投诉类型编号"); return(AsposeExcelHelper.OutFileToRespone(exportData, "投诉举报分析报表-服务厅", exceltitle)); } var dataList = dataTable.Rows.Cast <DataRow>().Where(r => r["处理情况"].ToString() == "合计").ToList(); var chartData = dataTable.Clone(); foreach (var dataRow in dataList) { chartData.Rows.Add(dataRow.ItemArray); } //不需要显示的列名 var noShowColumns = new[] { "序号", "服务厅编号", "处理情况", "处理情况类型", "投诉类型编号" }; foreach (var noShowColumn in noShowColumns) { chartData.Columns.Remove(noShowColumn); } // 输出图表 ViewBag.ChartColumn3DXML = CreateMSColumn3DChart(titleName, chartData, 420, subtitle); ViewBag.ChartSplineXML = CreateMSSplineChart(titleName, chartData, 420, null, null, subtitle); return(View(dataTable)); }