public ActionResult DetailQueuedetain(int mo, int endStat, string hallno, int pageIndex = 1, int pageSize = 20) { var endMoyear = endStat / 100; var year = mo / 100; var beginMo = Convert.ToDateTime(year.ToString() + "-" + (mo - year * 100).ToString() + "-1"); var endMo = Convert.ToDateTime(endMoyear.ToString() + "-" + (endStat - year * 100).ToString() + "-1").AddMonths(1).AddSeconds(-1); var list = STAT_STAFF_QUEUE_BUSI_D_DAL.GetListBubByHall(beginMo, endMo, hallno, pageIndex, pageSize); return(View(list)); }
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)); } }
public ActionResult OtherIndex(DateTime?beginTime, DateTime?endTime, string orgid, int pageIndex = 1, int pageSize = 20, bool export = false) { base.DateTimeInit(ref beginTime, ref endTime); ViewBag.beginTime = beginTime == null ? "" : beginTime.Value.ToString("yyyy-MM-dd"); ViewBag.endTime = endTime == null ? "" : endTime.Value.ToString("yyyy-MM-dd"); var t = 3;//员工报表 ViewBag.NAM = "员工"; if (string.IsNullOrEmpty(Request.QueryString["t"]) || !int.TryParse(Request.QueryString["t"], out t)) { t = 1; } if (t == 1) { ViewBag.NAM = "省市"; ViewBag.NAMLink = "/STAT/statstaffqueuebusid/otherindex?t=2";//如果是省级,点击进入市级 } if (t == 2) { ViewBag.NAM = "服务厅"; ViewBag.NAMLink = "/STAT/statstaffqueuebusid/otherindex?t=3"; //如果是省级,点击进入员工报表 } if (GetHighLV == model.Enums.UserLV_ENUM.市级 && t < 2) //判断是否有权限 { return(Redirect("/STAT/statstaffqueuebusid/otherindex?t=2")); } if (GetHighLV == model.Enums.UserLV_ENUM.区级 && t < 2)//判断是否有权限 { return(Redirect("/STAT/statstaffqueuebusid/otherindex?t=2")); } if (GetHighLV == model.Enums.UserLV_ENUM.务厅级 && t < 3) //判断是否有权限 { return(Redirect("/STAT/statstaffqueuebusid/otherindex?t=3")); } if (GetHighLV == model.Enums.UserLV_ENUM.无权限)//判断是否有权限 { return(NoAuth); } var re = base.UserHall; 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); if (!string.IsNullOrEmpty(orgid)) { orgall = orgall.Where(obj => obj.ORG_ID == orgid).ToList(); if (null == orgall || orgall.Count() == 0) { orgall = new List <SYS_ORGANIZE> { new SYS_ORGANIZE { ORG_ID = "-1" } }; } } if (export) { pageIndex = 0; } List <dynamic> data = null; if (t == 1) { data = new STAT_STAFF_QUEUE_BUSI_D_DAL().Q_STATDATA_GROUP_CITY(null, beginTime, endTime, t); } if (t == 2) { var halllist = new SYS_HALL_DAL().GetOrgHallAndChild(orgid).ToArray(); data = new STAT_STAFF_QUEUE_BUSI_D_DAL().Q_STATDATA_GROUP_CITY(halllist, beginTime, endTime, t); } if (t == 3) { var halllist = new SYS_HALL_DAL().GetOrgHallAndChild(orgid).ToArray(); data = new STAT_STAFF_QUEUE_BUSI_D_DAL().Q_STATDATA_GROUP_CITY(halllist, beginTime, endTime, t); } string subTitle = ""; if (beginTime == null && endTime == null) { subTitle = GetSubTitle(orgid, data.Select(o => o.MIN_STAT_DT).Min(), data.Select(o => o.MAX_STAT_DT).Max()); } else { subTitle = GetSubTitle(orgid, beginTime, endTime); } ViewBag.subTitle = subTitle; if (export)//导出 { string xlnam = "人流量对比分析-省市"; if (t == 2) { xlnam = "人流量对比分析-服务厅"; } if (t == 3) { xlnam = "人流量对比分析-排队业务"; } return(ExportData(xlnam, subTitle, data)); } else { subTitle = subTitle.Replace("<span style='font-size:12px;'>", "") .Replace("</span>", "").Replace("人流量对比分析", ""); DataTable dtCHART = null; dtCHART = GroupByNAM(data, t); ViewBag.ChartColumn3DXML = CreateMSColumn3DChart("人流量对比分析", dtCHART, 420, subTitle, true); ViewBag.ChartSplineXML = CreateMSSplineChart("人流量对比分析", dtCHART, 420, null, null, subTitle); var page = new Page <dynamic>() { Items = data.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList(), ItemsPerPage = pageSize, CurrentPage = pageIndex, TotalItems = data.Count }; return(View(page)); } }