public ActionResult HallIndex(DateTime?beginTime, DateTime?endTime, bool export = false) { // 初始化日期 DateTimeInit(ref beginTime, ref endTime); // 获取数据 var result = STAT_WARN_ANALYSIS_DAL.GetStatistics_WarnAnalysisChart(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); //导出 if (export) { var exceltitle = GetTitleName(mainTielt, titleName, beginTime.GetValueOrDefault(), endTime.GetValueOrDefault(), false); var index = 0; var data = result == null ? new DataTable() : result.Select(x => new { 序号 = ++index, 务厅 = x.HALL_NAM, 预警级别 = x.L_Name, 等候超时 = x.Count_T1, 等候超时率 = x.Count_T2, 窗口饱和度 = x.Count_T3, 大厅饱和度 = x.Count_T4, 超时办结率 = x.Count_T5, 超时业务笔数 = x.Count_T6, 弃号率 = x.Count_T7, 差评笔数预警 = x.Count_T8, 连续工作时长超界 = x.Count_T9, }).ToList().ToDataTable(); return(AsposeExcelHelper.OutFileToRespone(data, "预警分析报表-服务厅", exceltitle)); } var chartData = result == null ? new DataTable() : result.Where(r => r.L_Code == "H").Select(x => new { 务厅 = x.HALL_NAM, 等候超时率 = x.Count_T2, 超时办结率 = x.Count_T5, 差评笔数预警 = x.Count_T8, }).ToList().ToDataTable(); ViewBag.BeginTime = !beginTime.HasValue ? DateTime.Now.ToString("yyyy-MM-dd") : beginTime.Value.ToString("yyyy-MM-dd"); ViewBag.EndTime = !endTime.HasValue ? DateTime.Now.ToString("yyyy-MM-dd") : endTime.Value.ToString("yyyy-MM-dd"); // 输出图表 ViewBag.ChartColumn3DXML = CreateMSColumn3DChart(titleName, chartData, 420, subtitle); ViewBag.ChartSplineXML = CreateMSSplineChart(titleName, chartData, 420, null, null, subtitle); return(View(result)); }
public ActionResult TaxpayerAction_Person( DateTime?beginTime, DateTime?endTime, string orgId, bool export = false) { // 初始化日期 base.DateTimeInit(ref beginTime, ref endTime); // 获取数据 var bll = new Statistics_DAL(); var result = bll.GetStatistics_TaxpayerActionChat_Person(beginTime, endTime, orgId); // 控制标题 var MainTitle = base.GetOrgName(null, 3); var nodeTitle = string.Empty; MainTitle += "纳税人评价分析"; nodeTitle += "(" + beginTime.Value.ToString("yyyy年MM月dd日"); nodeTitle += " - " + endTime.Value.ToString("yyyy年MM月dd日") + "))"; ViewBag.MainTitle = MainTitle; ViewBag.NodeTitle = nodeTitle; if (export) { var index = 0; var data = result.Select(x => new { 序号 = ++index, 工号 = x.PersonNo, 姓名 = x.PersonName, 业务大类 = x.DLS_SERIALNAME, 城业务量 = x.LOCAL_CNT, 二次办税业务量 = x.SECOND_SVR_CNT }).ToList().ToDataTable(); return(AsposeExcelHelper.OutFileToRespone(data, MainTitle + "报表")); } SetChart_Person(result.GroupBy(x => x.PersonNo), MainTitle, nodeTitle); // 所有事项大类 var itemTypeList = SYS_DLSERIAL_Dao.FindList(); ViewData["itemTypeList"] = itemTypeList; return(View(result)); }
public ActionResult Index(DateTime?beginTime, DateTime?endTime, int pageIndex = 1, int pageSize = 20, bool export = false) { base.DateTimeInit(ref beginTime, ref endTime); // 初始化日期 var orgall = new SYS_USER_DAL().GetUserORG(UserState.UserID); ViewBag.UserORG = new SelectList(orgall.Where(obj => obj.ORG_LEVEL == 4) , "ORG_ID", "ORG_NAM", ""); var orgs = orgall.Select(obj => obj.ORG_ID); var mainTielt = GetOrgName(null, null); ViewBag.MainTitle = GetTitleName(mainTielt, "排队业务分析", beginTime.GetValueOrDefault(), endTime.GetValueOrDefault()); var subtitle = GetTitleName(mainTielt, "", beginTime.GetValueOrDefault(), endTime.GetValueOrDefault(), false); var exceltitle = GetTitleName(mainTielt, "排队业务分析", beginTime.GetValueOrDefault(), endTime.GetValueOrDefault(), false); var halllist = base.UserHall.Select(x => x.HALL_NO).ToArray(); var data = new STAT_STAFF_QUEUE_BUSI_D_DAL().GetStatsInfo(pageIndex, int.MaxValue, halllist, beginTime, endTime); if (export)//导出 { var index = 0; var temp = data.Select(x => new { 序号 = ++index, 业务编码 = x.QUEUE_BUSI_CD, 业务名称 = x.Q_SERIALNAME, 呼叫量 = x.CALL_CNT, 呼叫率 = CommonHelper.DivisionOfPercent(x.CALL_CNT, data.Sum(obj => obj.CALL_CNT)), 超时等待量 = x.OVERTIME_WAIT_CNT, 超时等待率 = CommonHelper.DivisionOfTimeString(x.OVERTIME_WAIT_CNT, data.Sum(obj => obj.OVERTIME_WAIT_CNT)), 办理量 = x.HANDLE_CNT, 办理率 = CommonHelper.DivisionOfPercent(x.HANDLE_CNT, data.Sum(obj => obj.HANDLE_CNT)), 弃号量 = x.ABANDON_CNT, 弃号率 = CommonHelper.DivisionOfPercent(x.ABANDON_CNT, data.Sum(obj => obj.ABANDON_CNT)), 平均办理时间 = CommonHelper.DivisionOfTimeString(x.HANDLE_DUR, x.HANDLE_CNT), 平均等待时间 = CommonHelper.DivisionOfTimeString(x.WAIT_DUR, x.TOT_TICKET_CNT), 最长等待时间 = x.MAX_WAIT_DUR, 最长办理时间 = x.MAX_HANDLE_DUR, 超时办理量 = x.OVERTIME_HANDLE_CNT, 超时办理率 = CommonHelper.DivisionOfPercent(x.OVERTIME_HANDLE_CNT, x.TOT_TICKET_CNT), 人流量 = x.TOT_TICKET_CNT }).ToList().ToDataTable(); return(AsposeExcelHelper.OutFileToRespone(temp, exceltitle)); } else { DataSet ds = new DataSet(); DataTable dt = new DataTable(); ds.Tables.Add(dt); dt.Columns.Add("Q_SERIALNAME", typeof(string)); dt.Columns.Add("呼叫量", typeof(int)); dt.Columns.Add("办理量", typeof(int)); dt.Columns.Add("弃号量", typeof(int)); foreach (var item in data) { DataRow r = dt.NewRow(); r["Q_SERIALNAME"] = item.Q_SERIALNAME; r["呼叫量"] = item.CALL_CNT; r["办理量"] = item.HANDLE_CNT; r["弃号量"] = item.ABANDON_CNT; dt.Rows.Add(r); } ViewBag.ChartColumn3DXML = CreateMSColumn3DChart("排队业务分析", ds.Tables[0], 430, subtitle); ViewBag.ChartSplineXML = CreateMSSplineChart("排队业务报分析", ds, 430, null, null, subtitle); return(View(data)); } }
/// <summary> /// 导出数据 /// </summary> /// <param name="title"></param> /// <param name="fileName"></param> /// <param name="beginTime"></param> /// <param name="endTime"></param> /// <returns></returns> public ActionResult ExportData(string title, string Listname, DateTime beginTime, DateTime endTime, string orgId) { var typeList = CHK_QUALITY_CON_Dao.FindList(); var itemTypeList = SYS_DLSERIAL_Dao.FindList(); var lineTable = new DataTable(); lineTable.Columns.Add("序号", typeof(string)); lineTable.Columns.Add(Listname, typeof(string)); lineTable.Columns.Add("事项大类", typeof(string)); foreach (var item in typeList) { lineTable.Columns.Add(item.QUALITY_NAM, typeof(int)); } if (Listname == "服务厅") { var data = new Statistics_DAL().GetStatistics_ServiceSlipAnalysis(beginTime, endTime, UserState.UserID); var dics = data.GroupBy(m => m.HALL_NAM); var i = 1; foreach (var dic in dics) { var items = dic.ToList(); var statistics = items.FirstOrDefault(); for (var j = 1; j < itemTypeList.Count(); j++) { var r = lineTable.NewRow(); r["序号"] = i; r[Listname] = statistics.HALL_NAM; r["事项大类"] = itemTypeList[j].DLS_SERIALNAME; foreach (var item in typeList) { var def = items.FirstOrDefault( m => m.QUALITY_CD == item.QUALITY_CD && m.SSDLSERIALID == itemTypeList[j].DLS_SERIALID); r[item.QUALITY_NAM] = def == null ? 0 : def.AMOUNT; } lineTable.Rows.Add(r); i++; } } } else { var listStatistics = new Statistics_DAL().GetStatistics_ServiceSlipAnalysisList(beginTime, endTime, UserState.UserID, orgId, null); var dics = listStatistics.GroupBy(m => m.STAFF_NAM); var i = 1; foreach (var dic in dics) { var items = dic.ToList(); var statistics = items.FirstOrDefault(); for (var j = 1; j < itemTypeList.Count(); j++) { var r = lineTable.NewRow(); r["序号"] = i; r[Listname] = statistics.STAFF_NAM; r["事项大类"] = itemTypeList[j].DLS_SERIALNAME; foreach (var item in typeList) { var def = items.FirstOrDefault( m => m.QUALITY_CD == item.QUALITY_CD && m.DLS_SERIALID == itemTypeList[j].DLS_SERIALID); r[item.QUALITY_NAM] = def == null ? 0 : def.AMOUNT; } lineTable.Rows.Add(r); i++; } } } return(AsposeExcelHelper.OutFileToRespone(lineTable, title)); }
public ActionResult TaxpayerEval( DateTime?beginTime, DateTime?endTime, bool export = false) { // 判断当前用户组织结构 var power = new SYS_HALL_DAL().GetList(UserState.UserID, "4"); if (power.Count == 1) { var hallNo = power.FirstOrDefault().HALL_NO; return(Redirect(Url.Action("TaxpayerEval_Person", "Statistics", new { @beginTime = beginTime, @endTime = endTime, @orgId = hallNo }))); } // 初始化日期 base.DateTimeInit(ref beginTime, ref endTime); // 获取数据 var bll = new Statistics_DAL(); var result = bll.GetStatistics_TaxpayerEvalChart(beginTime, endTime, UserState.UserID); // 控制标题 const string titleName = "纳税人评价分析"; var mainTielt = base.GetOrgName(null, 3); 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); if (export) { var index = 0; var data = result.Select(x => new { 序号 = ++index, 务厅编码 = x.HALL_NO, 务厅名称 = x.ORG_NAM, 很满意 = x.VERY_SATISFY_CNT, 很满意率 = x.VERY_SATISFY_CNT_BFB + "%", 满意 = x.SATISFY_CNT, 满意率 = x.SATISFY_CNT_BFB + "%", 基本满意 = x.COMMON_CNT, 基本满意率 = x.COMMON_CNT_BFB + "%", 满意 = x.UNSATISFY_CNT, 满意率 = x.UNSATISFY_CNT_BFB + "%", 未评价 = x.NON_EVAL_CNT, 未评价率 = x.NON_EVAL_CNT_BFB + "%", 满意度 = x.ManYiDu_BFB + "%" }).ToList().ToDataTable(); return(AsposeExcelHelper.OutFileToRespone(data, "纳税人评价分析报表-服务厅", exceltitle)); } var chartData = result.Select(x => new { 务厅名称 = x.ORG_NAM, 很满意 = x.VERY_SATISFY_CNT, 满意 = x.SATISFY_CNT, 基本满意 = x.COMMON_CNT, 满意 = x.UNSATISFY_CNT, 未评价 = x.NON_EVAL_CNT, }).ToList().ToDataTable(); // 输出图表 ViewBag.ChartColumn3DXML = CreateMSColumn3DChart(titleName, chartData, 430, subtitle); ViewBag.ChartSplineXML = CreateMSSplineChart(titleName, chartData, 430, null, null, subtitle); return(View(result)); }
public ActionResult TaxpayerEval_Person( DateTime?beginTime, DateTime?endTime, string orgId, bool export = false) { // 初始化日期 base.DateTimeInit(ref beginTime, ref endTime); // 获取数据 var bll = new Statistics_DAL(); var result = bll.GetStatistics_TaxpayerEvalChart_Person(beginTime, endTime, orgId); // 控制标题 const string titleName = "纳税人评价分析"; var mainTielt = GetOrgName(orgId, null); 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); if (export) { var index = 0; var data = result.Select(x => new { 序号 = ++index, 工号 = x.PersonNo, 姓名 = x.PersonName, 很满意 = x.VERY_SATISFY_CNT, 很满意率 = x.VERY_SATISFY_CNT_BFB + "%", 满意 = x.SATISFY_CNT, 满意率 = x.SATISFY_CNT_BFB + "%", 基本满意 = x.COMMON_CNT, 基本满意率 = x.COMMON_CNT_BFB + "%", 满意 = x.UNSATISFY_CNT, 满意率 = x.UNSATISFY_CNT_BFB + "%", 未评价 = x.NON_EVAL_CNT, 未评价率 = x.NON_EVAL_CNT_BFB + "%", 满意度 = x.ManYiDu_BFB + "%" }).ToList().ToDataTable(); return(AsposeExcelHelper.OutFileToRespone(data, "纳税人评价分析报表-员工", exceltitle)); } var chartData = result.Select(x => new { 姓名 = x.PersonName, 很满意 = x.VERY_SATISFY_CNT, 满意 = x.SATISFY_CNT, 基本满意 = x.COMMON_CNT, 满意 = x.UNSATISFY_CNT, 未评价 = x.NON_EVAL_CNT, }).ToList().ToDataTable(); // 输出图表 ViewBag.ChartColumn3DXML = CreateMSColumn3DChart(titleName, chartData, 430, subtitle); ViewBag.ChartSplineXML = CreateMSSplineChart(titleName, chartData, 420, null, null, subtitle); return(View(result)); }
public ActionResult Index(DateTime?beginTime, DateTime?endTime, string orgid, int pageIndex = 1, int pageSize = 20, bool export = false) { base.DateTimeInit(ref beginTime, ref endTime); // 初始化日期 var orgall = new SYS_USER_DAL().GetUserORG(UserState.UserID); ViewBag.UserORG = new SelectList(orgall.Where(obj => obj.ORG_LEVEL == 4) , "ORG_ID", "ORG_NAM", orgid); var orgs = orgall.Select(obj => obj.ORG_ID); //var mainTielt = GetOrgName(null, null); //ViewBag.MainTitle = GetTitleName(mainTielt, "业务大类分析", beginTime.GetValueOrDefault(), endTime.GetValueOrDefault()); //var title = GetTitleName(mainTielt,"业务大类分析", beginTime.GetValueOrDefault(), endTime.GetValueOrDefault(), false); var mainTielt = GetOrgName(null, null); ViewBag.MainTitle = GetTitleName(mainTielt, "业务大类分析", beginTime.GetValueOrDefault(), endTime.GetValueOrDefault()); var subtitle = GetTitleName(mainTielt, "", beginTime.GetValueOrDefault(), endTime.GetValueOrDefault(), false); var exceltitle = GetTitleName(mainTielt, "业务大类分析", beginTime.GetValueOrDefault(), endTime.GetValueOrDefault(), false); var halllist = base.UserHall.Select(x => x.HALL_NO).ToArray(); var data = new STAT_STAFF_LARGE_BUSI_D_DAL().GetStatsInfo(halllist, beginTime, endTime); if (export)//导出 { var index = 0; var temp = data.Select(x => new { 序号 = ++index, 业务大类 = x.DLS_SERIALNAME, 业务笔数 = x.BUSI_CNT, 业务折合量 = x.CONVERT_BUSI_CNT, 平均版办理时间 = (((int)(x.BUSI_CNT == 0 ? 0 : (x.HANDLE_DUR / x.BUSI_CNT))).ToTimeString()) + "%", 超时办理时间 = x.OVERTIME_HANDLE_CNT, 超时率 = ((x.BUSI_CNT == 0 ? 0 : (x.OVERTIME_HANDLE_CNT / x.BUSI_CNT)).ToString("P")) + "%", 城业务笔数 = x.LOCAL_CNT, 城办理率 = ((x.LOCAL_CNT * 100.0 / x.BUSI_CNT)).ToString("f2") + "%", }).ToList().ToDataTable(); return(AsposeExcelHelper.OutFileToRespone(temp, exceltitle)); } else { DataSet ds = new DataSet(); DataTable dt = new DataTable(); ds.Tables.Add(dt); dt.Columns.Add("NAME", typeof(string)); dt.Columns.Add("业务笔数", typeof(int)); dt.Columns.Add("业务折合量", typeof(int)); dt.Columns.Add("总办理时长", typeof(int)); dt.Columns.Add("超时办理量", typeof(int)); dt.Columns.Add("同城业务量", typeof(int)); foreach (var item in data) { var r = dt.NewRow(); r["NAME"] = item.DLS_SERIALNAME; r["业务笔数"] = item.BUSI_CNT; r["业务折合量"] = item.CONVERT_BUSI_CNT; r["总办理时长"] = item.HANDLE_DUR; r["超时办理量"] = item.OVERTIME_HANDLE_CNT; r["同城业务量"] = item.LOCAL_CNT; dt.Rows.Add(r); } ViewBag.ChartColumn3DXML = CreateMSColumn3DChart("业务大类分析", ds.Tables[0], 430, subtitle); ViewBag.ChartSplineXML = CreateMSSplineChart("业务大类分析", ds, 430, null, null, subtitle); return(View(data)); } }
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)); }