工资管理系统设计

上传人:仙*** 文档编号:32641562 上传时间:2021-10-15 格式:DOC 页数:45 大小:1.34MB
收藏 版权申诉 举报 下载
工资管理系统设计_第1页
第1页 / 共45页
工资管理系统设计_第2页
第2页 / 共45页
工资管理系统设计_第3页
第3页 / 共45页
资源描述:

《工资管理系统设计》由会员分享,可在线阅读,更多相关《工资管理系统设计(45页珍藏版)》请在装配图网上搜索。

1、本 科 生 毕 业 论 文(设 计)题 目:工资管理系统设计 学 号:姓 名:年 级:学 院:系 别:专 业:完成日期:指导教师:摘要摘要:本文从用计算机实现工资管理的角度出发,系统地介绍了为某所大学设计的一套网络环境的工资软件。本文详细叙述了系统的功能、数据结构、概要设计、详细设计。系统实现了职工信息、工资的录入、查询和修改,用户可定制报表,用户管理等功能。系统的特点是采用B/S架构,整个系统的管理工作都集中在服务器端,运用多层软件架构确保了系统的扩展性和适用性。服务器端主要运用servlets实现,客户端主要使用jsp实现。关键字:工资管理系统, oracle的java存储过程,工资计算模

2、块绪论AbstractThis treatise bases on the managing of wage by computer and generally introduces a kind of wage managing software about internet environment for a certain university. It discusses the functions of the system, data structure, summary designing and particular designing in detials. The syste

3、m implements the insert query of the employees information and wage, the reports ,user management and so on. The specialty of the system is using B/S structure. The management of the system focus on the server. It uses several layers software structure to insure the applicability and the expansibili

4、ty of the system. The server is mostly using servlets and, the client is jsp.Key Words:The management system of wage, the java stored procedure of oracle,the module of wage calculoation 目录目 录第一章 绪论11.1 背景11.2 开发工具和运行环境的选择11.3 本文所做的工作2第二章 需求分析32.1 用户功能的需求分析32.2 功能划分42.3 数据描述52.4 数据采集92.5 数据库设计10第三章 概

5、要设计143.1总体设计143.1.1基本概念设计143.1.2开发环境143.1.3软件结构153.2数据结构设计173.2.1全局变量定义173.2.2物理结构设计17第四章 详细设计194.1 登陆窗口设计194.1.1 功能说明194.1.2 实现方法194.2 主界面204.2.1 功能说明204.2.2 实现方法204.3职工信息录入204.3.1 功能说明214.3.2 实现方法214.4 职工信息的查询和修改214.4.1 功能说明224.4.2 实现方法224.5 课时工资信息的录入224.5.1 功能说明224.5.2 实现方法224.6 课时和工资信息的查询和修改234.

6、6.1 实现方法234.7 工资结构的查看234.8工资结构的调整244.9 报表生成244.9.1 实现方法254.10 过滤器和监听器254.10.1 是否登陆过滤器254.10.2 编码过滤器254.10.3 用户监听器25第五章 毕业设计小结265.1目标完成情况和不足265.2总结和体会27致谢28参考文献29附录30附录一 工资的计算公式30附录二 数据库表的结构30附录三 源代码331. oracle的java存储过程(工资计算模块)332. 监听器(日志生成)353过滤器38第 39 页 共 45 页绪论第一章 绪论1.1 背景随着计算机技术的飞速发展,计算机在企业和大学管理中

7、应用的普及,利用计算机实现人事工资的管理势在必行。利用计算机支持企业高效率完成劳动人事管理的日常事务,是适应现代企业制度要求、推动企业和大学劳动人事管理走向科学化、规范化的必要条件;而工资管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,一般不允许出错,如果实行手工操作,每月发放工资须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,计算机进行工资发放工作,不仅能够保证工资核算准确无误、快速输出,而且还可以利用计算机对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理,同时计算机具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储

8、量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事工资管理的效率,也是企业的科学化、正规化管理与世界接轨的重要条件。不同的大学具有不同的人事、工资管理制度,这就决定了不同的大学需要不同的人事工资管理系统。该大学以前的所有资料都是用Foxbase来进行管理的,面对目前的实际状况,迫切需要开发一个新系统来适应这一些工作。1.2 开发工具和运行环境的选择由于各个院系地理分布的复杂性,本系统采用b/s结构,即Brower-Server(浏览器-服务器)架构,B/S 结构是目前最流行的数据库应用模式, 它解决了各种分布式应用, 扩展了业务范围;在B/S 结构下,整个系统的管理、资源分配、 数据

9、库操作、 业务逻辑部件的管理及动态加载等工作集中用服务器,容易部署和管理。由于整个系统使用了B/S架构,在客户端使用标准的Web页面浏览器(如Internet Explorer等),不需安装特殊的应用程序,减少了升级和维护的难度,所有的业务数据都保存在服务器(Server)端,确保了业务的安全;在通讯方面,由于使用的是标准的Http协议,使得系统可以轻松的实现移动办公和分布式管理,同时,为系统与电子商务的整合与扩展打下了坚实的技术基础。灵活的系统体系结构,以及对Internet技术的充分运用,保证了业务逻辑、界面表示的独立,使系统具有高可用性、可伸缩性和易扩展性。本系统采用的多层软件架构确保了

10、系统的扩展性和适用性。整个系统可以分为三层的结构:Client(客户端)-Presentation(表现层)-Database(数据服务层),这三层分别由Browser-Web Server- Database Server构成。1.3 本文所做的工作第一章绪论部分绪论主要叙述课题提出背景、目前应用现状、分析比较当前开发工具,运用的技术。第二章结合软件工程方法,对系统进行需求分析、功能划分、数据流图设计,并结合数据库原理和功能划分进行数据库结构设计。第三章概要设计,介绍了软件的总体设计和数据结构的设计。第四章根据需求分析的结果,对系统进行详细设计,主要介绍每一个模块的具体功能和实现方法。第四章

11、毕业设计小结,总结部分介绍了系统设计中的不足和改进的方向,项目的展望需求分析第二章 需求分析2.1 用户功能的需求分析2.1.1 大学的组织结构(仅讨论管理,教学,科研机构) 如图2-1所示校管会工商学院计算机系自控系电子系机械系力学系图2-1 abc大学组织结构图2.1.2 大学的工资发放标准a、应发工资包括以下几部分:1 基本工资(以职工职称为标准)2 职务工资(以担任职务为标准)3 教学津贴(担任教学任务的职工发放,以职称和课时数为标准 教学津贴 = 津贴标准 * 课时数)4 科研津贴(担任科研任务的职工发放,以职称为标准,每月发放)b、代扣代缴包括以下几个部分:1. 保险金 2. 住房

12、公积金3. 代扣所得税 (计算方法见附录一:代扣代缴费用计算方法)c、其他 (直接录入)职工实发工资 = 应发工资 代扣代缴 + 其他2.1.3 具体需求a提供各项数据的录入,修改,查询功能。包括部门信息,职工信息,工资的发放标准,教师每月课时登记;自动生成每月的应发工资,由操作人员填入各项代扣代缴费用后,自动生成实发工资。(在每月计算工资前,应录入每一个参加教学工作老师的当月课时数据,否则不能计算此老师工资数据,且系统应给出一个出错提示。一个老师可以同时参与教学和科研,两项津贴都按标准发放)b要求提供的报表1基本报表A 每月工资发放表(以部门分组,由用户指定月份作为查询条件)B ABC大学教

13、职工花名册(以部门分组)C 部门各职称职工人数统计表(对应一张显示同样信息的图表)2 综合报表A 分部门各职称工资构成统计表(对应一组显示同样信息的图表,由用户指定月份区间作为查询条件)2.1.3 系统维护提供简单的用户管理的功能,增加,删除用户,设置,修改用户口令。为了兼顾安全性和方便性,在用户管理上针对不同的角色,实现不同的操作权限。2.2 功能划分根据需求分析,将系统划分为7个功能模块,分别为用户登陆,系统管理,数据录入,数据查询,基本报表生成,综合报表生成,用户管理。详细如图2-2所示图2-2 系统构架图2.3 数据描述1、静态数据数据库中表单的个数,表单中数据属性的个数是静态数据。2

14、、动态数据建立数据库时输入的数据,对数据库进行查询时输出的数据都属于动态数据。3、数据库描述本系统所采用的数据库类型为3NF。数据库由9个表组成,分别为部门信息表,职工信息表,职称信息表,职务信息表,教学津贴发放标准,科研津贴发放标准,个人课时登记表,个人工资信息表,用户表。4数据流为了能够向用户清晰地描述该管理系统的具体功能和工作原理,我们先看一下该系统的数据流程图图2-3 顶层数据流图从图2-3中可以看出系统的大概功能,及数据来源,数据输出等。功能主要为数据的保存、查询、及反馈,还有数据的录入等进一步的操作没有显示出来,将在0层图里显示出来。 图2-4 0层数据流图图2-4是本系统的0层图

15、。它把整个系统分为四个子模块。数据录入,工资计算,数据查询,报表生成。数据的主要来源是用户的录入。 图2-5 模块一数据流图图2-5为1层图模块一的数据流图,功能主要是检查录入数据有效性。图2-6 工资计算模块数据流图图2-6为1层图工资计算模块的数据流子图。该图主要由7个子模块组成。主要功能是计算职工基本工资,职务工资,教学津贴,科研津贴,和代扣代缴,最后存储到个人工资信息表里。2.4 数据采集1数据来源 数据主要来源于职工,即职工是数据源,职工的基本信息,职务信息,职称信息,可是登记表等作为数据源输入。其他的教学津贴发放标准,科研津贴发放标准,职称工资标准,由学校统一录入。2数据出路 主要

16、是反馈给各个院系和学校领导,职工个人等2.5 数据库设计1 表和和视图描述表格描述表格名称具体描述部门信息表Dept00系统已建职工信息表Emp000用于记录职工个人信息职称信息表Zc0000系统已建职务信息表Zw0000系统已建教学津贴发放标准Jxjt00系统已建科研津贴发放标准Kyjt00系统已建个人教学登记表Grjxdj用于登记职工每月的教学课时数个人工资信息表Grgzxx用于记录职工的工资的各项内容用户表Users用于记录用户的用户名,密码,和权限各部门职称年龄结构视图View_age用于综合报表3,反应各部门各职称在个年龄段的人数每月工资发放信息视图View_bscrpt1用于基本报

17、表1,2,3,5,的工资发放情况部门工资信息视图View_bscrpt4用于基本报表4,用于分部门统计没月的工资信息,部门职称人数统计视图View_bscrpt6用于基本报表6,用于分部门统计各职称的人数职工信息视图View_emp用于花名册,部门职称工资构成视图View_genrpt1用于综合报表1,部门教学科研力量统计视图View_genrpt2用于综合报表2,表2-1 表和视图表2其他功能模块触发器课时插入触发器Trig_ins_ks当有课时信息被插入时触发,进行工资计算,把除了“其他”以外的信息填写到grgzxx和gz0000表中课时修改触发器Trig_upd_ks当有课时信息被修改时

18、触发,进行工资计算,把除了“其他”以外的信息在grgzxx和gz0000表中的相应行进行修改课时删除触发器Trig_del_ks课时以登记年月为单位整体删除时触发,同时删除在grgzxx和gz0000中有相同登记年月的工资记录其他修改触发器Trig_ins_qt当grgzxx中的其他被修改时,对实发工资进行重新计算,并将修改gz0000中的qt和sfgz(实发工资)存储过程添加新用户过程Pro_adduser(pam_userid,pam_password,pam_useright)根据传递过来的参数在用户表中插入一行用户信息,如果有违反一致性原则,则回传一个错误标识修改用户密码过程Pro_c

19、hgpassw(pam_userid,pam_password)根据传递过来的参数,修改制定用户的密码,如果有违反一致性原则,则回传“错误”插入新职工过程Pro_insemp(pam_empid0,)根据传递过来的参数,插入一行职工信息,如果有违反一致性原则,则回传一个“错误”插入课时信息过程Pro_insksxx(p_djny00,p_empid0,p_kss000p)根据传递过来的参数,插入一行课时信息,如果有违反一致性原则,则回传一个“错误”(将触发触发器)修改用户权限过程Pro_setuser(pam_userid,pam_useright)根据传递过来的参数,对指定用户的权限进行修改

20、函数计算职工年龄范围Fun_age(pam_birthday)根据传递过来的参数,计算职工年龄,并且转换为年龄段信息回传表2-2 其他功能模块表3表之间关系 图2-7 表关系图数据库的详细结构详见附录。概要设计第三章 概要设计3.1总体设计3.1.1基本概念设计本软件是基于web的工资管理系统,开发结构为数据库/应用服务器/客户端的三层结构,即数据层/逻辑层/表示层,系统在J2EE平台上实现;考虑到实际情况,本系统的用户可能是财务管理者,也可能是普通职员,为了兼顾安全性和方便性,在用户管理上针对不同的角色,实现不同的操作权限。3.1.2开发环境数据库服务器使用Oracle9i,客户端统一使用W

21、eb浏览器,向应用服务器的HTTP端口发请求。配置对象软件要求硬件要求网络环境IE 5.5,Windows 2000内部局域网应用服务器Tomcat5.0PCPU512M内存40G硬盘数据库服务器Oracle9iP CPU1G内存72G硬盘数据库开发平台PL/SQL Developer开发环境JbuilderX Dreamweaver2004512M内存主频1GCPU 40G硬盘表3-1 开发环境表3.1.3软件结构系统的SC图如下所示 图3-1 系统sc图图3-1为管理员所能操作的功能,普通用户只能查看其中的数据查询和登录注销模块。功能需求与模块的关系序号模块简称/简称模块名需求简要描述1L

22、OGIN用户登录根据登录的用户角色,显示不同的菜单项,限制普通用户的权限。2QUIT退出系统阻止用户非正常退出系统,将用户保存在web应用服务器上的所有session删除。3CONS_PRIL_MODEL用户构造根据不同的用户角色,动态构造不同的菜单项目。4M_USER用户管理管理除自己外的所有用户,包括删除,添加和修改,普通用户要使用该系统,必须由管理员创建登录名和密码。5CHANGE_PASSWORD密码更改用户更改自己的密码6VALIDATIOON数据有效性校验(通用模块)通过给需要校验的表单元素增加扩展属性,就可以完成客户端表单数据的校验。校验会给出合理的提示信息,并自动定位到不合理数

23、据元素。7DEPT_OPER部门信息维护部门信息的输入与修改。8TEACHER_OPER职工信息维护职工信息的输入与修改。9PAY_OPER工资标准信息维护工资标准的输入与修改。10COURSE_OPER课时信息的维护课时信息的输入与修改。11QUERY_DEPT部门信息查询查询部门信息,并可操作数据。12QUERY_TEACHER职工信息查询查询教师信息,并可操作数据。13QUERY_COURSE课时信息查询查询课时信息,并可操作数据。14QUERY_PAY工资标准查询查询工资标准,并可操作数据。15SUM_PAY统计工资按部门统计各项数据。可按部门查询和个人查询,并统计各个部门的数据。16

24、SYNCHRONIZE同步操作将常用的数据下载到客户端,并与服务器同步,加快频繁查询字段的输入速度。表3-2 功能需求和模块表3.2数据结构设计3.2.1全局变量定义全局变量的名称变量意义例子PuStr_ErrorLogFile存放系统日志的文件c:DseJavaError_WS.logPuStr_ErrorLogFileTemp系统日志临时文件c:ErrorTemp_WS.txtPuStr_kzbPath系统功能文件存放路径C:tempcxkzbPuStr_bmPath系统表码所存放的路径C:tempcxbmpuStr_host数据库的服务器地址192.168.0.128puStr_port

25、数据库的服务器端口号1521puStr_SID数据库的SIDDRAGONpuStr_user数据库的服务器用户帐号Abc_bmpuStr_password数据库的服务器用户密码aaapuStr_dbJNDI数据库的JNDI名DSgaj表3-3 全局变量表 注:这些全局变量的信息存放在一个配置文件里,这个配置文件存放在jre的目录下,jre的目录可由系统的变量JAVA_HOMEjre来定位,配置文件名为abc.ini3.2.2物理结构设计 系统全局变量保存在一个配置文件中,码表从数据库读入到web应用服务器本地的系统上,方便读取,加快读写速度,数据库保存在oracle9i服务器上。详细设计第四章

26、 详细设计4.1 登陆窗口设计图4-1 登录窗口界面4.1.1 功能说明用户信息的验证。要求输入用户名和密码,并检查用户名和密码的正确性。如果正确,则设定用户的使用权限,进入系统的主界面;如果错误,则提示用户继续输入,直到退出系统为止。4.1.2 实现方法首先链接数据库,要求用户输入用户名和密码 ,点击登陆,则读取用户表users,把用户输入的信息与用户表中的信息进行比较,如果正确,则进一步读取用户的使用权限到session里的username和scope,同时打开主界面;否则,给出提示信息重新进入登陆界面。4.2 主界面图4-2 主界面4.2.1 功能说明用户操作的主界面,左边是功能菜单,列

27、出了当前用户具有功能选项。右边是主界面,具体的操作都在主界面实现4.2.2 实现方法主界面有三个框架组成。分别为title,menu,main。Tile中主要是系统名称,menu主要是一些功能按钮。如职工信息录入,查询,修改;工资信息的查询录入和修改,报表生成等功能。这些功能是随着用户的权限的变化而动态变化的。如一般用户进入后就只有查询功能,没有录入的功能。点击menu里的功能按钮后,在main框架中就会出现这个功能的具体操作,下面将详细介绍各个功能。4.3职工信息录入图4-3 职工信息录入界面4.3.1 功能说明进行职工信息的录入工作。4.3.2 实现方法用户录入各项信息后,进行客户端验证(

28、JavaScipt),例如职工编号不能为空,出生日期不能有字母等。为了增强程序的健壮性,客户端有可能禁用javascipt,所以在服务器端最好也加上相同的验证。经过验证以后合法的职工信息,将被存储在emp000中,存储成功后给出提示信息,并返回录入界面,如果存储失败,返回出错界面,给出提示信息。4.4 职工信息的查询和修改图4-4 职工信息查询和修改界面4.4.1 功能说明给出检索条件(姓名,部门等),检索出职工的简要信息,点击查看后,给出职工的详细信息。点击更改后,进入更改界面4.4.2 实现方法查询条件,可以列出职工的所有信息,供检索,或者只列出职工主要信息,如姓名,部门等。更改界面里,职

29、工编号是不能被修改的,其他职工信息的有效性验证与录入相同。4.5 课时工资信息的录入图4-5 工资信息录入界面4.5.1 功能说明实现职工每月课时和工资(其他方面)录入4.5.2 实现方法先选择要录入的年月和部门,点提交后,下方列出这个部门要录入的所有员工(注意:有的员工没有参加教学,那么他的课时录入框应该为空)。录入完毕点提交后,先检查数据有效性(课时数不能超过三位数,不能含有字母,其他方面工资不能含有字母)。然后在grgzxx中存储课时数,如果存储成功,那么将触动触发器,调用工资计算模块,计算出职工的工资信息,最后储存在grgzxx表中。整个过程放在一个事务处理中,万一有一项出错,那么就恢

30、复到录入前的状态。4.6 课时和工资信息的查询和修改 图4-6课时和工资信息的查询和修改界面4.6.1 实现方法选择好你要查询的年月,和职工编号,点检索后,就会列出这个员工本月工资列表,这时候你可以修改课时数,和其他方面的工资,点更改后,系统会自动调用触发器,更改课时数和职工的工资信息。4.7 工资结构的查看图4-7 工资信息查看界面上图可以看到这个模块的主要功能是察看每个级别的工资信息。4.8工资结构的调整 图4-8工资结构的调整界面这个模块的主要功能就是修改工资的结构。4.9 报表生成 图4-9 报表界面4.9.1 实现方法先将数据库里的数据生成xml文件,调用微软的web控件,通过jst

31、l里xml标签,读取xml文件,放到控件里头。4.10 过滤器和监听器4.10.1 是否登陆过滤器当用户发送请求时,检查用户是否登陆,或者超过20分钟没有动作,自动进入重新登陆界面。4.10.2 编码过滤器使用gb2312编码,解决中文乱码问题。4.10.3 用户监听器监听当前用户,产生日志文件。日志内容包括:当前时间,用户所做的操作,当前在线用户人数,用户名单。毕业设计小结第五章 毕业设计小结5.1目标完成情况和不足本软件通过努力,基本上完成了需求中的功能。实现了工资和人事管理的初级应用。由于时间限制,部分功能未纳入系统。如报表的打印功能。现在的报表只能在导入excel后,使用excel的打

32、印功能。数据库设计方面由于较多地考虑到了各个库的相对独立性,在结构设计、完整性约束不是很规范。另外变量名、字段名等命名也不规范。无错误处理模块以及帮助系统。由于软盘容量及本人在美学方面的欠缺,程序的界面不是非常美观。程序中遇到的问题和解决办法1)由于操作员口令直接存放在数据库中,在系统运行时数据库文件必须存在,这样,人们可以通过直接获取操作员口令,给系统的安全性带来了比较大的隐患。解决办法:对口令进行加密,加密的思路是这样的,规定口令最长为10位,逐位取出来后,让每位字符的ASCII码值与144作二进制的异或运算,然后重新组合来新的口令,这样,1234这个口令在库中存放时就成了、¥鞍鞍鞍,别人

33、根本看不懂是什么。用二进制异或运算作加密算法的好处是:只需将密文再加一个密,由于与同一个异或运算两次就成了原来的,这样在编程上就比较容易实现。在程序编制完成后,可将有关源程序删除,编译成可执行文件,这样,口令就不容易泄密。2)由于系统对数据库操作比较频繁,而连接数据库不仅要开销一定的通讯和内存资源,还必须完成用户验证、安全上下文配置这类任务,因而往往成为最为耗时的操作。解决办法:使用tomcat的自带连接池。多个请求共享一个连接,减少了连接数据库的开销。3)代码优化方面,jsp代码中大量的使用scriptlet,使代码晦涩难懂,增加了代码的维护困难。解决办法:使用jstl标准的标签。4)报表输

34、出。原来采用的是直接在网页中画表格。这样做无法实现用户的手动定制。比如设置表格大小,字体等。解决办法:使用微软自带的web控件。这个控件在网页中显示的样式跟excel类似。可以控制显示大小,排序等功能,最主要的是他能将数据导入到excel,使用excel进行编辑和打印。5)jsp页面的中文乱码问题。解决办法:由于每个页面都存在这个问题。最后采用了一个监听器。在监听器里把编码设为gb2312。5.2 项目展望这个项目虽然大致完成了预定要求,但是由于时间比较仓促,一些功能具体实现上可能还不能完全满足客户要求。例如报表的用户订制和打印,多用户的集成测试等。在下一版本的开发中,在这几个方便改进和提高。

35、致谢致谢当我敲完论文的最后一个字符,夜已经很深了,推开房门,站在阳台上,只见一轮明月高悬在夜空中,那银色的光洒满大地,世界显得如此宁静。夜风吹过,让我的头脑顿时清醒,在这几个月的毕业设计过程中,我获得的每一个进步和收获,都凝结着恩师的辛勤培养和许多人的关心帮助 。在这里,我首先要衷心感谢恩师整个论文工作都是在他的精心指导下完成的,望着这厚厚的论文,它的每一页、每一个符号都浸透着导师的心血和汗水。谨以此文表达我对恩师最诚挚的感谢!其次我要感谢的是学校的领导,是你们给了我这次提高的机会,还有巨龙软件,所有帮助过我的人。参考文献参考文献1 javadoc1.4.22 作者:Cay S.Horstma

36、nn,Gary Cornell Core Java 2,6e,Volume I:Fundamentals 机械工业出版社 2003年10月1号3 作者: James W.Cooper Java Design Patterns 中国电力出版社 2003年10月1日4 作者:飞思科技产品研发中心 J2EE应用开发(WebLogic +Jbuilder)电子工业出版社 2003年7月1号5 作者:David FlanaganJavascript 权威指南 机械工业出版社 2003年1月1号6 作者:Bruce EckelJava编程思想,机械工业出版社,2002年9月第一版附录附录附录一 工资的计算

37、公式代扣代缴费用的计算方法:保 险 金: 应发工资 * 5%住房公积金: 应发工资 * 3%所 得 税: 应发工资 1300 元部分开始计算所得税0 500 按 (工资 1300)* 5%0 2000 按 (工资 1300)* 10% - 250 5000 按 (工资 1300)* 15% - 125附录二 数据库表的结构1 部门信息表( dept00 已建 )字段描述字段名称字长类型属性备注部门IDDeptid3CNot nullPrimark key部门名称Dpname30CNot null部门描述Dpdes0100C2 职工信息表( emp000 )字段描述字段名称字长类型属性备注职工编

38、号Empid015CNot nullPrimark key姓名Name008C性别Sex0001C出生日期Birthday8C部门Deptid3C职称Zcid002C职务Zwid002C是否教学Jx00001C显示“是”或“否”以“a”,“b”作为实际数据是否科研Ky00001C显示“是”或“否”以“a”,“b”作为实际数据简历Jl0000200C3 职称信息表( zc0000 已建 )字段描述字段名称字长类型属性备注职称编号Xh00002CNo nullPrimark key职称名称Mc000010C基本工资Jbgz0010,2N4 职务信息表( zw0000 已建 )字段描述字段名称字长类

39、型属性备注职务编号Xh00002CNot nullPrimark职务名称Mc000012C职务工资Zwgz0010,2N5 教学津贴发放标准表( jxjt00 已建 )字段描述字段名称字长类型属性备注职称编号Xh00002CNot nullPrimark key每课时津贴Jt000010,2N6 科研津贴发放标准表( kyjt00 已建 )字段描述字段名称字长类型属性备注职称编号Xh00002CNot nullPrimark key每月科研津贴Jt000010,2N7个人教学课时登记表( grjxdj )字段描述字段名称字长类型属性备注登记年月Djny006CNot nullPrimark k

40、ey职工编号Empid015CNot nullPrimark key课时数Kss0003,0N8.个人工资信息表( grgzxx )字段描述字段名称字长类型属性备注登记年月Djny006cNot nullPrimark key职工编号Empid015CNot nullPrimark key基本工资Jbgz0010,2N职务工资Zwgz0010,2N教学津贴Jxjt0010,2N科研津贴Kyjt0010,2N保险金Bxj00010,2N住房公积金Zfgjj010,2N代扣所得税Dksds010,2N其他Qt000010,2N9用户表(users)字段描述字段名字长类型属性备注用户名Userid1

41、5CHARPRIMARYKEY密码Password15CharPrimarykey用户权限Useright15Char附录三 源代码1. oracle的java存储过程(工资计算模块)package com.dragonsoft.pub;import java.sql.*;public class grgzxx_do public static void insert_grgzxx(String djny,String empid,int kss,float qt) throws Exception try Connection myConnection = DriverManager.get

42、Connection( jdbc:default:connection); Statement mystatement = myConnection.createStatement(); mystatement.execute( call dbms_java.set_output(2000) ); ResultSet productResultSet = mystatement.executeQuery( select emp000.*,zc0000.*,zw0000.*, jxjt00.jt0000 as jxjt,kyjt00.jt0000 as kyjt from emp000 ,zc0

43、000,zw0000 ,jxjt00 ,kyjt00 where empid0= + empid + and emp000.zcid00=zc0000.xh0000 and emp000.zwid00=zw0000.xh0000 and emp000.zcid00=jxjt00.xh0000 and emp000.zcid00=kyjt00.xh0000 ); productResultSet.next(); float jb = productResultSet.getFloat(jbgz00); float zw = productResultSet.getFloat(zwgz00); S

44、tring isjx = productResultSet.getString(jx0000); String isky = productResultSet.getString(ky0000); float jx = productResultSet.getFloat(jxjt) * kss; float ky = productResultSet.getFloat(kyjt); productResultSet.close(); System.out.println(jb + + zw + + jx + + ky); if (isjx.equals(b) jx = 0; if (isky.

45、equals(b) ky = 0; float yfgz = jb + zw + jx + ky; System.out.println(yfgz= + yfgz); float baoxian = yfgz * (float) (0.05); float zfgj = yfgz * (float) (0.03); float sds = 0; float temp = yfgz - 1300; if (temp 0 & temp 500 & temp 2000) sds = temp * (float) (0.15) - 125; System.out.println(insert into

46、 grjxdj values( + + djny + + , + + empid + + , + kss + ); mystatement.execute( delete from grgzxx where djny00=+djny+ and empid0=+empid+ ); mystatement.execute( delete from grjxdj where djny00=+djny+ and empid0=+empid+ ); mystatement.execute( insert into grgzxx values( + + djny + + , + + empid + + ,

47、 + jb + , + zw + , + jx + , + ky + , + baoxian + , + zfgj + , + sds + , + qt + ) ); mystatement.execute( insert into grjxdj values( + + djny + + , + + empid + + , + kss + ); mystatement.execute(commit); mystatement.close(); myConnection.close(); catch (Exception e) throw e; 2. 监听器(日志生成)package com.d

48、ragonsoft.pub;import javax.servlet.ServletContext;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import javax.servlet.http.HttpSessionAttributeListener;import javax.servlet.http.HttpSessionBindingEvent;import javax.servlet.http.HttpSessionEvent;import javax.serv

49、let.http.HttpSessionListener;import javax.servlet.http.HttpSessionActivationListener;import javax.servlet.http.HttpSessionBindingListener;import java.io.PrintWriter;import java.io.FileOutputStream;public final class MySessionListener implements HttpSessionActivationListener ,HttpSessionBindingListen

50、er , HttpSessionAttributeListener, HttpSessionListener,ServletContextListener ServletContext context; int users=0; /HttpSessionActivationListener public void sessionDidActivate(HttpSessionEvent se) logout(sessionDidActivate(+se.getSession().getId()+); public void sessionWillPassivate(HttpSessionEven

51、t se) logout(sessionWillPassivate(+se.getSession().getId()+); /HttpSessionActivationListener /HttpSessionBindingListener public void valueBound(HttpSessionBindingEvent event) logout(valueBound(+event.getSession().getId()+event.getValue()+); public void valueUnbound(HttpSessionBindingEvent event) log

52、out(valueUnbound(+event.getSession().getId()+event.getValue()+); /HttpSessionAttributeListener public void attributeAdded(HttpSessionBindingEvent event) logout(attributeAdded( + event.getSession().getId() + , + event.getName() + , + event.getValue() + ); public void attributeRemoved(HttpSessionBindi

53、ngEvent event) logout(attributeRemoved( + event.getSession().getId() + , + event.getName() + , + event.getValue() + ); public void attributeReplaced(HttpSessionBindingEvent se) logout(attributeReplaced(+se.getSession().getId()+,+se.getName()+,+se.getValue()+); /HttpSessionAttributeListener /HttpSess

54、ionListener public void sessionCreated(HttpSessionEvent event) users+; logout(sessionCreated( + event.getSession().getId() + ),目前有+users+个用户); context.setAttribute(users,new Integer(users); public void sessionDestroyed(HttpSessionEvent event) users-; logout(sessionDestroyed( + event.getSession().getId() + ),目前有+users+个用户); context.setAttribute(users,new Integer(users); /HttpSessionListener /ServletContextListener public void contextDestroyed(ServletContextEvent sce) logout(contextDestroyed()-ServletContext被销毁); this.context = null; public void contex

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!