




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
人事考勤系统的设计与实现毕业设计目 录摘 要IABSTARCTII1 绪 论11.1 问题的提出11.2 当前现状11.3 系统设计目标22 系统开发工具及技术背景32.1 JSP表现层技术简介32.2 MVC框架简介32.3 Spring框架和Hibernate框架简介42.4 SQL语言简介42.5 MySQL数据库简介52.6 Tomcat应用服务器简介53 系统分析63.1 可行性分析63.1.1 技术可行性63.1.2 经济可行性63.1.3 运行可行性73.2 需求分析73.2.1 系统需求73.2.2 功能需求74 概要设计94.1系统目标设计94.2系统运行环境94.2.1硬件环境94.2.2软件环境94.3系统流程设计104.4系统功能设计125 数据库设计135.1数据模型135.2数据库表结构设计175.3 创建数据库表脚本206 系统详细设计226.1界面设计226.2 系统实现246.2.1 系统通信流程246.2.2登陆功能代码实现256.2.3 员工部分核心代码266.2.4 人事管理员部分核心代码287 系统测试317.1 概述317.2测试内容31结 论32参 考 文 献33致 谢34 1 绪论 1 绪 论1.1 问题的提出随着电脑的普及和计算机科学技术的快速发展,计算机开始被人们越来越多地用在实际问题的解决中。在竞争日益强烈的现代社会,企业在不断提高自身产品质量的同时,对员工的要求也逐渐提高。人事考勤管理也就成为了一个大众化的课题。在计算机技术还没有大面积普及之前,在没有计算机考勤管理系统的情况下,企业的考勤工作完全由人工完成。考勤错误,人情考勤等情况不可避免的发生,这在给管理人员带来不必要的麻烦的同时也对企业利益造成了极大地损害。这类情况的发生给管理人员和员工带来了越来越大的压力。员工会因为考勤人员的失误而产生不快,久而久之会对考勤人员甚至公司产生厌恶感。使得公司工作效率低下甚至人才流失。同时以人工方式管理员工的考勤信息,不仅浪费大量的时间、人力、物力、财力,而且数据的准确性比较低,保密性相当差,同时将产生大量的文件和数据,这对于数据的查找、更新、管理以及维护都带来了非常大的困难。随着科学技术水平的不断提高以及计算机科学技术的不断发展,人们对计算机的强大功能产生了深刻的认识,计算机技术已经深深的融入了人类社会生活的各个领域并且发挥着越来越重要的作用。使用计算机对企业考勤信息进行管理,具有着人工管理所不具有的优点,它检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等,可以减少更多的人力物力财力的浪费,为公司节约大量成本开支 。这些都能够使企业的考勤管理效率得到极大地提高,也是企业考勤管理科学化、正规化,与世界接轨的重要条件.因此,开发一个企业考勤管理系统是很有必要的,具有其特有的技术意义和管理意义。1.2 当前现状随着计算机应用于企业管理在我国逐渐开展起来。在我国的各行各业中,计算机辅助管理目前得到了广泛地应用,但总的来说,计算机在我国企业管理中的应用,还处于初级阶段。尽管近几年发展较快,但还需要不断地探索和研究。尤其是计算机辅助考勤管理,在最近几年才在我国得到普及和发展,而在许多发达国家计算机辅助考勤管理已十分普及。随着我国经济建设的蓬勃发展,各个行业都在积极使用现代化的手段,不断改善服务质量,提高工作效率。随着我国市场经济的不断成熟,企业的竞争也在不断的加剧,同时企业组织管理观念的变革以及业务流程标准化也在不断完善,中小企业信息化建设的热情近几年来有了显著的提高。近几年来,指纹签到设备慢慢普及开来。但这类设备只能处理签到的工作,无法对人员的考勤状况进行管理。因此开发一个高质量的考勤管理系统配合指纹签到设备对公司人员进行考勤管理对企业管理具有重要意义。1.3 系统设计目标考勤管理系统面向的对象具有不同的身份,系统的界面设计风格和功能提供方式由于不同的需求变得有所不同。详尽且全面的需求分析是良好的设计基础,有了好的需求分析才能得到清晰明了的设计目标,从而选择正确的技术实现,才能开发出比较完善的系统。本系统主要功能是管理员工通过签到设备生成的数据,对员工考勤信息进行处理计算工作,从而大大提高人事管理者的工作质量和工作效率。通过对企业实地观察分析,本管理系统的主要使用者大致有三类:普通员工、人事管理员和系统管理员。普通员工可以使用本系统查询到最近几天的考勤情况、查询个人基本信息、在线请假以及请假记录查询。作为考勤管理员的主要功能是对员工假期状况管理、员工工资管理、员工考勤管理。系统管理员的功能是员工资料管理、部门管理。1 2 系统开发工具及技术背景2 系统开发工具及技术背景本系统主要涉及三个开源架构:Struts 2、Spring和Hibernate,同时还使用了JSP作为表现层技术,MySQL数据库作为数据支撑。以tomcat作为应用服务器,以myEclipse为开发环境。2.1 JSP表现层技术简介本系统使用JSP作为表现层,负责收集用户请求数据,以及业务数据的展现。JSP是最传统也是最有效的表现层技术。JSP是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态技术标准。在传统的网页HTML文件中加入Java程序片段和JSP标签,就构成了JSP网页java程序片段可以操纵数据库、重新定向网页以及发送E-mail等,实现建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,这样大大降低了对客户浏览器的要求,即使客户浏览器端不支持Java,也可以访问JSP网页。JSP全名为java server page,其根本是一个简化的Servlet设计,他实现了Html语法中的java扩张。JSP与Servlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。2.2 MVC框架简介本系统使用Struts2.2作为MVC框架。MVC全名是Model View Controller,即模型(model)视图(view)控制器(controller)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法,这个方法的假设前提是如果业务逻辑被聚集到一个部件里面,而且界面和用户围绕数据的交互能被改进和个性化定制而不需要重新编写业务逻辑MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。Struts2.2以Struts1.x和WebWork为基础,迅速成长为MVC框架中的新王者,一经推出,立即赢得了广泛的支持。所有的用户请求,都不再直接发送到表现层JSP页面,而是必须发送给Struts2.2的Action,Struts2.2控制所有请求的处理和转发。通过Struts2.2拦截所有请求有个好处:将所有JSP页面放入WEB-INF/路径下,可以避免用户直接访问JSP页面,从而提高系统的安全性。2.3 Spring框架和Hibernate框架简介Spring框架是系统的核心部分,spring提供的IoC容器是业务逻辑组件和DAO组件的工厂,它负责生成并管理这些实例。借助Spring的依赖注入,各组件以低耦合的方式组合在一起,组件与组件间的依赖正是通过Spring的依赖注入管理。其Service组件和DAO对象都采用面向接口的编程方式,从而降低了系统的重构成本,极好的提高了系统的可维护性和可修改性。Hibernate作为O/R Mapping框架使用,其O/R Mapping功能简化了数据库的访问,并在JDBC层上提供了更好的封装。以面向对象的方式操作数据库,更加符合面向对象程序设计思路。Hibernate以灵活的方法操作数据库,无需开发者编写繁琐的SQL语句,执行冗长的多表查询,而是通过对象与对象的关联来操作数据库。为底层的DAO对象的实现提供支持。2.4 SQL语言简介SQL语言是结构化查询语言(Structured Query Language)的缩写,SQL是关系数据库的标准语言。SQL语言包含数据模式定义语言DDL、数据操纵语言DML、嵌入式SQL语言、权限管理等几部分。SQL具有语言功能的一体化、模式结构的一体化、高度非过程化的语言、面向集合的操作方式、语言简洁、易学易用等特点。SQL为许多任务提供了命令,其中包括:查询数据,在表中插入,修改,删除记录,建立,修改,删除数据对象,控制对数据和数据对象的存取,保证数据库一致性和完整性。2.5 MySQL数据库简介MySQL是一个开放源码的小型关联型数据库。目前被广泛地应用在中小型网站建设中。由于其体积小、速度快、成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体成本而选择了MySQL作为网站数据库。与其他的大型数据库例如Oracle、SQL Server等相比,MySQL有它自身的不足之处,如规模小、功能有限、功能和效率都相对比较差等。对于个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体成本。2.6 Tomcat应用服务器简介Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。Tomcat 很受广大程序员的喜欢,因为它运行时所需要的系统资源很小,系统扩展性好,支持负载均衡与邮件服务等与开发应用系统常用的功能;而且它还在不断的改进和完善中,在中小型系统和并发访问要求不高的情况下被大量使用,是程序员开发和调试JSP 程序的首选。4 3 系统分析 3 系统分析3.1 可行性分析本系统的可行性分析是从技术可行性,经济可行性和运行可行性三个方面进行的。通过对系统目标的初步分析,提出可行性方案并进行论证,从而为后续开发提供支持。以下是对本系统的可行性分析。3.1.1 技术可行性考勤管理系统采用B/S结构,该结构具有开发灵活,运行效率高,技术成熟等特点。开发语言选择Java,Java一种设计非常优秀的语言,具有安全,高效的特点。开发工具选择MyEclipse该开发工具对Java具有良好的支持,提供了一个通用的开发平台和丰富开源插件。后台数据库采用MySQL,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,它能有效降低开发成本。所以它能够胜任目标系统数据处理的需求。综上所述,本系统的设计与开发在技术上的条件都是满足的,因此,它在技术上是可行的。3.1.2 经济可行性通过分析设计,可以在一定程度上减少经济开支和工作量,假如开发出只具有特殊性适合具体公司的考勤系统的话,每一家公司都需要开发自己的考勤系统,这样在一定程度上提高了开发人员的工作量,同时也在总量上提高了开发成本,而如果开发出一款比较适合不同类型环境的通用考勤管理系统的话,可以做到一劳永逸的效果。现在,计算机的成本十分低廉,性能却非常强大且高效。成功开发出考勤管理系统,将给各个公司在考勤管理方面带来新的质的飞跃。主要表现在以下几个方面:第一,考勤管理系统的运行可以取代人工劳动,节约大量人力成本;第二,考勤管理系统的运行可以在公司的日常运营中能节省大量资源,减少资金开支;第三,考勤管理系统的运行可以提高公司员工的工作效率和办事效率,节约大量时间;综上所述,本考勤管理系统在经济上是可行的。3.1.3 运行可行性自动化考勤管理系统,是考勤模式的发展方向,以现代信息技术为支撑完成考勤工作,可以提高工作效率和工作质量,这与企业的要求是相吻合的。企业计算机设备齐全,网络完善,有良好的机房管理制度。本考勤管理系统,所耗费的资源非常的小,各个公司的电脑无论是硬件还是软件都能够满足条件,因此,考勤管理系统的运行可行性是可行的。3.2 需求分析3.2.1 系统需求随着企业规模的扩大,员工数量越来越多,管理制度越来越完善,传统的人工管理方式的缺陷逐渐暴露出来。为了提高人事管理系统的效率,方便职工的使用,降低系统的维护成本,所以决定开发基于B/S结构的人事考勤管理系统。人事考勤管理系统,利用计算机来完成人事考勤的日常工作。通过信息共享,企业员工可以在任何可以登入系统的地方使用考勤系统,避免了来回跑动的麻烦。人事考勤管理员不需要手动录入考勤信息和分析计算报表,即减轻了考勤管理员的工作量又提高了工作效率。避免了在分析计算信息时的人为错误。通过考勤系统人事考勤管理员可以随时对员工的考勤信息进行管理,实现无纸化办公。3.2.2 功能需求基于系统需求分析,本人事考勤管理系统可以实现以下功能:系统的使用者有三种身份:1、普通员工,2、人事管理员,3、系统管理员。用户在登录时,根据已选择的角色,进入与该角色对应的功能界面。普通员工: 1) 个人信息管理:查询个人基本信息、修改登陆密码。2) 考勤信息管理:考勤信息查询、工资信息查询。3) 假期管理:在线请假、个人请假信息查询。人事管理员:1) 员工考勤管理:修改员工考勤信息、上月考勤记录统计。2) 请假状况管理:查询员工假期申请、处理员工假期申请。3) 员工工资管理:结算员工工资、查询员工工资。系统管理员: 1) 员工资料管理:包括查看所有员工、添加员工、删除员工、修改员工信息等。2) 部门管理:包括查看部门列表、修改部门信息、添加新部门等。7 4 概要设计 4 概要设计4.1系统目标设计本考勤系统基于目前较为流行的B/S模式,即浏览器/服务器模式完成开发,数据库服务器与应用服务器在同一台机器上运行,用户使用Web浏览器访问应用服务器,将用户在网页上进行的操作经过服务器处理后提交给数据库服务器,再把从数据库获取的信息以文本、图像、表格等形式送回给用户的Web浏览器。4.2系统运行环境4.2.1硬件环境1) 服务器端硬件环境服务器端的最低配置是由运行在服务器上的软件所需的要求来决定,在满足软件运行的最低配置的情况下,服务器的往往不尽如人意。况且现在的硬件性能已经相当出色,同时价格也很便宜,因此通常应给服务器端配置较高性能的硬件来提高运行的速度。本人事考勤管理系统服务器端的配置如下: 处理器:Inter Pentium 4 1.6GHz 或更高 内存:1GB 硬盘空间:80GB2) 用户端硬件环境因为用户主要用于浏览和发送数据,不需要对数据进行大量处理。所以对学用户端的硬件要求并不高,不过现在的电脑具有很高的性价比,因此实际的硬件配置应该高于下面的配置: 处理器:Inter Pentium 1.0GHz 或更高 内存:512MB 硬盘空间:40GB4.2.2软件环境1) 服务器端软件环境如下: 操作系统:Windows 2000 Server 网络协议:TCP/IP web服务器:Tomcat6.0.29 数据库:MySQL5.5 浏览器:Internet Explorer 6.0以上2) 用户端软件环境如下: 操作系统:Windows 98/2000/XP 网络协议:TCP/IP 浏览器:Internet Explorer 6.0以上4.3系统流程设计用户以不同的身份登录页面login.jsp。如果以人事管理员的身份登录,则被系统引至人事管理员功能页面,进入此页面后可进行员工考勤管理、员工假期管理和员工工资管理。其进入的流程图如图4-1所示:人事管理员登录页面用户名、密码验证 否员工考勤管理员工假期管理员工工资管理 是退出图4-1 管理员操作流程图若用户是普通用户,则登录系统后,被引导至员工功能页面。进入此页面后,员工可进行个人信息管理、考勤信息管理和假期管理。其进入的流程图如图4-2所示:员工登录页面用户名、密码验证 否个人信息管理考勤信息管理假期管理 是 退出图4-2 员工操作流程图若用户是系统管理员用户,则登录系统后,将被引导至管理员功能页面。在该页面下,能完成员工资料管理和部门管理功能。其进入的流程图如图4-3所示:管理员登录页面用户名、密码验证 否 是 员工资料管理部门管理退出图4-2 管理员操作流程图4.4系统功能设计模块化是将一个复杂问题自顶向下逐步求精,把系统划分成若干个部分的过程。每个模块完成一个特定的功能,将所有的模块组织起来,成为一个整体,完成整个系统所有的功能。降低了系统的复杂性,提高可读性、可维护性,可操作性,每个模块只完成系统某一个独立的子功能,并且与其他模块的联系最少,即可提高模块的内聚度,降低模块间的耦合度。经过对公司考勤管理实际情况的分析,确定出考勤管理系统主要由系统管理员模块、人事管理员模块、普通员工模块三大模块组成,下面是对这三个模块功能的简要介绍:1) 普通员工模块该模块主要功能包括个人信息管理、假期管理、考勤信息管理。2) 人事管理员模块该模块主要功能包括员工考勤管理、请假状况管理、员工工资管理。3) 系统管理员模块该模块主要功能包括部门管理、员工资料管理。综合以上分析,确定系统功能结构图如图4-3所示:人事考勤管理系统员工模块人事管理员模块系统管理员模块个人信息管理假期管理考勤信息管理员工考勤管理请假状况管理员工资管理员工资料管理部门管理图4-3 系统功能结构图11 6 系统详细设计 5 数据库设计员工信息编号员工工号员工姓名登录密码性别学历基本工资部门良好的数据库设计不仅关系到数据库系统自身的稳定性、安全性、数据的完整性,而且对于应用系统的整体性能以及应用系统的响应速度有着重要的影响。数据库设计的好坏对考勤管理系统的效率和最终的实现效果有直接的影响。合理地设计数据库结构不仅可以提高数据库存储效率,而且还能保证数据的完整和统一。基于前文的需求分析,本系统总共需要7张工作表的数据支持:考勤记录表attend、考勤类型表attendtype、请假信息表leave、员工信息表employee、员工角色表role、部门信息表department、员工工资表salary。5.1数据模型本系统的实体关系图如下所示:图5-1 员工信息实体图考勤信息编号考勤日期考勤时间考勤状态员工工号图5-2 考勤信息实体图考勤类型类型编号类型名称罚款金额图 5-3 考勤类型实体图员工角色角色编号角色名称图5-4 员工角色实体图请假信息员工工号请假日期请假天数请假原因主管意见图 5-5 请假信息实体图员工工资信息员工姓名基本工资考勤工资总工资发放时间编号图 5-6 员工工资实体图部门信息部门号部门名称部门领导部门职责图 5-7 部门信息实体图员工信息考勤信息拥有1N图5-8 员工实体与考勤实体关系图员工角色拥有11图5-9 员工实体与角色实体关系图员工请假拥有1N图 5-10 员工实体与请假实体关系图考勤类型考勤信息拥有N1图5-11 考勤实体与考勤类型关系图员工部门属于1N图 5-12 员工实体与部门实体关系图5.2数据库表结构设计使用Navicat数据库管理软件对MysqL数据库进行管理,使得可在图形化界面对MySQL数据库进行操作,大大简化了数据库操作。本系统定义的数据库中包含以下7个表:考勤记录表、考勤类型表、请假信息表、员工信息表、员工角色表、部门信息表、员工工资表。这些表的表结构如下: 员工信息表employee:用于保存员工的账号和密码等个人信息。表5.1 员工信息表名称字段名称数据类型字段长度备注编号IdInt5主键员工编号empIdInt5员工密码PasswordVarchar20员工姓名empNameVarchar20性别GanderVarchar10学历EducationVarchar20部门编号DeptIdInt5基本工资basesalaryInt5 考勤记录表 attend:用于记录每次员工打卡考勤的信息。如日期,时间,员工编号、考勤类型。表5.2 考勤记录表名称字段名称数据类型字段长度备注编号IdInt5主键日期DateVarchar20时间TimeVarchar20考勤类型StatusInt5外键员工编号EmpidInt5外键 考勤类型表 attendType:用于存储考勤状态的信息。包括:考勤状态、状态id、罚款。表5.3 考勤类型表名称字段名称数据类型字段长度备注状态编号TypeidInt5主键状态名称typeNameVarchar10罚款金额AmerceInt5 员工角色表 role:用于保存用户的身份信息,包括:员工、领导和管理员三种身份。表5.4 员工角色表名称字段名称数据类型字段长度备注角色编号ridInt5主键角色名称rnameVarchar10 请假信息表leave:用于存储员工请假信息,包括请假时间、请假原因、员工编号、请假天数、主管意见。表5.5 请假信息表名称字段名称数据类型字段长度备注员工编号EmpidInt5主键请假时间DateVarchar10请假天数DayInt5请假原因ReasonVarchar20主管意见ResultVarchar5 员工工资表salary:用于存储员工工资信息,包括发放时间、基本工资、总工资、员工编号、出勤工资等。表5.6 员工工资表名称字段名称数据类型字段长度备注编号idInt5主键员工姓名empnameVarchar10基本工资basesalaryInt5出勤工资amercsalaryInt5总工资aotalsalaryInt5发放时间dateVarchar10 部门信息表department:存储部门信息,包括部门号、部门名称、部门职责、部门负责人。表5.7 部门信息表名称字段名称数据类型字段长度备注部门号DidInt5主键部门名称DnameVarchar10部门职责DutyVarchar20部门负责人ManagerInt5外键5.3 创建数据库表脚本创建考勤信息表attend:CREATE TABLE attend ( id int(5) NOT NULL AUTO_INCREMENT, date varchar(20) NOT NULL, time varchar(20) NOT NULL, struts int(5) NOT NULL, empid int(5) NOT NULL, PRIMARY KEY (id) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;创建考勤类型表attendtype:CREATE TABLE attendtype ( typeid int(5) NOT NULL AUTO_INCREMENT, typename varchar(10) NOT NULL, amerce int(5) NOT NULL, PRIMARY KEY (typeid) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;创建部门信息表departmentCREATE TABLE department ( id int(5) NOT NULL AUTO_INCREMENT, did int(5) NOT NULL, dname varchar(10) NOT NULL, duty varchar(20) DEFAULT NULL, manager int(5) NOT NULL, PRIMARY KEY (id) ENGINE=InnoDB DEFAULT CHARSET=utf8;创建员工信息表employeeCREATE TABLE employee ( id int(5) NOT NULL AUTO_INCREMENT, empid int(5) NOT NULL, password varchar(20) NOT NULL, empname varchar(20) DEFAULT NULL, gander varchar(10) DEFAULT NULL, education varchar(10) DEFAULT NULL, deptid int(5) NOT NULL, salary int(5) NOT NULL, rid int(5) NOT NULL, PRIMARY KEY (id) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;创建请假信息表leaveCREATE TABLE leave ( id int(5) NOT NULL AUTO_INCREMENT, empid int(5) NOT NULL, date varchar(10) NOT NULL, day int(5) NOT NULL, reason varchar(20) NOT NULL, result varchar(10) NOT NULL, PRIMARY KEY (id) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;创建角色信息表roleCREATE TABLE role ( rid int(5) NOT NULL AUTO_INCREMENT, rname varchar(10) NOT NULL, PRIMARY KEY (rid) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;创建工资信息表salaryCREATE TABLE salary ( id int(5) NOT NULL AUTO_INCREMENT, empname varchar(10) NOT NULL, salary int(5) NOT NULL, amercsalary int(5) NOT NULL, totalsalary int(5) NOT NULL, date varchar(10) NOT NULL, PRIMARY KEY (id) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8; 6 系统详细设计6.1界面设计用户在客户端登陆界面输入用户账号、密码,选择好登陆角色后,就可以进入到与已选择角色对应的管理界面。如果输入的账号、密码及角色都正确,则进入管理界面。如果输入的账号、密码、角色三者中有任何一个错误都不能进入管理界面,系统将返回到登陆界面进行重新登陆。登陆界面如图6-1所示。用户在登陆界面输入数据后,通过浏览器提交给后台服务器。后台服务器将接收到的数据与数据库中存储的数据对比,找到相同的数据表示登陆成功。然后跳转到管理界面。否则将不会跳转到管理界面。图6-1 登录界面登陆成功后,跳转到功能管理界面。由于本系统的主要使用者有三种,且不同身份使用者所具有的功能不同,所以本系统将有三个不同的主界面。分别为员工主界面、人事管理员主界面以及系统管理员主界面。各个主界面如下图所示:员工主界面图6-2 员工主界面人事主管主界面图6-3人事主管主界面系统管理员主界面图6-4系统管理员主界面在主界面中各个用户就可以完成该用户角色的所具有的功能。6.2 系统实现6.2.1 系统通信流程本考勤系统基于B/S模式设计开发,用户在浏览器地址栏中输入登录页面地址后,浏览器向服务器发送请求。服务器接受到请求后,解析并处理请求。处理完成后将浏览器请求的资源发送给浏览器,浏览器收的所请求的资源后,将资源呈现在屏幕上。系统数据通信流程如图6-5所示图6-5 系统数据通信流程图6.2.2登陆功能代码实现在整个系统中,最先使用到的功能是登录功能。用户只有成功登陆才能进行后续的操作。登录模块的核心代码如下:public class LoginAction extends BaseAction /* * 1.验证用户名密码 * 2.根据用户选择的角色,验证用户角色 * 3.根据不同的角色,返回不同的结果 * 4.通过验证后,将员工对象保存到session */private Employee emp;private int role;private UserService userService;public String execute() emp = userService.login(emp.getEmpid(),emp.getPassword();System.out.println(role);System.out.println(emp.getRole().getRname();String result = ;if(emp = null)result = loginFail;System.out.println(result);return result;switch (role) case 1:if (emp.getRole().getRid() = 1) session.put(emp,emp);result = staffsuccess;System.out.println(result); else result = loginFail;break;case 2:if (emp.getRole().getRid() = 2) session.put(emp,emp);result = leadersuccess;System.out.println(result); else result = loginFail;break;case 3:if (emp.getRole().getRid() = 3) session.put(emp, emp);result = adminsuccess;System.out.println(result); else result = loginFail;break;default:break;return result;登录成功后,根据选择的系统角色跳转到对应的功能管理页面,进行对应的操作。6.2.3 员工部分核心代码当以员工身份登录后,系统将跳转到员工主界面。用户便能实现员工的所有功能。员工的主要功能有:1) 个人信息管理:查询个人基本信息、修改登陆密码。2) 考勤信息管理:考勤信息查询、工资信息查询。3) 假期管理:在线请假、个人请假信息查询。个人信息查询功能核心代码:/* * 将存在session中的员工信息取出, * 显示到员工个人信息界面 */public String execute()emp = (Employee) session.get(emp);return getempinfo;查询结果如图6-6所示:图 6-6 个人信息界面员工查看到个人信息后,如有需要可对部分信息进行修改。点击修改链接便进入信息修改界面。但对于一些关键性信息员工将不能修改,如员工基本工资,员工工号等信息。考勤查询核心代码:/* * 获取最近五天的考勤记录 */public String execute() Employee emp = (Employee) session.get(emp);attends = userService.findAttend(emp.getEmpid();System.out.println(attends.size();return findattendsuccess;查询结果如图6-7所示:图 6-7 考勤信息查询结果界面在线请假核心代码:public String execute()leave.setResult(false);userService.askForLeave(leave);return leavesuccess;请假界面如图6-8所示:图6-8 请假界面6.2.4 人事管理员部分核心代码当以员工身份登录后,系统将跳转到员工主界面。用户便能实现员工的所有功能。员工的主要功能有:1) 员工考勤管理:修改员工考勤信息、上月考勤记录统计。2) 请假状况管理:查询员工假期申请、处理员工假期申请。3) 员工工资管理:结算员工工资、查询员工工资。上月考勤记录统计功能能够统计到上月的考勤记录,方便人事管理员监控员工的考勤状况,及时对考勤较差的员工提出批评。核心代码如下:public String execute()records = leaderService.findRecord();return success;/* * 上月考勤信息统计 */public List findRecords() String sql = select t3.empname as empname,t3.empid as empid,+ IFNULL(sum(case t3.struts when 1 then t3.num end),0) as zhengchang,+ IFNULL(sum(case t3.struts when 2 then t3.num end),0) as chidao,+ IFNULL(sum(case t3.struts when 3 then t3.num end),0) as zaotui,+ IFNULL(sum(case t3.struts when 4 then t3.num end),0) as kuanggong,+ IFNULL(sum(case t3.struts when 5 then t3.num end),0) as shijia,+ IFNULL(sum(case t3.struts when 6 then t3.num end),0) as bingjia+ from+ (+ select t2.empname as empname,t1.empid as empid ,t1.struts as struts,t1.num as num from + (SELECT empid,struts,COUNT(struts) as num from attend where date like 2013-04% GROUP BY empid,struts) t1,employee t2 + where t2.empid = t1.empid) t3+ GROUP BY t3.empname,t3.empid;SQLQuery query = this.getSession().createSQLQuery(sql);query.addScalar(empname, Hibernate.STRING);query.addScalar(empid, Hibernate.INTEGER);query.addScalar(zhengchang, Hibernate.INTEGER);query.addScalar(chidao, Hibernate.INTEGER);query.addScalar(zaotui, Hibernate.INTEGER);query.addScalar(kuanggong, Hibernate.INTEGER);query.addScalar(shijia, Hibernate.INTEGER);query.addScalar(bingjia, Hibernate.INTEGER);List list = query.list();return list;查询到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保险事故车辆推定全损理赔协议书8篇
- 2025年河北秦皇岛工业职业技术学院招聘专任教师3人考前自测高频考点模拟试题及答案详解(夺冠)
- 2025福建医科大学安全保卫人员招聘2人(五)考前自测高频考点模拟试题及参考答案详解1套
- 2025年中国精算师协会会员水平测试(准精算师数学)全真模拟试题及答案
- 2025-2030工业气体供应行业市场现状政策支持及商业模式创新评估分析报告
- 碎石、石粉购买协议6篇
- 2025-2030工业机器人核心技术突破与制造业转型升级战略研究报告
- 2025广西河池市凤山县农业农村局招募水稻等产业特聘农民技术员2人考前自测高频考点模拟试题及答案详解(新)
- 2025-2030工业机器人市场供需格局与核心技术突破方向报告
- 2025-2030工业机器人产业市场供需分析及投资评估研究报告
- 产品报价基础知识培训课件
- 水资源基础调查项目方案 投标文件(技术方案)
- 女性围绝经期营养管理中国专家共识(2025版)
- 2025驾驶员安全教育培训
- GB/T 16545-2025金属和合金的腐蚀腐蚀试样上腐蚀产物的清除
- 无人机公司飞手管理制度
- 房地产抵押贷款合同电子版预览
- 电池(组)装配工职业技能鉴定经典试题含答案
- 公路机电安全培训课件
- DB42-T 2389-2025 陶粒沥青混凝土路面施工技术规程
- 质量策划与质量控制培训
评论
0/150
提交评论