人力资源测评系统设计与实现

2024-06-16 12:58张剑
电脑知识与技术 2024年12期
关键词:二维码人力资源

张剑

关键词:在线投票;人力资源;二维码

0 引言

人力资源测评是一项常态化的工作,多年来采用纸质投票形式进行。在测评流程方面,测评形式不断丰富,参与测评的人员数量增多,每一次投票都需要消耗大量的纸张和其他耗材,同时,测评结果相应的数据量也越来越庞大。在测评规则方面,规则日益复杂,具体表现在:一是题型上的多样化,包括单项选择、不定项选择等;二是投票方式包括匿名和实名两种;三是根据岗位划分投票类型。人力资源测评直接关系到领导班子及干部的综合能力考核、干部提拔、工作开展成效等,因此必须保证结果的准确性。采用纸质投票,每次投票都会出现一定比例的无效票,这会影响实际考核成绩,且复杂的测评规则导致计票工作复杂、烦琐且易出错,需要多次核对,耗费大量人力物力,产生较大的时间成本。

在线投票系统可以有效解决这些问题,用户投票后,由服务器端自动进行统计汇总。这种方式快捷、实时、高效,尤其能够减轻工作人员的统计压力,提高统计的正确率。

1 系统需求分析

传统的人力资源测评流程是:主管部门设计并发放测评票,投票人员进行投票,然后汇总统计投票结果得出结论。

其具体需求场景为,在测评前,主管部门设计测评票的问题、题型及选项。测评票根据投票人员的岗位划分为四类,分别是A、B、C、D票。测评时,对应发放测评票,一人一票,其中A票、B票人员需要实名投票,C票、D票人员则进行匿名投票。测评后,进行统计,除了所有选票的汇总总表外,还需要针对四种票型分别进行统计,并可查看A票、B票人员提交的测评票结果。

对第三方投票平台的调研后发现,微信小程序、App、投票网站等平台上提供的投票功能单一,不能满足如此复杂的测评场景的规则,因此需要开发一套适配测评流程和测评规则的在线投票系统。

2 系统设计

2.1 系统总体架构

基于B/S模式(浏览器/服务器, Browser/Server) 进行开发,采用MVC(Model-View-Control,即模型-视图-控制)设计模式[1]。在该架构中,模型为数据层,实现数据库的集中存储管理;控制器为业务逻辑层,为表现层提供数据库访问接口并提供服务;视图为表现层,通过HTTP向业务逻辑层发送消息。如图1所示为系统的总体架构设计。

2.2 系统功能设计

系统功能主要包括用户投票、测评票设计与维护、测评结果统计与打印、后台管理以及防止恶意投票和重复投票等功能。用户分为后台维护人员(电脑端应用)和投票人员(移动端应用)两类。

1) 后台维护人员核心功能。系统通过ASP+Java?Script实现了满足需求所列复杂测评规则的设计,如图2所示。

① 测评票设计与维护。测评票分为四种,分别为领导班子及班子成员测评、选人用人工作民主评议、新提拔干部测评、党建工作测评。领导班子及班子成员测评的题型为评分,可以规定评分的定型标准,编辑测评题目,分值区间为0~10分,默认为9.0分。选人用人工作民主评议、新提拔干部测评、党建工作测评三类测评的题型可根据题目自选,包括评分、单选、不定项选择、手动输入四种。可以根据题型编辑题目和选项。题目内容和数量、选项内容和数量均可自行定义。更改题目的显示顺序时,不需要重新编辑题目,可通过改变排序值的大小自行设置,排序值小的排在前面。

② 测评结果统计与打印。根据主管部门提供的测评汇总表进行设计,用户投票数据发送至服务器,由系统进行汇总、统计,得出测评结果,可在网页上浏览或按照测评汇总表的格式导出为xls文件。

③ A票、B票人员名单维护。后台维护人员在测评前先行将A票、B票人员名单及其基本信息录入系统数据库,可根据人员情况进行增加和删除。领导班子成员测评票需根据录入的人员名单进行设置。

④ 创建投票二维码。按照需求,将投票人员分为A、B、C、D四类,根据每一类投票人员的数目生成对应的二维码。每一类测评票生成一个二维码,每个人对应四类测评票生成四个二维码,这四个二维码生成在一张图片中,实现一人一票和匿名设计。创建好所有的二维码后,自动将所有图片打包,供后台维护人员下载至本地,便于打印。

2) 投票人员核心功能。投票人员无须注册。C 票和D票投票人员在扫描二维码后可以直接进行匿名投票,而A票和B票人员须实名投票,因此在投票时必须进行身份认证,只有身份信息完全匹配时,才可投票。

2.3 系统数据库设计

根据功能分析,本系统需要建立A票、B票人员表、四类测评票的测评票表及投票记录表,以减少表间不必要的耦合并提高数据存取效率。本着数据库设计的一致性、安全性和可扩展性等要求[2],建立了数据库模型并进行了数据库设计,共设计了15个表,包含163个字段。图3展示了数据库的E-R图,用于表示实体之间的联系和依赖[3]。

1) 每一类测评票与用户之间是一对多的关系,即每一类测评票都可以被多个用户投票。

2) 测评票与投票记录之间是一对多的关系,每个测评票都对应多条投票记录。

3) 用户与每一类测评票对应的投票记录之间是一对一的关系,即每个用户对一类测评票只能产生一条投票记录。

3 关键技术

3.1 Ajax 技术

JavaScript是一种已被广泛应用于Web开发的高级脚本语言,主要用于为网页添加动态功能,提供流畅美观的浏览效果。它通过嵌入HTML中来实现自身的功能。jQuery是一个JavaScript框架,它提供了强大的功能,使得JavaScript 脚本更加简洁、方便。例如,在传统的Web开发中,前端与服务器的通信每次数据更新都需要重新刷新网页,而jQuery的Ajax()方法则提供了一种新的方式。

Ajax[4]是一种用于创建交互式、快速动态网页应用的技术,与传统的B/S开发技术相比,其主要区别在于Ajax可以实现网页的异步更新,在不刷新整个页面的前提下,更新页面的某个部分。

3.2 HTML5技术

HTML5是构建Web内容的一种语言描述方式,它是对以往HTML技术的改进[5]。例如,表单是实现用户与页面后台交互的主要组成部分,HTML5在表单设计上的功能更加强大,其类型和属性的多样性大大增强了HTML表达表单的形式,有利于程序员的快速阅读和开发。

3.3 二维码创建并打包下载

这项技术的难点在于将二维码批量导出并压缩到一个文件夹中。另外,需要注意的一点是,请求图片资源时采用的是异步请求[6],必须等到所有图片请求完成后才能进行打包。实现思路如下:

1) 利用QRCode()方法生成四个单独的二维码,并将它们作为一组重新绘制在一个HTML5 Canvas 标签内。

2) 通过Base64编码方式,将Canvas画布信息转换成一串二进制数据。

3) 解码这些编码,将其转换为PNG格式的图片,并存放于HTML5的img标签内,形成测评票面。

4) 循环生成所有测评票面的图片,利用JsZip方法压缩生成的文件,形成压缩包。

3.4 安全策略

考虑到系统安全,登录时通过正则表达式限制输入的文本。如果用户输入如“/”“=”等符号,将被视为SQL注入[7],从而无法提交。投票人员的二维码在投票完成后立即销毁,这能有效防止重复投票和暴力破解,从而保障系统安全。

4 应用测试

为了保证系统正式投入应用时的效果,在开发完成后,对系统的业务流程和功能模块进行了全面测试,并对测试中出现的问题进行了及时的修改和完善。除了进行功能测试(图4~图5) ,还利用ApacheJMeter工具进行了压力测试(图6) ,对服务器、数据库和网络进行了负载模拟。

据了解,实际参与测评的人数一般不超过200人,每人扫码4次,因此在测试时,设置线程数为250个(相当于模拟250个用户),启动时间设为1秒,循环次数设为4次。测试能够顺利完成,没有出现请求错误,响应时间的中值为431毫秒。

5 结论

本系统严格遵循软件开发流程,进行需求分析、系统设计与开发,并针对Ajax技术、二维码创建与打包下载、网站安全策略、Apache JMeter性能测试等关键技术进行了深入研究。此外,完成了主体代码的编写、测试和优化。系统功能覆盖电脑端和手机端,实现了电脑端系统的部署和职工手机端的在线投票,服务器自动计算并统计用户的投票结果。该系统弥补了传统纸质投票方式的不足,具有界面简洁、性能可靠和便捷高效的特点,进一步提升了信息化技术水平,并为后续类似软件的研发提供了至关重要的借鉴。

猜你喜欢
二维码人力资源
可以吃的二维码
二维码迷宫
二维码
让人力资源会计成为企业的“新名片”
让严肃的二维码呆萌起来
二维码让政务公开更直接
宝鸡:松绑人力资源
试论人力资源会计
二维码,别想一扫了之
寻找人力资源开发新路