//绑定数据
        private void BindData()
        {
            if (RequestTaskID != "")
            {
                DataTable            dt    = new DataTable();
                QueryCustHistoryInfo query = new QueryCustHistoryInfo();
                query.TaskID = RequestTaskID;

                int count;
                dt = BLL.CustHistoryInfo.Instance.GetCustHistoryInfo(query, "", 1, 10000, Entities.CustHistoryInfo.SelectFieldStr, out count);
                if (dt.Rows.Count > 0)
                {
                    switch (int.Parse(dt.Rows[0]["QuestionQuality"].ToString()))
                    {
                    case (int)Entities.QuestionNature.NatureCommon:
                        QuestionQuality.InnerText = "普通";
                        break;

                    case (int)Entities.QuestionNature.NatureUrgent:
                        QuestionQuality.InnerText = "紧急";
                        break;
                    }
                    LastTreatmentTime.InnerText = CommonFunction.GetDateTimeStrForPage(dt.Rows[0]["LastTreatmentTime"].ToString());
                    if (dt.Rows[0]["IsComplaint"].ToString().ToLower() == "true")
                    {
                        chkIsComplaint.Checked = true;
                    }

                    //如果该任务已结束,则隐藏按钮
                    if (int.Parse(dt.Rows[0]["ProcessStatus"].ToString()) == (int)Entities.EnumTaskStatus.TaskStatusOver)
                    {
                        ulProcess.Visible     = false;
                        divDeal.Visible       = false;
                        spanBtnSubmit.Visible = false;
                        //spanHighOper.Visible = false;
                        //chkIsComplaint.Attributes.Add("disabled", "disabled");
                    }
                    else
                    {
                        bool right_AgreeTurnOut = BLL.Util.CheckRight(BLL.Util.GetLoginUserID(), "SYS024BUT1101");
                        bool right_TaskTurnOver = BLL.Util.CheckRight(BLL.Util.GetLoginUserID(), "SYS024BUT1102");
                        //如果有高级操作权限再判断
                        if (right_AgreeTurnOut && right_TaskTurnOver)
                        {
                            //判断是否是第一次转出,如果不是,则隐藏同意转出按钮
                            QueryCustHistoryLog query_Log = new QueryCustHistoryLog();
                            query_Log.TaskID = RequestTaskID;
                            query_Log.Action = (int)Entities.Action.ActionAgreeApplyTurn;
                            DataTable dt_Log = BLL.CustHistoryLog.Instance.GetCustHistoryLog(query_Log, "", 1, 10000, out count);
                            if (dt_Log.Rows.Count > 0)
                            {
                                btnTurnOut.Visible = false;
                            }
                        }
                    }
                }
            }
        }
        private void BindData()
        {
            QueryCustHistoryLog query = new QueryCustHistoryLog();

            if (RequestTaskID != "")
            {
                query.TaskID = RequestTaskID;
                DataTable dt = BLL.CustHistoryLog.Instance.GetCustHistoryLogHaveCallRecord(query, "SolveTime asc", 1, 10000, out RecordCount);
                repeaterTableList.DataSource = dt;
                repeaterTableList.DataBind();
            }
        }
        //根据转到受理人EID 获取到主键 返回PID
        private long getPIDByNextSolveEID(string taskID, int toNextSolveEID)
        {
            long pid = 0;
            int  count;
            QueryCustHistoryLog query_Log = new QueryCustHistoryLog();

            query_Log.TaskID             = taskID;
            query_Log.ToNextSolveUserEID = toNextSolveEID;
            DataTable dt_Log = BLL.CustHistoryLog.Instance.GetCustHistoryLog(query_Log, " SolveTime Desc", 1, 10000, out count);

            if (dt_Log.Rows.Count > 0)
            {
                pid = long.Parse(dt_Log.Rows[0]["RecID"].ToString());
            }

            return(pid);
        }
Beispiel #4
0
        /// <summary>
        /// 是否存在该记录
        /// </summary>
        public bool IsExistsByRecID(long RecID)
        {
            QueryCustHistoryLog query = new QueryCustHistoryLog();

            query.RecID = RecID;
            DataTable dt    = new DataTable();
            int       count = 0;

            dt = GetCustHistoryLog(query, string.Empty, 1, 1, out count);
            if (count > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Beispiel #5
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public Entities.CustHistoryLog GetCustHistoryLog(long RecID)
        {
            QueryCustHistoryLog query = new QueryCustHistoryLog();

            query.RecID = RecID;
            DataTable dt    = new DataTable();
            int       count = 0;

            dt = GetCustHistoryLog(query, string.Empty, 1, 1, out count);
            if (count > 0)
            {
                return(LoadSingleCustHistoryLog(dt.Rows[0]));
            }
            else
            {
                return(null);
            }
        }
Beispiel #6
0
        /// <summary>
        /// 按照查询条件查询
        /// </summary>
        /// <param name="query">查询条件</param>
        /// <param name="order">排序</param>
        /// <param name="currentPage">页号,-1不分页</param>
        /// <param name="pageSize">每页记录数</param>
        /// <param name="totalCount">总行数</param>
        /// <returns>集合</returns>
        public DataTable GetCustHistoryLogHaveCallRecord(QueryCustHistoryLog query, string order, int currentPage, int pageSize, out int totalCount)
        {
            string where = string.Empty;

            if (query.TaskID != Constant.STRING_INVALID_VALUE)
            {
                where += " AND a.TaskID='" + StringHelper.SqlFilter(query.TaskID) + "'";
            }
            if (query.Action != Constant.INT_INVALID_VALUE)
            {
                where += " AND a.Action =" + query.Action;
            }
            if (query.ToNextSolveUserID != Constant.INT_INVALID_VALUE)
            {
                where += " AND a.ToNextSolveUserID=" + query.ToNextSolveUserID;
            }
            if (query.ToNextSolveUserEID != Constant.INT_INVALID_VALUE)
            {
                where += " AND a.ToNextSolveUserEID=" + query.ToNextSolveUserEID;
            }

            DataSet ds;

            SqlParameter[] parameters =
            {
                new SqlParameter("@where",         SqlDbType.NVarChar, 40000),
                new SqlParameter("@order",         SqlDbType.NVarChar,   200),
                new SqlParameter("@pagesize",      SqlDbType.Int,          4),
                new SqlParameter("@indexpage",     SqlDbType.Int,          4),
                new SqlParameter("@totalRecorder", SqlDbType.Int, 4)
            };

            parameters[0].Value     = where;
            parameters[1].Value     = order;
            parameters[2].Value     = pageSize;
            parameters[3].Value     = currentPage;
            parameters[4].Direction = ParameterDirection.Output;

            ds         = SqlHelper.ExecuteDataset(CONNECTIONSTRINGS, CommandType.StoredProcedure, P_CustHistoryLog_SelectHaveCall, parameters);
            totalCount = (int)(parameters[4].Value);
            return(ds.Tables[0]);
        }
        //判断是否进行过转发,如果没有 隐藏处理记录
        private bool HiddenDiv()
        {
            QueryCustHistoryLog query_Log = new QueryCustHistoryLog();

            query_Log.TaskID = RequestTaskID;
            int       count;
            DataTable dt = BLL.CustHistoryLog.Instance.GetCustHistoryLog(query_Log, "", 1, 10000, out count);

            if (dt.Rows.Count == 0)
            {
                divLine.Style.Add("display", "none");
                ulDeal.Style.Add("display", "none");
                divDeal.Style.Add("display", "none");
                return(false);
            }
            else
            {
                return(true);
            }
        }
Beispiel #8
0
 /// <summary>
 /// 按照查询条件查询
 /// </summary>
 /// <param name="query">查询条件</param>
 /// <param name="order">排序</param>
 /// <param name="currentPage">页号,-1不分页</param>
 /// <param name="pageSize">每页记录数</param>
 /// <param name="totalCount">总行数</param>
 /// <returns>集合</returns>
 public DataTable GetCustHistoryLogHaveCallRecord(QueryCustHistoryLog query, string order, int currentPage, int pageSize, out int totalCount)
 {
     return(Dal.CustHistoryLog.Instance.GetCustHistoryLogHaveCallRecord(query, order, currentPage, pageSize, out totalCount));
 }
        //提交(插入客户历史信息处理日志)
        private void CustHistoryLogSubmit(out string msg)
        {
            msg = string.Empty;

            if (RequestCHITaskID == "")
            {
                msg = "{'result':'no','msg':'没有任务ID,操作失败!'}";
                return;
            }

            Entities.CustHistoryInfo model_CustHistoryInfo = getModelCustHistoryInfoByTaskID(RequestCHITaskID);
            if (model_CustHistoryInfo == null)
            {
                msg = "{'result':'no','msg':'没有找到该条任务记录,操作失败!'}";
                return;
            }

            int action = (int)Entities.Action.ActionSumbit;//记录动作 默认:提交

            //0 判断如果是有高级操作按钮的人操作,则在提交时将其他当前受理人的表中记录状态改为无效0
            bool right_AgreeTurnOut = BLL.Util.CheckRight(BLL.Util.GetLoginUserID(), "SYS024BUT1101");
            bool right_TaskTurnOver = BLL.Util.CheckRight(BLL.Util.GetLoginUserID(), "SYS024BUT1102");

            if (right_AgreeTurnOut && right_TaskTurnOver)
            {
                QueryTaskCurrentSolveUser query_taskCurrentSolveUser = new QueryTaskCurrentSolveUser();
                query_taskCurrentSolveUser.TaskID = model_CustHistoryInfo.TaskID;
                query_taskCurrentSolveUser.Status = 1;
                int       count;
                DataTable dt_taskCurrentSolveUser = BLL.TaskCurrentSolveUser.Instance.GetTaskCurrentSolveUser(query_taskCurrentSolveUser, "", 1, 10000, out count);
                for (int i = 0; i < dt_taskCurrentSolveUser.Rows.Count; i++)
                {
                    UpdateTaskCurrentSolveUser(dt_taskCurrentSolveUser.Rows[i]["RecID"].ToString(), 0);
                }
            }

            //1 判断是否存在“转到受理人ID(ToNextSolveUserEID)”存在:向当前受理人表插入一条记录
            int nextSolveEID;

            if (RequestToNextSolveUserEID != "")
            {
                if (int.TryParse(RequestToNextSolveUserEID, out nextSolveEID))
                {
                    //判断登陆者权限 如果权限有高级操作权限,则不需要修改自己的记录 自己添加提交

                    //坐席权限
                    if (!right_AgreeTurnOut && !right_TaskTurnOver)
                    {
                        //修改:当前受理人表(修改自己的记录) 状态改为0 无效
                        QueryTaskCurrentSolveUser query_TCSUpdate = new QueryTaskCurrentSolveUser();
                        query_TCSUpdate.TaskID = model_CustHistoryInfo.TaskID;
                        query_TCSUpdate.CurrentSolveUserEID = BLL.Util.GetLoginUserID();
                        query_TCSUpdate.Status = 1;
                        int       count;
                        DataTable dt_TCSUpdate = BLL.TaskCurrentSolveUser.Instance.GetTaskCurrentSolveUser(query_TCSUpdate, "", 1, 10000, out count);
                        if (dt_TCSUpdate.Rows.Count == 0)
                        {
                            msg = "{'result':'no','msg':'您不是当前受理人,操作失败!'}";
                            return;
                        }
                        for (int i = 0; i < dt_TCSUpdate.Rows.Count; i++)
                        {
                            UpdateTaskCurrentSolveUser(dt_TCSUpdate.Rows[i]["RecID"].ToString(), 0);
                        }
                    }

                    if (right_AgreeTurnOut && right_TaskTurnOver)
                    {
                        //因为是高级权限操作,先判断是否已经转出过,如果没有同意转出而直接点击提交,则向Log表插入一条同意转出的动作记录

                        //1 判断是否是第一次转出,如果是,则插入一条同意转出的动作记录
                        QueryCustHistoryLog query_Log = new QueryCustHistoryLog();
                        query_Log.TaskID = model_CustHistoryInfo.TaskID;
                        int totalCount;
                        query_Log.Action = (int)Entities.Action.ActionAgreeApplyTurn;
                        DataTable dt_Log = BLL.CustHistoryLog.Instance.GetCustHistoryLog(query_Log, "", 1, 10000, out totalCount);
                        if (dt_Log.Rows.Count == 0)
                        {
                            //2 插入 客户历史信息处理日志 (动作记录)
                            InsertCustHistoryLogByAction(model_CustHistoryInfo.TaskID, RequestComment, (int)Entities.Action.ActionAgreeApplyTurn);//动作:同意转出
                        }

                        //3 修改客户历史记录信息表的记录:是否确定投诉 可修改,是否确认发送邮件 必须修改为true,任务状态 必须修改为“处理中”
                        model_CustHistoryInfo.IsSendEmail = true;
                        if (RequestIsComplaint != "")
                        {
                            model_CustHistoryInfo.IsComplaint = bool.Parse(RequestIsComplaint);
                        }
                        model_CustHistoryInfo.ProcessStatus = (int)Entities.EnumTaskStatus.TaskStatusNow;

                        UpdateCustHistoryInfo(model_CustHistoryInfo);
                    }

                    // 插入:当前受理人表  (插入转到受理人的记录)
                    TaskCurrentSolveUser model_TCS = new TaskCurrentSolveUser();
                    model_TCS.TaskID = model_CustHistoryInfo.TaskID;
                    model_TCS.CurrentSolveUserEID = nextSolveEID;
                    model_TCS.CurrentSolveUserID  = getUserEID(nextSolveEID);
                    model_TCS.Status           = 1;
                    model_TCS.CreateTime       = DateTime.Now;
                    model_TCS.CreateUserAdName = BLL.Util.GetDomainAccountByLimitEID(BLL.Util.GetLoginUserID());
                    InsertTaskCurrentSolveUser(model_TCS);
                    action = (int)Entities.Action.ActionTurnOut;//动作:转出

                    //发送邮件
                    sendEmailByType(2, model_CustHistoryInfo.TaskID, nextSolveEID, model_CustHistoryInfo.CustID, BLL.Util.GetLoginUserID());
                }
                else
                {
                    msg = "{'result':'no','msg':'转到下一个受理人ID出错,操作失败!'}";
                    return;
                }
            }

            //2 插入处理信息到CustHistoryLog表
            CustHistoryLog model = new CustHistoryLog();

            //modify by qizq 2013-1-4首先判断是否是通话中
            if (IsCalling == "1")
            {
                if (HistoryLogID == "")
                {
                    //通话中提交把本地录音主键付给实体
                    long CallRecordReCID = 0;
                    if (CallRecordID != "")
                    {
                        if (long.TryParse(CallRecordID, out CallRecordReCID))
                        {
                            model.CallRecordID = CallRecordReCID;
                        }
                    }
                }
            }
            //
            model.TaskID       = model_CustHistoryInfo.TaskID;
            model.SolveUserID  = BLL.Util.GetLoginUserID();
            model.SolveUserEID = BLL.Util.GetLoginUserID();
            model.SolveTime    = DateTime.Now;
            model.Comment      = RequestComment;
            model.Action       = action;
            int status;

            if (int.TryParse(RequestCHLStatus, out status))
            {
                model.Status = status;
            }

            int toNextSolveUserEID;

            if (int.TryParse(RequestToNextSolveUserEID, out toNextSolveUserEID))
            {
                model.ToNextSolveUserEID = toNextSolveUserEID;
                model.ToNextSolveUserID  = getUserEID(toNextSolveUserEID);
            }
            long pid = getPIDByNextSolveEID(model_CustHistoryInfo.TaskID, BLL.Util.GetLoginUserID());

            if (pid != 0)
            {
                model.Pid = pid;
            }
            //modify by qizq 2013-1-4不是在通话中,处理记录已存在更新处理记录
            if (IsCalling != "1" && HistoryLogID != "")
            {
                //通话中提交把本地录音主键付给实体
                long CallRecordReCID = 0;
                if (CallRecordID != "")
                {
                    if (long.TryParse(CallRecordID, out CallRecordReCID))
                    {
                        model.CallRecordID = CallRecordReCID;
                    }
                }
                long HistoryLogIDLog = 0;
                if (long.TryParse(HistoryLogID, out HistoryLogIDLog))
                {
                    model.RecID = HistoryLogIDLog;
                }
                //CustHistoryLog 作废 2016-3-1 强斐
                //UpdateCustHistoryLog(model);
            }
            else
            {
                //CustHistoryLog 作废 2016-3-1 强斐
                //InsertCustHistoryLog(model);
            }

            //查找登陆人的客户历史关联邮件模板的记录
            QueryCustHistoryTemplateMapping query_templateMappingOld = new QueryCustHistoryTemplateMapping();

            query_templateMappingOld.TaskID       = model.TaskID;
            query_templateMappingOld.SolveUserEID = model.SolveUserEID;
            int       templateCount;
            DataTable dt_templateMappingOld = BLL.CustHistoryTemplateMapping.Instance.GetCustHistoryTemplateMapping(query_templateMappingOld, "", 1, 10000, out templateCount);

            if (dt_templateMappingOld.Rows.Count > 0)
            {
                int _templateID;
                if (int.TryParse(dt_templateMappingOld.Rows[0]["TemplateID"].ToString(), out _templateID))
                {
                    //插入(下一个受理人)到客户历史关联邮件模板
                    CustHistoryTemplateMapping model_templateMappingNew = new CustHistoryTemplateMapping();
                    model_templateMappingNew.TaskID       = query_templateMappingOld.TaskID;
                    model_templateMappingNew.TemplateID   = _templateID;
                    model_templateMappingNew.SolveUserEID = toNextSolveUserEID;
                    model_templateMappingNew.CreateTime   = DateTime.Now;
                    model_templateMappingNew.CreateUserID = BLL.Util.GetLoginUserID();
                    BLL.CustHistoryTemplateMapping.Instance.Insert(model_templateMappingNew);
                }
            }

            msg = "{'result':'yes','msg':'操作成功'}";
        }