今天将为大家分析一个企业员工信息管理系统(随着我国科学技术的不断发展,我国的计算机电子信息技术也得到了不断的发展,许多企业都采用了计算机电子信息技术进行企业员工的信息管理,本文主要从企业员工信息管理系统的设计思路、企业员工信息管理系统的实现方式以及J2EE开发平台的优越性三个方面展开了具体的分析,对我国企业员工的信息管理系统进行了深入的探讨。),该项目使用框架为SSM(MYECLIPSE),选用开发工具为MYECLIPSE。企业员工信息管理系统为一个 后台项目。
为了完成该系统,我们首先需要对该系统进行需求分析。一个企业员工信息管理系统应包含用户角色有管理员。为了能让用户顺利登陆系统完成相关操作,需要为每种登陆角色设置账户和密码字段。
总结得出该系统所有数据为:管理员(admin)、信息录入(xinxiluru)、培训经历(peixunjingli)、调动经历(diaodongjingli)、请假记录(qingjiajilu)
管理员表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 管理员id username | VARCHAR(255) | | 账号 password | VARCHAR(255) | | 密码
信息录入表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 信息录入id xingming | VARCHAR(255) | | 姓名 nianling | VARCHAR(255) | | 年龄 xingbie | VARCHAR(255) | | 性别 zhiwu | VARCHAR(255) | | 职务
培训经历表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 培训经历id peixunshijian | VARCHAR(255) | | 培训时间 peixunzhuanye | VARCHAR(255) | | 培训专业 xingming | VARCHAR(255) | | 姓名
调动经历表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 调动经历id yuanbumen | VARCHAR(255) | | 原部门 diaodongbumen | VARCHAR(255) | | 调动部门 diaodongshijian | VARCHAR(255) | | 调动时间 xingming | VARCHAR(255) | | 姓名
请假记录表
字段名 | 类型 | 属性 | 描述 id | int(11) | PRIMARY KEY | 请假记录id xingming | varchar(255) | | 姓名 qingjiashijian | varchar(255) | | 请假时间
package org.mypro.front; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Collections; import java.util.Date; import java.util.List; import javax.jms.Session; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.mypro.dao.AdminMapper; import org.mypro.entity.Admin; import org.mypro.entity.AdminExample;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.multipart.MultipartFile; @Controller @RequestMapping(value = "/") public class loginAndRegistController { private static final Log logger = LogFactory.getLog(loginAndRegistController.class); @Autowired private AdminMapper admindao; //定义login方法,跳转到login页面 @RequestMapping(value = "login") public String login(HttpServletRequest request, HttpServletResponse response,HttpSession session) { logger.debug("loginAndRegistController.login ......"); return "login"; } //定义regist方法,跳转到regist页面 @RequestMapping(value = "regist") public String regist(HttpServletRequest request, HttpServletResponse response,HttpSession session) { logger.debug("loginAndRegistController.regist ......"); return "regist"; } //定义loginact,处理登录 @RequestMapping(value = "loginact") public String loginact(HttpServletRequest request, HttpServletResponse response,Admin admin,String shenfen,HttpSession session) { logger.debug("loginAndRegistController.loginact ......"); // 判断管理员是否与 shenfen一致 if("管理员".equals(shenfen)){ AdminExample example = new AdminExample(); AdminExample.Criteria criteria = example.createCriteria(); criteria.andUsernameEqualTo(admin.getUsername()); criteria.andPasswordEqualTo(admin.getPassword()); List<Admin> admins = admindao.selectByExample(example); if(admins.isEmpty()){ request.setAttribute("message", "账号或密码错误"); return "login"; }else{ session.setAttribute("mingzi", admins.get(0).getUsername()); // 登录成功,将登录用户id保存到session中 session.setAttribute("id", admins.get(0).getId()); session.setAttribute("userinfo", admins.get(0)); session.setAttribute("shenfen", shenfen); return "adminindex"; } } //将请选择登录身份保存到request的message中 request.setAttribute("message", "请选择登录身份"); return "login"; } //定义registact,处理注册 @RequestMapping(value = "registact") public String registact(HttpServletRequest request, HttpServletResponse response,Admin admin,String shenfen,HttpSession session,String repassword) { logger.debug("loginAndRegistController.registact ......"); if( !repassword.equals(admin.getPassword())){ request.setAttribute("message", "两次密码不一致"); return "regist"; } // 判断管理员和shenfen是否一致 if("管理员".equals(shenfen)){ AdminExample example = new AdminExample(); AdminExample.Criteria criteria = example.createCriteria(); criteria.andUsernameEqualTo(admin.getUsername()); List admins = admindao.selectByExample(example); if(!admins.isEmpty()){ request.setAttribute("message", "该账号已存在"); return "regist"; }else{ admindao.insert(admin); request.setAttribute("message", "注册成功,请登录"); return "login"; } } request.setAttribute("message", "请选择登录身份"); return "login"; } //定义tuichuxitong方法,清除系统中的session数据 @RequestMapping(value = "tuichuxitong") public String tuichuxitong(HttpServletRequest request, HttpServletResponse response,Admin admin,HttpSession session) { logger.debug("loginAndRegistController.tuichuxitong ......"); session.invalidate(); return "login"; } // 定义adminindex方法 @RequestMapping(value = "adminindex") public String adminindex(HttpServletRequest request,HttpSession session, HttpServletResponse response) { logger.debug("loginAndRegistController.adminindex ......"); return "adminindex"; } //定义adminxiugaigerenxinxiact方法 @RequestMapping(value = "adminxiugaigerenxinxiact") public String adminxiugaigerenxinxiact(HttpServletRequest request, HttpServletResponse response,Admin admin,HttpSession session ) throws IOException { logger.debug("loginAndRegistController.adminxiugaigerenxinxiact ......"); admindao.updateByPrimaryKey(admin); session.setAttribute("mingzi", admin.getUsername()); session.setAttribute("id", admin.getId()); session.setAttribute("userinfo", admin); request.setAttribute("message", "修改个人信息成功"); return "adminindex"; } // 上传文件图片等 public String uploadUtile(MultipartFile file, HttpServletRequest request) throws IOException { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSS"); String res = sdf.format(new Date()); // uploads文件夹位置 String rootPath = request.getSession().getServletContext().getRealPath("resource/uploads/"); // 原始名称 String originalFileName = file.getOriginalFilename(); // 新文件名 String newFileName = "sliver" + res + originalFileName.substring(originalFileName.lastIndexOf(".")); // 创建年月文件夹 Calendar date = Calendar.getInstance(); File dateDirs = new File(date.get(Calendar.YEAR) + File.separator + (date.get(Calendar.MONTH)+1)); // 新文件 File newFile = new File(rootPath + File.separator + dateDirs + File.separator + newFileName); // 判断目标文件所在目录是否存在 if( !newFile.getParentFile().exists()) { // 如果目标文件所在的目录不存在,则创建父目录newFile. getParentFile().mkdirs(); } System.out.println(newFile); // 将内存中的数据写入磁盘file. transferTo(newFile); // 完整的url String fileUrl = date.get(Calendar.YEAR) + "/" + (date.get(Calendar.MONTH)+1) + "/" + newFileName; return fileUrl; }}
添加调动经历模块:
在diaodongjingliController中定义tianjiadiaodongjingliact接收页面传入的调动经历参数,定义为diaodongjingli。其中diaodongjingli包含字段:原部门,调动部门,调动时间,姓名,使用tianjiadiaodongjingliact将该调动经历对象存入数据库中,在diaodongjingliMapper中定义了insert方法,匹配数据库中的insert into diaodongjingli语句实现将调动经历数据存入数据库的操作。该部分核心代码如下:
通过diaodongjinglidao的insert方法将页面传输的调动经历添加到数据库中 diaodongjinglidao.insert(diaodongjingli);
将添加调动经历成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "添加调动经历成功");
返回调动经历管理界面
return "forward:/tianjiadiaodongjingli.action";
查询调动经历模块:
调动经历的查询模块实现方式为,在页面中发起diaodongjingliguanli.action请求。通过该请求,响应服务器diaodongjingliController类中的diaodongjingliguanli,在该方法中通过selectByexample进行数据的查询操作。将所有的调动经历信息查询后,保存到request中的diaodongjingliall中,在页面中进行展示,返回diaodongjingliguanli.jsp,该部分核心代码如下所示:
生成调动经历样例类,通过example定义查询条件 DiaodongjingliExample example = new DiaodongjingliExample();
通过diaodongjinglidao的selectByExample方法查询出所有的调动经历信息 List diaodongjingliall = diaodongjinglidao.selectByExample(example);
将调动经历信息,保存到request中,在页面通过foreach方法进行展示 request.setAttribute("diaodongjingliall", diaodongjingliall);
返回调动经历管理界面
return "forward:/diaodongjingliguanli.action";
修改调动经历模块:
在页面填写完修改信息后,点击修改按钮,将数据提交到xiugaidiaodongjingli中,封装为一个调动经历
,使用update方法修改该调动经历信息,将数据同步到数据库,完成修改操作。
定义修改成功提示信息,修改调动经历成功,并保存到request中具体代码如下:
通过diaodongjinglidao的修改方法根据id修改对应的调动经历 diaodongjinglidao.updateByPrimaryKeySelective(diaodongjingli);
将修改调动经历成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "修改调动经历信息成功");
返回调动经历管理界面
return "forward:/diaodongjingliguanli.action";