工资管理系统的设计与实现工资账户管理、请假管理.docx_第1页
工资管理系统的设计与实现工资账户管理、请假管理.docx_第2页
工资管理系统的设计与实现工资账户管理、请假管理.docx_第3页
工资管理系统的设计与实现工资账户管理、请假管理.docx_第4页
工资管理系统的设计与实现工资账户管理、请假管理.docx_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

工资管理系统的设计与实现工资账户管理、请假管理摘 要:工资管理是财务管理的一个重要方面,对于任何一个企业或者组织都极其重要,现今社会利用计算机支持企业或组织高效率来完成操作势在必行。我们由一个四人团队来完成了工资管理系统设计与实现。在本工资管理系统中,涉及到最多的就是对数据的增删改查,当然在真正的系统中,对于这些操作要控制在严格的权限中,使用struts2hibernatespring实现了简单的CRUD操作。本系统采用三层架构,也就是数据访问层、业务逻辑层、表示层。整个系统包含7个模块(系统管理、人事管理、工资账户管理、工资管理、请假管理、个人信息管理、报表管理),本论文包括其中的两个模块-工资账户管理、请假管理。关键词:工资管理系统;MYSQL数据库; 工资账户管理;请假管理Abstract:Salary management is an important aspect of financial management,it is very important to any enterprise or organization, nowadays, using computer for enterprise or the organization to complete the operation is imperative.So we are a team of four have completed the design and implementation of salary management system. In the salary management system, involving the most is the data crud, of course, in the real system, for these operations to control in strict access .We used Struts2 and hibernate and spring to achieve a simple CRUD operations. The system uses three layer architecture, which is the data access layer, business logic layer and presentation layer. The whole system contains seven modules (system management, personnel management, wage and salary account management, salary management, leave management, personal information management, report management), in this paper, including two modules ,they are salary account management and leave management.Key words:The wages management; MYSQL database; Salary account; Leave management.前 言有效的工资管理对于任何一个单位或者组织都是不可缺少的部分,它的内容对于单位或者组织的决策者和管理者来说都至关重要,所以工资管理系统应该能够为用户提供充足的信息和快捷的查询等手段。但一直以来人们使用传统人工的方式管理文件信息,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对工资管理信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高单位或者组织信息管理的效率,也是单位或者组织的科学化、正规化管理,与世界接轨的重要条件。随着数据库技术的不断发展及数据库管理系统的广泛应用,数据库中存储的数据量急剧增大,这些数据库中的大量数据隐含着许多有价值的信息,而传统的对数据库的简单操作只能发现表层的知识,不能归纳出隐含的带有结构性的知识,已不能满足人们的需要,人们更希望通过对数据的分析,得到数据更深层次的信息,或者说得到可用于进行决策的知识,也即对数据进行挖掘。数据挖掘,顾名思义就是从大量的数据中挖掘出有用的信息。开发本系统的目的就是帮助单位或者组织的财务主管部门提高工作效率,实现单位或者组织员工工资信息管理的系统化、规范化和自动化。本系统包括七个大功能,使单位或者组织实现工资管理的自动化,无疑会给单位或组织管理部门带来很大方便。1 系统需求分析 1.1 范围本次开发的系统为工资管理系统。用于对小型企业的职工基本信息和工资信息的管理。包括工资账户管理(创建工资账户、审批工资账户)、请假管理(个人请假管理、审批请假申请)。1.2 定义GZGLXTGong Zi Guan Li Xi Tong(工资管理系统)的缩写。FSFinance Staff(财务人员)的缩写。NFSNot Finance Staff(非财务人员)的缩写。JSPJava Server Page(Java服务器页面)的缩写,一个脚本化的语言。UMLUnified Modeling Language的缩写,一个建模语言。1.3 功能需求定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足其业务需求。工资账户管理:对员工的工资账户进行添加、修改、删除。请假管理:添加请假单,审批请假申请1.4 系统优势 1)降低财务专员的工作量,提高日常工作效率. 2) 先进的工资管理系统能够及时准确地收集、管理信息,够有效地在企事业单位的各个部门间架起一个沟通的桥梁,使企事业单位或者组织的各个部门根据相关的信息作出合理高效的操作。3)操作简单易用,能满足企业、学校等组织对员工的工资进行有效管理。1.5 开发与运行环境本例的工资管理系统开发与运行环境如下:开发环境:Windows XP/Windows 7开发工具:myeclipse数据库管理系统:MYSQL数据库运行环境:WindowsXP / Windows 72 系统总体结构设计2.1 系统目标 本系统要对重庆师大学教职员工的工资进行数据管理,对各项工资条款进行计算。汇总各项数据生成员工个人工资,打印工资报表。采用用户名,密码安全机制,分用户权限登陆访问,保证系统资源不受人为因素的干扰。2.2 系统功能结构与分析 一个有效的系统要能储存系统中所必须的信息并能对这些信息进行各种操作。例如对信息快速查找以及对数据的增删改查。工资管理系统是帮助企业或者组织管理职工工资的系统,本系统是由系统管理、人事管理、工资账户管理、工资管理、请假管理、个人信息管理、报表管理几个功能模块组成。2.3 系统各功能模块设计据以上分析的功能,总结出系统结构图如下:图2.2.3系统结构图2.4 工资账户管理模块工资账户管理创建工资账户审批工资账户查询添加修改删除查询审批修改删除图2.2.4工资管理模块功能示意图2.5 请假管理模块请假管理个人请假管理审批请假申请修改添加查询删除审批 图2.2.4请假管理模块功能示意图3 数据库设计3.1数据流程图1)工资账户管理工资账户管理理创建工资账户审批工资账户图3-1.1工资账户管理流程图2)请假管理请假管理个人请假管理审批请假申请图3-1.2请假管理流程图3.2数据字典分析1)模块管理表(module)-主要用来管理模块的排列和模块的访问路径。字段名称数据类型字段大小是否主键说明idint11Y模块编号namevarchar500N模块名称snvarchar500N系统标识urlvarchar500N访问路径orderNovarchar500N优先级标识parentIdint11N父亲模块编号2)工资账户表(account)字段名称数据类型字段大小是否主键说明idint11N序号personIdint11Y员工idnumbervarchar255N账户编号statusvarchar255N审批状态opinionvarchar255审批意见createTimedatetimeN创建时间3)请假管理表(leaves)字段名称数据类型字段大小是否主键说明idint11Y请假次数personIdint11N员工idnamevarchar255N员工姓名contentvarchar255N请假内容statusvarchar255N审批状态opinionvarchar255N意见createTimedatetimeN创建时间fristDaydatetimeN开始时间lastDaydatetimeN结束时间4 详细设计与实现Spring配置:Spring作为业务层,结合hibernateFilter文件处理,hibernateFilterorg.springframework.orm.hibernate3.support.OpenSessionInViewFilterhibernateFilter/*4.1 工资账户管理实现 4.1.1 配置在strusts.xml中添加account.xml的配置如下: /pages/pay_main.jsp/index.jsp /pages/account/account.jsp/pages/account/approve_account.jsp/pages/account/add_account.jsp/pages/account/add_account.jsp/pages/common/success.jsp/pages/common/del_success.jsp/pages/account/app_account.jsp/pages/common/success.jsp/pages/account/edit_account.jsp/pages/account/edit_account.jsp/pages/common/success.jsp 模块对应数据库表:4.1.2 程序实现(AccountAction.java):Controller(accountAction)Scope(prototype)public class AccountAction extends BaseAction private static final long serialVersionUID = 1L;private Account account;private Integer id;private PagerModel pagerModel;Resource(name = personService)private PersonService personService;private Person person;private Integer personId;private String personNumber;Resource(name = accountService)private AccountService accountService;private String approve;Overridepublic void prepare() throws Exception if(id != null)account = accountService.findById(id);elseaccount = new Account();Overridepublic Account getModel() return account;public String find() throws Exception int offset = 0;try offset = Integer.parseInt(request.getParameter(pager.offset); catch (RuntimeException e) if(personNumber != null)pagerModel = personService.find(new Stringnumber, new StringpersonNumber , new MatchModeMatchMode.ANYWHERE , offset, PageSize.NORMAL);elsepagerModel = personService.find(offset, PageSize.NORMAL);if(true.equals(approve)return approve;return find;public String add() throws Exception person = personService.findById(personId);request.setAttribute(per, person);return add;InputConfig(resultName = saveInput)public String save() throws Exception accountService.saveOrUpdate(account, personId);session.put(notice, 分配工资账户成功);return save;public void validateSave() if(isNull(account.getNumber()addFieldError(number, 工资账户不能为空);elseAccount a = accountService.findByNumber(account.getNumber();if(a != null)if(account.getNumber().equals(a.getNumber()addFieldError(number, 工资账户已存在);public String delete() throws Exception accountService.delete(account);session.put(notice, 删除工资账户成功);return delete;public String app() throws Exception return app;public String approve() throws Exception accountService.saveOrUpdate(account);session.put(notice, 审批工资账户成功);return approveSuccess;public String edit() throws Exception return edit;InputConfig(resultName = updateInput)public String update() throws Exception account.setStatus(Status.NEW);accountService.saveOrUpdate(account);session.put(notice, 修改工资账户成功);return update; public void validateUpdate() if(isNull(account.getNumber()addFieldError(number, 工资账户不能为空);elseAccount a = accountService.findByNumber(account.getNumber();if(a != null)if(account.getNumber().equals(a.getNumber() & !a.getId().equals(account.getId()addFieldError(number, 工资账户已存在);public Account getAccount() return account;public void setAccount(Account account) this.account = account;public Integer getId() return id;public void setId(Integer id) this.id = id;public PagerModel getPagerModel() return pagerModel;public void setPagerModel(PagerModel pagerModel) this.pagerModel = pagerModel;public Person getPerson() return person;public void setPerson(Person person) this.person = person;public Integer getPersonId() return personId;public void setPersonId(Integer personId) this.personId = personId;public String getApprove() return approve;public void setApprove(String approve) this.approve = approve;public String getPersonNumber() return personNumber;public void setPersonNumber(String personNumber) this.personNumber = personNumber;4.1.3 接口AclDao操作数据库中的权限控制表acl的方法的接口AccountService用户服务接口AccountDao操作工资账户表的Dao接口调用调用调用图4.1.3工资账户管理模块接口调用图4.1.4 运行效果图1)总效果图:2)各个小功能运行效果图:工资账户查询图(成功显示查询数据)添加工资账户图(已存在工资账户的员工不能再进行添加)修改员工的工资账户图(审批通过的员工工资账户不能进行修改和删除操作):删除工作账户图:审批员工的工资账户图:4.2 请假管理实现4.2.1 配置在strusts.xml中添加leave.xml的配置如下: /pages/pay_main.jsp/index.jsp/pages/leave/leave.jsp/pages/leave/approve_leave.jsp/pages/leave/add_leave.jsp/pages/common/success.jsp/pages/leave/edit_leave.jsp/pages/leave/edit_leave.jsp/pages/common/success.jsp/pages/leave/app_leave.jsp/pages/common/success.jsp/pages/common/del_success.jsp 模块对应数据库表:4.2.1 程序实现(LeaveAction.java):public class LeaveAction extends BaseAction private static final long serialVersionUID = 1L;private Leave leave;private Integer id;private PagerModel pagerModel;private String approve;Resource(name = leaveService)private LeaveService leaveService;private String personNumber;Resource(name = personService)private PersonService personService;Overridepublic void prepare() throws Exception if(id != null)leave = leaveService.findById(id);elseleave = new Leave();Overridepublic Leave getModel() return leave;public String findMyLeave() throws Exception int offset = 0;try offset = Integer.parseInt(request.getParameter(pager.offset); catch (RuntimeException e) Person person = (User)session.get(login).getPerson();pagerModel = leaveService.find(new Stringperson, new Objectperson , offset, PageSize.NORMAL);return findMyLeave;InputConfig(resultName = saveInput)public String save() throws Exception leaveService.saveOrUpdate(leave, (User)session.get(login).getPerson().getId();session.put(notice, 添加请假单成功);return save;public void validateSave() if(isNull(leave.getName()addFieldError(name, 请假单名称不能为空);if(leave.getFirstDay() = null | leave.getLastDay() = null)addFieldError(firstDay, 请假日期不能为空);Calendar c1 = Calendar.getInstance();c1.setTime(leave.getFirstDay();Calendar c2 = Calendar.getInstance();c2.setTime(leave.getLastDay();if (!c1.before(c2)addFieldError(firstDay, 请假日期错误);public String edit() throws Exception return edit;InputConfig(resultName = updateInput)public String update() throws Exception leave.setStatus(Status.NEW);leaveService.saveOrUpdate(leave);session.put(notice, 修改请假单成功);return update;public void validateUpdate() if(isNull(leave.getName()addFieldError(name, 请假单名称不能为空);if(leave.getFirstDay() = null | leave.getLastDay() = null)addFieldError(firstDay, 请假日期不能为空);Calendar c1 = Calendar.getInstance();c1.setTime(leave.getFirstDay();Calendar c2 = Calendar.getInstance();c2.setTime(leave.getLastDay();if (!c1.before(c2)addFieldError(firstDay, 请假日期错误);public String find() throws Exception int offset = 0;try offset = Integer.parseInt(request.getParameter(pager.offset); catch (RuntimeException e) Person person = null;if(personNumber != null)person = personService.findByNumber(personNumber);pagerModel = leaveService.find(new Stringperson, status, new Objectperson, Status.NEW , offset, PageSize.NORMAL);return find;public String app() throws Exception return app;public String approve() throws Exception leaveService.saveOrUpdate(leave);session.put(notice, 审批请假单成功);return approve;public String delete() throws Exception leaveService.delete(leave);session.put(notice, 删除请假单成功);return delete;public Leave getLeave() return leave;public void setLeave(Leave leave) this.leave = leave;public Integer getId() return id;public void setId(Integer id) this.id = id;public PagerModel getPagerModel() return pagerModel;public void setPagerModel(PagerModel pagerModel) this.pagerModel = pagerModel;public String getApprove() return approve;public void setApprove(String approve) this.approve = approve;public String getPersonNumber() return personNumber;public void setPersonNumber(String personNumber) this.personNumber = personNumber;4.2.3 接口LeaveAction类用于响应表示层的请假管理AccountAction类用于响应表示层的工资账户管理AclService权限控制服务接口AclService权限控制服务接口AclDao操作数据库中的权限控制表acl的方法的接口调用调用调用 LeaveService用户服务接口LeaveDao操作请假管理表的Dao接口调用调用图4.2.3请假管理模块接口调用图4.2.4 运行效果图1)总效果图:2)各个小功能运行效果图添加请假单图:修改请假单图:审批请假申请图:删除请假申请图:5 系统测试用例5.1 工资账户管理-创建工资账户5.1.1 查询账户测试用例用例名称/标识查询账户/GZGLXT-GZZHGL-CJ -CX菜单工资账户管理-创建工资账户主要角色管理员目标管理员查询员工工资账户前置条件无步骤输入/操作期望输出/响应基本场景1工资账户管理页面,在查询栏根据员工编号键入查询所需关键字,点击“查询”列表刷新,正常、正确显示查询结果业务规则无5.1.2 添加账户测试用例用例名称/标识添加账户/GZGLXT-GZZHGL-CJ -TJ菜单工资账户管理-创建工资账户主要角色管理员目标管理员对员工进行账户添加操作前置条件员工未有工资账户步骤输入/操作期望输出/响应基本场景1.相关操作列点击“添加”弹出添加工资账户窗口2.输入用户的账户名称(带*项为必填),点击“提交”窗口提示分配工资账户成功,等待3秒,窗口自动关闭3.返回创建工资账户页面该员工的工资账户成功显示业务规则无5.1.3 修改账户测试用例用例名称/标识修改账户/GZGLXT-GZZHGL-CJ -XG菜单工资账户管理-创建工资账户主要角色管理员目标管理员对员工进行账户修改操作前置条件员工已有工资账户并且未激活(即未审批状态)步骤输入/操作期望输出/响应基本场景1.相关操作列点击“修改”弹出修改工资账户窗口2.对用户的账户名称进行修改键入(带*项为必填),点击“提交”窗口提示修改工资账户成功,等待3秒,窗口自动关闭3.返回创建工资账户页面该员工的工资账户名成功被修改业务规则无5.1.4 删除账户测试用例用例名称/标识删除账户/GZGLXT-GZZHGL-CJ -SC菜单工资账户管理-创建工资账户主要角色管理员目标管理员删除员工工资账户前置条件员工信息已存在,并且工资账户处于未激活状态(即未审批状态)步骤输入/操作期望输出/响应基本场景1相关操作列选择“删除”弹出是否确认删除提示2点

温馨提示

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

评论

0/150

提交评论