예제 #1
0
        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));
        }
예제 #2
0
        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));
            }
        }
예제 #3
0
        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));
            }
        }