Пример #1
0
        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);
        }
Пример #2
0
 /// 处理权限验证
 /// <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);
 }
Пример #3
0
        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>&nbsp;&nbsp;</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);
            }
        }
Пример #6
0
        ///  处理权限验证
        /// <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);
            }
        }
Пример #7
0
        /// 保存工单处理记录
        /// <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;
        }
Пример #8
0
 /// 工单处理
 /// <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);
 }