예제 #1
0
        //绑定数据
        public void BindData()
        {
            Stopwatch sw = new Stopwatch();

            sw.Start();
            Entities.QueryCallRecord_ORIG query = new Entities.QueryCallRecord_ORIG();

            string errMsg = string.Empty;

            BLL.ConverToEntitie <Entities.QueryCallRecord_ORIG> conver = new BLL.ConverToEntitie <Entities.QueryCallRecord_ORIG>(query);
            errMsg = conver.Conver(JsonStr);

            if (errMsg != "")
            {
                return;
            }
            int RecordCount = 0;

            int    _loginID  = -2;
            string _ownGroup = string.Empty;
            string _oneSelf  = string.Empty;

            _loginID      = userID;
            query.LoginID = _loginID;

            query.BeginTime = Request["tfBeginTime"];
            query.EndTime   = Request["tfEndTime"];
            string    tableEndName = BLL.Util.CalcTableNameByMonth(3, CommonFunction.ObjectToDateTime(query.BeginTime));
            DataTable dt           = BLL.CallRecord_ORIG.Instance.GetCallRecord_ORIGByList(query, " c.CreateTime desc ", BLL.PageCommon.Instance.PageIndex, PageSize, tableEndName, out RecordCount);
            string    a            = sw.Elapsed.ToString();

            repeaterTableList.DataSource = dt;
            repeaterTableList.DataBind();

            sw.Stop();
            string b = sw.Elapsed.ToString();

            AjaxPager.PageSize = 20;
            AjaxPager.InitPager(RecordCount);
        }
        //绑定数据
        public void BindData()
        {
            DateTime b         = System.DateTime.Now;
            DateTime e         = System.DateTime.Now;
            int      _DateType = 1;

            int.TryParse(DateType, out _DateType);
            if (!int.TryParse(RequestPageSize, out PageSize))
            {
                PageSize = 20;
            }
            Entities.QueryCallRecord_ORIG query = new Entities.QueryCallRecord_ORIG();

            if (!string.IsNullOrEmpty(RequestAgentID))
            {
                int _createuserid = 0;
                if (int.TryParse(RequestAgentID, out _createuserid))
                {
                    query.CreateUserID = _createuserid;
                }
            }
            if (!string.IsNullOrEmpty(RequestAgentNum))
            {
                query.AgentNum = RequestAgentNum;
            }
            if (!string.IsNullOrEmpty(RequestBeginTime) && !string.IsNullOrEmpty(RequestEndTime))
            {
                DateTime.TryParse(RequestBeginTime, out b);
                DateTime.TryParse(RequestEndTime, out e);
                query.BeginTime = RequestBeginTime;
                query.EndTime   = RequestEndTime;
            }
            if (!string.IsNullOrEmpty(RequestSkillGroup) && RequestSkillGroup != "-1")
            {
                query.SkillGroup = RequestSkillGroup;
            }
            if (!string.IsNullOrEmpty(RequestBusinessType))
            {
                query.SwitchINNum = RequestBusinessType;
            }
            query.LoginID = userID;
            int RecordCount = 0;
            //placeID=1是西安,DateType=1是按日汇总
            string    tableEndName = BLL.Util.CalcTableNameByMonth(3, CommonFunction.ObjectToDateTime(query.BeginTime));
            DataTable dt           = BLL.CallRecord_ORIG.Instance.GetSatisfactionList(query, "", BLL.PageCommon.Instance.PageIndex, PageSize, out RecordCount, 1, b, e, _DateType, tableEndName);

            //取汇总行
            //if (dt != null && dt.Rows.Count > 0)
            //{
            int       RecordCountSum = 0;
            DataTable dth            = BLL.CallRecord_ORIG.Instance.GetSatisfactionList(query, "", 1, 1, out RecordCountSum, 1, b, e, tableEndName);

            if (dth != null && dth.Rows.Count > 0)
            {
                DataColumn colum = new DataColumn("HuiZong", typeof(string));
                dt.Columns.Add(colum);
                DataRow r = dt.NewRow();
                r["HuiZong"] = "合 计(共" + RecordCount + "项)";
                //总接通量,sum(y.jjcpN) as 问题解决参评总数,case when sum(case when y.CalliD is null then 1 else 0 end)>0 then sum(y.jjcpN)/sum(case when y.CalliD is null then 1 else 0 end) else 0 end as 参评率,sum(y.jjN) as 解决总数 ,case when sum(y.jjcpN)>0  then sum(y.jjN)/sum(y.jjcpN) else 0 end as 解决率,sum(y.WjjN) as 未解决总数,sum(y.MydcpN) as 满意度参评总数,case when sum(case when y.CalliD is null then 1 else 0 end)>0 then sum(y.MydcpN)/sum(case when y.CalliD is null then 1 else 0 end) else 0 end as 满意度参评率,sum(MyN) as 满意个数,case when sum(y.MydcpN)>0  then sum(y.MyN)/sum(y.MydcpN) else 0 end as 满意度, sum(y.BmyN) as 不满意个数,sum(y.CljgbmY) as 对处理结果不满意个数,sum(FwbmY) as 对服务不满意个数
                r["TrueName"]   = "--";
                r["总接通量"]       = dth.Rows[0]["总接通量"] == DBNull.Value ? 0 : dth.Rows[0]["总接通量"];
                r["问题解决参评总数"]   = dth.Rows[0]["问题解决参评总数"] == DBNull.Value ? 0 : dth.Rows[0]["问题解决参评总数"];
                r["参评率"]        = dth.Rows[0]["参评率"];
                r["解决总数"]       = dth.Rows[0]["解决总数"] == DBNull.Value ? 0 : dth.Rows[0]["解决总数"];
                r["解决率"]        = dth.Rows[0]["解决率"];
                r["未解决总数"]      = dth.Rows[0]["未解决总数"] == DBNull.Value ? 0 : dth.Rows[0]["未解决总数"];
                r["满意度参评总数"]    = dth.Rows[0]["满意度参评总数"] == DBNull.Value ? 0 : dth.Rows[0]["满意度参评总数"];
                r["满意度参评率"]     = dth.Rows[0]["满意度参评率"];
                r["满意个数"]       = dth.Rows[0]["满意个数"] == DBNull.Value ? 0 : dth.Rows[0]["满意个数"];
                r["满意度"]        = dth.Rows[0]["满意度"];
                r["不满意个数"]      = dth.Rows[0]["不满意个数"] == DBNull.Value ? 0 : dth.Rows[0]["不满意个数"];
                r["对处理结果不满意个数"] = dth.Rows[0]["对处理结果不满意个数"] == DBNull.Value ? 0 : dth.Rows[0]["对处理结果不满意个数"];
                r["对服务不满意个数"]   = dth.Rows[0]["对服务不满意个数"] == DBNull.Value ? 0 : dth.Rows[0]["对服务不满意个数"];
                dt.Rows.Add(r);
            }
            repeaterTableList.DataSource = dt;
            repeaterTableList.DataBind();

            litPagerDown.Text = BLL.PageCommon.Instance.LinkStringByPost(BLL.Util.GetUrl(), GroupLength, RecordCount, PageSize, BLL.PageCommon.Instance.PageIndex, 1);
        }
        /// <summary>
        /// 取导出的数据
        /// </summary>
        /// <returns></returns>
        private DataTable GetDataTable()
        {
            #region 组织条件
            DateTime b         = System.DateTime.Now;
            DateTime e         = System.DateTime.Now;
            int      _DateType = 1;
            int.TryParse(DateType, out _DateType);

            Entities.QueryCallRecord_ORIG query = new Entities.QueryCallRecord_ORIG();

            if (!string.IsNullOrEmpty(RequestAgentID))
            {
                int _createuserid = 0;
                if (int.TryParse(RequestAgentID, out _createuserid))
                {
                    query.CreateUserID = _createuserid;
                }
            }
            if (!string.IsNullOrEmpty(RequestAgentNum))
            {
                query.AgentNum = RequestAgentNum;
            }
            if (!string.IsNullOrEmpty(RequestBeginTime) && !string.IsNullOrEmpty(RequestEndTime))
            {
                DateTime.TryParse(RequestBeginTime, out b);
                DateTime.TryParse(RequestEndTime, out e);
                query.BeginTime = RequestBeginTime;
                query.EndTime   = RequestEndTime;
            }
            if (!string.IsNullOrEmpty(RequestSkillGroup) && RequestSkillGroup != "-1")
            {
                query.SkillGroup = RequestSkillGroup;
            }
            if (!string.IsNullOrEmpty(RequestBusinessType))
            {
                query.SwitchINNum = RequestBusinessType;
            }
            query.LoginID = userID;
            int RecordCount = 0;
            //placeN=1是西安,DateType=1是按日汇总
            int placeN = 1;
            if (PlaceID == "1")
            {
                placeN = 2;
            }
            #endregion

            #region 查询统计,以及汇总
            string    tableEndName = BLL.Util.CalcTableNameByMonth(3, CommonFunction.ObjectToDateTime(query.BeginTime));
            DataTable dt           = BLL.CallRecord_ORIG.Instance.GetSatisfactionList(query, "", 1, -1, out RecordCount, placeN, b, e, _DateType, tableEndName);
            //组织导出的数据
            if (dt != null)
            {
                DataColumn colum = new DataColumn("HuiZong", typeof(string));
                dt.Columns.Add(colum);
                //西安
                if (placeN == 1)
                {
                    //参评率
                    DataColumn canpinglv = new DataColumn("canpinglv", typeof(string));
                    dt.Columns.Add(canpinglv);
                    //解决率
                    DataColumn jiejuelv = new DataColumn("jiejuelv", typeof(string));
                    dt.Columns.Add(jiejuelv);
                }
                else
                {
                    //转接率
                    DataColumn zIVRlv = new DataColumn("zIVRlv", typeof(string));
                    dt.Columns.Add(zIVRlv);
                }
                //满意度参评率
                DataColumn manyidcplv = new DataColumn("manyidcplv", typeof(string));
                dt.Columns.Add(manyidcplv);
                //满意度
                DataColumn manyilv = new DataColumn("manyilv", typeof(string));
                dt.Columns.Add(manyilv);

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    dt.Rows[i]["HuiZong"] = DateType == "1" ? dt.Rows[i]["mind"].ToString().Split(' ')[0] : dt.Rows[i]["mind"].ToString().Split(' ')[0] + "至" + dt.Rows[i]["maxd"].ToString().Split(' ')[0];
                    if (placeN == 1)
                    {
                        //参评率
                        dt.Rows[i]["canpinglv"] = GetRound(dt.Rows[i]["参评率"].ToString());
                        //解决率
                        dt.Rows[i]["jiejuelv"] = GetRound(dt.Rows[i]["解决率"].ToString());
                    }
                    else
                    {
                        dt.Rows[i]["zIVRlv"] = GetRound(dt.Rows[i]["转接比率"].ToString());
                    }

                    //满意度参评率
                    dt.Rows[i]["manyidcplv"] = GetRound(dt.Rows[i]["满意度参评率"].ToString());
                    //满意度
                    dt.Rows[i]["manyilv"] = GetRound(dt.Rows[i]["满意度"].ToString());
                }
                //if (dt.Rows.Count > 0)
                //{
                //取汇总行
                int       RecordCountSum = 0;
                DataTable dth            = BLL.CallRecord_ORIG.Instance.GetSatisfactionList(query, "", 1, 1, out RecordCountSum, placeN, b, e, tableEndName);
                if (dth != null && dth.Rows.Count > 0)
                {
                    DataRow r = dt.NewRow();
                    r["HuiZong"]  = "合 计(共" + RecordCount + "项)";
                    r["TrueName"] = "--";
                    r["总接通量"]     = dth.Rows[0]["总接通量"] == DBNull.Value ? 0 : dth.Rows[0]["总接通量"];
                    if (placeN == 1)
                    {
                        r["问题解决参评总数"] = dth.Rows[0]["问题解决参评总数"] == DBNull.Value ? 0 : dth.Rows[0]["问题解决参评总数"];
                        //参评率
                        r["canpinglv"] = GetRound(dth.Rows[0]["参评率"].ToString());
                        r["解决总数"]      = dth.Rows[0]["解决总数"] == DBNull.Value ? 0 : dth.Rows[0]["解决总数"];
                        //解决率
                        r["jiejuelv"] = GetRound(dth.Rows[0]["解决率"].ToString());
                        r["未解决总数"]    = dth.Rows[0]["未解决总数"] == DBNull.Value ? 0 : dth.Rows[0]["未解决总数"];
                    }
                    else
                    {
                        r["转IVR数"]  = dth.Rows[0]["转IVR数"] == DBNull.Value ? 0 : dth.Rows[0]["转IVR数"];
                        r["zIVRlv"] = GetRound(dth.Rows[0]["转接比率"].ToString());
                    }
                    r["满意度参评总数"] = dth.Rows[0]["满意度参评总数"] == DBNull.Value ? 0 : dth.Rows[0]["满意度参评总数"];
                    //满意度参评率
                    r["manyidcplv"] = GetRound(dth.Rows[0]["满意度参评率"].ToString());
                    r["满意个数"]       = dth.Rows[0]["满意个数"] == DBNull.Value ? 0 : dth.Rows[0]["满意个数"];
                    //满意度
                    r["manyilv"]    = GetRound(dth.Rows[0]["满意度"].ToString());
                    r["不满意个数"]      = dth.Rows[0]["不满意个数"] == DBNull.Value ? 0 : dth.Rows[0]["不满意个数"];
                    r["对处理结果不满意个数"] = dth.Rows[0]["对处理结果不满意个数"] == DBNull.Value ? 0 : dth.Rows[0]["对处理结果不满意个数"];
                    r["对服务不满意个数"]   = dth.Rows[0]["对服务不满意个数"] == DBNull.Value ? 0 : dth.Rows[0]["对服务不满意个数"];
                    dt.Rows.Add(r);
                }
                //}
                if (placeN == 1)
                {
                    dt.Columns.Remove("参评率");
                    dt.Columns.Remove("解决率");
                }
                else
                {
                    dt.Columns.Remove("转接比率");
                }
                dt.Columns.Remove("满意度参评率");
                dt.Columns.Remove("满意度");
            }
            return(dt);

            #endregion
        }
        //绑定数据
        public void BindData()
        {
            Entities.QueryCallRecord_ORIG query = new Entities.QueryCallRecord_ORIG();

            string errMsg = string.Empty;

            BLL.ConverToEntitie <Entities.QueryCallRecord_ORIG> conver = new BLL.ConverToEntitie <Entities.QueryCallRecord_ORIG>(query);
            errMsg = conver.Conver(JsonStr);

            if (errMsg != "")
            {
                return;
            }
            int RecordCount = 0;

            int    _loginID  = -2;
            string _ownGroup = string.Empty;
            string _oneSelf  = string.Empty;

            query.BeginTime = Request["tfBeginTime"];
            query.EndTime   = Request["tfEndTime"];
            _loginID        = userID;
            query.LoginID   = _loginID;

            string    tableEndName = BLL.Util.CalcTableNameByMonth(3, CommonFunction.ObjectToDateTime(query.BeginTime));
            DataTable dt           = BLL.CallRecord_ORIG.Instance.GetCallRecord_ORIGByList(query, " c.CreateTime desc ", 1, -1, tableEndName, out RecordCount);

            #region 导出

            dt.Columns.Add("OutBoundTypeName");
            dt.Columns.Add("CallStatusName");
            dt.Columns.Add("CallTimeLong", typeof(int));
            dt.Columns.Add("CallTimeTitleLong", typeof(int));
            dt.Columns.Add("CallIDStr");

            foreach (DataRow dr in dt.Rows)
            {
                dr["CallStatusName"]    = GetCallStatus(dr["CallStatus"].ToString());
                dr["OutBoundTypeName"]  = GetOutBoundType(dr["CallStatus"].ToString(), dr["OutBoundType"].ToString());
                dr["CallTimeLong"]      = dr["TallTime"];//修改通话时长导出
                dr["CallTimeTitleLong"] = GetTotalTime(CommonFunction.ObjectToInteger(dr["TallTime"]), CommonFunction.ObjectToInteger(dr["AfterWorkTime"]));
                dr["CallIDStr"]         = dr["CallID"].ToString();
            }

            //要导出的字段
            Dictionary <string, string> ExportColums = new Dictionary <string, string>();
            ExportColums.Add("callidstr", "话务ID");
            ExportColums.Add("taskid", "任务ID");
            ExportColums.Add("agentnum", "工号");
            ExportColums.Add("phonenum", "主叫");
            ExportColums.Add("ani", "被叫");

            ExportColums.Add("callstatusname", "话务类型");
            ExportColums.Add("outboundtypename", "呼叫类型");

            ExportColums.Add("establishedtime", "接通时间");
            ExportColums.Add("releasetime", "挂断时间");

            ExportColums.Add("ringingspantime", "振铃时长");
            ExportColums.Add("calltimelong", "通话时长");
            ExportColums.Add("afterworktime", "话后时长");
            ExportColums.Add("calltimetitlelong", "话务总时长");

            dt.Columns["CallIDStr"].SetOrdinal(0);
            dt.Columns["TaskID"].SetOrdinal(1);
            dt.Columns["AgentNum"].SetOrdinal(2);
            dt.Columns["PhoneNum"].SetOrdinal(3);
            dt.Columns["ANI"].SetOrdinal(4);
            dt.Columns["CallStatusName"].SetOrdinal(5);
            dt.Columns["SwitchINNum"].SetOrdinal(6);
            dt.Columns["OutBoundTypeName"].SetOrdinal(7);
            dt.Columns["RingingTime"].SetOrdinal(8);
            dt.Columns["EstablishedTime"].SetOrdinal(9);
            dt.Columns["ReleaseTime"].SetOrdinal(10);
            dt.Columns["RingingSpanTime"].SetOrdinal(11);
            dt.Columns["CallTimeLong"].SetOrdinal(12);
            dt.Columns["AfterWorkTime"].SetOrdinal(13);
            dt.Columns["CallTimeTitleLong"].SetOrdinal(14);
            dt.Columns["ConsultTime"].SetOrdinal(15);
            dt.Columns["ReleaseType"].SetOrdinal(16);

            for (int i = dt.Columns.Count - 1; i >= 0; i--)
            {
                if (ExportColums.ContainsKey(dt.Columns[i].ColumnName.ToLower()))
                {
                    //字段时要导出的字段,改名
                    dt.Columns[i].ColumnName = ExportColums[dt.Columns[i].ColumnName.ToLower()];
                }
                else
                {
                    //不是要导出的字段,删除
                    dt.Columns.RemoveAt(i);
                }
            }

            BLL.Util.ExportToCSV("话务总表", dt);

            #endregion
        }