2022年人事管理系统需求分析文档.pdf
1 编写目的开发设计基于 SQL SERVER 的数据库,进而对数据库有更深刻的认识,同时锻炼自己上机动手能力。1.2 背景说明:a.该软件命名为:人事管理系统;b.本项目的任务提出者:指导老师开发者:王青峰,王加龙用户:企业2 系统开发环境操作系统: Windows 2000数据库: Sql server 2000开发语言: java 语言需求分析:本系统是人事管理系统, 它主要实现管理员如何对普通用户进行授权,如何插入、 删除一个员工的信息,用户如何浏览员工的所有信息,以及用户如何查询自己想要的结果,也即是通过输入查询条件,显示符合条件的员工记录以及如何显示这个员工的全部信息。如何对查询或统计出来的符合条件的记录用报表的形式打印出来,窗口打开时的排放顺序,也即是平铺还是重叠。系统功能需求分析该系统需要完成如下功能:1 员工各种信息的输入,包括员工的基本信息、学历信息、培训记录、调动记录、奖惩记录、考勤信息、工资信息。2 员工各种信息的修改。3 对于辞职、退休、开除员工信息的管理。4 按照某种条件,查询统计符合条件的员工信息。5 对用户进行授权。6 对查询、统计的结果打印输出。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 16 页 - - - - - - - - - - 3系统功能分析系统开发的总体任务是实现企业人事管理的系统化、规范化和自动化。本系统所具有的功能主要有:普通员工查看员工信息?加班津贴的管理。 (根据加班的时间和类型给予不同的加班津贴。)?员工月工资的生成。 (根据月工资生成公式,按照员工的考勤情况和工作表现,生成员工月工资。 )?系统管理员对系统的管理。?企业工资报表的生成。 (支持各种不同形式的报表,如单个员工工资报表生成、部门员工工资报表生成等)?信息查询系统的使用帮助。帐号信息的修改。实现功能:主要功能实现如下普通用户: 1 浏览员工信息2 修改密码管理员:1 浏览所有员工信息2 修改员工信息3 增加新的员工4 撤除员工信息5 对系统进行些设置精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 16 页 - - - - - - - - - - 流程图 : 人事管理系统E-R 图:N 1 1 1 N 1 1 1 1 1 1 1 N 1 M 员工部门组成管理管理员拥有基本信息拥有学历信息工资考勤信息拥有奖惩记录培训记录调动记录拥 有拥有拥有用户拥有拥有N 1 1 1 系统登陆非法用户退出系统合法用户用户信息维护系统初始化管理员参数设置普通用户修改密码信息浏览精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 16 页 - - - - - - - - - - 基本信息:学历信息:培训情况:基本信息员工号职 务状 态学 历出生年月民 族部 门性 别政治面貌婚姻状生分证号籍贯开 始 工 作家庭住址电 话血 型学历信息专 业员工号学历毕 业 院毕业外语类外语级别计算机级别培 训 情 况培训名称培 训 内员工号开始时间结束时间培训单位培 训 地培训费用姓 名年 龄精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 16 页 - - - - - - - - - - 考勤信息:工资管理:调动记录:考勤信息员工号本月天数应 出 勤 天请假天数公休假天数节假日加班日常加班工资管理员工号部门状 态基本工加班补贴交 通 及 通 讯 补公积金养老金所得税应 发 工实 际 工调动记录员工号姓名调动前部门调动前职务调动原因调动时批 准 人调 动 后调 动 后精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 16 页 - - - - - - - - - - 奖惩记录:部门信息:用 户:管理员:奖 惩 记 录员工号姓名奖 惩奖惩内容奖惩原因奖惩批准部门负 责 人部门信息部 门 号部门部 门 经部门员工数用 户用户名口令管理员管理员密码权限精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 16 页 - - - - - - - - - - 关系模型:(标有下划线的为主键 ) 基本信息(员工号,姓名,年龄,性别,部门,职务,修、学历,状态,出生年月,籍贯,民族,身份号,婚姻状况,政治面貌,血型,开始工作时间,家庭住址,电话)学历信息 (员工号, 学历, 专业,毕业院校,毕业时间,外语类型, 外语级别, 计算机级别)培训情况(培训名称,培训内容,员工号,开始时间,结束时间,培训单位,培训地点,培训费用)考勤信息(员工号,本月天数,公休假天数,应出勤天数,请假天数,节假日加班,日常加班)工资管理(员工号,部门,状态,基本工资,加班补贴,交通及通讯补贴,公积金,养老金,所得税,应发工资,实际工资)调动记录(员工号,姓名,调动前部门,调动前职务,调动原因,调动时间,批准人,调动后部门,调动后职)奖惩记录(员工号,奖惩,姓名,奖惩内容,奖惩原因,奖惩时间,批准部门,负责人)部门信息(部门号,部门,部门经理,部门员工数)用户(用户名,口令)管理员(管理员,密码,权限基本信息表列名数据类型及长度可否为空说明员工号char(10) not null emp_no 姓名char(20) not null emp_name 年龄int(4) not null age 性别char(10) null sex 部门char(10) null emp_bm 职务char(10) null emp_zw 学历char(10) null emp_xl 状态char(8) null emp_zt 出生年月datetime(8) null emp_csny 籍贯varchar(10) null emp_jg 民族char(20) null emp_mz 身份证号char(30) null emp_sfzh 婚姻状况char(8) null emp_hyzk 政治面貌char(20) null emp_zzmm 血型char(10) null emp_xx 开始工作时间datetime(8) null emp_ksgzsj 家庭住址char(30) null emp_jtzz 电话char(20) null emp_th 培训记录表列名数据类型及长度是否为空说明培训名称char(30) notnull pxnr 培训内容char(30) null pxmc 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 16 页 - - - - - - - - - - 员工号char(10) null emp_no 开始日期datetime(8) null ksrq 结束日期datetime(8) null jsrq 培训单位char(30) null pxdw 培训地点char(30) null pxdd 培训费用money(8) null pxfy 考勤信息表列名数据类型及长度是否为空说明员工号char(10) notnull emp_no 本月天数int(4) notnull byts 公休假天数int(4) null gxjts 应出勤天数int(4) null ycqts 请假天数int(4) null qjts 节假日加班int(4) null jjrjb 日常加班int(4) null rcjb 工资管理表列名数据类型及长度是否为空说明员工号char(10) notnull emp_no 部门char(10) notnull emp_bm 状态char(10) notnull emp_zt 基本工资money(8) null jbgz 加班补贴money(8) null jbbt 午餐补贴money(8) null wcbt 交通及通讯补贴money(8) null jtbt 公积金money(8) null gjj 养老金money(8) null ylj 应发工资money(8) null yfgz 所得税money(8) null sds 实发工资money(8) null sfgz 调动记录表列名数据类型及长度是否为空说明员工号char(10) null emp_no 姓名char(20) null emp_name 调动前部门char(10) null ddqbm 调动前职务char(10) null ddqzw 调动原因ntext(16) null ddyy 调动时间datetime(8) null ddsj 批准人char(10) null pzr 调动后部门char(10) null ddhbm 调动后职务char(10) null ddhzw 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 16 页 - - - - - - - - - - 奖惩记录表列名数据类型及长度是否为空说明员工号char(10) notnull emp_no 姓名char(20) null emp_name 奖惩char(10) notnull jc 奖惩内容char(10) null jcnr 奖惩原因char(10) null jcyy 奖惩时间datetime(8) null jcsj 批准部门char(10) null pzbm 负责人vacha(50)null fzr 学历信息表列名数据类型及长度是否为空说明员工号char(10) notnull emp_no 学历char(10) notnull emp_xl 专业char(20) null zy 毕业院校char(20) null byyx 毕业时间datetime(8) null bysj 外语类型char(10) null wylx 外语级别char(10) null wyjb 计算机级别char(10) null jsjjb 用户表列名数据类型及长度是否为空说明用户名char(10) null yh_name 口令char(10) null yh_key 管理员表列名数据类型及长度是否为空列名管理员char(10) null name 密码char(10) null password 权限char(10) null permission 部门信息表列名数据类型及长度是否为空说明部门号char(10) bmh 部门char(10) bm 部门经理char(10) bmjl 部门员工数int(4) bmygs 部门工资money(8) bmgz 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 16 页 - - - - - - - - - - T-SQL语句-全体员工信息 - use 人事管理系统go create proc find_all as begin select * from 员工end GO exec find_all - -调动信息查询use 人事管理系统go create proc find_diaodong as begin select * from 调动记录end GO exec find_diaodong - -奖惩记录查询use 人事管理系统go create proc find_jiangcheng as begin select * from 奖惩情况end GO exec find_jiangcheng - -考勤记录查询精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共 16 页 - - - - - - - - - - use 人事管理系统go create proc find_kaoqin as begin select * from 考勤end GO exec find_kaoqin - -培训记录查询use 人事管理系统go create proc find_peixun as begin select * from 培训end GO exec find_peixun - - 按员工号或姓名查询use 人事管理系统go create proc proc_nona 员工号char(10),姓名char (20) as select * from 员工where 员工号 =员工号or 姓名 =姓名GO exec proc_nona 员工号=2,姓名 = exec proc_nona 1, 李牧白 - -按部门查询员工信息并返回员工数- 存储过程调用存储过程use 人事管理系统go create proc proc_bumen 部门char(10) ,sum int output as select * from 员工where 部门 =部门精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 11 页,共 16 页 - - - - - - - - - - select sum=count(*) from 员工where 部门 =部门return sum GO -调用按部门查询的存储过程create proc proc_bm 部门char(10) as declare e int exec proc_bumen 部门,e output print 本部门共有 +cast(e as char(2)+ 名员工。 GO exec proc proc_bm 部门 =人事部 exec proc proc_bm 人事部 - - 按员工号或姓名查询工资use 人事管理系统go create proc proc_gongzi 员工号char(10),姓名char (20) as declare 状态char(10) declare name char(20) select 状态 =状态, name= 姓名 from 基本信息where 员工号 =员工号or 姓名 =姓名if 状态 =在职 begin select 员工号, 姓名,状态 ,基本工资 ,加班补贴 +午餐补贴 +交通及通讯补贴+公积金as 补贴 , 基本工资+加班补贴 +午餐补贴 +交通及通讯补贴+公积金as 应发工资 , (基本工资+加班补贴 +午餐补贴 +交通及通讯补贴+公积金 )*0.2 as 所得税 , (基本工资+加班补贴 +午餐补贴 +交通及通讯补贴+公积金 )*0.8 as 实发工资from 工资管理where 员工号 =员工号or 姓名 =姓名end else if 状态 =退休 begin select 员工号, 姓名,状态 ,基本工资 ,养老金 +公积金as 补贴 , 基本工资+养老金 +公积金as 应发工资 , (基本工资+养老金 +公积金 )*0.2 as 所得税 , (基本工资+养老金 +公积金 )*0.8 as 实发工资from 工资管理where 员工号 =员工号or 姓名 =姓名精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 12 页,共 16 页 - - - - - - - - - - end else if 状态 =辞退 begin print 员工 + name +已经退职,所以工资停发 end else -状态 =开除 begin print 员工 + name + 因!以被公司开除,所以工资停发 end exec proc_gongzi 员工号=2,姓名 = exec proc_gongzi 11, - - 删除某员工的基本信息use 人事管理系统go create proc del_jiben 员工号char(10),姓名char (20) as delete from 基本信息where 员工号 =员工号or 姓名 =姓名GO exec del_jiben 员工号=2,姓名 = exec del_jiben 19, - use 人事管理系统/* 如果存在同名的触发器,则删除*/ if exists( select name from sysobjects where type=trand name=tri_jiben) drop trigger tri_jiben go create trigger tri_jiben -触发器演示on 基本信息after delete as print You have deleted +cast(rowcount as varchar)+ record(s)! - use 人事管理系统/* 如果存在同名的触发器,则删除*/ if exists( select name from sysobjects where type=trand name=tri_jiben) drop trigger tri_jiben 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 13 页,共 16 页 - - - - - - - - - - go create trigger tri_jiben -触发器演示on 基本信息after delete as declare 员工号char(10),姓名char(20), 性别char(10),年龄int, 部门char(10), 职务char(10) select 员工号 =员工号 , 姓名 =姓名 ,性别 =性别 ,年龄 =年龄 , 部门 =部门 ,职务 =职务from deleted if len(员工号 )=0 -or 姓名 is null begin print 没该员工的信息! rollback tran end else begin insert into 基本信息副表values ( 员工号 , 姓名 , 性别 , 年龄 , 部门,职务 ) print You have deleted+ cast(rowcount as varchar) + record(s)! end go - exec del_jiben 员工号=12,姓名 = exec del_jiben 35, id int , 员工号char(10), 姓名char(20), 性别char(10), 年龄int, 部门char(10),职务char(10) as begin insert into 基本信息( id,员工号 , 姓名 , 性别 , 年龄 , 部门,职务) values ( id , 员工号 , 姓名 , 性别 , 年龄 , 部门,职务) end GO exec ins_jiben1 22, 22,aaa, 男,23, - - x修改调动记录(8 条属性)- 员工号char(10), 调动前部门char(10), 调动前职务char(10), 调动原因ntext(16), 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 14 页,共 16 页 - - - - - - - - - - -调动时间dateti 批准人char(10), 调动后部门char(10), 调动后职务char(10) use 人事管理系统go create proc upd_diaodong1 员工号char(10), 调动前部门char(10), 调动前职务char(10), 调动原因ntext(16), 调动时间datetime(8), 批准人char(10), 调动后部门char(10), 调动后职务char(10) as update 调动记录set 调动前部门 = 调动前部门 , 调动前职务 =调动前职务 , 调动原因 =调动原因 , 调动时间 =调动时间 , 批准人 = 批准人 , 调动后部门 =调动后部门 , 调动后职务 =调动后职务where 员工号= 员工号go - exec upd_diaodong1 2, - use 人事管理系统/* 如果存在同名的触发器,则删除*/ if exists( select name from sysobjects where type=trand name=tri_jibe3) drop trigger tri_jiben3 go -插入时触发器create trigger tri_jiben3 on 基本信息副表for insert as declare 员工号char(10) select 员工号 =员工号from inserted if exists (select * from 基本信息副表where 员工号 =员工号) begin print 该员工记录已经存在,您不能再插入! rollback end 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 15 页,共 16 页 - - - - - - - - - - else print 你已经成功插入了+cast(rowcount as varchar)+ 条记录 ! - exec ins_fubiao 22,aaa, 男,23, -精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 16 页,共 16 页 - - - - - - - - - -