基于ASP.NET技术的员工业绩管理系统设计与开发*
2015-12-05陈昱钧
祁 力,陈昱钧
(1.湖州强力软件技术服务有限公司,浙江 湖州313000;2.浙江省镇海中学,浙江 镇海315200)
0 引言
随着企业的发展,人才需求与日俱增,为加快人才队伍建设,引导员工多渠道成才,各单位都规划了多渠道人才培养成长路径,建立了多通道人才发展体系,提供每年各级各通道人才申报机会.由于各类通道的申报及考核的业绩材料涉及专业管理、建章立制、创新成果、专业研究、合理化建议、技术比武、个人荣誉、年度考核等多方面内容,为了减少员工填写申报表的工作效率,同时便于公司掌握各类人才成长情况,提出利用计算机技术开发一套员工业绩辅助管理工具.
1 设计思路与总体架构
收集员工各类业绩材料,通过对各类材料的整理、分析和归类,并利用数据库和文件服务器统一存储和管理,改变各类文档及材料由员工自己保存的方式.收集各类人才申报文件,分析并提取申报条件,制定相应的人才申报规则库,使得员工的业绩材料能够与申报条件进行匹配计算.开发基于B/S架构的应用软件,用户只要使用浏览器,即可完成数据录入、业绩查询、荣誉展示、人才申报评分等操作,方便用户的使用,并提高安全性.
软件采用MVC三层架构[1]:UI视图层、业务逻辑层和数据层.UI层负责与用户交互,接受用户的输入并将服务器端传来的数据呈现给用户.业务逻辑层负责接受浏览器传来的请求并将请求传给数据层,同时将请求结果返回给浏览器.数据层通过ADO.NET 操纵数据为事务逻辑层提供数据服务,存储数据操作结果,返回数据检索结果.
软件通过ASP.NET 技术采取断开连接方式的数据结构,在浏览器向Web服务器请求网页后,由服务器处理请求,并将请求的网页发给浏览器,断开连接,直到浏览器发出下一个请求[2].开发引入ADO.NET 访问数据库原理,采用数据集(Dataset)方式,将内存中的数据关系图作为高速缓冲区,由程序通过从数据仓库中调入数据后生成并填充.
软件主要包括数据录入、查询、荣誉展示、模拟评分、报表统计、系统管理六个功能模块.使用浏览器作为客户端,运用HTTP协议进行用户请求及服务端的数据返回.应用程序发布在拥有数据库连接池功能的服务器上,将所有业务数据和逻辑运算应用在服务端,确保程序安全的同时,提高客户端执行速度和较强的用户体验.客户端上传文件的附件存储在服务端固定的文档文件夹中,同时将上传涵盖的上传人、上传时间、文件所属类型、文件存放物理路径等基本信息存入Oracle数据库的数据表中,通过文件编号,检索上传的附件,且可以进行远程下载[3].软件总体架构如图1所示.
图1 员工业绩管理系统软件总体架构图Fig.1 Overall architecture diagram of the systematic software for the management of employee’s performance
2 实现方法
软件使用Visual Studio 2008开发环境,基于ASP.NET 平台技术采用C#语言开发.利用Orcale10g数据库实现数据存储与检索,采用IIS(互联网信息服务)部署发布程序.
2.1 应用程序设计
使用HTML标签技术实现在客户浏览器中显示对应的用户界面,结合CSS层叠样式与Table表格布局显示应用服务层动态传送的信息,web窗体还使用.NET 平台自带的控件来提供用户与界面交互,通过事件处理机制向应用服务器递交HTTP请求,实现业务逻辑规则.
数据访问层执行从数据库获取数据或向数据库发送数据的功能.采用ADO.NET 提供的五大对象和程序借口,如Dataset、DataView、DataAdapter、DataReader、DatasetCommand等,对数据库接口化数据处理提供方便,提高存取数据效率.
2.2 数据库设计
由于各类资料种类较多,而且固定对应的关键字段较困难,在数据库设计时,采用非常规的表结构设计,所有的业绩材料均保存在一张数据库表中.表1以论文为例,显示一篇论文在数据库中的存储方式.
表1 数据表Staff_Info设计Table 1 Design of Staff_Info data table
通过以上设计,减少了数据表的创建,虽然复杂化了SQL语句的查询,但对程序设计开发和数据库维护带来了很大方便.如查询张三在2011年度发表的论文,可以先通过以下SQL语句查询到论文的PID:
Select A.pid from Staff_Info A,Staff_Info B Where A.Name='作者'and A.Txt=’张三’and B.Name=’发表时间’and B.Txt=’2011年11月’and A.Tid=9and A.Pid=B.Pid
再通过查到的PID 结果集(假设为1),利用SQL语句,查询到如发表刊物、期刊号、论文级别等信息.
Select*From Staff_Info Where Pid=1
同理,只要改变查询语句中TID 的值,就可实现其他如个人荣誉、集体荣誉、创新成果等资料的查询.
2.3 安全设计
软件在设计和开发时,充分考虑到了网站的安全性.如采用对用户输入进行服务器验证、SQL 查询采用参数化、最小化数据库账户和权限、过滤输入特殊字符、限制服务器的响应、Cookie的检查等措施,降低SQL注入、跨站脚本等攻击的可能性.同时利用备份系统定时对数据库进行备份,确保数据的安全性.
3 主要功能
3.1 功能模块
软件主要功能包括荣誉展示、数据录入、档案查询、模拟打分、报表管理、系统管理等.软件系统界面一览如图2所示.
图2 员工业绩管理系统软件界面图Fig.2 Interface diagram of the systematic software for the management of employee’s performance
3.1.1 荣誉展示
荣誉展示主要包括部门荣誉展示、人才展示的模块.部门荣誉展示呈现获奖图片,获奖内容包括创新成果、技术比武、集体荣誉等.人才展示展现部门单位所有员工的基本信息、职称、岗位、职称、技师、人才通道等内容.
3.1.2 数据录入
申报材料涵盖基本信息、专业管理、建章立制、创新成果、专业研究、合理化建议、技术比武、个人荣誉、年度考核9大类,有些大类又细分了子类.各类资料分类表如表2所示.用户通过统一入口,对资料进行录入,对多人共享的荣誉奖项一次录入,避免重复.通过对资料的详细分类录入,方便了应用程序对数据的处理.
表2 数据表Staff_Info设计Table 2 Data table classification
3.1.3 档案查询
利用数据库筛选能力,实现多维度查询以及自动抽取功能,其中可按类别、起始时间、相关人员选择对应的申报材料.可查询近三年省部级以上的科技创新、群创成果、论文、个人及集体竞赛获奖,以及相关专业工作业绩评优等专业内容.
3.1.4 模拟打分
通过自动抽取员工职业生涯归档库与申报条件比较,实现各级各类人才申报条件满足度的动态跟踪和预判.系统智能匹配数据库对人才通道规划、工程师规划、技师规划进行模拟打分,通过模拟打分要求进行条件比较,同时给员工提供努力的方向和目标.
3.1.5 报表统计
实现个人信息报表及专业统计报表.个人信息报表已实现关键字段可选择,列表可生成,报表可导出.专业统计主要获得部门统计与个人统计在各专业类别下款项总数,通过个人获得款项总数可与部门统计总数比较,提供员工在专业上的努力方向及不足之处.
3.1.6 系统管理
主要实现系统配置及用户管理、角色管理、密码修改以及模拟打分的动态规则库功能.
3.2 系统权限设计与配置
本文中的员工业绩管理系统,将整个系统的角色按层级次序分为超级用户、系统管理员、劳资管理员、普通用户四个角色.其中,第一层为超级用户;第二层为系统管理员;第三层为各部门的劳资管理员;第四层为各部门员工.每个高层继承了相应的底层角色的全部权限.
(1)超级用户具有最高的权限,负责用户的添加与删除、系统数据备份与恢复、基础数据的设置与维护,以及用户权限的分配.
(2)系统管理员具有维护各功能模块的操作权限外,还可以对下一层的角色进行权限管理.
(3)劳资管理员具有部门员工业绩资料的统一维护功能,拥有数据浏览及修改、文档资料上传等权限.
(4)普通用户具有所在部门荣誉展示浏览,有且只有浏览个人信息的权限.
根据以上对用户角色和需求功能的分析,设计数据库中用户信息表Sys_User、Sys_Role的外键和主键分别为FK_UserRole_Id和PK_Role_Id.在角色表中新增两个字段,分别为模块名称ModuleName和模块页面地址ModuleURL.自定义HttpModule模块对用户的HTTP请求进行权限验证.用户有权限正常访问页面,否则重定向错误页面.系统将所获取的HTTP请求提交给自定义模块HttpModule,模块将用户登录会话信息Session[“usertype”]判断该会话是否存在,如不存在,直接过滤返回错误页面,如已存在,判断该会话信息得到用户角色类型,并通过委托事件application_ValidateRequestState,将用户角色类型与数据库中的用户角色表和用户表联查进行资源比较,通过使用ADO.NET 技术得到返回结果,若结果返回False,则角色没有访问权限,反之,访问对应权限下的模块及功能.页面权限访问控制如图3所示.
图3 页面权限访问控制Fig.3 Page access control
4 结语
开发员工业绩管理系统是为各专业部门提供员工基本资料、人才通道、个人及集体荣誉、发表论文为对象的综合业绩辅助的专用工具软件,提供多维度、多类别的数据查询,涵盖个人可追溯的历史业绩记录,集中管理员工业绩信息进行信息化电子管理.在辅助员工业绩材料申报及单位部门员工业绩管理工作上有了很大的突破和提升,达到了开发的预期效果.
[1]李丛.基于B/S架构的办公自动化系统的设计与实现[J].计算机与现代化,2012(10):165-167.
[2]杨晓光.ASP.NET 网络程序设计教程[M].北京:清华大学出版社,2013.
[3]黄静,王枫,谢表新,等.EAST 文档管理系统的设计与实现[J].计算机技术与发展,2014(7):13-16.