Пример #1
0
        /// <summary>
        /// 根据部门ID取出部门负责人、部门领导和大于某职位的人
        /// </summary>
        /// <param name="strDeptID">部门ID</param>
        /// <param name="strPost">职位名称</param>
        /// <param name="enmuType">职务类型枚举</param>
        /// <param name="iFloorCode">层级(0自己,>0 子部门层数,-1所有)</param>
        /// <returns></returns>
        private static ViewBase GetUserByDeptPost(string strDeptID, string strPost, Common.LeaderType enmuType, int iFloorCode)
        {
            ViewBase   vb   = null;
            Department dept = Department.GetDepartment(OADept.ConvertInt(strDeptID));

            if (dept != null)
            {
                vb = OAUser.FilterUser(dept.GetManagerOrLeader(iFloorCode, enmuType, strPost));
            }
            return(vb);
        }
Пример #2
0
        /// <summary>
        /// 根据部门ID获取部门领导
        /// </summary>
        /// <param name="strDeptID">部门ID</param>
        /// <param name="iFloorCode">层级(0.自己;-1.所有)</param>
        /// <returns>ViewBase</returns>
        public static ViewBase GetDeptLeader(String strDeptID, int iFloorCode)
        {
            ViewBase   vb   = null;
            Department dept = Department.GetDepartment(OADept.ConvertInt(strDeptID));

            if (dept != null)
            {
                vb = OAUser.FilterUser(dept.GetLeaders(iFloorCode));
            }
            return(vb);
        }
Пример #3
0
        /// <summary>
        ///  根据部门的ID和职位名称取出大于这个职位的人(向下遍历)
        /// </summary>
        /// <param name="strDeptID">部门ID</param>
        /// <param name="strPostName">职位名称</param>
        /// <param name="iFloorCode">层级(0自己,>0 子部门层数,-1所有)</param>
        /// <returns >ViewBase</returns>
        private static ViewBase GetSupUserByPost(string strDeptID, string strPostName, int iFloorCode)
        {
            ViewBase   vb   = null;
            Department dept = Department.GetDepartment(OADept.ConvertInt(strDeptID));

            if (dept != null)
            {
                vb = OAUser.FilterUser(dept.GetUserByPosition(strPostName, iFloorCode));
            }
            return(vb);
        }
Пример #4
0
        ///// <summary>
        /////  绑定DropDownList控件的方法
        ///// </summary>
        ///// <param name="ddl">控件的ID</param>
        ///// <param name="dt">需要绑定的表</param>
        //private static void BindDropDownList(DropDownList ddl, DataTable dt)
        //{
        //    ddl.Items.Clear();
        //    ddl.Items.Add(new ListItem());
        //    if (dt != null)
        //    {
        //        foreach (DataRow dr in dt.Rows)
        //        {
        //            ListItem Item = new ListItem(dr["Name"].ToString(), (dr["Domain"] + "\\" + dr["Userid"]).ToString());
        //            if (!ddl.Items.Contains(Item)) //重复的不加载
        //            {
        //                ddl.Items.Add(Item);
        //            }
        //        }
        //    }
        //}

        #endregion

        #region 获得所有用户

        /// <summary>
        /// 获得所有用户
        /// </summary>
        /// <returns>ViewBase</returns>
        private static ViewBase GetAllUser()
        {
            ViewBase vb = User.GetAllUser();

            if (vb != null)
            {
                vb.Field = "a.ID,a.UserID,a.Name,a.Domain";
                vb.Sort  = "a.ID";
                vb       = OAUser.FilterUser(vb);
            }
            return(vb);
        }
Пример #5
0
        /// <summary>
        /// 获得大于某个职位的职位名称数组
        /// </summary>
        /// <param name="strPostName">职位名称</param>
        /// <returns>ArrayList</returns>
        public static ArrayList GetSupPostNameAarray(string strPostName)
        {
            ArrayList arrNames = new ArrayList();
            ViewBase  vb       = OAUser.GetSupPost(strPostName);

            if (vb != null && vb.Count > 0)
            {
                foreach (Position post in vb.Ens)
                {
                    arrNames.Add(post.Name);
                }
            }
            return(arrNames);
        }
Пример #6
0
        /// <summary>
        /// 根据部门的ID和角色的名称获取用户的信息
        /// </summary>
        /// <param name="strDeptID"> 部门ID</param>
        /// <param name="strRoleName">角色名称</param>
        /// <param name="iFloorCode">向下遍历的层级(0.自己 ;-1.所有)</param>
        /// <returns>ViewBase</returns>
        public static ViewBase GetUserByDeptIDRole(String strDeptID, String strRoleName, int iFloorCode)
        {
            ViewBase vb = null;

            if (String.IsNullOrEmpty(strDeptID) == false && String.IsNullOrEmpty(strRoleName) == false)
            {
                Role role = Role.GetRole(strRoleName);
                if (role != null)
                {
                    vb = OAUser.FilterUser(role.GetUserByDept(OADept.ConvertInt(strDeptID)));
                }
            }
            return(vb);
        }
Пример #7
0
        /// <summary>
        /// 根据部门的ID和职位名称取人支持多个职位以逗号分隔
        /// </summary>
        /// <param name="strDeptID">部门ID</param>
        /// <param name="strPostName">职位名称</param>
        /// <param name="iFloorCode">层级</param>
        /// <returns >ViewBase</returns>
        public static ViewBase GetUserByPost(string strDeptID, string strPostName, int iFloorCode)
        {
            ViewBase vb     = null;
            int      deptID = OADept.ConvertInt(strDeptID);

            if (deptID != int.MinValue && string.IsNullOrEmpty(strPostName) == false)
            {
                Department dept = Department.GetDepartment(deptID);
                if (dept != null)
                {
                    vb = OAUser.FilterUser(dept.GetUserByPostNames(strPostName, iFloorCode));
                }
            }
            return(vb);
        }
Пример #8
0
        /// <summary>
        /// 根据部门ID获取部门人员信息
        /// </summary>
        /// <param name="strDeptID">部门ID</param>
        /// <param name="iFloorCode">向下遍历的层级(0.自己 ;-1.所有)</param>
        /// <returns>ViewBase</returns>
        public static ViewBase GetUserByDeptID(String strDeptID, int iFloorCode)
        {
            ViewBase vb    = null;
            int      index = OADept.ConvertInt(strDeptID);

            if (index != int.MinValue)
            {
                Department dept = OADept.GetDeptByDeptID(strDeptID);
                if (dept != null)
                {
                    vb = OAUser.FilterUser(dept.GetChildDeptUsers(iFloorCode));
                }
                vb.Sort = "e.SortNum,a.Userid";
            }
            return(vb);
        }
Пример #9
0
        /// <summary>
        ///  根据部门ID获取部门负责人(支持多个id的传入以逗号分隔)
        /// </summary>
        /// <param name="strDeptIDS">部门ID</param>
        /// <param name="iFloorCode">层级(0.自己;-1.所有)</param>
        /// <returns> 泛型ViewBase</returns>
        private static List <ViewBase> GetDeptManagers(String strDeptIDS, int iFloorCode)
        {
            List <ViewBase> listVB = new List <ViewBase>();

            if (String.IsNullOrEmpty(strDeptIDS) == false)
            {
                strDeptIDS = strDeptIDS.Replace(';', ',');
                String[] strIDS = strDeptIDS.Split(',');
                if (strIDS.Length > 0)
                {
                    foreach (String IDS in strIDS)
                    {
                        listVB.Add(OAUser.GetDeptManager(IDS, iFloorCode));
                    }
                }
            }
            return(listVB);
        }
Пример #10
0
        /// <summary>
        /// 返回用户账号和姓名字符串数组(数组0:用户域账号包括域名以“;”分隔  数组1:用户姓名以“;”分隔)
        /// </summary>
        /// <param name="vb"></param>
        /// <returns></returns>
        private static string[] GetUserArray(ViewBase vb)
        {
            string[] strUser  = new string[2];
            string   strIDS   = string.Empty;
            string   strNames = string.Empty;

            if (vb != null)
            {
                foreach (User user in vb.Ens)
                {
                    strIDS   += user.DomainUserID + ";";
                    strNames += user.Name + ";";
                }
            }
            strUser[0] = OAUser.FilterRepeat(strIDS);
            strUser[1] = OAUser.FilterRepeat(strNames);
            return(strUser);
        }
Пример #11
0
 /// <summary>
 /// 根据部门ID取出部门负责人、部门领导和大于某职位的人(向下遍历)
 /// </summary>
 /// <param name="strDeptID">部门ID</param>
 /// <param name="strPostName">职位名称</param>
 /// <param name="bDeptManger">是否绑定部门负责人</param>
 /// <param name="bDeptLeader">是否绑定部门领导</param>
 /// <param name="iFloorCode">层级(0自己,>0 子部门层数,-1所有)</param>
 /// <returns>DataTable</returns>
 private static ViewBase GetUserByDeptPost(string strDeptID, string strPostName, bool bDeptManger, bool bDeptLeader, int iFloorCode)
 {
     Common.LeaderType enmuType = Common.LeaderType.User;
     if (bDeptLeader && bDeptManger)
     {
         enmuType = Common.LeaderType.LeaderAndManager;
     }
     if (bDeptManger == false && bDeptLeader)
     {
         enmuType = Common.LeaderType.Leader;
     }
     if (bDeptManger && bDeptLeader == false)
     {
         enmuType = Common.LeaderType.Manager;
     }
     if (bDeptLeader == false && bDeptManger == false)
     {
         enmuType = Common.LeaderType.User;
     }
     return(OAUser.GetUserByDeptPost(strDeptID, strPostName, enmuType, iFloorCode));
 }
Пример #12
0
 /// <summary>
 ///  根据部门的ID和职位名称取人支持多个职位以逗号分隔
 /// </summary>
 /// <param name="strDeptID">部门名称</param>
 /// <param name="strPostName">职位名称</param>
 /// <param name="iFloorCode">层级</param>
 /// <returns>string二维数组(0:用户账号包括域名 1:用户姓名)</returns>
 public static string[] GetUserByDeptPostArray(string strDeptID, string strPostName, int iFloorCode)
 {
     return(OAUser.GetUserArray(OAUser.GetUserByPost(strDeptID, strPostName, iFloorCode)));
 }
Пример #13
0
 /// <summary>
 /// 根据角色的名称获取用户信息绑定到DropDownList
 /// </summary>
 /// <param name="ddl">下拉菜单ID</param>
 /// <param name="strRoleName">角色名称</param>
 public static void GetUserByRole(DropDownList ddl, String strRoleName)
 {
     OAUser.BindDropDownList(ddl, OAUser.GetUserByRole(strRoleName));
 }
Пример #14
0
 /// <summary>
 /// 根据部门ID获取部门负责人绑定到DropdownList
 /// </summary>
 /// <param name="ddl">下拉菜单ID</param>
 /// <param name="strDeptID">部门ID</param>
 /// <param name="iFloorCode">层级(0.自己;-1.所有)</param>
 public static void GetDeptManagerByDeptID(DropDownList ddl, string strDeptID, int iFloorCode)
 {
     OAUser.BindDropDownList(ddl, GetDeptManager(strDeptID, iFloorCode));
 }
Пример #15
0
 /// <summary>
 /// 根据部门ID绑定部门负责人、部门领导和大于某职位的人(可以传空值)
 /// </summary>
 /// <param name="ddl">下拉菜单ID</param>
 /// <param name="strDeptID">部门ID</param>
 /// <param name="strPostName">职位名称</param>
 /// <param name="bDeptManger">是否绑定部门负责人</param>
 /// <param name="bDeptLeader">是否绑定部门领导</param>
 /// <param name="iFloorCode">层级(0自己,>0 子部门层数,-1所有)</param>
 public static void GetUserByDeptPost(DropDownList ddl, string strDeptID, string strPostName, bool bDeptManger, bool bDeptLeader, int iFloorCode)
 {
     OAUser.BindDropDownList(ddl, OAUser.GetUserByDeptPost(strDeptID, strPostName, bDeptManger, bDeptLeader, iFloorCode));
 }
Пример #16
0
 /// <summary>
 /// 根据部门ID绑定部门负责人,部门领导和大于某职位的人
 /// </summary>
 /// <param name="strDeptID">部门ID</param>
 /// <param name="strPostName">职位名称</param>
 /// <param name="bDeptManger">是否绑定部门负责人</param>
 /// <param name="bDeptLeader">是否绑定部门领导</param>
 /// <returns>返回以分号分隔的二维字符串数组</returns>
 public static string[] GetUserByDeptPostArray(string strDeptID, string strPostName, bool bDeptManger, bool bDeptLeader)
 {
     return(OAUser.GetUserArray(OAUser.GetUserByDeptPost(strDeptID, strPostName, bDeptManger, bDeptLeader, 0)));
 }
Пример #17
0
 /// <summary>
 ///  根据部门ID获取部门负责人的账号和姓名(支持多个id的传入以逗号分隔)(0:领导账号集合的字符串,1:姓名的字符串)
 /// </summary>
 /// <param name="strDeptIDS">部门ID</param>
 /// <param name="iFloorCode">层级(0.自己;-1.所有)</param>
 /// <returns>字符串数组</returns>
 public static String[] GetDeptManagerArrays(String strDeptIDS, int iFloorCode)
 {
     return(OAUser.GetUserArray(OAUser.GetDeptManagers(strDeptIDS, iFloorCode)));
 }
Пример #18
0
 /// <summary>
 /// 根据部门ID获取部门领导账号和姓名的数组(0:领导账号集合的字符串,1:姓名的字符串)
 /// </summary>
 /// <param name="strDeptID">部门ID</param>
 /// <param name="iFloorCode">层级(0.自己;-1.所有)</param>
 /// <returns>字符串数组</returns>
 public static String[] GetDeptLeaderArray(String strDeptID, int iFloorCode)
 {
     return(OAUser.GetUserArray(OAUser.GetDeptLeader(strDeptID, iFloorCode)));
 }
Пример #19
0
 /// <summary>
 /// 根据部门的ID和职位名称取人支持多个职位以逗号分隔
 /// </summary>
 /// <param name="ddl">下拉菜单ID</param>
 /// <param name="strDeptID">部门ID</param>
 /// <param name="strPostName">职位名称</param>
 /// <param name="iFloorCode">层级</param>
 public static void GetUserByPost(DropDownList ddl, string strDeptID, string strPostName, int iFloorCode)
 {
     OAUser.BindDropDownList(ddl, GetUserByPost(strDeptID, strPostName, iFloorCode));
 }
Пример #20
0
 /// <summary>
 /// 根据角色取人返回一个二维数组并转化为小写(数组0:用户域账号包括域名以“;”分隔  数组1:用户姓名以“;”分隔)
 /// </summary>
 /// <param name="strRoleName">角色名称</param>
 /// <returns>字符串数组</returns>
 public static String[] GetUserByRoleName(String strRoleName)
 {
     return(OAUser.GetUserArray(OAUser.GetUserByRole(strRoleName)));
 }
Пример #21
0
        /// <summary>
        /// 根据用户账号得到用户的姓名
        /// </summary>
        /// <param name="strUserID">用户账号</param>
        /// <returns>String</returns>
        public static String GetUserName(String strUserID)
        {
            User user = OAUser.GetUser(strUserID);

            return(user != null ? user.Name : String.Empty);
        }
Пример #22
0
 /// <summary>
 /// 根据部门ID获取部门领导
 /// </summary>
 /// <param name="ddl">下拉菜单ID</param>
 /// <param name="strDeptID">部门ID</param>
 /// <param name="iFloorCode">层级(0.自己;-1.所有)</param>
 public static void GetDeptLeader(DropDownList ddl, String strDeptID, int iFloorCode)
 {
     OAUser.BindDropDownList(ddl, OAUser.GetDeptLeader(strDeptID, iFloorCode));
 }
Пример #23
0
        /// <summary>
        /// 根据用户的账号(不包含域名)和职位名获取可交办和传阅的部门的ID以","分隔
        /// </summary>
        /// <param name="strUserID">用户账号</param>
        /// <param name="strPostName">职位名称</param>
        /// <returns></returns>
        private static string GetDeptIDByUser(string strUserID, string strPostName)
        {
            string    strIDS           = string.Empty;
            int       iCount           = 0;
            ViewBase  vbDept           = null;
            string    strDeptIDS       = string.Empty;
            ArrayList arrDepts         = new ArrayList();
            ArrayList strPostNames     = OAUser.GetSupPostNameAarray(strPostName);
            ViewBase  vbCompanyLeaders = OAUser.GetUserByRole(OUConstString.RoleName.COMPANY_LEADER);

            if (vbCompanyLeaders != null && vbCompanyLeaders.Count > 0)
            {
                vbCompanyLeaders.Condition = "a.userid=" + "'" + strUserID + "'";
            }
            if (vbCompanyLeaders != null && vbCompanyLeaders.DtTable != null)
            {
                iCount = vbCompanyLeaders.DtTable.Rows.Count;
            }
            if (iCount == 0)
            {
                User user = OAUser.GetUser(strUserID);
                if (user != null)
                {
                    ViewBase vbDeptPost = user.DeptPosts;
                    if (vbDeptPost != null)
                    {
                        foreach (DeptPost deptpost in vbDeptPost.Ens)
                        {
                            if (deptpost.Dept != null && deptpost.Post != null)
                            {
                                if (strPostNames.Contains(deptpost.Post.Name))
                                {
                                    arrDepts.Add(deptpost.Dept.ID);
                                }
                            }
                        }
                    }
                    ViewBase vbDeptManger = user.ManagerDepts;
                    if (vbDeptManger != null)
                    {
                        foreach (Department dept in vbDeptManger.Ens)
                        {
                            arrDepts.Add(dept.ID);
                        }
                    }
                    ViewBase vbDeptLeader = user.LeaderDepts;
                    if (vbDeptLeader != null)
                    {
                        foreach (Department dept in vbDeptLeader.Ens)
                        {
                            arrDepts.Add(dept.ID);
                        }
                    }
                    strDeptIDS = OADept.GetStringFormatForArrayList(arrDepts, ",");
                    vbDept     = OADept.GetChildDeptsConSelf(strDeptIDS, -1);
                    if (vbDept != null)
                    {
                        strIDS = vbDept.GetFieldVals("ID", ",");
                    }
                    else
                    {
                        strIDS = "-1";
                    }
                }
            }
            return(strIDS);
        }
Пример #24
0
 /// <summary>
 /// 根据角色的名称获取用户信息(支持格式:“处级领导,科级领导”)
 /// </summary>
 /// <param name="strRoleName">角色名称</param>
 /// <returns>ViewBase</returns>
 public static ViewBase GetUserByRole(String strRoleName)
 {
     return(OAUser.FilterUser(User.GetUserByRoles(strRoleName)));
 }