/// <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); }
/// <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); }