public string GetOperStr(string orderId, int workOrderStatus, int lastrecid, int createUserId) { string msg = ""; WOrderOperTypeEnum wOrderOperTypeEnum = BLL.WOrderProcess.Instance.ValidateWOrderProcessRight(orderId, workOrderStatus, lastrecid, createUserId, ref msg); string enumStr = BitAuto.ISDC.CC2012.BLL.Util.GetEnumOptText(typeof(BitAuto.ISDC.CC2012.Entities.WOrderOperTypeEnum), (int)wOrderOperTypeEnum); if (wOrderOperTypeEnum == WOrderOperTypeEnum.None) { return("--"); } string operStr = "<a href='/WOrderV2/WOrderProcess.aspx?OrderID=" + orderId + "' target='_blank'>" + enumStr + "</a>"; return(operStr); }
/// 处理权限验证 /// <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); }
private string New_Order(string status_nm, int recid, string orderid, int workorderstatus, int lastrecid, int createuserid) { string url = ""; string name = ""; //处理 if (status_nm == "待处理" || status_nm == "处理中") { string msg = ""; WOrderOperTypeEnum oper = BLL.WOrderProcess.Instance.ValidateWOrderProcessRight(orderid, workorderstatus, lastrecid, createuserid, ref msg); switch (oper) { case WOrderOperTypeEnum.L03_审核: name = "审核"; url = "/WOrderV2/WOrderProcess.aspx?OrderID=" + orderid + "&r=" + new Random().NextDouble(); break; case WOrderOperTypeEnum.L04_处理: name = "处理"; url = "/WOrderV2/WOrderProcess.aspx?OrderID=" + orderid + "&r=" + new Random().NextDouble(); break; case WOrderOperTypeEnum.L05_回访: name = "回访"; url = "/WOrderV2/WOrderProcess.aspx?OrderID=" + orderid + "&r=" + new Random().NextDouble(); break; default: name = "查看"; url = "/WOrderV2/WorkOrderView.aspx?OrderID=" + orderid + "&r=" + new Random().NextDouble(); break; } } //查看 else { url = "/WOrderV2/WorkOrderView.aspx?OrderID=" + orderid + "&r=" + new Random().NextDouble(); name = "查看"; } return("<span id='span_ck_" + recid + "' style='display:inline-block' orderid='" + orderid + "'>" + "<a href='" + url + "' target='_blank'>" + name + "</a> </span>"); }
/// 工单处理 /// <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(""); } }
/// 权限验证 /// <summary> /// 权限验证 /// </summary> /// <returns></returns> private bool ValidateRight(WOrderProcessRightJsonData right) { string msg = ""; WOrderOperTypeEnum oper = WOrderOperTypeEnum.None; bool a = BLL.WOrderProcess.Instance.ValidateWOrderProcessRight(OrderID, ref msg, ref oper, out WOrderInfo, right); if (a == false) { BLL.Util.CloseCurrentPageAfterAlert(Response, msg); return(false); } else { TitleName = "工单" + BLL.Util.GetEnumOptText(typeof(WOrderOperTypeEnum), (int)oper); WOrderStatus = (WorkOrderStatus)WOrderInfo.WorkOrderStatus_Value; CRMCustID = WOrderInfo.CRMCustID_Value; return(true); } }
/// 处理权限验证 /// <summary> /// 处理权限验证 /// </summary> /// <param name="orderid"></param> /// <param name="orderstatus"></param> /// <param name="lastrecid"></param> /// <param name="ordercreateuserid"></param> /// <param name="message"></param> /// <returns></returns> public WOrderOperTypeEnum ValidateWOrderProcessRight(string orderid, int orderstatus, int lastrecid, int ordercreateuserid, ref string message, WOrderProcessRightJsonData right = null) { message = ""; WOrderOperTypeEnum oper = WOrderOperTypeEnum.None; //登录id int loginuserid = BLL.Util.GetLoginUserID(); //处理权限验证方式(默认:采用当前登录人的id验证) if (right == null || Enum.IsDefined(typeof(WOrderProcessRightTypeEnum), right.RightType_Out) == false) { right = new WOrderProcessRightJsonData() { RightType = (int)WOrderProcessRightTypeEnum.R01_人员ID, RightData = "", LoginUserID = loginuserid, OrderID = orderid }; } else { //校验right有效性 if (right.OrderID != orderid || right.LoginUserID != loginuserid) { message = "参数中的权限数据有效性不正确!"; return(oper); } } /// 审核权限 bool PendingRight = BLL.Util.CheckRight(loginuserid, "SYS024BUT102102B"); /// 处理权限 bool ProcessRight = BLL.Util.CheckRight(loginuserid, "SYS024BUT102102C"); /// 回访权限 bool ReturnRight = BLL.Util.CheckRight(loginuserid, "SYS024BUT102102D"); if (string.IsNullOrEmpty(orderid)) { message = "传入参数工单ID不正确!"; return(oper); } WorkOrderStatus status = (WorkOrderStatus)Enum.Parse(typeof(WorkOrderStatus), orderstatus.ToString()); switch (status) { case WorkOrderStatus.Pending: //审核 { if (PendingRight) { oper = WOrderOperTypeEnum.L03_审核; return(oper); } else { message = "您没有此工单的审核权限!"; return(oper); } } case WorkOrderStatus.Untreated: case WorkOrderStatus.Processing: //处理权限 { //有权限+是创建人+是否上一步处理记录制定的接收人 if (ProcessRight || loginuserid == ordercreateuserid || BLL.WOrderToAndCC.Instance.IsToPersonForNumber(orderid, lastrecid, right)) { oper = WOrderOperTypeEnum.L04_处理; return(oper); } else { message = "您没有此工单的处理权限!"; return(oper); } } case WorkOrderStatus.Processed: //回访权限 { if (ReturnRight) { if (BLL.WOrderProcess.Instance.IsHasReturnForProcess(orderid) == false) { oper = WOrderOperTypeEnum.L05_回访; return(oper); } else { message = "此工单已经回访过了!"; return(oper); } } else { message = "您没有此工单的回访权限!"; return(oper); } } case WorkOrderStatus.Completed: message = "无法处理已完成的工单!"; return(oper); case WorkOrderStatus.Closed: message = "无法处理已关闭的工单!"; return(oper); default: message = "工单状态不正确!"; return(oper); } }
/// 保存工单处理记录 /// <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 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); }