基于S2SH架构的企业管理系统设计与实现

2011-11-30 05:08郭广军李芝城
湖南人文科技学院学报 2011年5期
关键词:考勤部门用户

郭广军,黄 炯,黎 梅,李芝城

(1.娄底职业技术学院,湖南 娄底 417000;2.湖南人文科技学院 计算机科学技术系,湖南 娄底 417000; 3.中南大学 信息科学与工程学院,湖南 长沙 410083)

基于S2SH架构的企业管理系统设计与实现

郭广军1,2,3,黄 炯2,黎 梅1,李芝城2

(1.娄底职业技术学院,湖南 娄底 417000;2.湖南人文科技学院 计算机科学技术系,湖南 娄底 417000; 3.中南大学 信息科学与工程学院,湖南 长沙 410083)

为了实现企业的高效管理,采用S2SH架构,运用DWR、JFreeChart等组件设计实现了某企业管理系统。该系统实现了企业部门、员工、请假、考勤、工资、公告通知、统计表报、用户权限等管理功能。系统采用了用户合法性检测、用户权限校验与安全审计三层校验安全管理策略,运用HibernateSession+Ehcache二级缓存提升响应速度,采用Ajax异步通信提高网络访问效率,系统整体性能优化,用户体验满意度高。

企业管理;S2SH;DWR;Ajax

随着信息技术迅猛发展和深入应用,我国企业管理信息化的应用系统呈现出先进性、多元性、集成性、开放性四大特点[1]。为了实现企业的高效管理,以MyEclipse8.0为集成开发环境,Oracle为后台数据库,采用S2SH (Struts2-Spring-Hibernate)[2]架构设计实现了一个跨平台、易扩展的企业管理系统(Enterprise Management System,EMS)。该系统的安全性保证方面采用了低容量高性能的权限管理策略,在系统性能优化方面,采用了Hibernate session缓存和Ehcache[3]二级缓存技术,提升系统响应速度,改善了用户体验。

1 系统架构与关键技术

1.1 S2SH架构

基于Struts2-Spring-Hibernate的整合架构[2]如图1所示。S2SH集成框架是Struts2、Spring 和Hibernate三种技术的有机融合,是目前应用最广泛的Java EE架构[4]。在S2SH集成框架中,表示层的Struts2的作用是提供MVC模型,将界面、业务逻辑和数据分离,提供一个高可扩展的架构。业务逻辑层以Spring为核心,向上整合MVC框架,向下整合ORM框架,使用Spring的IoC容器来管理各组件之间的依赖关系,Spring的声明式事务负责逻辑层组件的事务管理。持久层的Hibernate提供了一个抽象的数据服务视图,将用户对数据库的访问进行高度抽象,实现了从面向关系型数据库到面向对象数据处理的转化。

图1 S2SH集成架构

1.2关键技术

在设计上采用了强大的Rose与PowerDesigner作为设计工具。在运行平台上选用Linux + Weblogic + Oracle的组合。实现技术上以Struts2、JPA (Hibernate实现)、Spring为技术支持的主体,大量的使用Web2.0的Ajax技术作为支撑,从而提高系统的用户体验。在Ajax的实现中,本系统采用当今最为流行的Ajax框架的DWR[5](Direct Web Remoting)来实现。采用Log4J作为日志处理平台,从而提高系统的安全性。在系统的性能方面采用二级缓存技术,EhCache作为实现技术支持。同时对Java的声明式事物处理,表与表之间的级联操作,二进制授权策略的应用,系统的安全审计,面向切面用户校验等方面进行研究。

2 系统设计

2.1功能需求

本系统设计的主要功能模块[6]包括部门管理、员工管理、请假管理、考勤管理、工资管理、统计表报、消息通知管理、用户管理和权限管理。系统角色主要有:普通员工,部门经理,工资管理员,人事部管理员、考勤人员和系统管理员等。针对角色的系统功能需求描述如下:

2.1.1 普通员工

可查看公司通知,登录系统后可填写请假单、查看历史请假单、查看工资列表等。

2.1.2 部门经理

除具有普通员工用例外,还能发布通知、查看通知列表、管理历史通知,查看考勤状况报表、审批请假单、查询请假历史记录等。

2.1.3 员工管理

作为系统的基础模块,主要功能包括:查看、添加、删除和修改员工信息,统计分析员工部门分布图和学历分布图,管理员工请假事宜。

2.1.4 考勤管理

主要包括考勤登记和查询,考勤统计,生成考勤报表等功能。

2.1.5 工资管理

主要包括工资发放、工资报表查询、查看工资历史记录等。

2.1.6 系统管理员

作为系统级的最高权限用户,其主要职责是:审查、添加和删除系统用户,系统消息发布与管理,审查、修改和设定用户权限,查阅系统日志等。

2.2数据库设计

根据3.1节的功能需求分析可得到系统中的实体包括:Staff(员工)、Deaprtment(部门)、User(系统用户)、Message(公告通知)、PayRol(工资)、QingJiaDan(请假单)、WorkCheck(考勤记录)。其E-R图如图2所示。

图2 系统E-R图

根据E-R模型,采用ORM的设计思想,建立实体类,通过Hibernate引擎映射到数据库,屏蔽了到数据库的关系表设计,实现了面向对象的数据库编程。

系统以员工实体为中心,根据不同的业务扩展出不同的实体类。Staff(员工)中持有对Department(部门)的引用,因为每个员工都应该归属一个部门,Department中也持有对Staff的引用。User(用户)中持有Staff的引用,一个系统用户对应于一个员工。Message(公告通知)中持有User的引用,由于User中持有Staff的引用,可得到发布通知的人。PayRol(工资)中持有Staff的引用,对应于工资发放对象。QingJiaDan(请假单)中持有两个对Staff的引用,一个对应于请假人,一个对应于审批的经理。WorkCheck(考勤记录)中持有对Staff的引用,对应于考勤对象。

2.3主要模块设计

限于篇幅下面仅给出部门、员工、请假、考勤等管理模块的基本设计方法。

2.3.1 部门管理

部门管理的主要功能有添加新部门,查询部门列表,删除部门信息,维护已有部门信息。该模块的主要类有Department、Staff、DepartmentAction、DepartmentManager、StaffManager。Department是部门实体类,关联Staff类。DepartmentAction封装对应的HTTP请求响应的方法,DepartManager封装相应的业务逻辑,StaffManager封装与部门经理相关的业务逻辑。部门管理顺序图如图3所示。

图3 部门管理顺序图

添加部门功能对应的业务逻辑是保存新录入的部门信息,系统采用Ajax异步通信原理,动态的检测输入的信息是否合法。当输入不合法时,提示用户该输入不可用或无效。

部门信息查询功能对应的业务逻辑是根据部门部分信息查询部门的信息。根据查询信息生成部门列表,可对部门信息进行维护操作。

部门信息删除功能对应的业务逻辑是删除对应部门信息,点击删除按钮时提示员工是否确定删除。删除后提示用户删除成功。

部门信息修改功能对应的业务逻辑是修改部门对应的详细信息。修改时要通过Ajax动态检查修改后信息的合法性,当输入的新信息不合法时,提示用户输入无效。

2.3.2 员工管理

员工管理主要包括添加新员工,查询员工信息,删除失效员工,维护员工信息等功能。该模块的主要类有Staff、Department、StaffAction、StaffManager、DepartmentManager。Staff为员工对应的实体类,Department为部门对应的实体类,StaffAction封装了对应的HTTP请求响应的方法,StaffManager对应StaffManager封装员工信息操作的相应业务逻辑,DepartmentManager封装部门与员工之间对应业务逻辑。员工管理顺序图如图4所示。

图4 员工管理顺序图

添加用户功能对应的业务逻辑是保存新录入的员工信息,系统采用Ajax异步通信原理,动态的检测输入的相应信息是否合法。当输入不合法时,提示用户该输入不可用或无效。

员工信息查询功能,可根据部门名称和员工部分信息查询员工的信息。在员工管理控制台中能够删除相应员工信息,点击删除按钮时提示员工是否确定删除,删除后提示用户删除成功。点击其他相应按钮可对员工信息进行维护,查看和修。

2.3.3 请假管理

请假管理主要包括填写请假单,跟踪请假单,审批请假单,查询核对请假单和请假单列表等功能。该模块的主要类有QingJiaDan、QingJiaDanAction、QingJiaDanManager。QingJiaDan是请假单对应的实体类,保存对应的请假信息。QingJiaDanAction封装中对应HTTP请求响应的方法,QingjiaDanManager中封装了对应的业务逻辑。请假管理顺序图如图5所示。

填写请假单的业务逻辑是录入员工的请假信息,并将该信息发送到对应的部门经理处审批。该功能为系统的基本功能,每一个用户都具有。提交请假单后用户能对请假单进行跟踪,了解请假单的审批情况。

图5 请假管理顺序图

审批请假单的业务逻辑是审批员工的请假单,并将结果发送给对应的用户。该功能为部门经理特有的权限,只有部门经理或拥有该权限的用户才能有相应功能。

查询请假历史记录的业务逻辑是具有相应权限的用户可以根据员工信息,开始时间,结束时间来查看该员工的请假情况,并将请假次数,请假累计天数进行统计。

请假单列表的业务逻辑是实现目前登录用户的请假历史记录,可以分页查阅。

2.3.4 考勤管理

考勤管理主要包括添加考勤记录,查询考勤记录,统计考勤记录等功能。该模块的主要类有WorkCheck、WorkCheckAction、WorkCheckManager。WorkCheck为保持考勤信息的实体类,WorkCheckAction封装了响应HTTP请求的一些方法,WorkCheckManager封装了对应的业务逻辑。考勤管理顺序图如图6所示。

图6 考勤管理顺序图

添加考勤记录的业务逻辑是录入新的考勤记录,打开主控制台时默认为当前的考勤记录,如果当天已有了考勤记录,在界面上显示出相应列表。当考勤的员工在当天已经考勤,则提示用户该员工今天已经考勤。

删除考勤记录的业务逻辑是删除已有的考勤记录,当点击删除时提示用户是否真的有删除。删除成功后提示用户考勤信息删除成功。

查询考勤记录的业务逻辑是查看指定日期的考勤记录,通过在日期控件中选择指定日期来查看相应考勤记录。

统计考勤记录的业务逻辑是具有相应权限的用户可以根据员工信息,开始时间,结束时间来查看该员工在各段时间内的考勤情况,系统统计出考勤缺席的次数,迟到的次数,同时显示出考勤记录的详细列表。

3 系统实现

本系统实现了部门管理、员工管理、请假管理、考勤管理、工资管理、统计表报、公告通知管理、用户管理和权限管理。限于篇幅下面仅给出工资管理、统计表报、公告通知和用户与权限管理的实现。

3.1系统主界面

用户登录系统时需输入用户名和密码,若用户名或密码错误则分别提示用户名或密码错误。成功登录后进入如图7所示的系统控制台主界面。

图7 系统主界面

系统控制台分为三个部分:上部菜单栏、左部菜单栏和中间的工作区。上部菜单栏为基本功能,每个用户登录后都能看到,是用户自助管理模块。左部菜单栏会根据用户权限的不同,给出不同的功能菜单。中部工作区在初始化时显示系统的公告通知。

3.2工资管理

工资管理主要包括工资发放,工资报表查看,我的历史工资单等功能。如图8所示是工资发放界面,用户可选择月份来制定和发放本月工资,若该月已经发放,则提示用户该月工资已经发放。

图8 工资发放界面

在生成工资清单后,可以进入工资清单查询界面,进行相应信息的查询,只需要输入相关的月份,就能把该月的工资清单列出来。

3.3统计报表

统计报表模块主要以图表的形式展现相关统计信息,提高用户体验。如图9所示为部门员工分布饼状图,通过饼状百分比的形式,展示出各部门人员的统计分布情况。

图9 部门员工分布报表

图10是部门学历分布的柱状图,显示各部门员工的学历分布情况。如图所示纵坐标为人数,横坐标为各部门对应的学历分布。

图10 部门员工学历分布柱状图

3.4通知管理

通知管理模块主要实现系统通知发布和管理。通知发布界面如图11所示,用户需要选择通知的作用域,如本部门员工,所有员工等,根据选择作用域,该消息将发布给不同的用户。

图11 通知发布界面

用户可以对公德通知进行维护,包括编辑、修改和删除等。点击删除按钮时系统提示用户是否确认删除,删除成功后,提示用户删除成功。在消息修改界面中,用户发布的公告通知进行编辑修改。

3.5用户管理

用户管理控制台如图12所示。在该控制台中可以添加用户、删除用户等。点击添加员工链接时,进入添加页面。点击删除时弹出窗口提示用户是否确认删除,删除成功后提示用户删除成功。

图12 用户管理控制台界面

添加用户时,需要输入用户号,选择员工,输入密码和确认密码。在选择员工时,通过级联下拉框来选择。一个系统用户对应唯一的员工。所以下拉列表中只会显示未被注册为系统用户的员工。

3.6权限管理

用户权限管理的控制台如图13所示。在控制台中可以通过部门下拉列表来选择部门,来查看各部门用户的权限信息,同时可以通过复选框,来对用户进行授权或者权限收回。

图13 权限管理控制台界面

对用户授予什么样的权限,只选中对应的复选框中即可,系统将采用Ajax异步通信原理,进行授权。

在对用户进行授权后,当用户登录系统后,就会根据用户的不同权限显示不同的功能菜单。

本文的EMS采用当前J2EE技术平台中最为流行的S2SH整合架构设计开发,该开发模式通过将表示层、业务逻辑层,数据持久层分离解耦,简化了系统的开发,具有高性能,高可扩展性和高安全性的特点,同时便于管理和维护,提高了系统开发的效率,体现了Java EE卓越的技术优势。开发实践表明S2SH架构为开放、企业级和可伸缩的Java EE应用开发提供了高效支持,具有广阔的应用前景。应用测试表明,EMS的可用性,可访问性、和可靠性好,操作简单方便。

[1]周常兰, 陈宝峰. 企业管理信息化若干理论问题探讨[J].中国管理信息化, 2011,14(11):32-33.

[2] 钟泽秀. 基于S2SH框架的银行帐户管理系统的设计与实现[D]. 天津: 天津大学硕士论文, 2010,05.

[3] Terracotta, Inc. Ehcache v. 2.4 User Guide. [EB/OL]. (2011-05-17) [2011-05-20]. http://www.ehcache.org/ documentation/EhcacheUserGuide.pdf

[4] 李刚. 轻量级Java EE企业应用实战:第3版[M]. 北京: 电子工业出版社,2011:1-4.

[5] Direct Web Remoting [EB/OL].(2009-03-11) [2011-05-20]. http://directwebremoting.org/dwr/introduction/index.html

[6] 梁嘉盛. 企业信息系统体系结构及其构建研究[D].长春:吉林大学硕士学位论文,2007,05.

(责任编校:光明)

DesignandImplementationofEnterpriseManagementSystemBasedonS2SH

GUOGuang-jun1, 2, 3,HUANGJiong2,LIMei1,LIZhi-cheng2

(1.Loudi Vocational and Technical College, Loudi 417000, China; 2.Department of Computer Science and Technology, Hunan Institute of Humanities, Science and Technology, Loudi 417000, China; 3.Institute of Information Science and Engineering, Central South University, Changsha 410083, China)

In order to realize the highly effective management of enterprises, an enterprise management system is designed and implemented by using theStruts2-Spring-Hibernate(S2SH) framework, and theDirectWebRemoting(DWR),JFreeChartand other components. The system implements the enterprise department, staff, leave, check on work attendance, wages, notice to inform, report tables, user rights and other management functions. It uses that the three-level verification for security management strategy, which include the user validity detection, user rights verification and security audit. Use the two-level caches which includeHibernateSessionandEhcacheto improve response speed. Ajax asynchronous communication is used to improve the efficiency of network access. The system overall performance is optimized, and the satisfaction degree of user experience is high.

enterprise management; Struts2-Spring-Hibernate; Direct Web Remoting; Ajax

2011-06-18.

湖南省教育科学“十一五”规划重点资助课题(XJK08AXJ002),湖南省科技计划项目(2011FJ3033),湖南省教育厅优秀青年资助科研项目(11B104),娄底市科技计划资助项目,湖南人文科技学院教学改革研究项目(RKJGY1001).

郭广军(1971— ),男,湖南双峰人,娄底职业技术学院教授,硕士,CCF高级会员,ACM会员,研究方向:网络计算与分布计算、服务计算、云计算;黄炯(1988— ),男,湖南常德人,湖南人文科技学院计算机科学技术系教师,研究方向:网络与分布式数据处理。

TP311.52

A

1673-0712(2011)05-0120-05

猜你喜欢
考勤部门用户
联合监督让纪检部门不再单打独斗
基于人脸识别技术的考勤应用研究
智能人脸识别考勤系统
浅谈电子考勤的优势及简介
哪些是煤电部门的“落后产能”?
便携式指纹考勤信息管理系统设计
关注用户
医改成功需打破部门藩篱
关注用户
关注用户