コード例 #1
0
        /// <summary>
        /// 根据职位名称获得当前部门大于该职位的人
        /// </summary>
        /// <param name="sPostName">职位名称</param>
        /// <param name="iFloorCode">部门层次: 0自己,>0 子部门层数,-1所有</param>
        /// <returns></returns>
        public ViewBase GetUserByPosition(string sPostName, int iFloorCode)
        {
            Position     post         = Position.GetPosition(sPostName);
            ViewPostUser vwPostUser   = new ViewPostUser();
            string       strCondition = post == null ? "1<>1" : " c.SortNum <=" + post.SortNum.ToString();
            string       strSubDptIDs = string.Empty;

            if (iFloorCode != 0)
            {
                strSubDptIDs  = this.GetChildDeptID(base.ID, iFloorCode);
                strSubDptIDs  = strSubDptIDs.Length > 0 ? strSubDptIDs + "," + base.ID.ToString() : base.ID.ToString();
                strCondition += strSubDptIDs.Length > 0 ? " AND b.FK_DeptID IN (" + strSubDptIDs + ")" : "1<>1";
            }
            else
            {
                strCondition += " and b.FK_DeptID=" + base.ID.ToString();
            }

            vwPostUser.BaseCondition = strCondition;
            return(vwPostUser);
        }
コード例 #2
0
        /// <summary>
        /// 返回某部门(大于,小于,等于..)某职位的人员
        /// </summary>
        /// <param name="strPostName">职位名称(多个以“,”分隔)</param>
        /// <param name="enumOp">操作符枚举</param>
        /// <param name="strDeptId">部门ID(多个以“,”分隔)</param>
        /// <param name="iFloorCode">iFCode:部门层 0自己,>0 子部门层数,-1所有</param>
        /// <returns></returns>
        public static ViewBase GetUserByPosition(string strPostName, Common.Operators enumOp, string strDeptId, int iFloorCode)
        {
            ViewUser vUser = new ViewUser(false);

            vUser.Field = @" Distinct a.ID,a.NO,a.Name,a.Domain,a.UserID,a.PWD,a.OfficePhone,a.MobilePhone,a.Email,a.SortNum,
                           a.Remark,a.EditDate,D_Class,a.ID AS UID,a.UserID AS ADCode,
                           CASE a.IsCancel WHEN '1' THEN '启用' ELSE '注销'END AS HideStatue";
            StringBuilder strWhere = new StringBuilder(100);

            strWhere.Append("A.RecordStatus = 1 and E.RecordStatus = 1 and B.RecordStatus = 1 and A.IsCancel = 1");

            if (!string.IsNullOrEmpty(strPostName))
            {
                string[] strPostNames = strPostName.Split(',');
                for (int i = 0; i < strPostNames.Length; i++)
                {
                    Position enPost = Position.GetPosition(strPostNames[i]);
                    if (enPost == null)
                    {
                        return(null);
                    }
                    if (enumOp == Common.Operators.ne)
                    {
                        strWhere.Append(" and '" + enPost.SortNum + "' " + Common.GetOperator(enumOp) + " E.SortNum ");
                    }
                    else
                    {
                        if (i == 0)
                        {
                            strWhere.Append(" and ( '" + enPost.SortNum + "' " + Common.GetOperator(enumOp) + " E.SortNum ");
                        }
                        else
                        {
                            strWhere.Append(" or '" + enPost.SortNum + "' " + Common.GetOperator(enumOp) + " E.SortNum ");
                        }
                    }
                }

                if (enumOp != Common.Operators.ne)
                {
                    strWhere.Append(" ) ");
                }
            }

            if (!string.IsNullOrEmpty(strDeptId))
            {
                strWhere.Append(" and B.FK_DeptID in ( ");
                string[]   strDeptIds = strDeptId.Split(',');
                Department enDept     = new Department();
                for (int i = 0; i < strDeptIds.Length; i++)
                {
                    strWhere.Append(strDeptIds[i] + "," + enDept.GetChildDeptID(int.Parse(strDeptIds[i]), iFloorCode));
                    if (!strWhere.ToString().EndsWith(","))
                    {
                        strWhere.Append(",");
                    }
                }
                strWhere.Remove(strWhere.Length - 1, 1);
                strWhere.Append(" ) ");
            }
            vUser.BaseCondition = strWhere.ToString();
            return(vUser);
        }