前言:寻找写作灵感?中文期刊网用心挑选的管窥人事管理平台设计与实现,希望能为您的阅读和创作带来灵感,欢迎大家阅读并分享。
一、基于JavaEE规范的SSH开发模型
Java开发人员对SSH肯定不会陌生,SSH即所谓的Spring+Struts2+Hibernate三大开发框架,这三者相互独立,可以单独使用,而又能完全融合为一体,各司其职,因此无数Java架构师为其着迷,发挥出无穷的想象力,整合出很多优秀的开发模型。这些优秀的模型,如图1所示的开发模型让很多开发人员为其折服(其中JQUERY为前台JS框架)。
1.框架的功能介绍
本开发模型中的三个框架的功能与常规整合方案相一致。Spring担任容器身份,包含并管理应用对象的配置和生命周期,将简单的组件配置、组合成为复杂的应用。主要涉及两项强大技术,一个是控制反转(IOC),另一个是支持面向切面编程技术(AOP)。Struts2用来处理请求,它的主要功能可以用三个单词来形容:“Request”、“Control”、“Response”。涉及的主要技术是拦截器(Interceptor)机制,使得业务逻辑控制器能够与ServletAPI完全脱离开。Hibernate作为数据持久层的框架,可以屏蔽数据库差异,让开发人员使用对象编程思维操纵数据库。主要涉及的技术是缓存管理(CacheManager),事务管理(TransactionManager),延迟加载(lazyload)等。Hibernate-Generci-Dao包含GenericDao,GenericEntityDao两个类,前者负责实体无关DAO方法的实现,后者负责实体相关DAO方法的实现。两者都继承于HibernateDaoSupport,并且都基于泛型,使用相当方便。只需要Spring注入的SessionFactory和实体类名就可以通过放射机制获得实体对应的DAO对象。根据此思想,又加入继承自SimpleJdbcDaoSupport的SimpleJdbcDao自定义类来负责纯JDBC操作,这样就可以在Hibernate不满足需求的时候调用JDBC方法对数据库进行操作。最后将Hibernate-Generic-Dao和SimpleJdbcDao中常用的方法在IBaseDao接口中进行声明,并在BaseDao类中实现。这样就不需要对每个实体类重复编写DAO,大大减轻了对数据库CRUD的重复性编码工作。
2.主要特点
⑴摒弃传统的以hbm.xml对实体类进行映射,采用JPA标准的Annotation对实体类与数据表进行匹配映射,简洁明了,快捷,方便,易于维护;⑵对所有自己编写的实体类,Service类,Action类采用Spring的Annotation标准进行注解,加上Spring的组件扫描(component-scan)机制,减轻注册bean的工作量;⑶整合C3P0数据源,其强大的可配置性可以更好地提高数据库性能;⑷整合缓存框架EhCache,其快速、精干,多策略缓存等特点在业内受到一致好评。⑸基于切面技术配置事务管理,权限控制,日志存写;⑹基于泛型的IBaseDao可以减轻开发人员大量的重复性编码工作来注重业务逻辑。
1.课题业务需求分析
1.1薪资管理模块
⑴工资项目管理功能:对具体工资表中的各个工资项目进行设定及维护,须考虑到系统将来的扩展性,对于企业新的工资项目可以动态增加及删除、可以根据不同地区福利和信息制定模版,方便HR录入。⑵固定工资管理功能:批量维护员工的固定工资信息,如基本工资、采暖补贴等。⑶工资发放管理功能:工资进行结算、发放的管理。可以对员工的各个工资项目进行批量计算,例如对某个部门的员工工资进行计算,包括考勤工资、五险一金、应发金额、应扣金额及实发金额等。⑷查询统计功能:要求既可以单项查询,比如查询某个员工的工资情况等;也可以多项查询,比如某部门员工在某个月的工资情况等。某个部门或整个公司在某月或者某年的工资汇总统计等。⑸报表打印功能:每月发放工资时,要求能够打印本月的工资表、工资统计表和随工资发给每个职工的工资条。
1.2绩效管理模块
⑴绩效计划制定功能:绩效计划中,每个计划都应含有可以动态添加、删除的选项,每个选项都有不同的评分与其对应。⑵绩效计划实施功能:将绩效计划分配到不同的岗位,并根据不同岗位设置不同的监督人员、一个岗位可以允许多个绩效考核。设置考核时间,超过考核时间未自评的予以自动放弃并按零分处理,监督人员未在规定时间进行考核评价的,扣除监督人员的相应职能绩效分数(所有绩效分数,为零后不再扣除)。⑶绩效考评:绩效考评分为自评和监督考评,都需在绩效实施时间内完成。考评直接根据绩效计划相应选项选择即可,自评(60%)+监督考评(40%)=总绩效分数100%。如果超过要求时间,则绩效自动关闭,不允许补办,分数为零。⑷绩效查询:不同人员登录查看不同的绩效情况,普通职工只能查看自己的绩效情况,监督岗可以查看自己负责的绩效相关情况。管理员和领导岗可以查看所有绩效情况。⑸提醒功能:对需要自评或者考核评价的人员,在他们登录系统后就可以看到需要自己完成的工作导航,方便或指引登录人员完成工作。
2.课题平台需求分析
在获得上述业务需求后,还进行了平台需求分析。与薪资管理模块,绩效管理模块必然挂钩的因素是“人”,即企业员工,以及整个企业的组织结构,因而涉及到员工与部门管理,另外与绩效薪资项相关的考勤信息,奖惩信息也需要维护,所以添加人事管理模块。另外,作为一个平台,必须安全可靠,因此我们又添加了一个功能模块叫做系统管理,主要负责用户,角色,权限的管理;而日志等管理,作为系统的安全支撑是必须的。
2.1人事管理模块
⑴部门信息管理功能:按照部门显示部门员工列表,可添加部门员工信息,可对部门信息、员工信息进行维护操作。⑵考勤管理:分为请假管理和加班管理,记录信息准确详细,请假信息还需要有销假操作,从而可以更加公平地计算绩效薪资项。⑶奖惩管理:企业员工在获得某项成绩时要适当进行奖励,而对触犯公司员工章程,或做出对企业有损失的行为要有相应的惩罚,这些信息在此维护,并且与绩效薪资项挂钩。
2.2系统管理模块
⑴日志功能:记录管理员进行的所有操作,记录操作人,操作时间,操作方法。⑵角色管理:维护系统的角色信息,基于角色的权限控制。⑶用户信息管理功能:用户信息维护。
3.平台架构
综合以上需求分析,总结出如图3所示的平台架构。我们选择其中部分功能模块进行介绍。⑴考核指标管理:首先将考核指标分成不同的类别,比如团队协作,工作态度,专业技能等类别,然后在每种类别中又分成定量和定性指标,指标可维护,并且指标分类也可维护;⑵考核模板管理:即为每个岗位定制一套指标集合,在创建考核计划时可以直接选择模板为其生成考核问卷,同时可以添加或者删除指标;⑶考核计划管理:选择需要考核的岗位,并为其定制考核指标;⑷嘉奖及扣款标准管理:在考核结束后将每个人的分数对照指标进行嘉奖及扣款;⑸月薪资管理:创建月薪资计划,查询每个月的薪资记录,为员工批量或者单独设置薪资项的值,计算出相应的项目,将薪资记录导出到Excel以便打印,进行结账或者反结账操作,向员工发送薪资提示邮件;⑹津贴制管理:包括职务津贴,职称津贴,学历津贴,工龄津贴四项,按照不同标准进行维护;⑺薪资数据分析:以图表形式展示部门总薪资的月度折线图,职务月平均工资的柱状图,还有公司薪资按照部门的分布图等;⑻预备薪资项管理:系统设置了十个预备的薪资项,可以设置其计算方式加或减,修改薪资项名称,启用或者不启用;⑼薪资计算公式管理:包括五险一金的计算公式,个人所得税的计算公式,党费计算方式,以及个税9级超额累进税率等维护操作;(10)角色管理:为角色添加删除用户,为角色授权;(11)节点管理:由于本系统采用RBAC的权限控制思想,节点作为功能点被授予给角色。
4.前台考核模块
绩效考核功能,即员工自评后上级领导再对其进行评价,最终生成考核成绩,并将成绩按照标准折算成当月的考核薪资,计入薪资项中。在员工登录前台时,系统会弹出当月考核的导航,方便员工进行自评以及领导对员工评价。
5.开发模型优势
⑴将RBAC权限管理与开发框架中Spring的AOP技术结合,在ServiceImpl层设置切点,判断当前用户是否拥有权限,有则放行,无则抛出异常让Action捕捉,返回提示页面;⑵在Action和Service中需要ServiceImpl对象时不再需要自己通过new给出,只需要@Resource对需要的对象进行注解,即可让Spring提供;⑶运用@TableGenerator注解,即可不再为Oracle自增长编写序列;⑷Struts2可以利用org.apache.struts2.dispatcher.ChartResult返回JFreeChart的图表,无需配置数据流。
三、结束语
本系统对薪资进行管理,提高了工作效率,实现了工资管理工作流程的系统化、规范化和自动化。在绩效系统模块中,以模板创建考核问卷,指标分为定量和定性,考核分为自评和上级评价,这些实现方式使得系统在操作便捷性,考核公平性,数据可分析性等方面有了很大的提高。其中丰富的数据图表,是提高数据可分析性的关键。一个优秀的开发模型可以提高开发效率,降低开发成本,充分利用开发模型,将业务逻辑与模型相结合,可以降低业务逻辑实现的复杂度。本课题使用的开发模型在DAO层有很好的封装性,但在Action层和Service层,乃至前台JS的代码仍然有着很高的重复性,这可以作为下一阶段研究的方向。
作者:张晓晨 杭润东 徐金宝 张建德 单位:南京工程学院计算机工程学院