中小企业人事管理系统设计
2020-10-30吴亮
吴亮
(江苏旅游职业学院,江苏 扬州225000)
1 概述
1.1 项目开发背景及意义
信息系统的目的是及时地输出和传递决策所需的信息。建立以计算机为主要手段的管理信息系统,已经成为现代企业、政府部门等各类组织提高自身素质、实现组织目标的战略措施。现代社会是信息社会,过去落后的工作和生产方式已远远不能满足现代社会信息高速交换的需要。
1.2 系统开发技术及工具
1.2.1 MyEclipse 6.0
现在,市场上可以选购的应用开发产品很多,流行的也有数十种。其中MyEclipse 是较为流行的一种。
1.2.2 数据库平台SQLServer2000
SQL Server 是一个关系数据库管理系统。
1.2.3 Tomcat
Tomcat 是一个免费的开源的Serlvet 容器。
1.2.4 JSP
JSP(Java Server Pages)技术提供了一种简单快速的方法来创建显示动态生成内容的Web 页面。由业界处于领先地位的Sun 公司制定了相关的JSP 技术规范,该规范定义了如何在服务器和JSP 页面间进行交互,描述了页面的格式和语法。
1.2.5 JavaBean
JavaBean 是用Java 语言描述的软件组件模型。
本系统使用到了Microsoft SQLServer2000 、jdk1.6、Tomcat5.5。
1.3 系统基本架构
本系统采用三层的B/S 模式,结合传统的MVC(model,view,control)模式,利用struts 第三方框架实现。
2 系统可行性分析
过往有些人事管理仍然采取手工方式对企业员工信息进行管理。将一般的员工个人情况记录在纸质档案上,这样对于人力资源部的工作人员来说管理起来比较麻烦,查找资料时得在众多的资料中翻阅、查找,费时费力且效率低下。手工操作使得企业人事管理工作混乱而又复杂。为了更好地提高工作效率和质量,在经济上是可行的。
3 需求分析
3.1 系统基本功能
a.人事管理功能,设置一部分人员的基本情况。
b.待遇管理功能,设置不同种类的待遇等级,并为员工设置不同的待遇标准。
c.企业架构功能,一个企业有时会有一些部门的建立或者调整,该模块用于企业部门的设置。
d.系统管理,该系统只限于管理员使用,即一个企业人事部的员工,只有他们有对系统操作的权限。
e.附加功能,包括重新登陆,修改登陆这密码和退出系统。
f.统一、友好的操作界面,用以保证系统的易用性。
3.2 系统功能模块需求
人事管理模块包含档案管理、查询管理两个子模块。
4 数据库的设计
4.1 数据库的设计
a.规划阶段。
b.需求分析阶段。
c.设计阶段。
d.程序编制阶段。
e.调试阶段。
f.运行和维护阶段。
4.2 数据库逻辑结构设计
对于一个开发一个信息管理系统的人来说,最重要的其实并不是系统里的数据和数据库中有多少表,最重要的是如何对数据库表之间逻辑结构进行划分,使整个系统的数据库的范式等级较高,从而减少数据冗余通过对E-R 图中各实体及实体间关系的分析,最终确定出这几张数据表之间的关系图如图1。
4.3 数据库连接及配置
对于一个信息系统来说,它的灵魂就是数据库,在该系统中使用了Microsoft SQLServer2000 来设计数据库,使用Hibernate 来实现前台与数据库的连接,另外,需要将映射文件***.hbm.xml 中generator 的class 属性改为native,(
5 系统详细设计与功能解析
5.1 工程的建立及框架的搭建
图1 数据库逻辑结构
在MyEclipse6.0 开发平台下新建名为PersonalManage 的Web工程,导入hibernate 包和truts 包,由平台生成hibernate.cfg.xml 后,连接数据库,再在hibernate 视图下的DB Browser 工作区域中选择要连接的数据库,并有数据库表直接生成持久化类及映射文件,然后将所有映射文件中id 映射部分的
5.2 系统的目录结构及文件架构
src 目录下的包中存放的都是.java 文件:com.action 包中存放控制器类,从页面获得的请求提交到这里来处理,它调用方法,并返回结果,以便系统进行跳转。com.actionFormbao 中存放持久化类文件和映射文件。com.core 中存放公共类,即连接数据库的类和获取系统时间的类。com.dao 中存放逻辑操作类,也是系统中正真实现功能的类。Css 目录下存放样式文件style.css。image 目录下存放图片文件。JS 目录下存放.js 文件,menu.js 文件实现主页上菜单的下拉;onclock.js 用于实现时间的显示。目录WEB-INF 中主要存放了一些Struts 配置文件。剩下的都是一些.jsp 文件。
5.3 登陆模块设计与实现
进入系统首页index.jsp,直接定向到登陆页面login.jsp,管理员登陆系统。控制器类实现对控制器所捕获的请求的验证,并转向到所请求的页面,LoginDao 类中用于登陆验证.操作完成后,query()方法将返回一个List 型的值给LoginDao 中的login()方法,在由该控制器类返回mapping.findForward("loginok")从而跳转到用户所请求的页面main.jsp。登录成功后将进入主页面,在banner 上有三个功能,其中的修改密码供登陆用户改密码。修改功能仍由login 控制器进行逻辑操作,将登陆时得到的form 对象上转型为TbLogin 对象。
5.4 人事管理模块设计与实现
a.档案管理:
主页面,它只有一个导航栏,点击下拉菜单中的“档案管理”,将进入recordList.jsp 员工列表界面,该界面列出了每一个员工的精简信息。对该页面的访问主要通过名为people 的控制器,查询后返回一个List 值,通过方法request.setAttribute("recordlist",recordDao.query(str))将值传递到页面中。如果要浏览详细信息,就点击相应员工的“详细”链接,页面将查询的员工的id 传递给控制器,在由Dao层通过两次hql 连接查询将所得结果以Object 型数组的形式返回给控制器,在通过request.setAttribute("**",**)方法将所得结果传递给表示层,进入peopleDetail.jsp 页面在该方法中主要使用了hql 查询语句中联结查询中的内连接查询,将得到的对象存放在一个Object 对象的数组中,返回给LoginAction 类然后分别读出,通过request.setAttribute( )方法将员工信息传递给页面。上面的代码仅仅列出了如何获得TbDutyInfo 对象和TbRecord 对象。
如果想要新建员工信息,在员工列表页面点击相关内容,进入peopleAdd.jsp。
方法在RecordDao.java 的boolean peopleInsert( )中,将从页面获得的参数插入数据库中。
在recordList.jsp 员工列表界面点击“删除”连接将删除指定要删除的员工, 在页面中通过代码 将参数id 传递给RecordAction 类,然后到Dao 层中去进行数据库的操作。
b.查询管理
在此功能中用户首先选择需要的查询条件,接着敲入关键字。提交后由people 控制器捕获请求,并将参数传递给Dao 层中RecordDao 类中的方法,它会先进行查询条件的判断,再根据关键字精确匹配后返回查询结果。
5.5 待遇管理模块
待遇管理模块主要有两个功能:新建帐套和修改帐套。在新建帐套的过程中如果该帐套名称已经存在,那将会弹出提示对话框,也就是说不能重复,该项检查是通过在对数据库进行操作的业务逻辑类DepartDao 类中的方法boolean departAdd()来实现的。
在该系统中,每一个员工都有属于自己的那个帐套,当要修改员工所属的帐套时,点击“人员设置”进入修改页面。
5.6 企业架构模块设计与实现
所有对导航栏上下拉菜单中页面的请求都不是单纯的重定向或是链接,而全部都由控制器完成。该模块主要有两个功能:添加和修改。如果部门添加成功将直接在上一个页面的表格中添加一行。
如果要修改部门,点击“修改”要修改的那个部门就会变成输入框。修改后按保存即可。该部分的实现基本上与帐套设置模块类似。
5.7 系统管理模块
模块中的下拉菜单“添加管理员”是用来添加用于登陆该系统的帐号的。
该模块的控制器为login,填写好要新建的管理员帐号和管理员密码后单击“添加”按钮,struts 将请求提交给LoginAction.java,其中包括将页面的form 属性参数,再由控制层调用Dao 层中的方法,而Dao 层直接对数据持久层进行操作,操作完成后返回,并弹出提示对话框,提醒用户管理员添加成功,单击“确定”后将弹回登陆页面,该部分的实现与添加帐套类似。