//发送邮件 eid:hr系统人员主键 type: 1-同意转出;2-提交 private void sendEmailByType(int type, string taskID, int eid, string custID, int loginID) { //1 如果type=1 同意转出,则根据该条任务ID去邮件模板表找到对应的模板ID发送 if (type == 1) { QueryCustHistoryTemplateMapping query_Template = new QueryCustHistoryTemplateMapping(); query_Template.TaskID = taskID; int count; DataTable dt_Template = BLL.CustHistoryTemplateMapping.Instance.GetCustHistoryTemplateMapping(query_Template, "", 1, 10000, out count); for (int i = 0; i < dt_Template.Rows.Count; i++) { sendEmail(taskID, dt_Template.Rows[i]["TemplateID"].ToString(), int.Parse(dt_Template.Rows[i]["SolveUserEID"].ToString()), custID); } } else if (type == 2) { QueryCustHistoryTemplateMapping query_Template = new QueryCustHistoryTemplateMapping(); query_Template.TaskID = taskID; query_Template.SolveUserEID = loginID; int count; DataTable dt_Template = BLL.CustHistoryTemplateMapping.Instance.GetCustHistoryTemplateMapping(query_Template, "", 1, 10000, out count); if (dt_Template.Rows.Count > 0) { sendEmail(taskID, dt_Template.Rows[0]["TemplateID"].ToString(), eid, custID); } else { sendEmail(taskID, "", eid, custID); } } }
/// <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 GetCustHistoryTemplateMapping(QueryCustHistoryTemplateMapping query, string order, int currentPage, int pageSize, out int totalCount) { string where = string.Empty; if (query.TaskID != Constant.STRING_INVALID_VALUE) { where += " AND TaskID='" + StringHelper.SqlFilter(query.TaskID) + "'"; } if (query.SolveUserEID != Constant.INT_INVALID_VALUE) { where += " AND SolveUserEID=" + query.SolveUserEID.ToString(); } 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_CUSTHISTORYTEMPLATEMAPPING_SELECT, parameters); totalCount = (int)(parameters[4].Value); return(ds.Tables[0]); }
/// <summary> /// 得到一个对象实体 /// </summary> public Entities.CustHistoryTemplateMapping GetCustHistoryTemplateMapping(long RecID) { QueryCustHistoryTemplateMapping query = new QueryCustHistoryTemplateMapping(); query.RecID = RecID; DataTable dt = new DataTable(); int count = 0; dt = GetCustHistoryTemplateMapping(query, string.Empty, 1, 1, out count); if (count > 0) { return(LoadSingleCustHistoryTemplateMapping(dt.Rows[0])); } else { return(null); } }
/// <summary> /// 是否存在该记录 /// </summary> public bool IsExistsByRecID(long RecID) { QueryCustHistoryTemplateMapping query = new QueryCustHistoryTemplateMapping(); query.RecID = RecID; DataTable dt = new DataTable(); int count = 0; dt = GetCustHistoryTemplateMapping(query, string.Empty, 1, 1, out count); if (count > 0) { return(true); } else { return(false); } }
//发送邮件 外部提交-根据固定的模板发送邮件 private void sendEmail(string taskID, string templateID, int eid, string custID) { //url string urlHead = ConfigurationUtil.GetAppSettingValue("TaskProcessUrl"); //找到邮件接收人的邮箱 string userEmail = BLL.Util.GetEmployeeEmailByEid(eid); //1 插入 发送邮件日志表 (记录) SendEmailLog model_Email = new SendEmailLog(); string templateName = BLL.Util.GetEmployeeNameByEid(eid);//收件人姓名 string urlInternal = urlHead + "/TaskManager/TaskProcess.aspx?TaskID=" + taskID; string urlExternal = urlHead + "/ExternalTask/ExternalTaskProcess.aspx?TaskID=" + taskID; string templateTitle = string.Empty; //模板标题 string templateLog = string.Empty; //模板日志 string templateUrl = string.Empty; //模板链接格式 int _templateID; //模板ID //根据TaskID和受理人ID获取所要发送的模板ID if (int.TryParse(templateID, out _templateID)) { QueryCustHistoryTemplateMapping query_Template = new QueryCustHistoryTemplateMapping(); query_Template.TaskID = taskID; query_Template.SolveUserEID = eid; int count; DataTable dt_Template = BLL.CustHistoryTemplateMapping.Instance.GetCustHistoryTemplateMapping(query_Template, "", 1, 10000, out count); if (dt_Template != null) { //根据模板ID获取模板内容 TemplateInfo model_TemplateInfo = new TemplateInfo(); model_TemplateInfo = BLL.TemplateInfo.Instance.GetTemplateInfo(_templateID); if (model_TemplateInfo == null) { return; } //templateInfo += model_TemplateInfo.Content; templateUrl += model_TemplateInfo.Content + "<br/>"; templateTitle = model_TemplateInfo.Title; } templateLog += "【同意转出】"; } else { _templateID = 0; templateUrl += "呼叫中心系统有需要您协助处理的问题,"; templateLog += "【提交】"; } templateLog += "发出邮件至【" + userEmail + "】;接收人【" + templateName + "】"; templateUrl += "详情请点击:<br/><a href='" + urlExternal + "'>" + urlHead + "/ExternalTask/ExternalTaskProcess.aspx</a><br/>"; templateUrl += "呼叫中心系统内部人员请访问:<br/><a href='" + urlInternal + "'>" + urlHead + "/TaskManager/TaskProcess.aspx</a>"; model_Email.TemplateID = 0; model_Email.CustID = custID; model_Email.MailTo = userEmail; model_Email.SendTime = DateTime.Now; model_Email.SendContent = templateUrl; model_Email.CreateUserID = int.Parse(RequestLoginEID); BLL.SendEmailLog.Instance.Insert(model_Email); //2根据 客户历史记录信息表中 模板ID来发送模板邮件 BLL.EmailHelper.Instance.SendMail(templateName, templateUrl, "呼叫中心问题处理", new string[] { userEmail }); BLL.Util.InsertUserLog("【外部提交】发送邮件日志表【插入】客户名称:【" + BLL.CustBasicInfo.Instance.GetCustBasicInfo(model_Email.CustID).CustName + "】接收人:【" + templateName + "】邮箱:【" + model_Email.MailTo + "】发送内容:【" + model_Email.SendContent + "】的记录【邮件发送成功】", int.Parse(RequestLoginEID)); }
//提交 外部使用(插入客户历史信息处理日志) private void CustHistoryLogExternalSubmit(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;//记录动作 默认:提交 //1 判断是否存在“转到受理人ID(ToNextSolveUserEID)”存在:向当前受理人表插入一条记录 int nextSolveEID; if (RequestToNextSolveUserEID != "") { if (int.TryParse(RequestToNextSolveUserEID, out nextSolveEID)) { //判断登陆者权限 如果权限有高级操作权限,则不需要修改自己的记录 自己添加提交 //坐席权限 //修改:当前受理人表(修改自己的记录) 状态改为0 无效 QueryTaskCurrentSolveUser query_TCSUpdate = new QueryTaskCurrentSolveUser(); query_TCSUpdate.TaskID = RequestCHITaskID; query_TCSUpdate.CurrentSolveUserEID = int.Parse(RequestLoginEID); 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); } // 插入:当前受理人表 (插入转到受理人的记录) TaskCurrentSolveUser model_TCS = new TaskCurrentSolveUser(); model_TCS.TaskID = RequestCHITaskID; model_TCS.CurrentSolveUserEID = nextSolveEID; //model_TCS.CurrentSolveUserID = getUserEID(nextSolveEID); model_TCS.Status = 1; model_TCS.CreateTime = DateTime.Now; int _loginerEID; if (int.TryParse(RequestLoginEID, out _loginerEID)) { model_TCS.CreateUserAdName = BLL.Util.GetEmployeeDomainAccountByEid(_loginerEID); } InsertTaskCurrentSolveUser(model_TCS); action = (int)Entities.Action.ActionTurnOut;//动作:转出 //发送邮件 sendEmailByType(2, RequestCHITaskID, nextSolveEID, model_CustHistoryInfo.CustID, _loginerEID); //sendEmail(RequestCHITaskID, nextSolveEID, model_CustHistoryInfo.CustID); } else { msg = "{'result':'no','msg':'转到下一个受理人ID出错,操作失败!'}"; return; } } //2 插入处理信息到CustHistoryLog表 CustHistoryLog model = new CustHistoryLog(); model.TaskID = RequestCHITaskID; //model.SolveUserID = BLL.Util.GetLoginUserID(); model.SolveUserEID = int.Parse(RequestLoginEID); 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); } int _loginEID; if (int.TryParse(RequestLoginEID, out _loginEID)) { long pid = getPIDByNextSolveEID(RequestCHITaskID, _loginEID); if (pid != 0) { model.Pid = pid; } } 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 = _loginEID; BLL.CustHistoryTemplateMapping.Instance.Insert(model_templateMappingNew); } } msg = "{'result':'yes','msg':'操作成功'}"; }
/// <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 GetCustHistoryTemplateMapping(QueryCustHistoryTemplateMapping query, string order, int currentPage, int pageSize, out int totalCount) { return(Dal.CustHistoryTemplateMapping.Instance.GetCustHistoryTemplateMapping(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':'操作成功'}"; }