`
Sunflower-13
  • 浏览: 73984 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
社区版块
存档分类
最新评论

OA员工管理模块

    博客分类:
  • J2EE
阅读更多
OA员工管理模块

要求:
1.查看员工信息、部门、职务、权限。
2.对员工信息进行增删改操作。
3.查看是否是优秀员工。
4.修改当前登录用户信息。
5.根据部门名搜索该部门内员工信息。
6.使用分页
以上功能全部实行,不过还有许多需要改进的地方
如:1、还需使用正则表达式判断用户输入的电话、邮箱等信息;
    2、需使用jQuery进行刷新验证用户名是否已使用
    3、需使用ajax实现局部刷新、实现二级联动效果
    4、删除时应该加判断和友好提示
    5、根据部门查询员工时应该使用索引列
    6、没有实现意外情况的处理方式
以上需要改进的地方还需要继续学习,如果大家有更好的方法(和学习方法)及见解希望多多分享。。。

实现以上功能其实都是很简单的,不过思维逻辑没理清,没注意细节,就需要花很多时间查错改错,对于初学者的我来说把以上功能模块联合起来做还是有难度,因为我遇到了很多很多问题,过程很崩溃,看似简单可是却花了很多时间实现,这是我第一次因学习上的不会而难过得想哭,正是因为这样,收获也是要比平时多吧,这让我深刻体会到做事一定要先理清条理,再去动手,做什么事都要有原因,其次是一定要非常细心非常细心。还有就是不要气馁,以积极的心态你就又会发现错误所在,解决问题也更有效率。

以下是代码实现过程(有些长有些啰嗦):
dao层代码
package com.oa.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.oa.pojo.Dept;
import com.oa.pojo.Emp;
import com.oa.pojo.Post;
import com.oa.pojo.Purview;
import com.oa.util.DBUtil;
import com.oa.util.Page;

/**
 * 员工管理模块数据访问层
 * @author Administrator
 *
 */
public class EmpDao {
	//建立连接
	private Connection conn = null;
	private PreparedStatement ps = null;
	private ResultSet rs = null;

	/**
	 * a.通过部门名称查询员工信息
	 * @param deptId
	 * @return
	 * @throws SQLException 
	 */
	public List<Emp> getEmpInfoByDname(String dname) throws SQLException {
		List<Emp> emps = new ArrayList<Emp>();
			conn = DBUtil.getConnection();
		String sql = "select e.emp_id, e.emp_name,d.dept_name,p.post_name,e.emp_isexcellent,e.emp_username,"
				+ "e.emp_sex,e.emp_phone,e.emp_email,e.emp_address,pu.purview_name from emp_table e,dept_table d,"
				+ "post_table p ,purview_table pu where d.dept_name = ? and e.emp_isdelete=0"
				+ " and e.emp_deptid=d.dept_id and e.emp_postid = p.post_id and e.emp_purviewid=pu.purview_id";
		try {
			ps = conn.prepareStatement(sql);
			ps.setString(1, dname);
			rs = ps.executeQuery();
			while(rs.next()){
				Emp emp = new Emp();
				Dept dept = new Dept();
				Post post = new Post();
				Purview purview = new Purview();
				emp.setDept(dept);
				emp.setPost(post);
				emp.setPurview(purview);
			        emp.setId(rs.getInt("emp_id"));
				emp.setName(rs.getString("emp_name"));
				emp.getDept().setName(rs.getString("dept_name"));
				emp.getPost().setName(rs.getString("post_name"));
				emp.setIsExcellent(rs.getInt("emp_isexcellent"));
				emp.setUsername(rs.getString("emp_username"));
				emp.setSex(rs.getString("emp_sex"));
				emp.setPhone(rs.getString("emp_phone"));
				emp.setEmail(rs.getString("emp_email"));
				emp.setAddress(rs.getString("emp_address"));
				emp.getPurview().setName(rs.getString("purview_name"));
				emps.add(emp);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
				DBUtil.close(rs, ps, conn);
		}
		return emps;
	}

	/**
	 * b.查询优秀员工
	 * @param isExcellent
	 * @throws SQLException 
	 */
	public  List<Emp> getExcellent() throws SQLException {
		List<Emp> emps = new  ArrayList<Emp>();
			conn = DBUtil.getConnection();
		String sql =  "select e.emp_id, e.emp_name,d.dept_name,p.post_name,e.emp_isexcellent,e.emp_username,"
				+ "e.emp_sex,e.emp_phone,e.emp_email,e.emp_address,pu.purview_name from emp_table e,dept_table d,"
				+ "post_table p ,purview_table pu where e.emp_isexcellent = 1 and e.emp_isdelete=0 "
				+ " and e.emp_deptid=d.dept_id and e.emp_postid = p.post_id and e.emp_purviewid=pu.purview_id";
		try {
			ps = conn.prepareStatement(sql);
			rs = ps.executeQuery();
			while(rs.next()){
				Emp emp = new Emp();
				Dept dept = new Dept();
				Post post = new Post();
				Purview purview = new Purview();
				emp.setDept(dept);
				emp.setPost(post);
				emp.setId(rs.getInt("emp_id"));
				emp.setPurview(purview);
				emp.setName(rs.getString("emp_name"));
				emp.getDept().setName(rs.getString("dept_name"));
				emp.getPost().setName(rs.getString("post_name"));
				emp.setIsExcellent(rs.getInt("emp_isexcellent"));
				emp.setUsername(rs.getString("emp_username"));
				emp.setSex(rs.getString("emp_sex"));
				emp.setPhone(rs.getString("emp_phone"));
				emp.setEmail(rs.getString("emp_email"));
				emp.setAddress(rs.getString("emp_address"));
				emp.getPurview().setName(rs.getString("purview_name"));
				emps.add(emp);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
				DBUtil.close(rs, ps, conn);
		}
		return emps;
	}

	/**
	 * c. 显示员工详情
	 * @throws SQLException 
	 */
	public List<Emp> getEmpInfos() throws SQLException {
		List<Emp> emps = new ArrayList<Emp>();
			conn = DBUtil.getConnection();
		String sql = "select e.emp_id, e.emp_name,d.dept_name,p.post_name,e.emp_isexcellent,e.emp_username,"
				+ "e.emp_sex,e.emp_phone,e.emp_email,e.emp_address,pu.purview_name from emp_table e,dept_table d,"
				+ "post_table p ,purview_table pu where e.emp_isdelete=0 and"
				+ " e.emp_deptid=d.dept_id and e.emp_postid = p.post_id and e.emp_purviewid=pu.purview_id";
		try {
			ps = conn.prepareStatement(sql);
			rs = ps.executeQuery();
			while(rs.next()){
				Emp emp = new Emp();
				Dept dept = new Dept();
				Post post = new Post();
				Purview purview = new Purview();
				emp.setDept(dept);
				emp.setPost(post);
				emp.setPurview(purview);
				emp.setId(rs.getInt("emp_id"));
				emp.setName(rs.getString("emp_name"));
				emp.getDept().setName(rs.getString("dept_name"));
				emp.getPost().setName(rs.getString("post_name"));
				emp.setIsExcellent(rs.getInt("emp_isexcellent"));
				emp.setUsername(rs.getString("emp_username"));
				emp.setSex(rs.getString("emp_sex"));
				emp.setPhone(rs.getString("emp_phone"));
				emp.setEmail(rs.getString("emp_email"));
				emp.setAddress(rs.getString("emp_address"));
				emp.getPurview().setName(rs.getString("purview_name"));
				emps.add(emp);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
				DBUtil.close(rs, ps, conn);
		}
		return emps;
	}

	/**
	 * d.修改员工信息
	 * @param emp
	 * @throws SQLException 
	 */
	public boolean updateEmpInfos(Emp emp) throws SQLException {
		boolean result = false;
			conn = DBUtil.getConnection();
		String sql = "update Emp_Table set Emp_deptid=?,Emp_postid=?,"
				+ "Emp_isexcellent=?,"
				+ "Emp_name=?,Emp_sex=?,"
				+ "Emp_phone=?,Emp_email=?,Emp_address=?,"
				+ "emp_PurviewId=? where Emp_id=? ";
		try {
			ps = conn.prepareStatement(sql);
			ps.setInt(1, emp.getDept().getId());
			ps.setInt(2, emp.getPost().getId());
			ps.setInt(3, emp.getIsExcellent());
			ps.setString(4, emp.getName());
			ps.setString(5, emp.getSex());
			ps.setString(6, emp.getPhone());
			ps.setString(7, emp.getEmail());
			ps.setString(8, emp.getAddress());
			ps.setInt(9, emp.getPurview().getId());
			ps.setInt(10,emp.getId());
			int count  = ps.executeUpdate();
			if(count>0){
				result = true;
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
				DBUtil.close(rs, ps, conn);
		}
		return result;
	}


	/**
	 * e.删除员工信息
	 * @param id
	 * @throws SQLException 
	 */
	public boolean deleteEmpInfo(int id) throws SQLException {
		boolean result = false;
			conn = DBUtil.getConnection();
		String sql = "delete from Emp_Table  where Emp_id = ? ";
		try {
			ps = conn.prepareStatement(sql);
			ps.setInt(1, id);
			int count = ps.executeUpdate();
			if(count>0){
				result = true;
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
				DBUtil.close(rs, ps, conn);
		}
		return result;
	}

	/**
	 * f.修改当前登录用户信息
	 * @return
	 * @throws SQLException 
	 */
	public boolean updateNowUserInfor(Emp emp) throws SQLException {
		boolean result = false;
			conn = DBUtil.getConnection();
		String sql ="update Emp_Table set  Emp_deptid=?,Emp_postid=?,emp_purviewid=?,Emp_isexcellent=?,"
				+ "Emp_name=?,Emp_sex=?,Emp_phone=?,Emp_email=?,Emp_address=?"
				+ "where Emp_username=?";
		
		try {
			ps = conn.prepareStatement(sql);
			ps.setInt(1, emp.getDept().getId());
			ps.setInt(2, emp.getPost().getId());
			ps.setInt(3, emp.getPurview().getId());
			ps.setInt(4, emp.getIsExcellent());
			ps.setString(5,emp.getName());
			ps.setString(6, emp.getSex());
			ps.setString(7, emp.getPhone());
			ps.setString(8, emp.getEmail());
			ps.setString(9, emp.getAddress());
			ps.setString(10, emp.getUsername());
			int count  = ps.executeUpdate();
			if(count>0){
				result = true;
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
				DBUtil.close(rs, ps, conn);
		}
		return result ;
	}

	/**
	 * 分页显示
	 * @param currentPage
	 * @param rows
	 * @return
	 * @throws SQLException 
	 */
	public Page<Emp>  getEmpByPage(int currentPage, int rows) throws SQLException {
		Page<Emp> page = new Page<Emp>();
		List<Emp> emps = new ArrayList<Emp>();
			conn = DBUtil.getConnection();
		String sql = "select e.emp_id,e.emp_name,d.dept_name,p.post_name,pu.purview_name,e.emp_isexcellent,"
				+ "e.emp_username,e.emp_sex,e.emp_phone,e.emp_email,e.emp_address from(select emp_id, emp_isdelete,"
				+ "Emp_isexcellent,Emp_username,Emp_name,Emp_sex,Emp_phone,Emp_email,emp_deptid,emp_postid,Emp_address ,"
				+ "emp_purviewid,rownum  r   from emp_table )e,dept_table d ,post_table p,purview_table pu "
				+ "where e.r >? and e.r <=? and e.emp_deptid=d.dept_id and e.emp_postid = p.post_id and"
				+ " e.emp_purviewid=pu.purview_id and e.emp_isdelete=0  ";
		
		int begin = (currentPage -1)*rows;
		int end = currentPage*rows;
		try {
			
			ps = conn.prepareStatement(sql);
			ps.setInt(1, begin);
			ps.setInt(2, end);
			rs = ps.executeQuery();
			while(rs.next()){
				Emp emp = new Emp();
				Dept dept = new Dept();
				Post post = new Post();
				Purview purview = new Purview();
				emp.setDept(dept);
				emp.setPost(post);
				emp.setPurview(purview);
				emp.setId(rs.getInt("emp_id"));
				emp.setName(rs.getString("emp_name"));
				emp.getDept().setName(rs.getString("dept_name"));
				emp.getPost().setName(rs.getString("post_name"));
				emp.setIsExcellent(rs.getInt("emp_isexcellent"));
				emp.setUsername(rs.getString("emp_username"));
				emp.setSex(rs.getString("emp_sex"));
				emp.setPhone(rs.getString("emp_phone"));
				emp.setEmail(rs.getString("emp_email"));
				emp.setAddress(rs.getString("emp_address"));
				emp.getPurview().setName(rs.getString("purview_name"));
				emps.add(emp);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
				DBUtil.close(rs, ps, conn);
		}
		page.setData(emps);
		page.setCurrentPage(currentPage);
		page.setRecords(getRecords());
		page.setRows(rows);
		page.getPageCount();
		return page;
		
	}
	/**
	 * 获取总记录数
	 * @return
	 * @throws SQLException
	 */
	public int getRecords() throws SQLException{
		int result = 0;
			conn = DBUtil.getConnection();
		String sql = "select  count(emp_id)  from emp_table where emp_isdelete=0 ";
		try {
			ps = conn.prepareStatement(sql);
			rs = ps.executeQuery();
			if (rs.next()) {
				result = rs.getInt(1);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
				DBUtil.close(rs, ps, conn);
		}
		return result;
	}


	/**
	 * 1、添加员工信息
	 * @return 
	 * @throws SQLException 
	 */
	public boolean addEmpInfos(Emp emp) throws SQLException {
		boolean result = false;
			conn = DBUtil.getConnection();
		String  sql = "insert into Emp_Table values(seq_emps.nextval,?,?,0,?,?,?,?,?,?,?,?,?) ";
		try {
			ps = conn.prepareStatement(sql);
			ps.setInt(1, emp.getDept().getId());
			ps.setInt(2, emp.getPost().getId());
			ps.setInt(3, emp.getIsExcellent());
			ps.setString(4, emp.getUsername());
			ps.setString(5, emp.getPassword());
			ps.setString(6, emp.getName());
			ps.setString(7, emp.getSex());
			ps.setString(8, emp.getPhone());
			ps.setString(9, emp.getEmail());
			ps.setString(10, emp.getAddress());
			ps.setInt(11, emp.getPurview().getId());
			int count = ps.executeUpdate();
			if(count>0){
				result = true;
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
				DBUtil.close(rs, ps, conn);
		}
		return result;
	}

	/**
	 * 获得所有的职位
	 * @return 返回所有职位的集合
	 * @throws SQLException 
	 */
	public List<Post> getPostList() throws SQLException{
		List<Post> postList = new ArrayList<Post>();
		Post post = new Post();
			conn = DBUtil.getConnection();
		String sql = "select post_id,post_name,post_deptid from post_table ";
//		String sql = "select p.Post_Id,p.Post_Name,p.post_deptid from Post_Table p,dept_table d where d.dept_id = p.post_deptid ";
		try {
			ps = conn.prepareStatement(sql);
			rs = ps.executeQuery();
			while(rs.next()){
				
				Dept dept = new Dept();
				post.setDept(dept);
				post.setId(rs.getInt("Post_Id"));
				post.setName(rs.getString("Post_Name"));
				post.getDept().setId(rs.getInt("post_deptid"));
				postList.add(post);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
				DBUtil.close(rs, ps, conn);
		}
		return postList;
	}
	/**
	 * 得到所有部门的集合
	 * @return 返回所有部门的集合
	 * @throws SQLException 
	 */
	public List<Dept> getDeptList() throws SQLException{
		List<Dept> deptList = new ArrayList<Dept>();
			conn = DBUtil.getConnection();
		String sql = "select Dept_Id,Dept_Name from Dept_Table ";
		try {
			ps = conn.prepareStatement(sql);
			rs = ps.executeQuery();
			while(rs.next()){
				Dept dept = new Dept();
				dept.setId(rs.getInt("Dept_Id"));
				dept.setName(rs.getString("Dept_Name"));
				deptList.add(dept);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
				DBUtil.close(rs, ps, conn);
		}
		return deptList;
	}
	/**
	 * 获得所有权限的集合
	 * @return
	 * @throws SQLException 
	 */
	public List<Purview> getPurviewList() throws SQLException{
		List<Purview> purviewList = new ArrayList<Purview>();
			conn = DBUtil.getConnection();
		String sql = "select Purview_Id,Purview_Name from Purview_Table ";
		try {
			ps = conn.prepareStatement(sql);
			rs = ps.executeQuery();
			while(rs.next()){
				Purview p = new Purview();
				p.setId(rs.getInt("Purview_Id"));
				p.setName(rs.getString("Purview_Name"));
				purviewList.add(p);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
				DBUtil.close(rs, ps, conn);
		}
		return purviewList;
	}
	
	public Emp getEmpByName(String username) throws SQLException{
		Emp emp = new Emp();
			conn =DBUtil.getConnection();
		String sql="select e.emp_name,d.dept_id,d.dept_name,p.post_id,p.post_name,e.emp_isexcellent,e.emp_username,e.emp_password,"
				+ "e.emp_sex,e.emp_phone,e.emp_email,e.emp_address,e.emp_purviewId ,pu.purview_name from emp_table e,dept_table d,"
				+ "post_table p ,purview_table pu where e.emp_username = ? and e.emp_isdelete=0 "
				+ " and e.emp_deptid=d.dept_id and e.emp_postid = p.post_id and e.emp_purviewid=pu.purview_id";
		try {
			ps = conn.prepareStatement(sql);
			ps.setString(1, username);
			rs = ps.executeQuery();
			if(rs.next()){
				Dept dept = new Dept();
				Post post = new Post();
				Purview purview = new Purview();
				emp.setDept(dept);
				emp.setPost(post);
				emp.setPurview(purview);
				emp.setName(rs.getString("emp_name"));
				emp.getDept().setId(rs.getInt("dept_id"));
				emp.getDept().setName(rs.getString("dept_name"));
				emp.getPost().setId(rs.getInt("post_id"));
				emp.getPurview().setId(rs.getInt("purview_id"));
				emp.getPost().setName(rs.getString("post_name"));
				emp.setIsExcellent(rs.getInt("emp_isexcellent"));
				emp.setUsername(username);
				emp.setSex(rs.getString("emp_sex"));
				emp.setPhone(rs.getString("emp_phone"));
				emp.setEmail(rs.getString("emp_email"));
				emp.setAddress(rs.getString("emp_address"));
				emp.setPassword(rs.getString("emp_password"));
				emp.getPurview().setName(rs.getString("purview_name"));
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
				DBUtil.close(rs, ps, conn);
		}
		return emp;
	}
	
	/**
	 * 通过员工id查找员工信息
	 * @param username
	 * @return
	 * @throws SQLException 
	 */
	public Emp  getEmpById(int id) throws SQLException {
		Emp emp = new Emp();
			conn = DBUtil.getConnection();
		String sql = "select e.emp_name,d.dept_id,d.dept_name,p.post_id,p.post_name,e.emp_isexcellent,e.emp_username,"
				+ "e.emp_sex,e.emp_phone,e.emp_email,e.emp_address,e.emp_purviewId ,pu.purview_name from emp_table e,dept_table d,"
				+ "post_table p ,purview_table pu where e.emp_id = ? and e.emp_isdelete=0 "
				+ " and e.emp_deptid=d.dept_id and e.emp_postid = p.post_id and e.emp_purviewid=pu.purview_id";
		try {
			ps = conn.prepareStatement(sql);
			ps.setInt(1, id);
			rs = ps.executeQuery();
			if(rs.next()){
				Dept dept = new Dept();
				Post post = new Post();
				Purview purview = new Purview();
				emp.setDept(dept);
				emp.setPost(post);
				emp.setPurview(purview);
				emp.setId(id);
				emp.setName(rs.getString("emp_name"));
				emp.getDept().setId(rs.getInt("dept_id"));
				emp.getDept().setName(rs.getString("dept_name"));
				emp.getPost().setId(rs.getInt("post_id"));
				emp.getPost().setName(rs.getString("post_name"));
				emp.setIsExcellent(rs.getInt("emp_isexcellent"));
				emp.setUsername(rs.getString("emp_username"));
				emp.setSex(rs.getString("emp_sex"));
				emp.setPhone(rs.getString("emp_phone"));
				emp.setEmail(rs.getString("emp_email"));
				emp.setAddress(rs.getString("emp_address"));
				emp.getPurview().setId(rs.getInt("emp_purviewId"));
				emp.getPurview().setName(rs.getString("purview_name"));
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
				DBUtil.close(rs, ps, conn);
		}
		return emp;
	}

		/**
		 * 通过用户名查找员工信息
		 * @param username
		 * @return
		 * @throws SQLException 
		 */
		public Emp  getEmpByUserName(String username) throws SQLException {
			Emp emp = new Emp();
				conn = DBUtil.getConnection();
			String sql = "select e.emp_name,d.dept_id,d.dept_name,p.post_id,p.post_name,e.emp_isexcellent,e.emp_username,"
					+ "e.emp_sex,e.emp_phone,e.emp_email,e.emp_address,e.emp_purviewId ,pu.purview_name from emp_table e,dept_table d,"
					+ "post_table p ,purview_table pu where e.emp_username = ? and e.emp_isdelete=0 "
					+ " and e.emp_deptid=d.dept_id and e.emp_postid = p.post_id and e.emp_purviewid=pu.purview_id";
			try {
				ps = conn.prepareStatement(sql);
				ps.setString(1, username);
				rs = ps.executeQuery();
				if(rs.next()){
					Dept dept = new Dept();
					Post post = new Post();
					Purview purview = new Purview();
					emp.setDept(dept);
					emp.setPost(post);
					emp.setPurview(purview);
					emp.setUsername(username);
					emp.setName(rs.getString("emp_name"));
					emp.getDept().setId(rs.getInt("dept_id"));
					emp.getDept().setName(rs.getString("dept_name"));
					emp.getPost().setId(rs.getInt("post_id"));
					emp.getPost().setName(rs.getString("post_name"));
					emp.setIsExcellent(rs.getInt("emp_isexcellent"));
					emp.setSex(rs.getString("emp_sex"));
					emp.setPhone(rs.getString("emp_phone"));
					emp.setEmail(rs.getString("emp_email"));
					emp.setAddress(rs.getString("emp_address"));
					emp.getPurview().setId(rs.getInt("emp_purviewId"));
					emp.getPurview().setName(rs.getString("purview_name"));
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}finally{
					DBUtil.close(rs, ps, conn);
			}
			return emp;
		}


}


sevlet层
package com.oa.servlet;

import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.oa.pojo.Dept;
import com.oa.pojo.Emp;
import com.oa.pojo.Post;
import com.oa.pojo.Purview;
import com.oa.service.EmpService;
import com.oa.util.Page;
/**
 * 员工管理模块控制器
 * @author Administrator
 */
@SuppressWarnings("serial")
public class EmpServlet extends HttpServlet {

	private EmpService empService = new EmpService();

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//获取用户提交过来的操作类型
		String type = request.getParameter("type");
                //d.修改员工信息(大致流程:从页面点击修改按钮以get方法提交,在此方法中跳转到修改页面,从修改页面点击保存以post方式提交,到post方法里找到匹配的修改方法后把从页面获取的数据添加进数据库再显示出来)
		if("updateEmp".equals(type)){
			int id =Integer.parseInt( request.getParameter("id"));
		    Emp emp = empService.getEmpById(id);
		    List<Dept> deptList = empService.getDeptList();
		    List<Post> postList = empService.getPostList();
		    List<Purview> purviewList = empService.getPurviewList();
		    request.setAttribute("emp",emp);
		    request.setAttribute("deptList",deptList);
		    request.setAttribute("postList",postList);
		    request.setAttribute("purviewList",purviewList);
		    request.getRequestDispatcher("updateemp.jsp").forward(request, response);
		}
                   //添加员工、实现流程与删除员工相似
                   else if ("addEmp".equals(type)) {
		    List<Dept> deptList = empService.getDeptList();
		    List<Post> postList = empService.getPostList();
		    List<Purview> purviewList = empService.getPurviewList();
		    request.setAttribute("deptList",deptList);
		    request.setAttribute("postList",postList);
		    request.setAttribute("purviewList",purviewList);
		    request.getRequestDispatcher("addemp.jsp").forward(request, response);			 
		}
                    //a. 按‘部门’搜索员工
                    else  if("deptName".equals(type)){
			 String type2 = request.getParameter("deptName");
			 List<Emp> emps =   empService.getEmpInfoByDname(type2);
			request.setAttribute("emps",emps);			request.getRequestDispatcher("searchemp.jsp").forward(request, response);

		}
                    //b. 显示优秀员工
                    else if("getExcellent".equals(type)){
			List<Emp> emps= empService.getExcellent();
			request.setAttribute("emps", emps);
		    request.getRequestDispatcher("excellent.jsp").forward(request, response);
		}
                //f.修改当前登录用户信息
                 else if("updateNowUserInfor".equals(type)){
			List<Dept> deptList = empService.getDeptList();
		    List<Post> postList = empService.getPostList();
		    List<Purview> purviewList = empService.getPurviewList();
		    request.setAttribute("deptList",deptList);
		    request.setAttribute("postList",postList);
		    request.setAttribute("purviewList",purviewList);
		    
			HttpSession session = request.getSession();
			Emp emp1 = (Emp) session.getAttribute("emp");
			String username = emp1.getUsername(); 
			Emp emp =	empService.getEmpByUserName(username);
			request.setAttribute("emp",emp);
			request.getRequestDispatcher("updatenowuser.jsp").forward(request, response);
		}
               //显示员工详情
		else{
			getAllEmps(request, response);
		}
		
	}
	


	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//获取用户提交过来的操作类型
		String type = request.getParameter("type");

		//2.a 按‘部门名称’搜索员工
		 if("deptName".equals(type)){
			 String type2 = request.getParameter("deptName");
			 List<Emp> emps =   empService.getEmpInfoByDname(type2);
			request.setAttribute("emps",emps);
			request.getRequestDispatcher("searchemp.jsp").forward(request, response);
		}
		//2.b 优秀员工
		else if("getExcellent".equals(type)){
			List<Emp> emps= empService.getExcellent();
			request.setAttribute("emps", emps);
			request.getRequestDispatcher("excellent.jsp").forward(request, response);
		}
		
		//2.d 修改员工信息
		else if("updateEmp".equals(type)){
		    
			Emp   emp = getFromEmpUp(request);
			empService.updateEmpInfos(emp);
			List<Emp> emps =empService.getEmpInfos();
			request.setAttribute("emps", emps);
			getAllEmps(request, response);
		}
		 //2.f 修改当前登录用户信息
		else if("updateNowUserInfor".equals(type)){
			
			Emp emp = getFromEmpUpUser(request);
			empService.updateNowUserInfor(emp);
			List<Emp> emps =empService.getEmpInfos();
			request.setAttribute("emps", emps);
			getAllEmps(request, response);
			
		}
		else if ("deleteEmp".equals(type)){
			int id = Integer.parseInt(request.getParameter("id"));
			empService.deleteEmpInfo(id);
			getAllEmps(request, response);
		}
		else if ("addEmp".equals(type)) {
			Emp emp = getFromEmpAd(request);
			empService.addEmpInfos(emp);
			List<Emp> emps =empService.getEmpInfos();
			request.setAttribute("emps", emps);
			getAllEmps(request, response);
	      }
		//2.c 显示员工详情
		else{
			getAllEmps(request, response);
		}
	}
	


	/***
	 * 实现分页功能的查询
	 */
	public void getAllEmps(HttpServletRequest request,HttpServletResponse response) {
		//用户传入的当前页面
		int currentPage = 
			null == request.getParameter("currentPage")?1:Integer.parseInt(request.getParameter("currentPage"));
		//用户传入的页面显示的行数,初始化行数自定义
		int rows = 
			null == request.getParameter("rows")?3:Integer.parseInt(request.getParameter("rows"));
		Page<Emp> page = empService.getEmpByPage(currentPage,rows);
		request.setAttribute("page", page);
		try {
			request.getRequestDispatcher("emp.jsp").forward(request, response);
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
	
	/**
	 * 封装从页面接收的修改信息
	 * @param request
	 * @param response
	 * @return
	 */
	public Emp getFromEmpUp(HttpServletRequest request) {
		Emp emp = new Emp();
		Dept dept = new Dept();
		emp.setDept(dept);
		Post post = new Post();
		emp.setPost(post);
		Purview purview = new Purview();
		emp.setPurview(purview);
		emp.setId(Integer.parseInt(request.getParameter("id")));
		emp.getDept().setId(Integer.parseInt(request.getParameter("deptId")));	
		emp.getPost().setId(Integer.parseInt(request.getParameter("postId")));
	emp.setIsExcellent(Integer.parseInt(request.getParameter("isExcellent")));

		emp.setName(request.getParameter("name"));
		emp.setSex(request.getParameter("sex"));
		emp.setPhone(request.getParameter("phone"));
		emp.setEmail(request.getParameter("email"));
		emp.setAddress(request.getParameter("address"));
		emp.getPurview().setId(Integer.parseInt(request.getParameter("purviewId")));
		return emp;
		
	}
	
	/**
	 * 封装从页面获取的修改当前用户的信息
	 * @param request
	 * @return
	 */
	public Emp getFromEmpUpUser(HttpServletRequest request) {
		Emp sessionEmp = (Emp)request.getSession().getAttribute("emp");
		String username = sessionEmp.getUsername();
		
		Emp emp = new Emp();
		Dept dept = new Dept();
		emp.setDept(dept);
		Post post = new Post();
		emp.setPost(post);
		Purview purview = new Purview();
		emp.setPurview(purview);
		emp.setId(Integer.parseInt(request.getParameter("id")));
		emp.getDept().setId(Integer.parseInt(request.getParameter("deptId")));	
		emp.getPost().setId(Integer.parseInt(request.getParameter("postId")));
		emp.getDept().setName(request.getParameter("deptname"));
		emp.getPost().setName(request.getParameter("postname"));
	emp.setIsExcellent(Integer.parseInt(request.getParameter("isExcellent")));
		emp.setUsername(username);
		emp.setName(request.getParameter("name"));
		emp.setSex(request.getParameter("sex"));
		emp.setPhone(request.getParameter("phone"));
		emp.setEmail(request.getParameter("email"));
		emp.setAddress(request.getParameter("address"));
		emp.getPurview().setId(Integer.parseInt(request.getParameter("purviewId")));
		return emp;
	}
	
	
	
	/**
	 * 封装从页面接收的新增信息
	 * @param request
	 * @param response
	 * @return
	 */
	public Emp getFromEmpAd(HttpServletRequest request) {
		Emp emp = new Emp();
		Dept dept = new Dept();
		emp.setDept(dept);
		Post post = new Post();
		emp.setPost(post);
		Purview purview = new Purview();
		emp.setPurview(purview);
		emp.getDept().setId(Integer.parseInt(request.getParameter("deptId")));	
		emp.getPost().setId(Integer.parseInt(request.getParameter("postId")));
		emp.setIsExcellent(Integer.parseInt(request.getParameter("isExcellent")));
		emp.setUsername(request.getParameter("username"));
		emp.setPassword(request.getParameter("password"));
		emp.setName(request.getParameter("name"));
		emp.setSex(request.getParameter("sex"));
		emp.setPhone(request.getParameter("phone"));
		emp.setEmail(request.getParameter("email"));
		emp.setAddress(request.getParameter("address"));
		emp.getPurview().setId(Integer.parseInt(request.getParameter("purviewId")));
		return emp;
	}


util包中的page代码
package com.oa.util;
import java.util.ArrayList;
import java.util.List;

public class Page<T> {
	
	// 存储当前页面的值
	private int currentPage;
	// 页面显示数据的行数
	private int rows;
	// 数据库中的总记录数
	private int records;
	// 页面的总页数
	private int pageCount;
	// 存放数据的集合
	private List<T> data = new ArrayList<T>();

	public int getCurrentPage() {
		return currentPage;
	}

	public void setCurrentPage(int currentPage) {
		this.currentPage = currentPage;
	}

	public int getRows() {
		return rows;
	}

	public void setRows(int rows) {
		this.rows = rows;
	}

	public int getRecords() {
		return records;
	}

	public void setRecords(int records) {
		this.records = records;
	}

	/**
	 * 计算总页数
	 * @return
	 */
	public int getPageCount() {
		if (records % rows == 0) {
			pageCount = records / rows;
		} else {
			pageCount = records / rows + 1;
		}
		return pageCount;
	}

	public void setPageCount(int pageCount) {
		this.pageCount = pageCount;
	}

	public List<T> getData() {
		return data;
	}

	public void setData(List<T> data) {
		this.data = data;
	}

}


员工详细信息和分页的页面代码
	<h5>员工详细信息</h5>
							<form id="search" action="EmpServlet" method="post">
							<div style="float: right;">
							  输入部门名称:<input type="text" name="deptName" id="deptName" />
							 <input type="hidden" name="type" value="deptName" /> 
							<input type="submit" value="搜索" id="searchEmp"/>
							</div>
							</form>
						</div>
						<div class="widget-content nopadding">
							<table class="table table-bordered table-striped">
								<thead>
									<tr>
										<th>姓名</th>
										<th>部门名</th>
										<th>职位名</th>
										<th>是否优秀员工</th>
										<th>用户名</th>
										<th>性别</th>
										<th>电话</th>
										<th>邮箱</th>
										<th>地址</th>
										<th>权限名</th>
										<th>操作</th>
									</tr>
								</thead>
								<tbody>
									
									<c:forEach items="${page.data}" var="emp">
											<tr class="odd gradeX">
												<td>${emp.name }</td>
												<td>${emp.dept.name }</td>
												<td>${emp.post.name }</td>
												<td>${emp.isExcellent }</td>
												<td>${emp.username }</td>
												<td>${emp.sex }</td>
												<td>${emp.phone }</td>
												<td>${emp.email }</td>
												<td>${emp.address }</td>
												<td>${emp.purview.name }</td>
												<td>[url=EmpServlet?type=updateEmp&id=${emp.id }]修改[/url]
													[url=EmpServlet?type=deleteEmp&id=${emp.id }]删除[/url]</td>
											
											</tr>
									</c:forEach>
								</tbody>
							</table>
						
							<div class="pagination" style="float: right;">
								[list]
									[*][url=EmpServlet?type=addEmp]新增[/url]

									<li>
									[url=EmpServlet?type=getExcellent]查询优秀员[/url]
									</li>
									[*][url=EmpServlet?type=updateNowUserInfor]修改当前用户信息[/url]

									[*][url=#]当前页面:${page.currentPage }[/url]

									<li class="active">[url=EmpServlet?currentPage=1]首页[/url]</li>
									<li>
										  
										<c:if test="${page.currentPage-1<=0 }">
											[url=EmpServlet?currentPage=1]上一页[/url]
										</c:if>
										<c:if test="${page.currentPage-1>0 }">
											[url=EmpServlet?currentPage=${page.currentPage-1 }]上一页[/url]
										</c:if>
										
									</li>
									<li>
										<c:if test="${page.currentPage+1>page.pageCount }">
											[url=EmpServlet?currentPage=${page.pageCount }]下一页[/url]
										</c:if> <c:if test="${page.currentPage+1<=page.pageCount }">
											[url=EmpServlet?currentPage=${page.currentPage+1 }]下一页[/url]
										</c:if> 
									</li>
									<li><a
										href="EmpServlet?currentPage=${page.pageCount }">末页</a></li>
									[*]共:${page.pageCount } 页

									<li><input type="number" id="currentPage" /> <input
										type="button" value="go" onclick="goPage(${page.pageCount })" />
									</li>
								[/list]  
							</div>
						</div>

分页函数
function goPage(pageCount) {
			//跳转到用户输入的页面
			var currentPage = 
				document.getElementById("currentPage").value;
			if (currentPage <= 0) {
				currentPage = 1;
			}
			if (currentPage > pageCount) {
				currentPage = pageCount;
			}
			window.location.href="EmpServlet?currentPage="+currentPage;
		}


连接TomCat后在本地测试结果截图:
1、以超级管理员身份登录——用户名:jack  密码:a123456,如当前登录用户图所示:
[img]

[/img]

2、登录成功后进入主页,在主页点击员工管理,出现员工详细信息,如员工详情图所示:
[img]

[/img]

3、在“输入部门名称”搜索框中输入财务部,出现财务部员工详情:
[img]

[/img]
[img]

[/img]

4、点击修改可修改员工信息,其修改内容没有当前登录用户可修改权限大
[img]

[/img]

5、点击修改当前用户信息便可修改当前用户的密码:
[img][/img]


6、修改员工和修改当前用户信息成功后的结果图:
[img]

[/img]

7、点击优秀员工按钮可查询优秀员工信息:
[img]

[/img]

8、点击新增,可新增员工:
[img]

[/img]
[img]

[/img]

9、删除员工,删除员工在数据库里的其实是将0置1,并没有从数据库里删除(由于没写提示所以截图看不出是否删除成功,故将数据删除到只剩一页显示):
[img]

[/img]
  • 大小: 28.6 KB
  • 大小: 28 KB
  • 大小: 8.3 KB
  • 大小: 29.3 KB
  • 大小: 15.9 KB
  • 大小: 28.4 KB
  • 大小: 15.6 KB
  • 大小: 12.5 KB
  • 大小: 25.4 KB
  • 大小: 29.3 KB
  • 大小: 23.9 KB
0
0
分享到:
评论

相关推荐

    OA系统管理模块数据库系统设计.docx

    《OA系统管理模块数据库系统设计》 OA(Office Automation)系统是企业或组织内部用于提升工作效率,实现自动化办公的重要工具。其核心组成部分之一就是数据库系统,它存储了系统的各类信息,如员工信息、角色权限...

    通达OA人力资源管理模块说明

    在人力资源管理模块中,通达OA提供了全面且细致的功能,以支持企业对人力资源的有效管理和优化。以下是关于这个模块的详细说明: 1. **人事档案**:这是基础的人力资源管理部分,用于存储员工的基本信息,如姓名、...

    oa办公管理系统 联系人管理模块

    OA办公管理系统中的联系人管理模块是企业信息化建设中不可或缺的一部分,它主要负责组织内部员工、合作伙伴以及客户等联系信息的存储、查询和管理。在这个模块中,用户可以方便地查找、添加、修改和删除联系人信息,...

    OA人员选择模块Js+JSON

    本话题聚焦于"OA人员选择模块",这通常是指OA系统中一个用于选取、管理组织内员工的组件。在这个模块中,JavaScript 和 JSON 技术发挥着关键作用。 JavaScript 是一种广泛使用的客户端脚本语言,主要用于增强网页的...

    电信设备-一种校园办公OA短信管理模块.zip

    这个“电信设备-一种校园办公OA短信管理模块”是专门针对校园环境设计的,旨在通过短信功能,实现与学生、教职员工的有效沟通,提高信息传递的效率和准确性。 OA系统通常包含多个子模块,如公文流转、资产管理、...

    oa.rar_oa sql_企业OA办公_办公管理系统_权限管理模块_物料管理模块

    本文将深入探讨“oa.rar”压缩包中涉及的“oa sql_企业OA办公_办公管理系统_权限管理模块_物料管理模块”相关知识点。 首先,"oa sql"表明该系统基于SQL数据库进行数据存储和管理。SQL(Structured Query Language...

    OA系统模块概述

    6. **工作流管理**:通过图形化界面设计工作流程,支持条件分支、人员指定、印章应用等,适应不同业务需求。 7. **在线编辑Office文档**:支持在线编辑Word、Excel、PowerPoint等,具备痕迹保留、签章和打印功能。 ...

    OA系统管理制度,实际很好用

    在现代企业管理中,OA(Office Automation)系统已成为提升工作效率、优化管理流程的重要工具。OA系统管理制度作为确保系统高效运行的基石,其重要性不言而喻。本文将深入探讨OA系统管理制度的关键要素,以及如何在...

    【蓝色呼叫中心OA系统管理模板】AM工作台+客户管理+工单管理+知识库等模块

    其次,客户管理模块是呼叫中心OA系统的关键部分。它涵盖了客户信息的录入、存储、更新和分析等功能,帮助呼叫中心更有效地跟踪和维护客户关系。通过客户资料的分类和标签化,可以实现个性化的服务策略,提高客户满意...

    通达OA2013_6.16.130718车辆管理模块源码

    通达OA2013_6.16.130718...总的来说,通达OA2013_6.16.130718车辆管理模块源码是一个能够帮助用户自定义和优化车辆管理功能的宝贵资源,对于有一定技术背景的企业IT人员或开发者来说,是一个极具价值的参考和学习材料。

    OA办公系统功能模块和报价

    OA办公系统,全称为Office Automation System,是一种用于企业管理、协同工作的信息化工具,旨在提高工作效率,优化工作流程。OA系统的功能模块通常包括基础模块和增强模块,涵盖了日常办公的多个方面。 1. **基础...

    零起飞OA办公管理系统

    07FlyOA是一款基于TP5+HAdmin+Mysql打造的简单实用的开源的...系统集成了十大办公基本的功能模块:系统管理、基础数据、员工管理、消息通知、企业公告、知识文章、办公审批、日常办公、财务管理、商业智能等基础模块。

    呼叫中心OA系统管理模板 AM工作台+客户管理+工单管理+知识库等模块

    客户管理模块是呼叫中心OA系统的核心部分,用于存储和管理客户信息。它支持录入、更新和查询客户资料,包括联系人信息、交易历史、服务记录等。此外,还可以进行客户分类、标签化管理,便于进行精准营销和服务。 3...

    phpOA管理系统

    综上所述,phpOA管理系统是一款采用PHP技术构建的企业级OA解决方案,它通过提供丰富的功能模块,优化企业的办公流程,提高员工的工作效率。同时,系统可能还具有高度的可扩展性和定制性,以满足不同企业的个性化需求...

    OA权限管理设计的实现

    2. **可扩展性**:权限管理系统应具备良好的可扩展性,能够作为组件被重复利用,避免每次开发新的管理系统时都需要重新设计权限管理模块。 3. **功能权限管理**:在传统的业务系统中,通常有两种类型的权限管理:...

    OA管理系统项目源码

    OA(Office Automation)管理系统是一种基于信息技术的办公自动化解决方案,它旨在提升组织的工作效率,优化业务流程,实现信息的高效共享。本项目源码是OA管理系统的核心组成部分,为开发者提供了深入理解OA系统...

    .net OA办公管理系统源码

    《.NET OA办公管理系统源码解析与探讨》 在当今数字化办公的时代,OA(Office Automation)办公管理系统已经成为企业提升效率、优化流程的关键工具。本文将深入探讨基于.NET框架的OA办公管理系统源码,旨在帮助...

    oa企业考勤管理解决方案

    在企业信息化管理中,OA(Office Automation)系统扮演着至关重要的角色,它涵盖了日常办公的诸多环节,其中考勤管理是OA系统中的一个重要模块。"oa企业考勤管理解决方案"旨在帮助企业实现高效、准确的员工出勤记录...

    协同OA资产模块初始化步骤及实施建议

    本文将详细介绍协同OA资产管理模块的初始化步骤及相关实施建议。 #### 二、导入前准备 在正式导入资产数据之前,需要完成一系列准备工作,确保后续的数据导入工作能够顺利进行。 ##### 1. 资产类型设置 根据公司...

Global site tag (gtag.js) - Google Analytics