www.pudn.com > UDS1.1_51aspx.rar > Staff.cs


using System; 
using System.Data; 
using System.Data.SqlClient; 
using System.Collections; 
using System.IO; 
using System.Configuration ; 
 
namespace UDS.Components 
{ 
	///  
	/// Staff 管理类 
	///  
	public class Staff 
	{ 
 
		#region 登陆验证 
		///  
		/// 登陆验证 
		///  
		/// 用户名 
		/// 密码 
		/// 返回用户ID 
		public string Login(string userName, string password)  
		{ 
			string UserID,IsNeedKey; 
			 
			Database data = new Database(); 
			SqlParameter[] prams = { 
									   data.MakeInParam("@username",    SqlDbType.VarChar, 25, userName), 
									   data.MakeInParam("@password",    SqlDbType.VarChar, 25, password), 
									   data.MakeOutParam("@UserID", SqlDbType.VarChar, 25), 
									   data.MakeOutParam("@IsNeedKey", SqlDbType.Bit, 1)	 
								   }; 
			data.RunProc("sp_StaffLogin", prams);    
			UserID = (string) prams[2].Value;    
			IsNeedKey = prams[3].Value.ToString(); 
			if (UserID == string.Empty) 
				return null; 
			else 
				return UserID+"-"+IsNeedKey; 
		} 
		#endregion 
 
		#region 用户退出 
		///  
		/// 用户退出 
		///  
		/// 用户名 
		public void Logout(string userName)  
		{ 
					 
			Database data = new Database(); 
			SqlParameter[] prams = { 
									   data.MakeInParam("@username",    SqlDbType.VarChar, 25, userName) 
								   }; 
			data.RunProc("sp_StaffLogout", prams);    
		} 
		#endregion 
 
		#region 获取用户基本信息 
		///  
		/// 获取用户基本信息 
		///  
		/// 用户ID 
		/// 返回DataReader 
		public SqlDataReader GetStaffInfo(long StaffID)  
		{ 
			SqlDataReader dataReader = null; 
			Database data = new Database(); 
			SqlParameter[] prams = { 
									   data.MakeInParam("@StaffID",    SqlDbType.Int, 4, StaffID), 
									    
								   }; 
			try  
			{ 
				// run the stored procedure 
				data.RunProc("sp_GetStaffInfo",prams,out dataReader); 
				return dataReader; 
			} 
			catch (Exception ex)  
			{ 
				Error.Log(ex.ToString()); 
				throw new Exception("人员信息读取出错!",ex); 
			} 
			 
		} 
		#endregion 
 
		#region 获取用户基本信息 
		///  
		/// 获取用户基本信息 
		///  
		/// 用户ID 
		/// 返回DataReader 
		public SqlDataReader GetStaffInfo(string StaffIDs)  
		{ 
			SqlDataReader dataReader = null; 
			Database data = new Database(); 
			SqlParameter[] prams = { 
									   data.MakeInParam("@StaffIDs",    SqlDbType.VarChar, 10000, StaffIDs), 
									    
			}; 
			try  
			{ 
				// run the stored procedure 
				data.RunProc("sp_GetStaffInfoEx",prams,out dataReader); 
				return dataReader; 
			} 
			catch (Exception ex)  
			{ 
				Error.Log(ex.ToString()); 
				throw new Exception("人员信息读取出错!",ex); 
			} 
			 
		} 
		#endregion 
		#region 根据用户代号获取用户真实姓名 
		///  
		/// 获取用户基本信息 
		///  
		/// 用户代号 
		/// 返回真实姓名 
		public static string GetRealNameByUsername(string Username)  
		{ 
			SqlDataReader dataReader = null; 
			Database data = new Database(); 
			SqlParameter[] prams = { 
									   data.MakeInParam("@Username",    SqlDbType.NVarChar, 30, Username), 
									    
			}; 
			try  
			{ 
				// run the stored procedure 
				data.RunProc("sp_GetRealNameByUsername",prams,out dataReader); 
				if(dataReader.Read()) 
				{ 
					 
					return dataReader[0].ToString(); 
					 
				} 
				else 
				{ 
					 
					return ""; 
					 
				} 
 
			} 
			catch (Exception ex)  
			{ 
				Error.Log(ex.ToString()); 
				throw new Exception("人员信息读取出错!",ex); 
			} 
			finally 
			{ 
				dataReader.Close(); 
				data.Dispose(); 
 
			} 
			 
		} 
		#endregion 
 
		#region 根据用户代号字符串返回用户真实姓名字符串 
		///  
		/// 根据用户代号字符串返回用户真实姓名字符串 
		///  
		/// 用户代号字符串 
		/// 返回的个数 
		/// 返回真实姓名字符串 
		public static string GetRealNameStrByUsernameStr(string Username,int number)  
		{ 
			string RealNameStr = ""; 
			if(Username=="") 
				return ""; 
			if(Username.EndsWith(",")) 
				Username = Username.Substring(0,Username.Length-1); 
			string[] UnameAr = System.Text.RegularExpressions.Regex.Split(Username ,","); 
			if(number==0) 
			{ 
				number=UnameAr.Length; 
			} 
			if(number>UnameAr.Length) 
				number = UnameAr.Length; 
			try  
			{ 
				for(int k=0;k 
		/// 获取当前部门中的用户信息 
		///  
		/// 用户登陆名 
		/// 返回DataReader 
		public SqlDataReader GetStaffFromPosition(string Username)  
		{ 
			SqlDataReader dataReader = null; 
			Database data = new Database(); 
			SqlParameter[] prams = { 
									   data.MakeInParam("@StaffName",    SqlDbType.NVarChar , 30, Username), 
									    
			}; 
			try  
			{ 
				// run the stored procedure 
				data.RunProc("sp_GetStaffFromPosition",prams,out dataReader); 
				return dataReader; 
			} 
			catch (Exception ex)  
			{ 
				Error.Log(ex.ToString()); 
				throw new Exception("读取信息出错!",ex); 
			} 
			 
		} 
 
		///  
		/// 得到该成员职位中的成员信息 
		///  
		/// 用户名 
		/// 最低位1表示包含同级成员,最低第二位表示包含下级 
		/// 下级的深度,最低位1表示直属下级成员,最低第二位1表示直属下级的下级成员 
		///  
		public SqlDataReader GetStaffFromPosition(string Username,int positionwidth,int postiondepth)  
		{ 
			SqlDataReader dataReader = null; 
			Database data = new Database(); 
			SqlParameter[] prams = { 
									    data.MakeInParam("@StaffName",    SqlDbType.NVarChar , 30, Username), 
										data.MakeInParam("@Inherit",    SqlDbType.Int , 4, postiondepth), 
										data.MakeInParam("@Upsides",    SqlDbType.Int , 4, positionwidth), 
									    
			}; 
			try  
			{ 
				// run the stored procedure 
				data.RunProc("sp_GetStaffFromPosition",prams,out dataReader); 
				return dataReader; 
			} 
			catch (Exception ex)  
			{ 
				Error.Log(ex.ToString()); 
				throw new Exception("读取信息出错!",ex); 
			} 
			 
		} 
		#endregion 
 
		#region 检查用户是否在职位中有相关权力 
		///  
		/// 检查用户是否在相关权限操作的部门中 
		///  
		/// 树形图的节点值 
		/// 用户名称 
		/// 权限造作id 
		/// 继承父节点的权限 
		/// bool值表示是否有权限 
		public bool GetRightInPosition(int classid,string username,int actid,bool inherit) 
		{ 
			int intInherit; 
			Database data = new Database(); 
			SqlDataReader dr; 
			//将参数inherit转换成int以便于存储过程调用 
			if (inherit) 
				intInherit = 1; 
			else 
				intInherit = 0; 
 
	 
			SqlParameter[] prams = { 
									   data.MakeInParam("@ClassID",SqlDbType.Int,4,classid), 
									   data.MakeInParam("@UserName",SqlDbType.VarChar,255,username), 
									   data.MakeInParam("@ACT_ID",SqlDbType.Int,4,actid), 
									   data.MakeInParam("@Inherit",SqlDbType.Int,4,intInherit) 
								   }; 
            data.RunProc("sp_GetRightInPositionToHandleClass",prams,out dr); 
			return  dr.Read(); 
		} 
		#endregion 
		 
		#region 检查用户个人是否在拥有相关权力 
		///  
		/// 检查用户个人是否在拥有相关权力 
		///  
		/// 树形图的节点值 
		/// 用户名称 
		/// 权限造作 
		/// 继承父节点的权限 
		/// bool值表示是否有权限 
		public bool GetRightInPerson(int classid,string username,int actid,bool inherit) 
		{ 
			int intInherit; 
			Database data = new Database(); 
			SqlDataReader dr; 
			//将参数inherit转换成int以便于存储过程调用 
			if (inherit) 
				intInherit = 1; 
			else 
				intInherit = 0; 
 
	 
			SqlParameter[] prams = { 
									   data.MakeInParam("@ClassID",SqlDbType.Int,4,classid), 
									   data.MakeInParam("@UserName",SqlDbType.VarChar,255,username), 
									   data.MakeInParam("@ACT_ID",SqlDbType.Int,4,actid), 
									   data.MakeInParam("@Inherit",SqlDbType.Int,4,intInherit) 
								   }; 
			data.RunProc("sp_GetRightInPersonToHandleClass",prams,out dr); 
			return  dr.Read(); 
		} 
		#endregion 
		 
		#region 检查用户是否在角色中拥有相关权力 
		///  
		/// 检查用户是否在拥有相关权限操作的角色中 
		///  
		/// 树形图的节点值 
		/// 用户名称 
		/// 权限造作 
		/// 继承父节点的权限 
		/// bool值表示是否有权限 
		public bool GetRightInRole(int classid,string username,int actid,bool inherit) 
		{ 
			int intInherit; 
			Database data = new Database(); 
			SqlDataReader dr; 
			//将参数inherit转换成int以便于存储过程调用 
			if (inherit) 
				intInherit = 1; 
			else 
				intInherit = 0; 
 
	 
			SqlParameter[] prams = { 
									   data.MakeInParam("@ClassID",SqlDbType.Int,4,classid), 
									   data.MakeInParam("@UserName",SqlDbType.VarChar,255,username), 
									   data.MakeInParam("@ACT_ID",SqlDbType.Int,4,actid), 
									   data.MakeInParam("@Inherit",SqlDbType.Int,4,intInherit) 
								   }; 
			data.RunProc("sp_GetRightInRoleToHandleClass",prams,out dr); 
			return  dr.Read(); 
		} 
		#endregion 
 
		#region 检查用户是否在组中拥有相关力 
		///  
		/// 检查用户是否在组中拥有相关力 
		///  
		/// 树形图的节点值 
		/// 用户名称 
		/// 权限造作 
		/// 继承父节点的权限 
		/// bool值表示是否有权限 
		public bool GetRightInTeam(int classid,string username,int actid,bool inherit) 
		{ 
			int intInherit; 
			Database data = new Database(); 
			SqlDataReader dr; 
			//将参数inherit转换成int以便于存储过程调用 
			if (inherit) 
				intInherit = 1; 
			else 
				intInherit = 0; 
 
	 
			SqlParameter[] prams = { 
									   data.MakeInParam("@ClassID",SqlDbType.Int,4,classid), 
									   data.MakeInParam("@UserName",SqlDbType.VarChar,255,username), 
									   data.MakeInParam("@ACT_ID",SqlDbType.Int,4,actid), 
									   data.MakeInParam("@Inherit",SqlDbType.Int,4,intInherit) 
								   }; 
			data.RunProc("sp_GetRightInTeamToHandleClass",prams,out dr); 
			return  dr.Read(); 
		} 
		#endregion 
 
		#region 检查用户是否有相应操作的权力 
		///  
		/// 检查用户是否有相应操作的权限 
		///  
		/// 树形图的节点值 
		/// 用户名称 
		/// 权限造作 
		/// 继承父节点的权限 
		/// bool值表示是否有权限 
		public bool CheckRight(int classid,string username,int actid,bool inherit) 
		{ 
			if (GetRightInPosition(classid, username, actid, inherit)) 
				return true; 
			else 
				if (GetRightInPerson(classid, username, actid, inherit)) 
				return true; 
			else 
				if (GetRightInRole(classid, username, actid, inherit)) 
				return true; 
			else 
				if (GetRightInTeam(classid, username, actid, inherit)) 
				return true; 
			else 
				return false; 
		} 
		#endregion 
 
		#region 使人员复职 
		///  
		/// 使人员复职 
		///  
		/// 人员id集合 
		/// 是否成功 
		public bool ReturnPosition(string staffids) 
		{ 
			UDS.Components.Database db = new UDS.Components.Database(); 
			SqlParameter[] prams = { 
									   db.MakeInParam("@StaffIDS",SqlDbType.VarChar,300,staffids) 
									}; 
			return((db.RunProc("sp_StaffRehab",prams)==0)?true:false);	 
		} 
		#endregion 
 
		#region 人员更新 
		///  
		/// 人员更新 
		///  
		/// 人员ID 
		/// 返回是否成功 
		public int UpdateInfo(long StaffID,string RealName,int Sex,string Birthday,string Password,string Email,string Phone,string Mobile,long PositionID,int Caste)  
		{ 
			UDS.Components.Database db = new UDS.Components.Database();						 
 
			SqlParameter[] prams = { 
										db.MakeInParam("@StaffID",SqlDbType.Int,4,StaffID), 
										db.MakeInParam("@RealName",SqlDbType.VarChar,50,RealName), 
										db.MakeInParam("@Sex",SqlDbType.Bit ,1,Sex),	 
										db.MakeInParam("@Birthday",SqlDbType.DateTime ,8,Birthday), 
										db.MakeInParam("@Password",SqlDbType.VarChar,255,Password), 
										db.MakeInParam("@Email",SqlDbType.VarChar,500,Email), 
										db.MakeInParam("@Phone",SqlDbType.VarChar,50,Phone),						 
										db.MakeInParam("@Mobile",SqlDbType.VarChar,50,Mobile),																					    
										db.MakeInParam("@PositionID",SqlDbType.Int,4,PositionID), 
										db.MakeInParam("@Caste",SqlDbType.Int,4,Caste) 
									 
									}; 
			return db.RunProc("sp_UpdateStaffInfo",prams);			 
		} 
 
		#endregion 
 
		#region 人员离职 
		///  
		/// 人员离职 
		///  
		/// 人员ID 
		/// 返回是否成功 
		public bool Dimission(string StaffIDS)  
		{ 
			UDS.Components.Database db = new UDS.Components.Database(); 
			if(StaffIDS.Length>0) 
			{ 
				SqlParameter[] prams = { 
										   db.MakeInParam("@StaffIDS",SqlDbType.VarChar,300,StaffIDS.ToString()) 
									   }; 
				return db.RunProc("sp_StaffDimission",prams)==0?true:false;				 
			}			 
			else 
				return false; 
		} 
 
		#endregion 
 
		#region 人员复职 
		///  
		/// 人员复职 
		///  
		/// 人员ID 
		/// 返回是否成功 
		public bool Rehab(string StaffIDS)  
		{ 
			UDS.Components.Database db = new UDS.Components.Database(); 
			if(StaffIDS.Length >0) 
			{ 
				SqlParameter[] prams = { 
										   db.MakeInParam("@StaffIDS",SqlDbType.VarChar,300,StaffIDS.ToString()) 
									   }; 
				return db.RunProc("sp_StaffRehab",prams)==0?true:false;				 
			}			 
			else 
				return false; 
		} 
 
		#endregion 
 
		#region 获取部门信息 
		///  
		/// 获取部门信息 
		///  
		/// 根部门ID 
		/// 返回DataReader 
		public SqlDataReader GetPositionList(int RootPositionID)  
		{ 
			RootPositionID=1; 
			SqlDataReader dataReader = null; 
			Database data = new Database(); 
			SqlParameter[] prams = { 
									   data.MakeInParam("@Position_id",    SqlDbType.Int , 5, RootPositionID), 
									    
			}; 
			try  
			{ 
				// run the stored procedure 
				data.RunProc("sp_GetAllChildPosition",prams,out dataReader); 
				return dataReader; 
			} 
			catch (Exception ex)  
			{ 
				Error.Log(ex.ToString()); 
				throw new Exception("读取信息出错!",ex); 
			} 
			 
		} 
 
		public SqlDataReader GetAllPosition() 
		{ 
			SqlDataReader dataReader = null; 
			Database data = new Database(); 
			try  
			{ 
				// run the stored procedure 
				data.RunProc("sp_GetAllPosition",out dataReader); 
				return dataReader; 
			} 
			catch (Exception ex)  
			{ 
				Error.Log(ex.ToString()); 
				throw new Exception("读取信息出错!",ex); 
			} 
		} 
		#endregion 
 
		#region 得到剩余的在岗人员 
		///  
		/// 得到剩余的在岗人员 
		///  
		/// 原来人员,分割 
		///  
		public SqlDataReader GetRemainStaff(string staffids) 
		{ 
			SqlDataReader dataReader = null; 
			Database data = new Database(); 
			SqlParameter[] prams = { 
									   data.MakeInParam("@staffids",SqlDbType.VarChar,300,staffids) 
			}; 
 
			try  
			{ 
				// run the stored procedure 
				data.RunProc("sp_GetRemainStaff", prams,out dataReader); 
				return(dataReader);			 
				 
			} 
			catch (Exception ex)  
			{ 
				Error.Log(ex.ToString()); 
				return null; 
			} 
			finally 
			{ 
				data = null; 
			} 
 
		} 
 
		#endregion 
 
		#region 得到所有在职人员 
		public SqlDataReader GetAllStaffs() 
		{ 
			SqlDataReader dataReader = null; 
			Database data = new Database(); 
			try  
			{ 
				// run the stored procedure 
				data.RunProc("sp_GetAllStaff",out dataReader); 
				return dataReader; 
			} 
			catch (Exception ex)  
			{ 
				Error.Log(ex.ToString()); 
				throw new Exception("人员信息读取出错!",ex); 
			} 
		} 
		#endregion 
 
		#region 得到所有人员 
		public SqlDataReader GetTotalStaffs() 
		{ 
			SqlDataReader dataReader = null; 
			Database data = new Database(); 
			try  
			{ 
				// run the stored procedure 
				data.RunProc("sp_GetTotalStaff",out dataReader); 
				return dataReader; 
			} 
			catch (Exception ex)  
			{ 
				Error.Log(ex.ToString()); 
				throw new Exception("人员信息读取出错!",ex); 
			} 
		} 
		#endregion 
 
		#region 根据用户真实姓名得到id 
		public SqlDataReader GetStaffIDByRealName(string realname) 
		{ 
			UDS.Components.Database db = new UDS.Components.Database(); 
			SqlDataReader dr = null; 
			SqlParameter[] prams = { 
									   db.MakeInParam("@realname",SqlDbType.VarChar,100,realname) 
								   }; 
			db.RunProc("sp_GetStaffIDByRealName",prams,out dr); 
			return(dr); 
		} 
		#endregion 
 
		#region 根据roleid得到staff 
		public SqlDataReader GetStaffsFromRole(int role) 
		{ 
			SqlDataReader dataReader = null; 
			Database data = new Database(); 
			try  
			{ 
				// run the stored procedure 
				SqlParameter[] prams = { 
										   data.MakeInParam("@RoleID",SqlDbType.Int,4,role) 
									   }; 
				data.RunProc("sp_GetStaffInRole",prams,out dataReader); 
				return dataReader; 
			} 
			catch (Exception ex)  
			{ 
				Error.Log(ex.ToString()); 
				throw new Exception("人员信息读取出错!",ex); 
			} 
		} 
		#endregion 
 
		#region 返回用户信息接口,包括用户名和用户中文名 
		///  
		/// 返回用户信息接口,包括用户ID和用户中文名 
		///  
 
		public ICollection  GetStaffInTeam(int teamID)  
		{ 
			// create data object and params 
			SqlDataReader dataReader = null; 
			Database data = new Database(); 
			DataTable datatable = new DataTable (); 
			SqlParameter[] prams = { 
										data.MakeInParam("@ClassID",      SqlDbType.Int, 8, teamID), 
			}; 
 
			try  
			{ 
				// run the stored procedure 
				data.RunProc("sp_GetMemberInClass", prams,out dataReader); 
				data = null; 
				datatable = UDS.Components.Tools.ConvertDataReaderToDataTable (dataReader); 
				return datatable.DefaultView ; 
			} 
			catch (Exception ex)  
			{ 
				Error.Log(ex.ToString()); 
				return null; 
			} 
		} 
 
		#endregion 
 
		#region 返回某部门用户信息接口,包括用户名和用户中文名 
		///  
		/// 返回用户信息接口,包括用户ID和用户中文名 
		///  
 
		public ICollection  GetStaffInDetp(int PositionID)  
		{ 
			// create data object and params 
			SqlDataReader dataReader = null; 
			Database data = new Database(); 
			DataTable datatable = new DataTable (); 
			SqlParameter[] prams = { 
									   data.MakeInParam("@Position_id",      SqlDbType.Int, 8, PositionID), 
			}; 
 
			try  
			{ 
				// run the stored procedure 
				data.RunProc("sp_GetStaffInPosition", prams,out dataReader); 
				data = null; 
				datatable = UDS.Components.Tools.ConvertDataReaderToDataTable (dataReader); 
				return datatable.DefaultView ; 
			} 
			catch (Exception ex)  
			{ 
				Error.Log(ex.ToString()); 
				return null; 
			} 
		} 
 
		#endregion 
 
		#region 返回某部门及下级部门用户信息接口,包括用户名和用户中文名 
		///  
		/// 返回用户信息接口,包括用户ID和用户中文名 
		///  
 
		public ICollection  GetStaffByPosition(int PositionID)  
		{ 
			// create data object and params 
			SqlDataReader dataReader = null; 
			Database data = new Database(); 
			DataTable datatable = new DataTable (); 
			SqlParameter[] prams = { 
									   data.MakeInParam("@PositionID",      SqlDbType.Int, 8, PositionID), 
			}; 
 
			try  
			{ 
				// run the stored procedure 
				data.RunProc("sp_GetStaffByPosition", prams,out dataReader); 
				data = null; 
				datatable = UDS.Components.Tools.ConvertDataReaderToDataTable (dataReader); 
				return datatable.DefaultView ; 
			} 
			catch (Exception ex)  
			{ 
				Error.Log(ex.ToString()); 
				return null; 
			} 
		} 
 
		#endregion 
 
		#region 人员查询 
		///  
		/// 人员查询 
		///  
		/// 用户名或者真实姓名 
		/// 职位id 
		/// 手机号码 
		/// email 
		/// 性别 
		///  
		public SqlDataReader Find(string staffname,int positionid,string mobile,string email,string gender,string searchbound) 
		{ 
			Database db = new Database(); 
			SqlDataReader dr; 
			try  
			{ 
				// run the stored procedure 
				SqlParameter[] prams = { 
										   db.MakeInParam("@Name",SqlDbType.VarChar,200,staffname), 
										   db.MakeInParam("@Mobile",SqlDbType.VarChar,100,mobile), 
										   db.MakeInParam("@Email",SqlDbType.VarChar,100,email), 
										   db.MakeInParam("@Gender",SqlDbType.VarChar,100,gender), 
										   db.MakeInParam("@PositionID",SqlDbType.Int,4,positionid), 
										   db.MakeInParam("@SearchBound",SqlDbType.VarChar,50,searchbound), 
									   }; 
				db.RunProc("UDS_StaffSearch",prams,out dr); 
				return dr; 
			} 
			catch (Exception ex)  
			{ 
				Error.Log(ex.ToString()); 
				throw new Exception("人员查询出错!",ex); 
			} 
 
		} 
		#endregion 
 
		#region 设置用户是否需要硬件KEY验证 
		///  
		/// 设置用户是否需要硬件KEY验证 
		///  
		/// 人员ID 
		/// 是否需要登陆 
		/// 返回是否成功 
		public bool SetIsNeedKey(string  StaffIDs,bool IsNeedKey)  
		{ 
			UDS.Components.Database db = new UDS.Components.Database(); 
			if(StaffIDs.Length >0) 
			{ 
				SqlParameter[] prams = { 
										   db.MakeInParam("@StaffIDs",SqlDbType.VarChar,1000,StaffIDs), 
										   db.MakeInParam("@IsNeedKey",SqlDbType.Bit ,1,IsNeedKey) 
									   }; 
				return db.RunProc("sp_Staff_SetIsNeedKey",prams)==0?true:false;				 
			} 
			else 
				return false; 
 
		} 
 
		#endregion		 
 
   } 
}