资源描述
1、 引言
“工作考核”即由公司对其所有职工的工作成绩进行评价,是公司深入发展的需要,也是提高工作质量的有效方法之一,目前在许多公司应用非常普遍,并作为公司质量评价的必要环节被纳入公司的管理规范,对进一步完善公司效益监控体系,保证公司效益有着重要的现实意义。而目前随着企业改革的深人和工厂规模的不断扩大,传统的工作考核过程采用由职工填表,手工统计的办法,这样造成工作量大、损耗多、时效性差的弊端。针对如何利用Web技术来解决公司工作考核中遇到的实际问题,提高考核过程的效率,本小组成员提出并设计了基于Java、SQL Server技术,采用B/S架构模式的“网上工作考核系统”的解决方案。
1-1、编写目的
说明这份软件产品需求分析报告是为哪个软件产品编写的,开发这个软件产品的意义、作用、以及最终要达到的意图。通过这份软件产品需求分析报告详尽说明了该软件产品的需求规格(包括修正和(或)发行版本号),从而对该软件产品进行准确的定义。
如果这份软件产品需求分析报告只与整个系统的某一部分有关系,那么只定义软件产品需求分析报告中说明的那个部分或子系统。
1-2、文档约定
描述编写文档时所采用的标准、排版约定。排版约定应该包括:
● 正文风格;
● 提示方式;
● 重要符号;
也应该说明高层次需求是否可以被其所有细化的需求所继承,或者每个需求陈述都有其自己的优先级。
1-3、参考文献
列举编写软件产品需求分析报告时所用到的参考文献及资料,可能包括:
● 本项目的合同书;
● 上级机关有关本项目的批文;
● 本项目已经批准的计划任务书;
● 用户界面风格指导;
● 开发本项目时所要用到的标淮;
● 系统规格需求说明;
● 使用实例文档;
● 属于本项目的其它己发表文件;
● 本软件产品需求分析报告中所引用的文件、资料;
● 相关软件产品需求分析报告;
为了方便读者查阅,所有参考资料应该按一定顺序排列。如果可能,每份资料都应该给出:
● 标题名称;
● 作者或者合同签约者;
● 文件编号或者版本号;
● 发表日期或者签约日期;
● 出版单位或者资料来源。
2、需求分析
2-1、数据流分析
在得到并了解输入、输出数据,需要将整个数据处理过程抽象为数据流分析结果,并且通过对数据流分析,可以获知数据的逻辑处理过程。具体分析结果如下图:
总经理
职工
职工任务书
P1
转换工作任务书
P2
职工评分
D1
评分标准
评分
D2
评分记录
D3
评价方案
P3
统计评价结果
部门经理、人事部门
职工个人评价结果
汇总评价结果
图 Error! No text of specified style in document.1网上考核系统”数据流图
整个考核过程中,首先人事部门应将已经存在于系统中的考核任务书进行适当转换,生成适合考核的评价方案,然后职工考核按照评分标准进行考核评分,并记录所有的评分结果。在获得所有评分结果后,职工可以查看属于自己的个人评分统计结果,而总经理和人事部门可以获得汇总的评价结果。
考核数据最终需要记录到数据库系统中,为此,需要专门对数据库进行分析设计。首先,给出系统数据库的概念模型,即绘制实体关系图(E-R模型)。通过对上述的数据分析结果进一步分析,得出初步ER模型如下图:
考核编号
项目部门编
小组编号
评单项
职工
部门编号
职工编号
职工姓名
选项
指标体系
指标描述
指标编号
权重分值
N
N
N
评分考核
图 Error! No text of specified style in document.2 原评分模型(ER模型)
以上是最初设计的评分模型,但是,该模型用于统计分析时存在以下几个问题:
(1) 数据量大
考核一次,评单表需要存储的数据条数可由以下公式得出:
粗略估计,该公司每年约生成100万条纪录,这对于统计分析来说,数据量是极其庞大的。而且开销巨大。
(2) 事务统计
首先数据量庞大必然造成汇总运算慢,而汇总慢的本质原因就是从事务进行统计,统计层次低。
为此,在具体实现该系统的时候,改进了该评分模型,将评单表一分为二:
考核表用于存储部门考核每位职工的评分;考核表用于存储部门考核工作效益的最终指标分布情况。
由于对数据进行预处理,提高统计层次,并将统计运算分散在评分的过程中,实现时间负载均衡,提高了统计效率,最终模型如图:
评分
职工
部门编号
职工编号
职工姓名
分数
评单项
选项
指标体系
指标描述
指标编号
权重分值
N
N
M
M
考核编号
项目部门编
小组编号
评分考核
图 Error! No text of specified style in document.3 评分模型(ER模型)
3、系统实现
3-1功能模块设计
对数据流进行分析,可以看出系统主要包括的功能是:考核方案的输入和修改、考核标准的输入和修改、评单的输入与查询修改、数据汇总、查询和打印等功能。具体的功能模块可以用下图表示:
工厂职工考核系统
系统注册
确定考核方案
确定考核标准
凭单处理
数据汇总统计
查询打印
退出系统
个人情况反馈
部门考核情况
全厂考核情况
考核
查询
凭单项目输入修改
凭单输入修改
添加凭单
复制凭单
撤销输入
保存记录
删除记录
实施职工查询
清除查询条件
图3-1考核系统功能模块图
3-2、数据库设计
3-2-1、关系模式
通过对数据库概念模型,即实体联系模型分析,按照转换规则,将上述ER模型转换为关系模型(即关系模式),并进行规范化检验。主要的转换和检验结果如下:
主评单(评单号,部门经理姓名,考核编号,考核名称,部门,小组,职员,是否有效,小组号)
评单项(评单号,评价序号,选项,选项符号)
评价方案(评价类别,评价序号,评价内容,A,B,C,D,权重)
评分标准(选项,评分)
注:带下划线的属性为关系的主属性(关键字即主键)。
3-2-2、物理数据库表
通过将上述关系模式,可以建立“考核系统”的物理数据库,以下是主要数据表结构:
表 Error! No text of specified style in document.1部门信息表(Department Info)
主键
列名
数据类型
长度
允许空
描述
√
de_id
varchar
7
0
部门编号
de_username
varchar
16
1
登录用户名
de_password
varchar
36
1
密码
de_truename
varchar
16
1
姓名
de_title
varchar
16
1
职称
de_birth
datetime
8
1
出生日期
de_native
varchar
36
1
民族
de_IdentifyID
varchar
18
1
身份证号
de_code
varchar
12
1
注册验证码
chr
varchar
1
1
姓氏拼音
表 Error! No text of specified style in document.2 评分指标体系表(Mark)
主键
列名
数据类型
长度
允许空
备注
√
ma_id
smallint
2
0
指标编号
ma_type
int
4
1
指标类型编号
ma_kind
char
50
0
指标描述
ma_score
smallint
2
1
指标分值权重
ma_order
smallint
2
1
排序
表 Error! No text of specified style in document.3 评分对象表(Workman_assess)
主键
列名
数据类型
长度
允许空
备注
√
as_id
int
4
0
评分编号
as_co_id
varchar
10
0
科目编号
de_id
varchar
7
0
部门编号
as_cl_id
varchar
12
0
小组编号
as_term
varchar
6
0
评分(性质)
表 Error! No text of specified style in document.4 评单表(Workman_poll)
主键
列名
数据类型
长度
允许空
备注
√
id
int
4
0
as_id
int
4
0
评分编号
ma_id
smallint
2
0
指标编号
A
tinyint
1
0
A求和汇总
B
tinyint
1
0
B求和汇总
C
tinyint
1
0
C求和汇总
D
tinyint
1
0
D求和汇总
表 Error! No text of specified style in document.5 评分表(Workman_score)
主键
列名
数据类型
长度
允许空
备注
√
id
int
4
0
as_id
int
4
0
评分编号
sn
varchar
14
0
职工号
score
tinyint
1
0
分数
表 Error! No text of specified style in document.6 评分对象联结表(Workman_assess_join)
主键
列名
数据类型
长度
允许空
备注
√
as_id
int
4
0
评分编号
as_co_id
varchar
10
0
课程编号
de_id
varchar
7
0
部门编号
as_cl_id
varchar
12
0
小组编号
as_term
varchar
6
0
评分(性质)
marked
tinyint
1
1
评分人数
score
numeric
9
1
分数
stat_stdev
numeric
9
1
样本标准差
stat_stdevp
numeric
9
1
总体标准差
Course
varchar
48
0
科目名称
CourseRequire
varchar
16
0
科目要求
CourseType
varchar
16
0
科目类型
CourseMarkType
tinyint
1
1
评价指标
de_truename
varchar
16
1
部门经理姓名
de_department
varchar
20
1
所属科目
de_title
varchar
16
1
职称
wmNum
int
4
1
职工人数
order_id
bigint
8
1
排序号
表 Error! No text of specified style in document.7 考核评分汇总表(Workman_group_by_course)
主键
列名
数据类型
长度
允许空
备注
√
as_id
int
4
0
评分编号
de_id
varchar
7
0
部门编号
as_term
varchar
6
0
评分(性质)
marked
tinyint
1
1
评分人数
score
numeric
9
1
分数(结果)
stat_stdev
numeric
9
1
样本标准差
stat_stdevp
numeric
9
1
总体标准差
Course
varchar
48
0
科目名称
CourseRequire
varchar
16
0
科目要求
CourseType
varchar
16
0
科目类型
CourseMarkType
tinyint
1
1
评价指标
de_truename
varchar
16
1
部门经理姓名
de_department
varchar
20
1
所属科目
te_title
varchar
16
1
职称
iAll
int
4
0
全厂排名
iCourse
int
4
0
科目排名
iCourseType
int
4
0
科目类型排名
iDepartment
int
4
0
部门排名
order_id
bigint
8
1
排序号
根据关系模型,在SQL SERVER中建立数据表之间的关系,如图32所示。
图 Error! No text of specified style in document.2 数据库表间关系
3-2-3、视图
由于该系统的基础数据来源于教务系统,在本方案中采用视图调用方式,构建逻辑数据库结构,并从教务系统Education数据库中获得数据。具体需要构建的视图如下:
表 Error! No text of specified style in document.8 工厂部门视图(Department)
主键
列名
数据类型
长度
允许空
备注
√
DepartmentID
varchar
6
0
部门编号
Department
varchar
36
0
部门名称
ShortName
varchar
24
0
简称
表 Error! No text of specified style in document.9职工信息表(Workman Info)
主键
列名
数据类型
长度
允许空
备注
√
WKID
varchar
14
0
职工号号
wkCode
varchar
14
0
部门号
Name
varchar
8
0
姓名
Sex
varchar
2
0
性别
Birth
varchar
16
0
出生日期
Nationality
varchar
16
0
民族
Political
varchar
16
0
政治面貌
EduType
varchar
8
0
wkify
varchar
8
0
Native
varchar
36
0
籍贯
Wk-name
varchar
36
0
科目
EducationLen
int
4
0
DiplomaNo
varchar
36
0
DegreeNo
varchar
36
0
wkFlag
varchar
20
0
PunishFlag
varchar
16
0
IDCard
varchar
18
0
表 Error! No text of specified style in document.10职工信息表(Department Info)
主键
列名
数据类型
长度
允许空
备注
√
dwkID
varchar
12
0
部门编号
Dwk
varchar
36
0
部门名称
Specialty
varchar
36
0
科目
EducationLen
int
4
0
dwkNum
int
4
0
部门人数
表 Error! No text of specified style in document.11 科目信息表(Course)
主键
列名
数据类型
长度
允许空
备注
√
CourseID
varchar
10
0
科目编号
Course
varchar
48
0
科目名称
CourseRequire
varchar
16
0
科目要求
CourseType
varchar
16
0
科目类型
CheckType
varchar
8
0
考查类型
CourseMarkType
tinyint
1
1
评价指标
CreditHour
float
8
0
评分
Period
float
8
0
Term
varchar
8
0
考核(性质)
EnglishName
varchar
100
1
英文名称
Memo
varchar
100
1
备注
4、系统实现
4-1、初始化评分数据
4-1-1、生成考核对象表
实现学生网上评教,首先需要初始化评分对象,由于教务系统已经有数字化的教学任务书,将教学任务书转换为评价对象表,即可实现,表格 Error! No text of specified style in document.9为教学任务书表结构:
表 Error! No text of specified style in document.1 工作任务书表(WorkTask)
主键
列名
数据类型
长度
允许空
备注
√
dwkID
varchar
12
0
部门编号
CourseID
varchar
10
0
课程编号
Term
varchar
6
0
考核(性质)
PriDepart
varchar
36
0
dwkPeriod
float
8
0
LabPeriod
float
8
0
ComputerPeriod
float
8
0
MultiMediaPeriod
float
8
0
OtherPeriod
float
8
0
WeekSpan
varchar
18
0
Weeks
int
4
0
WeekPeriod
float
8
0
PriTeacher
varchar
16
0
PriTeacherID
varchar
50
1
部门经理编号
PriTitle
varchar
16
0
MinTeacher
varchar
16
0
MinTitle
varchar
16
0
UniteClass
varchar
200
0
ScoreFlag
bit
1
0
PkFlag
bit
1
0
Memo
varchar
48
1
将工作任务书(ClassID、CourseID、Term、PriTeacherID)直接导入评价对象表(stu_assess),可使用INSERT…SELCET语句实现。
某些科目,由多位部门经理同时管理,在考核任务书中,多位部门经理编号(PriTeacherID) 使用‘,’号分隔,需要生成多个评价对象,分别评分。
在SQL Server中没有提供SPLIT函数,可结合系统内置函数(SUBSTRING、CHARINDEX、LEN)编写自定义函数实现。
相关的主要代码和注释请参见TeachTask2StuAssess、insertStuAssess_x、insertStuAssess存储过程、SPLIT用户定义函数。
4-1-2、生成静态联结表
评分对象表(stu_assess)需要联接多表,如图 Error! No text of specified style in document.2所示,在系统运行中,多表联结、大表联接都是极耗资源的,而评分对象表(stu_assess)又是系统运行的核心表,将被系统反复调用、联结。
然而,在相对固定的时间,数据发生变动的可能性低,在一年之内,考核都是在每月,季,年末进行,所以在考核过程中,数据不存在任何变化,可以采用生成静态联结表的方式,避免大表的频繁联结,以提高系统运行效率。
在网上考核系统中,我们使用内嵌表值函数实现参数化视图的功能,然后通过CreateStatTable存储过程使用INSERT…FROM语句导入评分对象联结表(stu_assess_join)和评分课程汇总表(stu_group_by_course)。
4-2、职工评分
4-2-1、评分权限验证
通过上述建立数据库将工厂员工信息导入相应表,直接采用视图调用工厂中的职员注册信息进行学生的身份验证。
4-2-2、获取考核单
4-2-3、职员评分
职工登录后,列表显示当前考核单该职员需要评分的内容,包括员工所在小组、部门的所有内容。
(插图)
点击评分,打开该课程相应的评教指标体系,点选A、B、C、D给对应的指标项打分。为了防止学生恶意评分,对于全部选A、全部选D的情况将不予提交,对于漏选的情况也都通过JavaScript对表单进行判断,给出漏选的提示。
4-2-4、评分数据的存储
员工点击提交后,将通过UpdateAssess()函数提交评分数据:
在客户端,使用Javascript汇总各指标项得分,将最后得分插入至评分表(dwm_score);评单表(dwm_poll)用于存储该门评分课程的最终指标分布情况,每评完一位职工,对应指标项的选支(A、B、C、D)加一。
提交评分是一个连续的,而原子性的过程,因此,必须采用事务进行提交,以保证数据完整性。
4-3、指标体系
由于科目类型不同,因此对部门经理的要求也就不一样,相应的考核体系也要作出调整,为此,指标体系必须设计成可以自定义的。
顶部的工具栏菜单可以对指标体系进行增加、编辑和删除。在操作栏内可以上下调整指标项显示的顺序,点击编辑,更改指标项的描述和分值权重。
4-4、评分统计
4-4-1、小组(部门)评分汇总
小组是评分统计是最小单元,管理人员可查看部门经理在某个小组的考核评价情况,以及员工参与评分的情况,包括该小组评分人数、平均分、统计标准差等。
平均分需要剔除所有学生评分的上下7%之后再平均,以消除特殊情况(员工恶意评分)对统计结果的影响,由于SQL SERVER并未提供如此特殊的聚类函数,因此需要开发自定义函数满足该需求。
顶部是搜索工具栏,管理人员可按姓名、科目、职称、部门、课程类型、评分(性质)、是否满足统计比率等条件对评分结果进行筛选。
点击查看详情,可查看该科目的指标体系得分分布情况。
4-4-2、部门经理考核汇总
部门经理的最终得分是按部门经理所主管科目的所有小组的平均分,只需对原小组汇总结果进行一次分类汇总即可得到。该得分是进行各种排名的依据。
存储过程updateGroupOrder用于计算部门经理最终的全厂总排名、部门排名、科目排名和科目类型排名。
通过在搜索工具栏中选择不同的排名类型,点击搜索,可查看该科目在不同范围内的排名。
点击评分统计,可查看评价指标按科目汇总详情,其中包括该门课程在全厂,部门,科目类型和科目中的排名;全厂,部门,该科目类型和该科目的平均分以;统计样本标准差、样本方差、总体标准差、总体方差;最后,是该课程的指标体系得分分布详情。
4-4-3、指标统计
指标统计可按姓名、科目、职称、部门、科目类型、科目要求分别进行汇总,得到在该搜索条件下,得分在指标体系中的分布情况。
4-5、员工管理
这一部分包括部门经理信息管理、员工信息管理和系统人员(人事部门)管理,由于功能都大同小异,都是数据库的基本操作(增加、删除、编辑、查询、列表显示),因此编写通用数据库操作类来实现。
Sql类用于根据动作生成相应的Sql 语句,DB执行该Sql,并将结果返回给调用页面,最后模板输出显示。
图 Error! No text of specified style in document.40 数据库操作活动图
4-6、部门经理信息管理
部门经理信息管理可增加、编辑、删除登录注册信息。
4-7、系统人员管理
系统人员管理可增加、编辑、删除后台人员登录注册信息。
4-8、权限管理
4-8-1、员工权限管理
只允许员工在规定的时间进行考核,因此需要设定员工考核权限。使用专业信息表(special)生成树,员工权限表(stu_right)保存勾选的结点。员工登录时,只需要验证其在小组编号是否在权限树中被勾选,即可登录。同样使用了如权限管理相同的树目录控件。
4-8-2、部门经理权限管理
在员工完成考核,并且汇总统计完成之后,才开放部门经理权限,让部门经理登录查看自己的得分情况,同部门经理权限管理类似,但只精确到工厂开放。
展开阅读全文