/// 保存接收抄送人 /// <summary> /// 保存接收抄送人 /// </summary> /// <param name="jsondata"></param> /// <param name="sysinfo"></param> /// <param name="orderid"></param> public void SaveToAndCC(WOrderProcessJsonData jsondata, SysRightUserInfo sysinfo, string orderid) { List <string> hasnum = new List <string>(); if (jsondata.Recevicer != null && jsondata.Recevicer.Count > 0) { foreach (ToAndCcPerson person in jsondata.Recevicer) { if (!string.IsNullOrEmpty(person.UserNum_Out) && hasnum.Contains(person.UserNum_Out) == false) { BLL.WOrderToAndCC.Instance.SaveWOrderToAndCC(orderid, jsondata.ProcessID, WOrderPersonTypeEnum.P01_接收人, person.UserID_Out, person.UserNum_Out, person.UserName_Out, sysinfo.UserID); hasnum.Add(person.UserNum_Out); } } } hasnum = new List <string>(); if (jsondata.ExtendRecev != null && jsondata.ExtendRecev.Count > 0) { foreach (ToAndCcPerson person in jsondata.ExtendRecev) { if (!string.IsNullOrEmpty(person.UserNum_Out) && hasnum.Contains(person.UserNum_Out) == false) { BLL.WOrderToAndCC.Instance.SaveWOrderToAndCC(orderid, jsondata.ProcessID, WOrderPersonTypeEnum.P02_抄送人, person.UserID_Out, person.UserNum_Out, person.UserName_Out, sysinfo.UserID); hasnum.Add(person.UserNum_Out); } } } }
/// 保存工单主表 /// <summary> /// 保存工单主表 /// </summary> /// <param name="jsondata"></param> /// <param name="sysinfo"></param> /// <param name="worderinfo"></param> public void SaveWOrderInfo(WOrderProcessJsonData jsondata, SysRightUserInfo sysinfo, WOrderInfoInfo worderinfo) { worderinfo.WorkOrderStatus = (int)jsondata.WorkOrderStatus_Out; worderinfo.LastReceiverID = jsondata.ProcessID; worderinfo.LastUpdateTime = DateTime.Now; worderinfo.LastUpdateUserID = sysinfo.UserID; CommonBll.Instance.UpdateComAdoInfo(worderinfo); }
/// 发送邮件给接收人和抄送人 /// <summary> /// 发送邮件给接收人和抄送人 /// </summary> /// <param name="jsondata"></param> /// <param name="sysinfo"></param> /// <param name="worderinfo"></param> public void SendEMail(WOrderProcessJsonData jsondata, SysRightUserInfo sysinfo, WOrderInfoInfo worderinfo) { try { //状态校验 WorkOrderStatus status = (WorkOrderStatus)worderinfo.WorkOrderStatus_Value; if (status == WorkOrderStatus.Pending || status == WorkOrderStatus.Processing || status == WorkOrderStatus.Untreated) { //查询邮件地址 string[] ccUserID = jsondata.Recevicer.Select(x => x.UserID_Out.ToString()).ToArray(); string[] toUserID = jsondata.ExtendRecev.Select(x => x.UserID_Out.ToString()).ToArray(); List <SysRightUserInfo> cc_sysinfos = BLL.EmployeeSuper.Instance.GetSysRightUserInfo(string.Join(",", ccUserID)); List <SysRightUserInfo> to_sysinfos = BLL.EmployeeSuper.Instance.GetSysRightUserInfo(string.Join(",", toUserID)); //邮箱 string[] cc_email = cc_sysinfos.Where(x => !string.IsNullOrEmpty(x.Email)).Select(x => x.Email).ToArray(); string[] to_email = to_sysinfos.Where(x => !string.IsNullOrEmpty(x.Email)).Select(x => x.Email).ToArray(); //查询个人用户信息 CustTypeEnum ctype = CustTypeEnum.T01_个人; DataTable dt = BLL.WOrderInfo.Instance.GetCBInfoByPhone(worderinfo.CBID_Value, ""); if (dt != null && dt.Rows.Count > 0) { ctype = (CustTypeEnum)CommonFunction.ObjectToInteger(dt.Rows[0]["CustCategoryID"]); } //获取工单类型 WOrderCategoryEnum wtype = (WOrderCategoryEnum)worderinfo.CategoryID_Value; //测试数据 //cc_email = new string[] { "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**" }; //to_email = new string[] { "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**" }; //邮件正文1 string body1 = "你有一张<strong style='color:red;'>" + BLL.Util.GetEnumOptText(typeof(CustTypeEnum), (int)ctype) + BLL.Util.GetEnumOptText(typeof(WOrderCategoryEnum), (int)wtype) + "</strong>工单!"; //邮件正文2 string body2 = worderinfo.Content_Value; //cc系统地址 string weburl = BitAuto.Utils.Config.ConfigurationUtil.GetAppSettingValue("ExitAddress"); //发邮件 if (cc_email.Length > 0) { WOrderInfo.LogToLog4("工单处理发送邮件:接收人" + string.Join(";", cc_email)); string title = "您有一张工单[" + worderinfo.OrderID_Value + "]待处理"; string a = "<a href='" + weburl + "/WOrderV2/WOrderProcess.aspx?OrderID=" + worderinfo.OrderID_Value + "'>工单处理</a>"; EmailHelper.Instance.SendMail(title, cc_email, new string[] { body1, body2, a }, "WOrderV2"); } if (to_email.Length > 0) { WOrderInfo.LogToLog4("工单处理发送邮件:抄送人" + string.Join(";", to_email)); string title = "您有一张工单[" + worderinfo.OrderID_Value + "]待查看"; string a = "<a href='" + weburl + "/WOrderV2/WorkOrderView.aspx?OrderID=" + worderinfo.OrderID_Value + "'>工单查看</a>"; EmailHelper.Instance.SendMail(title, to_email, new string[] { body1, body2, a }, "WOrderV2"); } } } catch (Exception ex) { WOrderInfo.ErrorToLog4("工单处理发送邮件异常", ex); } }
/// 保存话务 /// <summary> /// 保存话务 /// </summary> /// <param name="jsondata"></param> /// <param name="sysinfo"></param> public void SaveWOrderData(WOrderProcessJsonData jsondata, SysRightUserInfo sysinfo, string orderid) { if (jsondata.CallID_Out != null && jsondata.CallID_Out.Count > 0) { foreach (long callid in jsondata.CallID_Out) { //工单关联数据表 WOrderData BLL.WOrderData.Instance.InsertWOrderDataForCC(orderid, jsondata.ProcessID, callid, sysinfo.UserID); } } }
/// 工单处理 /// <summary> /// 工单处理 /// </summary> /// <param name="jsondata"></param> /// <param name="sysinfo"></param> public void WOrderProcessMain(WOrderProcessJsonData jsondata, SysRightUserInfo sysinfo, WOrderOperTypeEnum oper, WOrderInfoInfo worderinfo) { //保存工单处理记录 SaveWOrderProcess(jsondata, sysinfo, oper, worderinfo.OrderID_Value); //保存工单附件 SaveCommonAttachment(jsondata, sysinfo); //保存工单话务 SaveWOrderData(jsondata, sysinfo, worderinfo.OrderID_Value); //保存接收抄送人 SaveToAndCC(jsondata, sysinfo, worderinfo.OrderID_Value); //保存工单主表状态+处理id SaveWOrderInfo(jsondata, sysinfo, worderinfo); //发送邮件-异步 SendEMail(jsondata, sysinfo, worderinfo); }
/// 保存工单处理记录 /// <summary> /// 保存工单处理记录 /// </summary> /// <param name="jsondata"></param> /// <param name="sysinfo"></param> public void SaveWOrderProcess(WOrderProcessJsonData jsondata, SysRightUserInfo sysinfo, WOrderOperTypeEnum oper, string orderid) { WOrderProcessInfo process = new WOrderProcessInfo(); process.ProcessType = (int)oper; process.OrderID = orderid; process.WorkOrderStatus = (int)jsondata.WorkOrderStatus_Out; process.IsReturnVisit = jsondata.IsReturnVisit_Out; process.ProcessContent = jsondata.ProcessContent_Out; process.Status = 0; process.CreateUserID = sysinfo.UserID; process.CreateUserNum = sysinfo.UserCode; process.CreateUserName = sysinfo.TrueName; process.CreateUserDeptName = sysinfo.MainDepartName; process.CreateTime = DateTime.Now; CommonBll.Instance.InsertComAdoInfo(process); jsondata.ProcessID = process.RecID_Value; }
/// 保存附件 /// <summary> /// 保存附件 /// </summary> /// <param name="jsondata"></param> /// <param name="sysinfo"></param> public void SaveCommonAttachment(WOrderProcessJsonData jsondata, SysRightUserInfo sysinfo) { if (jsondata.imgData != null) { foreach (AttachmentJsonData item in jsondata.imgData) { CommonAttachmentInfo attach = new CommonAttachmentInfo(); attach.BTypeID = (int)BLL.Util.ProjectTypePath.WorkOrder; attach.RelatedID = jsondata.ProcessID.ToString(); attach.FileName = item.FileRealName_Out; attach.FileType = item.FileType_Out; attach.FileSize = item.FileSize_Out; attach.FilePath = item.FileAllPath_Out; attach.Status = 0; attach.CreateUserID = sysinfo.UserID; attach.CreateTime = DateTime.Now; CommonBll.Instance.InsertComAdoInfo(attach); } } }
/// 发送邮件给接收人和抄送人 /// <summary> /// 发送邮件给接收人和抄送人 /// </summary> /// <param name="jsondata"></param> /// <param name="sysinfo"></param> /// <param name="worderinfo"></param> public void SendEMailAsync(WOrderProcessJsonData jsondata, SysRightUserInfo sysinfo, WOrderInfoInfo worderinfo) { Action <WOrderProcessJsonData, SysRightUserInfo, WOrderInfoInfo> action = new Action <WOrderProcessJsonData, SysRightUserInfo, WOrderInfoInfo>(SendEMail); action.BeginInvoke(jsondata, sysinfo, worderinfo, null, null); }