protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (!string.IsNullOrEmpty(OrderID)) { WOrderInfoInfo modelout = BLL.WOrderInfo.Instance.GetWOrderInfoInfo(OrderID); if (modelout != null) { custInfoView.CustID = modelout.CBID; DataTable dtCBInfo = BLL.WOrderInfo.Instance.GetCBInfoByPhone(modelout.CBID, ""); if (dtCBInfo != null && dtCBInfo.Rows.Count > 0) { //worderBasicInfo.CustCategoryID = dtCBInfo.Rows[0]["CustCategoryID"].ToString(); //worderBasicInfo.WorkOrderID = OrderID; } } custInfoView.CanSeeTelImg = true; worderBasicInfo.WOrderInfo = modelout; worderBasicInfo.CanSeeTelImg = true; dealView.OrderId = OrderID; } } }
/// 保存工单主表信息 /// <summary> /// 保存工单主表信息 /// </summary> /// <param name="jsondata"></param> /// <param name="sysinfo"></param> private void SaveWOrderMainInfo(WOrderJsonData jsondata, SysRightUserInfo sysinfo) { WOrderInfoInfo main = new WOrderInfoInfo(); main.OrderID = GetNewWOrderID(); main.CallSource = (int)jsondata.Common.CallSource_Out; main.ModuleSource = (int)jsondata.Common.ModuleSource_Out; main.DataSource = (int)jsondata.WOrderInfo.DataSource_Out; main.WorkOrderStatus = (int)jsondata.OrderStatus; main.CategoryID = (int)jsondata.WOrderInfo.Category_Out; main.ComplaintLevel = jsondata.WOrderInfo.ComplaintLevel_Out; main.BusinessType = jsondata.WOrderInfo.BusinessType_Out; main.BusinessTag = jsondata.WOrderInfo.BusinessTag_Out; main.IsSyncCRM = jsondata.WOrderInfo.IsSysCRM_Out; main.VisitType = jsondata.WOrderInfo.VisitType_Out; main.CBID = jsondata.CBID; main.Phone = jsondata.CustBaseInfo.Phone_Out; main.CRMCustID = jsondata.CRMCustID_Out; main.Content = jsondata.WOrderInfo.Content_Out; main.ContactName = jsondata.WOrderInfo.ContactName_Out; main.ContactTel = jsondata.WOrderInfo.ContactTel_Out; main.LastReceiverID = null; main.BGID = sysinfo.BGID; main.Status = 0; main.CreateUserID = sysinfo.UserID; main.CreateTime = DateTime.Now; main.LastUpdateUserID = sysinfo.UserID; main.LastUpdateTime = DateTime.Now; CommonBll.Instance.InsertComAdoInfo(main); //存储工单id jsondata.WOrderID = main.OrderID; }
/// 更新工单状态 /// <summary> /// 更新工单状态 /// </summary> /// <param name="orderid"></param> /// <param name="status"></param> /// <param name="receiverid"></param> /// <param name="loginuserid"></param> /// <returns></returns> public bool UpdateWOrderInfoStatus(string orderid, int status, int receiverid, int loginuserid) { WOrderInfoInfo info = GetWOrderInfoInfo(orderid); if (info == null) { return(false); } info.WorkOrderStatus = status; info.LastReceiverID = receiverid; info.LastUpdateUserID = loginuserid; info.LastUpdateTime = DateTime.Now; return(CommonBll.Instance.UpdateComAdoInfo(info)); }
/// 工单处理 /// <summary> /// 工单处理 /// </summary> /// <param name="flag"></param> /// <param name="msg"></param> /// <returns></returns> private string SaveProcess(ref bool flag, ref string msg) { try { WOrderProcessJsonData jsondata = WOrderProcessJsonData.GetWOrderProcessJsonData(JsonData); if (jsondata == null) { flag = false; msg = "参数错误!"; return(""); } WOrderInfoInfo worderinfo = null; WOrderOperTypeEnum oper = WOrderOperTypeEnum.None; WOrderProcessRightJsonData right = WOrderProcessRightJsonData.GetWOrderProcessRightJsonData(RightData); flag = BLL.WOrderProcess.Instance.ValidateWOrderProcessRight(OrderID, ref msg, ref oper, out worderinfo, right); if (flag == false) { return(""); } int loginuserid = BLL.Util.GetLoginUserID(); SysRightUserInfo sysinfo = BLL.EmployeeSuper.Instance.GetSysRightUserInfo(loginuserid); if (sysinfo == null) { flag = false; msg = "获取不到当前登录人信息!"; return(""); } //处理工单 BLL.WOrderProcess.Instance.WOrderProcessMain(jsondata, sysinfo, oper, worderinfo); flag = true; msg = ""; return(BLL.Util.GetEnumOptText(typeof(WOrderOperTypeEnum), (int)oper)); } catch (Exception ex) { WOrderInfo.ErrorToLog4("工单处理", ex); flag = false; msg = ex.Message; return(""); } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (!string.IsNullOrEmpty(OrderID)) { WOrderInfoInfo modelout = BLL.WOrderInfo.Instance.GetWOrderInfoInfo(OrderID); if (modelout != null) { ucCustInfoView.CustID = modelout.CBID; ucCustInfoView.Telphone = modelout.Phone_Value; ucCustInfoView.CanSeeTelImg = false; ucWOrderBasicInfo.WOrderInfo = modelout; ucWOrderBasicInfo.CustCategoryID = ucCustInfoView.CustType; ucWOrderBasicInfo.CanSeeTelImg = false; string orderStateName = BLL.Util.GetEnumOptText(typeof(Entities.WorkOrderStatus), (int)modelout.WorkOrderStatus_Value); if (orderStateName == "待审核" || orderStateName == "已完成") { ucWOrderDealView.Visible = false; } else { ucWOrderDealView.OrderId = OrderID; } } else { BLL.Util.CloseCurrentPageAfterAlert(Response, "获取不到此工单信息!"); } } else { BLL.Util.CloseCurrentPageAfterAlert(Response, "传入参数错误!"); } } }
/// 处理权限验证 /// <summary> /// 处理权限验证 /// </summary> /// <param name="orderid"></param> /// <param name="message"></param> /// <param name="oper"></param> /// <param name="info"></param> /// <returns></returns> public bool ValidateWOrderProcessRight(string orderid, ref string message, ref WOrderOperTypeEnum oper, out WOrderInfoInfo info, WOrderProcessRightJsonData right) { message = ""; oper = WOrderOperTypeEnum.None; info = null; if (string.IsNullOrEmpty(orderid)) { message = "传入参数工单ID不正确!"; return(false); } info = BLL.WOrderInfo.Instance.GetWOrderInfoInfo(orderid); if (info == null) { message = "查不到对应的工单数据!"; return(false); } oper = ValidateWOrderProcessRight(orderid, info.WorkOrderStatus_Value, info.LastReceiverID_Value, info.CreateUserID_Value, ref message, right); return(oper != WOrderOperTypeEnum.None); }
/// 发送邮件给接收人和抄送人 /// <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> /// <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); }
/// 保存工单主表 /// <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> 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); }