예제 #1
0
 public List<FlowUserInfo> GetFlowUserInfoByRoleID(string roleID)
 {
     using (SysUserBLL bll = new SysUserBLL())
     {
         Tracer.Debug("流程调用了GetFlowUserInfoByRoleID:"+ roleID);
         return bll.GetFlowUserInfoByRoleID(roleID);
     }
 }
예제 #2
0
        /// <summary>
        /// 通过状态代码查询下一处理人(对服务操作)
        /// </summary>
        /// <param name="RoleId">状态代码(角色ID(RoleName))</param>
        /// <returns></returns>
        private List<UserInfo> TmGetUserByRoleId(string RoleId, string UserID, string PostID, ref bool isHigher)
        {
            try
            {

                string CurrentRoleId = RoleId == "EndFlow" ? "End" : RoleId; //取得当前状态
                List<UserInfo> listUser = new List<UserInfo>();
                if (CurrentRoleId != "End")
                {
                    string WFCurrentRoleId = "";
                    int isDirect = 0;
                    #region 是否是直接上级,隔级上级,部门负责人
                    foreach (Higher c in Enum.GetValues(typeof(Higher)))
                    {
                        if (CurrentRoleId.ToUpper() == c.ToString().ToUpper())
                        {
                            isDirect = (int)c;//== 1 ? true : false;

                            WFCurrentRoleId = CurrentRoleId;
                            isHigher = true;
                        }
                    }
                    #endregion

                    if (WFCurrentRoleId != "")
                    {
                        //PermissionService
                        #region 如果是直接上级,隔级上级,部门负责人
                        Tracer.Debug("UserID=" + UserID + " 开始调用 直接上级,隔级上级,部门负责人:WcfPersonnel.GetEmployeeLeaders(岗位ID=" + PostID + ", isDirect=" + isDirect + ")");

                        List<SMT.HRM.CustomModel.V_EMPLOYEEVIEW> User = new List<SMT.HRM.CustomModel.V_EMPLOYEEVIEW>();
                        using (EmployeeBLL bll = new EmployeeBLL())
                        {
                            User = bll.GetEmployeeLeaders(PostID, isDirect);
                        }

                        //V_EMPLOYEEVIEW[] User = WcfPersonnel.GetEmployeeLeaders(PostID, isDirect);
                        string strtemp = "UserID=" + UserID + " 结束调用 直接上级,隔级上级,部门负责人:WcfPersonnel.GetEmployeeLeaders(岗位ID=" + PostID + ", isDirect=" + isDirect + ")";
                        if (User != null && User.Count > 0)
                        {
                            for (int i = 0; i < User.Count; i++)
                            {
                                UserInfo tmp = new UserInfo();
                                tmp.UserID = User[i].EMPLOYEEID;
                                tmp.UserName = User[i].EMPLOYEECNAME;
                                tmp.CompanyID = User[i].OWNERCOMPANYID;
                                tmp.DepartmentID = User[i].OWNERDEPARTMENTID;
                                tmp.PostID = User[i].OWNERPOSTID;

                                tmp.CompanyName = User[i].COMPANYNAME;
                                tmp.DepartmentName = User[i].DEPARTMENTNAME;
                                tmp.PostName = User[i].POSTNAME;
                                tmp.Roles = new List<TM_SaaS_OA_EFModel.T_SYS_ROLE>();
                                listUser.Add(tmp);
                                strtemp += "公司ID   = " + User[i].EMPLOYEEID + "\r\n";
                                strtemp += "部门ID   = " + User[i].OWNERDEPARTMENTID + "\r\n";
                                strtemp += "岗位ID   = " + User[i].OWNERPOSTID + "\r\n";
                                strtemp += "员工ID   = " + User[i].EMPLOYEEID + "\r\n";

                                strtemp += "公司名称 = " + User[i].COMPANYNAME + "\r\n";
                                strtemp += "部门名称 = " + User[i].DEPARTMENTNAME + "\r\n";
                                strtemp += "岗位名称 = " + User[i].POSTNAME + "\r\n";
                                strtemp += "员工姓名 = " + User[i].EMPLOYEECNAME + "\r\n";
                            }
                        }
                        #endregion
                        Tracer.Debug(strtemp);
                    }
                    else
                    {
                        #region 根据角色ID查找人
                        Tracer.Debug("UserID=" + UserID + " 开始调用 检索本状态(角色)对应用户:WcfPermissionService.GetFlowUserInfoByRoleID(角色ID=" + WFCurrentRoleId + ")");
                        WFCurrentRoleId = new Guid(CurrentRoleId).ToString("D");

                        try
                        {
                            List<SMT.HRM.CustomModel.Permission.FlowUserInfo> User = new List<HRM.CustomModel.Permission.FlowUserInfo>();//新的接口
                            using (SysUserBLL bll = new SysUserBLL())
                            {
                                User= bll.GetFlowUserInfoByRoleID(WFCurrentRoleId);
                            }

                            string strRole = "UserID=" + UserID + " 结束调用 检索本状态(角色)对应用户:WcfPermissionService.GetFlowUserInfoByRoleID(角色ID=" + WFCurrentRoleId + ")\r\n";

                            if (User != null && User.Count > 0)
                            {
                                for (int i = 0; i < User.Count; i++)
                                {
                                    #region
                                    UserInfo tmp = new UserInfo();
                                    strRole += "公司ID   = " + User[i].CompayID + "\r\n";
                                    strRole += "部门ID   = " + User[i].DepartmentID + "\r\n";
                                    strRole += "岗位ID   = " + User[i].PostID + "\r\n";
                                    strRole += "员工ID   = " + User[i].UserID + "\r\n";

                                    strRole += "公司名称 = " + User[i].CompayName + "\r\n";
                                    strRole += "部门名称 = " + User[i].DepartmentName + "\r\n";
                                    strRole += "岗位名称 = " + User[i].PostName + "\r\n";
                                    strRole += "员工姓名 = " + User[i].EmployeeName + "\r\n";

                                    tmp.UserID = User[i].UserID;
                                    tmp.UserName = User[i].EmployeeName;
                                    tmp.CompanyID = User[i].CompayID;
                                    tmp.DepartmentID = User[i].DepartmentID;
                                    tmp.PostID = User[i].PostID;

                                    tmp.CompanyName = User[i].CompayName;
                                    tmp.DepartmentName = User[i].DepartmentName;
                                    tmp.PostName = User[i].PostName;
                                    tmp.Roles = new List<TM_SaaS_OA_EFModel.T_SYS_ROLE>();
                                    foreach (var role in User[i].Roles)
                                    {
                                        tmp.Roles.Add(role);
                                        strRole += "角色ID   = " + role.ROLEID + "\r\n";
                                        strRole += "角色名称 = " + role.ROLENAME + "\r\n";
                                    }
                                    listUser.Add(tmp);
                                    strRole += "\r\n";
                                    strRole += "==================================================================================\r\n";
                                    #endregion

                                }
                            }
                            Tracer.Debug(strRole);
                        }
                        catch (Exception ex)
                        {
                            Tracer.Debug("权限服务GetSysUserByRole异常信息 角色id:" + WFCurrentRoleId + "" + ex.ToString());
                            throw new Exception("下一审核人为空,请联系公司权限管理员检查角色下的人员,角色id:" + WFCurrentRoleId);
                        }
                        #endregion

                    }

                }
                else
                {
                    //已经到流程结束状态
                    UserInfo tmp = new UserInfo();
                    tmp.UserID = "End";
                    tmp.UserName = "******";

                    listUser.Add(tmp);
                }

                return listUser;
            }
            catch (Exception ex)
            {
                Tracer.Debug("通过状态代码调用权限服务出错查询下一处理人(对服务操作) GetUserByStateCode异常信息 :" + ex.ToString());
                throw new Exception("调用权限服务出错,请联系管理员!");
                // return null ;
            }
            //finally
            //{
            //    WcfPermissionService.Close();
            //    WcfPermissionService = null;
            //    WcfPersonnel.Close();
            //    WcfPersonnel = null;
            //}
        }