工资管理系统的设计与实现工资账户管理、请假管理毕业设计论文.docx
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工资管理 系统 设计 实现 工资 账户 管理 请假 毕业设计 论文
- 资源描述:
-
工资管理系统的设计与实现 ──工资账户管理、请假管理 摘 要:工资管理是财务管理的一个重要方面,对于任何一个企业或者组织都极其重要,现今社会利用计算机支持企业或组织高效率来完成操作势在必行。我们由一个四人团队来完成了工资管理系统设计与实现。在本工资管理系统中,涉及到最多的就是对数据的增删改查,当然在真正的系统中,对于这些操作要控制在严格的权限中,使用struts2+hibernate+spring实现了简单的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 定义 GZGLXT Gong Zi Guan Li Xi Tong(工资管理系统)的缩写。 FS Finance Staff(财务人员)的缩写。 NFS Not Finance Staff(非财务人员)的缩写。 JSP Java Server Page(Java服务器页面)的缩写,一个脚本化的语言。 UML Unified Modeling Language的缩写,一个建模语言。 1.3 功能需求 定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足其业务需求。 工资账户管理:对员工的工资账户进行添加、修改、删除。 请假管理:添加请假单,审批请假申请 1.4 系统优势 1)降低财务专员的工作量,提高日常工作效率. 2) 先进的工资管理系统能够及时准确地收集、管理信息,够有效地在企事业单位的各个部门间架起一个沟通的桥梁,使企事业单位或者组织的各个部门根据相关的信息作出合理高效的操作。 3)操作简单易用,能满足企业、学校等组织对员工的工资进行有效管理。 1.5 开发与运行环境 本例的工资管理系统开发与运行环境如下: 开发环境:Windows XP/Windows 7 开发工具:myeclipse 数据库管理系统:MYSQL数据库 运行环境:WindowsXP / Windows 7 2 系统总体结构设计 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)-主要用来管理模块的排列和模块的访问路径。 字段名称 数据类型 字段大小 是否主键 说明 id int 11 Y 模块编号 name varchar 500 N 模块名称 sn varchar 500 N 系统标识 url varchar 500 N 访问路径 orderNo varchar 500 N 优先级标识 parentId int 11 N 父亲模块编号 2)工资账户表(account) 字段名称 数据类型 字段大小 是否主键 说明 id int 11 N 序号 personId int 11 Y 员工id number varchar 255 N 账户编号 status varchar 255 N 审批状态 opinion varchar 255 审批意见 createTime datetime N 创建时间 3)请假管理表(leaves) 字段名称 数据类型 字段大小 是否主键 说明 id int 11 Y 请假次数 personId int 11 N 员工id name varchar 255 N 员工姓名 content varchar 255 N 请假内容 status varchar 255 N 审批状态 opinion varchar 255 N 意见 createTime datetime N 创建时间 fristDay datetime N 开始时间 lastDay datetime N 结束时间 4 详细设计与实现 Spring配置: Spring作为业务层,结合hibernateFilter文件处理, <filter> <filter-name>hibernateFilter</filter-name> <filter-class> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter </filter-class> </filter> <filter-mapping> <filter-name>hibernateFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 4.1 工资账户管理实现 4.1.1 配置 在strusts.xml中添加 <include file="cs/xj/action/account/account.xml"/><!-- 账户管理 --> account.xml的配置如下: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="account" extends="struts-default" namespace="/account"> <interceptors> <interceptor name="securityInterceptor" class="cs.xj.interceptor.SecurityInterceptor"></interceptor> </interceptors> <global-results> <result name="error">/pages/pay_main.jsp</result> <result name="login" type="redirect">/index.jsp</result> </global-results> <action name="accountAction" class="accountAction"> <result name="find">/pages/account/account.jsp</result><!-- 创建工资账户界面--> <result name="approve">/pages/account/approve_account.jsp</result><!-- 审批工资账户 --> <result name="add">/pages/account/add_account.jsp</result><!-- 添加工资账户 --> <result name="saveInput">/pages/account/add_account.jsp</result><!-- 保存添加工资账户 --> <result name="save" type="redirect">/pages/common/success.jsp</result><!-- 保存添加工资账户 --> <result name="delete" type="redirect">/pages/common/del_success.jsp</result><!-- 删除工资账户 --> <result name="app">/pages/account/app_account.jsp</result><!--审批工资账户 --> <result name="approveSuccess" type="redirect">/pages/common/success.jsp</result><!--审批工资账户成功 --> <result name="edit">/pages/account/edit_account.jsp</result><!--修改工资账户 --> <result name="updateInput">/pages/account/edit_account.jsp</result><!--修改工资账户 --> <result name="update" type="redirect">/pages/common/success.jsp</result><!--修改工资账户 成功--> <interceptor-ref name="paramsPrepareParamsStack"></interceptor-ref> <interceptor-ref name="securityInterceptor"></interceptor-ref> </action> </package> </struts> 模块对应数据库表: 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<Person> 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; @Override public void prepare() throws Exception { if(id != null){ account = accountService.findById(id); }else{ account = new Account(); } } @Override public 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 String[]{"number"}, new String[]{personNumber } , new MatchMode[]{MatchMode.ANYWHERE }, offset, PageSize.NORMAL); } else{ pagerModel = 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", "工资账户不能为空"); } else{ Account 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", "工资账户不能为空"); } else{ Account 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<Person> getPagerModel() { return pagerModel; } public void setPagerModel(PagerModel<Person> 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中添加 <include file="cs/xj/action/leave/leave.xml"/><!-- 请假管理 --> leave.xml的配置如下: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="leave" extends="struts-default" namespace="/leave"> <interceptors> <interceptor name="securityInterceptor" class="cs.xj.interceptor.SecurityInterceptor"></interceptor> </interceptors> <global-results> <result name="error">/pages/pay_main.jsp</result> <result name="login" type="redirect">/index.jsp</result> </global-results> <action name="leaveAction" class="leaveAction"> <result name="findMyLeave">/pages/leave/leave.jsp</result><!--个人请假管理 界面--> <result name="find">/pages/leave/approve_leave.jsp</result><!-- 审批请假申请界面 --> <result name="saveInput">/pages/leave/add_leave.jsp</result><!-- 添加请假单界面 --> <result name="save" type="redirect">/pages/common/success.jsp</result><!-- 添加请假单成功界面 --> <result name="edit">/pages/leave/edit_leave.jsp</result><!-- 修改请假单界面 --> <result name="updateInput">/pages/leave/edit_leave.jsp</result><!-- 修改请假单界面 --> <result name="update" type="redirect">/pages/common/success.jsp</result><!--修改请假单成功 界面 --> <result name="app">/pages/leave/app_leave.jsp</result><!-- 审批请假单界面 --> <result name="approve" type="redirect">/pages/common/success.jsp</result><!-- 审批请假单成功界面 --> <result name="delete" type="redirect">/pages/common/del_success.jsp</result><!-- 删除成功界面 --> <interceptor-ref name="paramsPrepareParamsStack"></interceptor-ref> <interceptor-ref name="securityInterceptor"></interceptor-ref> </action> </package> </struts> 模块对应数据库表: 4.2.1 程序实现 (LeaveAction.java): public class LeaveAction extends BaseAction { private static final long serialVersionUID = 1L; private Leave leave; private Integer id; private PagerModel<Leave> pagerModel; private String approve; @Resource(name = "leaveService") private LeaveService leaveService; private String personNumber; @Resource(name = "personService") private PersonService personService; @Override public void prepare() throws Exception { if(id != null){ leave = leaveService.findById(id); }else{ leave = new Leave(); } } @Override public 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 String[]{"person"}, new Object[]{person }, 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"展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




工资管理系统的设计与实现工资账户管理、请假管理毕业设计论文.docx



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/2147363.html