基于JavaEE技术的企业人力资源薪酬管理系统的设计与实现毕业论文.doc_第1页
基于JavaEE技术的企业人力资源薪酬管理系统的设计与实现毕业论文.doc_第2页
基于JavaEE技术的企业人力资源薪酬管理系统的设计与实现毕业论文.doc_第3页
基于JavaEE技术的企业人力资源薪酬管理系统的设计与实现毕业论文.doc_第4页
基于JavaEE技术的企业人力资源薪酬管理系统的设计与实现毕业论文.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中北大学2014届毕业设计说明书基于JavaEE技术的企业人力资源薪酬管理系统的设计与实现毕业论文目 录1 引言11.1 项目开发背景11.2 项目开发的意义11.3 国内外状况32 系统使用相关技术52.1 struts框架52.2 JSP62.3 MySql数据库的简介和好处73 系统分析93.1 需求分析93.1.1 应用需求分析93.1.2 系统功能需求93.1.3 薪酬管理模块103.2 预期设计目标103.3 可行性分析103.3.1 技术可行性103.3.2 经济可行性113.3.3 社会可行性114 系统设计124.1 系统总体设计124.1.1 薪酬系统整体业务流程描述124.2 系统各模块的详细设计134.2.1 工资项目管理模块134.2.2 固定工资管理模块14第 I 页 共 II 页4.2.3 导入项目数据录入模块144.2.4 工资结算管理模块154.2.5 报表管理164.3 系统管理模块164.4 数据库设计174.5 代码展示195 系统成果展示245.1 系统成果展示245.1.1登录界面245.1.2登录主页面245.1.3 工资管理模块255.1.4员工管理模块255.1.5系统管理模块256 系统测试276.1 软件测试的目的276.2 软件测试277 结 论30参考文献32致 谢34第 II 页 共 II 页1 引言 1.1 项目开发背景目前,网络的发展已呈现出商业化、全民化、全球化的趋势,网络已成为企业进行竞争的战略手段。企业经营的多元化拓展,企业规模的进一步扩大,对于企业的管理、业务扩展、企业品牌形象等提出了更高的要求。在以信息技术为支撑的新经济条件下,越来越多的企业利用起网络这个有效的工具。目前,全球范围内的企业内部组织正在发生巨变,未来企业成功的关键将主要依靠人力资源,人才之争已经成为市场竞争的核心内容之一,以人为本成为企业立足和发展的根本【1】。有效地管理企业的人力资源,不仅能节省大量的人力物力,而且能够帮助企业制订计划,激发员工的积极性,充分发挥每员工的潜能,为企业创造更大的价值。本系统的开发能够改善公司原有的薪酬管理方式,把人力资源管理人员从繁重的手工劳动中解脱出来,为公司带来更大的经济利益。1.2 项目开发的意义随着时代的发展,社会的进步,越来越多的企业建立、发展、壮大、成熟。企业国民经济的基本单元,企业发展得越好,经济进步就越快。然而随着企业的发展,人的增多,每年人力资源管理的成本也会不断地增加,这一问题不仅耗费企业大量的资金,也耗费了大量的人力【2】。当企业规模较小时,人力尚且比较容易完成信息管理,但随着企业规模增大,人员增多,老式的纸质管理方法就会出现许多弊端,比如说,保存困难、不易查询、耗费大量人力却仍然工作效率低下,工作出错率增高等,这种方法已经跟不上时代人力资源管理系统的发展。历史可以追溯到20世纪60年代末期。由于当时计算机技术已经进入实用阶段,同时大型企业用手工来计算和发放薪资既费时费力又非常容易出差错,为了解决这个矛盾,第一代的人力资源管理系统应运而生。当时由于技术条件和需求的限制,用户非常少,而且那种系统充其量也只不过是一种自动计算薪资的工具,既不包含非财务的信息,也不包含薪资的历史信息,几乎没有报表生成功能和薪资数据分析功能。但是,它的出现为人事的管理展示了美好的前景,即用计算机的高速度和自动化来替代手工的巨大工量,用计算机的高准确性来避免手工的错误和误差,使大规模集中处理大型企业的薪资成为可能。第二代的人力资源管理系统出现于20世纪70年代末。由于计算机技术的飞速发展,无论是计算机的普及性,还是计算机系统工具和数据库技术的发展,都为人力资源管理系统的阶段性发展提供了可能。第二代人力资源管理系统基本上解决了第一代系统的主要缺陷,对非财务的人事信息和薪资的历史信息都给予了考虑,其报表生成和薪资数据分析功能也都有了较大的改善。但这一代的系统主要是由计算机专业人员开发研制的,未能系统地考虑人事的需求和理念,而且其非财务的人事信息也不够系统和全面。人力资源管理系统的变革出现在20世纪90年代末【3】。由于市场竞争的需要,如何吸引和留住人才,激发人事的创造性、工作责任感和工作热情已成为关系企业兴衰的重要因素,人才已经成为企业最重要的资产之一。公正、公平、合理的企业管理理念和企业管理水平的提高,使社会对人力资源管理系统有了更高的需求;同时由于个人电脑的普及,数据库技术、客户/服务器技术,特别是Internet/Intranet技术的发展,使得第三代人力资源管理系统的出现成为必然。第三代人力资源管理系统的特点是从人事管理的角度出发,用集中的数据库将几乎所有与人事相关的数据(如薪资福利、招聘、个人职业生涯的设计、培训、职位管理、绩效管理、岗位描述、个人信息和历史资料)统一管理起来,形成了集成的信息源。友好的用户界面,强有力的报表生成工具、分析工具和信息的共享使得人事管理人员得以摆脱繁重的日常工作,集中精力从战略的角度来考虑企业人事规划和政策。人力资源管理系统是一个企事业单位不可缺少的部分,它的内容对于企事业单位的决策者和管理者来说都至关重要,所以人力资源管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件信息,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难【4】。1.3 国内外状况随着科学技术的日益提高,计算机科学逐渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 作为计算机应用的一部分,使用计算机对人力资源信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人力资源管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。因此,开发这样一套人力资源管理软件成为很有必要的事情5。21世纪是信息科学技术飞速发展的时代,信息技术的应用可谓空前广泛,网络的发展更是促进了信息化的发展。而全球经济的一体化与信息化又是相辅相成的,所以正确客观的认识信息化是必要的。随着改革开放的深入,人力资源管理在企业中发挥越来越重要的作用,薪酬管理尤为重要,已成为企业生存发展的第一资源。如何管理好企业的人力资源,最大限度的发挥个人的智慧和团队的力量,是现代企业管理的核心内容,是提高企业劳动生产率,增加利润的最有效途径,是保持企业核心竞争力的优势所在。当前,我国正处于大力推行企业信息化管理的浪潮中,信息化在我国国民经济领域正发挥着越来越重要的作用,信息化极大地推动着我国工业化和现代化的进程。近些年,一些较大的企业经常自行开发人力资源管理软件,这样做有一定的好处,如成本低廉,上级单位一次开发,基层单位可以重复利用,而且一定程度上能满足个性化需求。但是实践证明,这种开放方式一般比较难以成功6。一方面,企业内部开发往往缺乏项目经验,导致与最终用户的需求相悖;另一方面,这种形式的软件开发不参与市场竞争,仅仅是供给内部使用,有可能导致开发人员敷衍了事,开发的系统不能真正起到作用。与此同时,由于我国正处在由传统管理方式向人力资源管理过渡的转型时期,企业中的管理方法从思想到行动都发生着巨大的变化,处于摸索中的人力资源管理随时都可能发生这样那样的变革,这就对人力资源管理软件提出了巨大的挑战,软件如果不能够随着变革而自行适应,那么,这个软件就没有生命力。 国外人力资源管理系统与国内的相比,优势主要体现为:具有雄厚的实力,在技术力量的培养、研发、市场推广等方面大力投入;具有一定包括硬件厂商、数据库公司、咨询公司在内的合作伙伴,形成强强联手的格局【7】。国外人力资源管理系统伴随着管理理论的发展,其设计蕴涵了先进的管理理念;国外人力资源管理薪酬系统起步较早,完整性和成熟度高,开发出了适用于不同行业的解决方案。西方发达国家已广泛使用人力资源管理系统,其他一些软件系统如ERP(企业资源计划)、WFM(工作流管理)等在开发过程中预留了与人力资源管理系统的接口,使得国外的人力资源管理系统今后的扩展难度降低。国外人力资源管理薪酬系统对于基于互联网技术的研究和支持不遗余力,以PeopleSoft为例,其最新版本是完全基于互联网架构的版本,使得其易用性大大加强。2 系统使用相关技术2.1 struts框架Struts最早是作为Apache Jakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServer Pages 、Servlet、标签库以及面向对象的技术水准。Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。这个框架之所以叫Struts,是为了提醒我们记住那些支撑我们房屋,建筑,桥梁,甚至我们踩高跷时候的基础支撑。这也是一个解释Struts在开发Web应用程序中所扮演的角色的精彩描述。当建立一个物理建筑时,建筑工程师使用支柱为建筑的每一层提供支持。同样,软件工程师使用Struts为业务应用的每一层提供支持。它的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。我们仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作【12】。如果想混合使用Servlets和JSP的优点来建立可扩展的应用,Struts是一个不错的选择。Struts是Apache软件基金下Jakarta项目的一部分。除Struts之外,还有其他成功的开源产品,包括Tomcat,Ant 和Velocity。2000 年Craig R. McClanahan 先生贡献了他编写的JSP Model 2 架构的Application Framework原始程序代码给Apache 基金会,成为Apache Jakarta 计划Struts Framework前身【13】。Struts是Apache 基金会Jakarta 项目组的一个Open Source 项目,它采用MVC模式,能够很好地帮助java 开发者利用J2EE开发Web应用。和其他的java架构一样,Struts 也是面向对象设计,将MVC模式分离显示逻辑和业务逻辑的能力发挥得淋漓尽致。Structs 框架的核心是一个弹性的控制层,基于如 Java Servlets,JavaBeans,ResourceBundles与XML等标准技术,以及 Jakarta Commons 的一些类库。Struts由一组相互协作的类(组件)、Servlet以及jsp tag lib组成。基于struts构架的web应用程序基本上符合JSP Model2的设计标准,可以说是一个传统 MVC设计模式的一种变化类型14。除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。Taglib是Struts的标记库,灵活运用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。MVC即Model-View-Controller的缩写,是一种常用的设计模式。MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。Struts 是MVC的一种实现,它将 Servlet和 JSP 标记(属于 J2EE 规范)用作实现的一部分【15】。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。服务器启动后,根据web.xml加载ActionServlet读取struts-config.xml文件内容到内存。2.2 JSPJSP(Java Server Page),是一种实现普通静态HTML和动态HTML混合编码的技术。JSP的基础是Java Servlet,将Java Servlet与JSP配合使用可以较好的完成大型的web应用程序开发。JSP是sun公司在1998年提出的一种动态网页技术,其本质还是servlet,jsp最终会被转化成标准的servlet。对于我们熟知的html,它属于网页文件,而.asp、.php 、 .jsp 和.cgi 则属于镶嵌型的脚本语言,是建立在B/S架构上的web服务器端的脚本程序。服务器对待网页方式的不同决定了该网页是属于静态网页还是动态网页。Jsp设计目的在于简化表示层,实质为html与java的结合。JSP页面的成分分为三种:脚本元素、指令、动作。JSP还继承了java面向对象的优点,极大方便了人员使用。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。2.3 MySql数据库的简介和好处在MySQL数据库中,支持单项、异步复制。在复制过程中,一个服务器充当主服务器,而另外一台服务器充当从服务器。如下图所示。此时主服务器会将更新信息写入到一个特定的二进制文件中。并会维护文件的一个索引用来跟踪日志循环。这个日志可以记录并发送到从服务器的更新中去。当一台从服务器连接到主服务器时,从服务器会通知主服器从服务器的日志文件中读取最后一次成功更新的位置。然后从服务器会接收从那个时刻起发生的任何更新,然后锁住并等到主服务器通知新的更新。好处有:一是实现服务器负载均衡通过服务器复制功能,可以在主服务器和从服务器之间实现负载均衡。即可以通过在主服务器和从服务器之间切分处理客户查询的负荷,从而得到更好的客户相应时间。通常情况下,数据库管理员会有两种思路。在主服务器上只实现数据的更新操作。包括数据记录的更新、删除、新建等等作业。而不关心数据的查询作业。数据库管理员将数据的查询请求全部转发到从服务器中。这在某些应用中会比较有用。如某些应用,像基金净值预测的网站。其数据的更新都是有管理员更新的,即更新的用户比较少。而查询的用户数量会非常的多。此时就可以设置一台主服务器,专门用来数据的更新。同时设置多台从服务器,用来负责用户信息的查询。将数据更新与查询分别放在不同的服务器上进行,即可以提高数据的安全性,同时也缩短应用程序的响应时间、提高系统的性能。二是在主服务器上与从服务器切分查询的作业。在这种思路下,主服务器不单单要完成数据的更新、删除、插入等作业,同时也需要负担一部分查询作业。而从服务器的话,只负责数据的查询。当主服务器比较忙时,部分查询请求会自动发送到从服务器重,以降低主服务器的工作负荷。当然,像修改数据、插入数据、删除数据等语句仍然会发送到主服务器中,以便主服务器和从服务器数据的同步【16】。而如果使用复制来实现对数据的备份,就可以在从服务器上对数据进行备份。此时不仅不会干扰主服务气的正常运行,而且在备份过程中主服务器可以继续处理相关的更新作业。同时在数据复制的同时,也实现了对数据的异地备份。除非主服务器和从服务器的两块硬盘同时损坏了,否则的话数据库管理员就可以在最短时间内恢复数据,减少企业的由此带来的损失。通过这种方式进行异地备份时,主要需要注意如下二个细节:1、是数据更新的时间。如果要采取这种方式进行备份,那么对于数据同步的时间,要小于等于数据备份的周期。只有如此,才能够确保最近更新的数据被正确的备份。此时即使主服务器出现了故障,用户丢失的也只是最近一个备份周期的数据。2、是从服务器上硬盘的空间。根据一般用户的心态,从服务器的配置往往比主服务器要低。但是现在从服务器要承担起数据备份的任务,为此对于硬盘的空间要求就要比主服务器要高。其不但要能够存储主服务器上的数据,而且还要对其进行备份。为此一般要求,从服务器上的存储空间是主服务器上的两倍。否则的话,就容易出现磁盘空间不足而导致备份作业失败。好处三:提高数据库系统的可用性数据库复制功能实现了主服务器与从服务器之间数据的同步,增加了数据库系统的可用性。当主服务器出现问题时,数据库管理员可以马上让从服务器作为主服务器,用来数据的更新与查询服务。然后回过头来再仔细的检查主服务器的问题。此时一般数据库管理员也会采用两种手段。一是主服务器故障之后,虽然从服务器取代了主服务器的位置,但是对于主服务器可以采取的操作仍然做了一些限制。如仍然只能够进行数据的查询,而不能够进行数据的更新、删除等操作。这主要是从数据的安全性考虑。如现在一些银行系统的升级,在升级的过程中,只能够查询余额而不能够取钱。这是同样的道理。二是从服务器真正变成了主服务器。当从服务器切换为主服务器之后,其地位完全与原先的主服务器相同。此时可以实现对数据的查询、更新、删除等操作。为此就需要做好数据的安全性工作。即数据的安全策略,要与原先的主服务器完全相同。否则的话,就可能会留下一定的安全隐患。3 系统分析3.1 需求分析 需求分析是软件开发最基本的,也是最重要的一点。它是所有开发设计的前提,要是在没有搞清用户需求之前,就动手设计编程,其后果是无论程序做的如何精妙都是徒劳的。 需求分析的基本任务的准确的回答“系统必须做什么?”【8】。虽然在可行性分析阶段已经粗略了解了用户的需求,但可行性研究的基本目的是用较小的成本在较短的时间内确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。需求分析的结果是系统开发的基础,关系到工程的成败和软件产品的质量,因此,必须对软件需求分析进行严格的审查分析。3.1.1 应用需求分析 对于现在的企业,传统的手工薪酬管理已经不能适应企业的发展,公司在管理方面面临严重的问题。薪酬管理体制要花费大量的人力、物力来管理员工薪金等情况,既浪费了时间、又浪费人力和物力,而且数据的准确性低。同时,由于管理制度的落后,有些员工表现出对工作不积极,在工作中偷懒、违反公司制度等情况。因此,开发一个操作简单、功能强大的管理系统是十分必要的。 3.1.2 系统功能需求 由于本系统存储了关于公司的很多重要的信息,因此对于本系统的管理需要考虑的关键就是安全的问题。本系统通过对不同的用户设置不同的访问权限来保证数据库的安全,管理员可以对系统进行增加、删除、修改等操作,而对于普通的用户,只能浏览一些信息,不能执行任何的修改数据库信息的操作。 为了实现企业对员工薪资的有效管理,对员工奖惩信息的管理总体功能有:1、公司(1)部门管理:一个公司包含有多个部门,比如策划部,宣传部,外交部等,不同部门因工作性质不同而有所差异,公司需对各个部门进行管理。 (2)员工管理:公司内不同部门所招收的员工在各方面都有所不同,比如员工人数、员工所具备的知识及工作经验、员工的工资等,公司需对不同的员工进行差异性管理。2、工资管理(1)工资项目管理:对工资各个项目进行系统管理,包括底薪、提成、考勤、出差奖励等。(2)固定工资管理:对固定的工资进行管理,固定工资即公司所有成员的最低工资。(3)导入数据管理(工资项目):对工资项目各部分组成导入相应的数据,通过数据库对所有数据进行统一管理。(4)工资计算管理:工资计算按照各工资项目的比例进行计算,如考勤占总工资的百分比,养老保险应扣除应得工资酬金的百分比等,将所有工资项目考虑在内,对每位员工的工资进行最后的计算与统计。(5)报表管理:以表格的形式对最终工资进行统计。3、系统功能 修改密码。3.1.3 薪酬管理模块薪酬管理系统实现对企业员工薪酬的管理,包括了包括工资项目管理、固定工资管理、导入项目数据录入、工资结算管理、报表管理共五个功能模块。3.2 预期设计目标开发一个基于JavaEE的企业人力资源管理薪酬系统,为企业提供一个便捷高效的管理的方案,使薪资管理系统化、规范化、自动化。使得安装、使用、维护、升级十分简单。 3.3 可行性分析3.3.1 技术可行性 技术可行性:本系统主要采用JSP技术开发,使用Struts 实现MVC框架的设计,与后台数据库的连接采用Hibernate。由于JSP的动态内容是Java 代码实现的,而Java 又具有一次编写多处运行的特点,因此采用JSP开发的系统具有平台无关性,可以在不同的操作系统上运行。Struts是一种基于MVC经典设计模式的框架,在当前Web开发中已经发展得比较成熟. 它可以最大限度地实现组件的复用,具有很好的可重用性和可扩展性,有利于项目的扩展和二次开发【9】。Hibernate本质上是一个面向Java开发环境的对象/关系数据库映射工具,借助Hibernate对象/关系数据库映射技术,可以非常轻松地将以面向对象思想封装的对像的各个状态数据映射到基于SQL的关系模型数据结构中去.由于本系统所采用的技术已经发展得比较成熟,因此本系统在技术上是可行的。3.3.2 经济可行性 经济可行性:随着计算机技术的飞速发展和企业间竞争的加强,目前计算机的硬件和软件的价格非常低廉,因此本系统的开发和运行不需要花费很大的成本。但是本系统运行将会为企业带来很大的经济利益,主要表现在以下几个方面: 一,本系统可以代替人工进行许多复杂、重复的信息的记录和统计工作; 二,管理人员可以方便的的对公司的员工、人才的招骋、培训计划、员工薪金等进行管理; 三,普通员工可以方便的从本系统了解到公司的培训计划、奖惩信息、个人薪金等信息; 因此,本系统在经济上是可行的【10】。 3.3.3 社会可行性 目前,全球范围内的企业内部组织正在发生巨变,未来企业成功的关键将主要依靠企业人力资源。有效地管理企业的人力资源,为企业提供强有力的储备力量将成为企业发展的主动力。通过人力资源的有效管理能够激发员工的积极性,充分发挥每个员工的潜能,为企业创造更大的价值。因此本系统的开发是适应时代发展的。4 系统设计 4.1 系统总体设计 由于本系统存储了关于公司的很多重要的信息,因此对于本系统的管理需要考虑的关键就是安全的问题。本系统通过对不同的用户设置不同的访问权限来保证数据库的安全,管理员可以对系统进行增加、删除、修改等操作。工资管理系统系统管理公司管理工资管理修改密码导入数据管理报表管理工资计算管理固定工资管理工资项管理员工管理部门管理 图4.1 系统总体功能图4.1.1 薪酬系统整体业务流程描述业务流程图是一种描述系统内各单位、人员之间业务关系、作业顺序和管理信息流向的图表,利用它可以帮助分析人员找出业务流程中的不合理流向,它是物理模型。业务流程图主要是描述业务走向。业务流程图描述的是完整的业务流程,以业务处理过程为中心,一般没有数据的概念。本系统的整理业务流程如图4.2 业务流程图所示 图4.2业务流程图系统管理员登入系统,选择进行权限管理,角色管理,用户管理以及日志管理。4.2 系统各模块的详细设计 系统薪酬管理系统实现对企业员工薪酬的管理,包括了包括工资项目管理、固定工资管理、导入项目数据录入、工资结算管理、报表管理共五个功能模块。4.2.1 工资项目管理模块需求描述,如表4.1工资项目管理需求表 表4.1工资项目管理需求表 功 能 需 求功能名称工资项目管理优先级高参与者工资专员 业务背景工资项目管理是对企业工资系统中各个工资项目进行动态维护管理。工资项目分为4个类型:固定项目、计算项目、导入项目、实发项目。功能说明1、 增加工资项目2、 修改工资项目3、 删除工资项目4、 查询工资项目5、 设定计算项目公式:计算项目的公式设定必须参照固定项目和导入项目约束条件1、 工资项目名称必须唯2、 实发项目只能有一个相关查询查询工资项目列表其他需求无4.2.2 固定工资管理模块如表4.2为固定工资管理需求表 表4.2固定工资管理需求表功能名称固定工资管理优先级高参与者工资专员 业务背景固定工资管理是对企业员工的固定工资信息的维护,工资专员可以对某一部门的员工的固定工资进行批量维护。功能说明1、 固定工资维护:选定部门,对某个部门的员工的固定工资信息(基本工资以及补贴)进行批量录入或者修改。2、 查询固定工资:对某个部门的员工的固定工资项目进行查询。约束条件1、 要求员工编号唯一2、 固定工资管理是对工资项目中类型为固定项目的工资进行设定。相关查询查询员工信息列表:可以根据部门名、员工编号查询员工信息列表。查询固定工资信息列表:可以根据部门名、员工编号、工资区间查询固定工资信息列表。其他需求无4.2.3 导入项目数据录入模块 如表4.3为导入项目数据需求表 表4.3导入项目数据需求表功 能 需 求功能名称导入项目数据录入优先级高参与者工资专员业务背景主要用来录入员工的导入项目数据。功能说明1、 导入项目数据维护:对某个部门某月的导入项目数据进行维护,如考勤信息批量录入或者修改2、 查询导入项目数据:对导入项目数据进行查询,如查询某部门某月的考勤信息。约束条件导入项目数据是工资项目中类型为导入项目的数据的录入相关查询1、 查询员工信息列表:可根据部门名、员工编号查询员工信息列表。2、 查询导入数据列表:可以根据部门名、员工编号、月份查询导入数据列表其他需求无4.2.4 工资结算管理模块如表4.4为工资结算管理需求表 表4.4工资结算管理需求表功 能 需 求功能名称工资结算管理优先级高参与者工资专员 业务背景对某个部门的员工某月的工资进行批量结算管理。工资发放后,不能再进行结算或者修改。功能说明1、 计算工资:选定部门,选定发放月份,点击计算按钮,系统自动对类型为计算项目的工资进行计算。利用计算项目的公式和基本工资得到五险一金。利用计算项目的计算公式和导入项目数据计算考勤工资。最后利用计算得到的五险一金和考勤工资以及工资中的其他项目(基本工资补贴),根据增减项进行实发工资的计算2、 暂存工资:对计算得到的工资进行临时保存,暂存的工资可以修改。3、 工资发放:一个部门一个月进行一次工资发放,发放完工资就不能进行结算或修改了。约束条件工资结算管理模块用到的数据参照工资项目管理、固定工资管理、导入项目数据录入。相关查询查询员工信息列表:根据部门名称查询员工信息列表其他需求无4.2.5 报表管理如表4.5为报表管理需求表 表4.5报表管理需求表功 能 需 求功能名称报表管理优先级高参与者工资专员业务背景系统定期提供一些报表,如查询某月某部门的员工的工作表,统计平均工资以及最高最低工资。功能说明1、 工资查询报表2、 工资统计报表约束条件无相关查询无其他需求无4.3 系统管理模块本模块是连接其他所有模块的核心模块,是整个项目的入口,是连接其他模块的接口。用户管理模块系统管理员可以修改用户账号密码等所有信息、用户自己可以修改密码等。需求描述,如表4.6用户管理需求表所示 表4.6用户管理需求表功能需求功能名称用户管理优先级高参与者系统管理员,普通用户业务背景有修改选项,管理员修改用户账号密码、用户自己修改密码等功能说明1. 系统管理员修改所有用户信息和密码2. 普通用户修改自己的信息和密码3. 系统管理员可以增加/删除用户约束条件1. 系统管理员和普通用户的判别相关查询无其他需求无4.4 数据库设计系统采用MySQL作为数据库,MySQL可以完成事务处理、存储和分析数据、以及创建新的应用程序。MySQL是一种能够满足联机事务处理(OLTP)和联机分析处理(OLAP)环境中数据存储要求的一系列产品和技术【11】。MySQL是一款优秀的关系型数据库的典范。它能够管理用于事务和分析的数据存储,响应客户应用程序的请求,使用Transact-SQL、扩展标记语言(XML)、多维表达式(MDX)或SQL分布式管理对象(SQL-DMO)在客户和服务器之间发送请求。根据系统功能模块的设计,总共需要5张表,分别是:部门表、员工表、工资表、工资项目表、管理员表。然后再根据各表间的关系通过建立约束条件来创建表之间的联系,以确保数据的完整性。1、部门表(s_department)的设计,如表4.7部门表所示 表4.7 部门表字段名称数据类型长度主键中文含义idint11Pnamevarchar200 部门名称superioridint11上级部门idnumberofpeopleint11部门人数3、 员工表(s_employee)的设计,如表4.8员工表所示表4.8 员工表字段名称数据类型长度主键中文含义idint11Pnamevarchar45员工姓名identityvarchar45员工编号sexvarchar45性别birthdayvarchar45生日departmentint11所属部门telephonevarchar45联系电话4、 工资表的(s_salary)的设计,如表4.9工资表所示 表4.9 工资表英文字段名称字段类型长度主键中文含义idint11Pemployeevarchar45 员工姓名yearint11年份monthint11月份departmentidint11部门idstatevarchar450暂存工资,1已发放工资salary1decimal15,2基本工资salary2decimal15,2餐饮补贴salary3decimal15,2交通补贴salary4decimal15,2养老保险salary5decimal15,2医疗保险salary6decimal15,2失业保险salary7decimal15,2工伤保险salary8decimal15,2生育保险salary9decimal15,2住房公积金salary10decimal15,2病假天数salary11decimal15,2事假天数salary12decimal15,2迟到次数salary13decimal15,2早退次数salary14decimal15,2加班天数salary15decimal15,2实发工资5、 管理员表(s_user)的设计,如表4.10管理员表所示表4.10管理员表英文段名称字段类型长度主键中文含义idint11Pnamevarchar45账号passwordvarchar45密码infoidint11员工信息id6、 工资项目表 (s_salary_type)的设计,如表4.11工资项目表所示表4.11工资项目表英文字段名称字段类型长度主键中文含义idint11Pnamevarchar45名称sshowvarchar45是否在工资条中显示formularyvarchar45计算公式addorreducevarchar45增减项 basetypevarchar45基本类型:1固定工资,2计算工资,3导入项目identifiervarchar45项目编号4.5 代码展示import java.math.BigDecimal;/* * DESC:采用BigDecimal进行运算的简单封装 * author Goma(OMA1989YEAH.NET)* */ public class ProgramService /* * param:String * 将Null转为Zero * return 0 */ private String null2zero(String str) if (str = null | .equals(str) str = 0; return str; /* * 提供精确的加法运算 * param v1 被加 * param v2 加数 * return 两个参数的和 */ public String add(String v1, String v2) v1 = null2zero(v1); v2 = null2zero(v2); BigDecimal b1 = new BigDecimal(v1); BigDecimal b2 = new BigDecimal(v2); return b1.add(b2).toString(); /* * 提供精确的加法运算 * param params * return 两个参数的和 */ public String add2(String params) String v0 = null2zero(params0); BigDecimal b0 = new BigDecimal(v0); for (int i = 1; i params.length; i+) String v1 = null2zero(paramsi); b0 = b0.add(new BigDecimal(v1); return b0.toString(); /* * 提供精确的减法运算 * param v1 被减 * param v2 减数 * return 两个参数的差 */ public String sub(String v1, String v2) v1 = null2zero(v1); v2 = null2zero(v2); BigDecimal b1 = new BigDecimal(v1); BigDecimal b2 = new BigDecimal(v2); return b1.subtract(b2).toString(); /* * 提供精确的减法运算 * param params * return 传入参数 下标为0,与其他参数的差 */ public String sub2(String params) String v0 = null2zero(params0); BigDecimal b = new BigDecimal(v0); for (int i = 1; i params.length; i+) String v1 = null2zero(paramsi); b = b.subtract(new BigDecimal(v1); return b.toString(); /* * 提供精确的乘法运算 * param v1 被乘 * param v2 乘数 * return 两个参数的积 */ public String mul(String v1, String v2) v1 = null2zero(v1); v2 = null2zero(v2); BigDecimal b1 = new BigDecimal(v1); BigDecimal b2 = new BigDecimal(v2); return b1.multiply(b2).toString(); /* * DESC:提供精确的乘法运算 * param params * return 传入参数的积 */ public String mul2(String params) String v0 = null2zero(params0); BigDecimal b1 = new BigDecimal(v0); for (int i = 1; i params.length; i+) String v1 = null2zero(paramsi); b1 = b1.multiply(new BigDecimal(v1); return b1.toString(); /* * 提供(相对)精确的除法运算 当发生除不尽的情况时,由scale参数 * 定精度,以后的数字四舍五入 * param v1 被除 * param v2 除数 * param scale 表示表示 精确到小数点以后几位 * return 两个参数的商 */ public String div(String v1, String v2, int scale) if (scale 0) throw new IllegalArgumentException(The scale must be a positive integer or zero); v1 = null2zero(v1); v2 = null2zero(v2); if (0.equals(v2)|0.00.equals(v2) return 0; else BigDecimal b1 = new BigDecimal(v1); BigDecimal b2 = new BigDecimal(v2); return b1.divide(b2, scale, BigDecimal.ROUND_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论