时间:2024-04-24
兰天 邓小云
摘 要:利用现有OA系统的电子假条图片和计算机OCR(Optical Character Recognition)技术,实现假条图片中员工姓名、请假时段、事由等信息的自动识别与抠取。将相关信息自动汇总,最终通过使用命令批处理调用Node.js连接百度OCR接口,抠取假条图片上相关信息。在后台调用Excel假条统计文件,使用VBA宏将抠取的假条信息填入,并使用Excel相关公式去除本年度法定节假日和周末,最终计算出员工实际请假天数,并自动填入,以实现假条自动化汇总,减少人事部门人工汇总的工作压力,降低出错率。
关键词:OCR技术;OA系统;绿色人力资源
中图分类号:F272.92;TP391.4 文献标志码:A 文章编号:1673-291X(2020)23-0073-02
长期以来,人事部门假条汇总工作都以纸质请假条的人工保管为主,假条的保管、查询、统计和数据分析等都十分不便捷,并需要消耗大量的人力物力,且出错率高。然而,随着信息化的发展,现阶段很多单位都已经拥有OA系统(Office Automation System),这样就使得人事管理员可以获取制式的请假条图片。另一方面,OCR(Optical Character Recognition)技术近年来发展迅速,精准度高,百度、搜狗、腾讯、汉王等行业巨头都提供了OCR接口,方便其他程序调用。因此,可以通过使用Node.js调用OCR接口,完成图片有效内容的抠取,再调用Excel文件,将有效内容自动填入Excel文件中,并配合Excel中的相关公式和预留信息,完成自动汇总和统计员工及二级部门的全年请假状况。
一、使用Node.js调用百度OCR接口
1. var image = fs.readFileSync("./image/1.png").toString("base64");
2. var client = new AipOcrClient("118298", "Oj4LWg9LUH", "pKtcyr7cxIRAGlg");
使用Node.js调用百度OCR,抠取制式图片上的信息,并将它们以项的形式存储在JavaScript的数组里。
二、调用自定义模板文字识别
1. var fs = require(′fs′);
2. var xlsx=require("node-xlsx");
3. client.custom(image, options).then(function(result) {
4. var datas=[];
5. var result3=`=HYPERLINK("假条照片`+′\\′ + result.data.ret[1].word + result.data.ret[2].word.replace(/-/g, ′′) + "-" + result.data.ret[0].word.replace(/-/g, ′′) + `.png")`;
6. var result2=result.data.ret[2].word.replace(/^(\d{4})(\d{2})(\d{2})$/, "$1-$2-$3");
7. var result0=result.data.ret[0].word.replace(/^(\d{4})(\d{2})(\d{2})$/, "$1-$2-$3");
8. var data=["",result.data.ret[1].word,result2,result0,"",result3];
9. datas.push(data);
10. var buffer=xlsx.build([
11. {
12. name:′sheet3′,
13. data:datas
14. }
15. ]);
16. fs.writeFileSync(′../newAdd.xlsx′, buffer, {′flag′:′w′});
17. fs.rename(′./image/1.png′, ′../假條照片/′ + result.data.ret[1].word + result.data.ret[2].word.replace(/-/g, ′′) + "-" + result.data.ret[0].word.replace(/-/g, ′′) + ′.png′, function(err) {
18. if (err) {
19. throw err;
20. }
21. });
22. }).catch(function(err) {
23. // 如果发生网络错误
24. console.log(err);
25. });
調用文字模板进行抠取,并使用npm安装node-xlsx模块,将存入数组中的项依次存入Excel文档的各字段中,并产生图片链接,将假条图片存放在数据库中,可以在Excel文件里直接点击调取。
三、使用Excel公式调取相关员工的工号信息,并计算其除去法定节假日和公休日的请假天数
匹配员工的姓名、工号与所属部门采用了VLOOKUP公式。使用它的好处是可以将其他sheet中提前储存的员工姓名、工号、所属部门等相关信息调用出来,以达到OCR识别员工工号后即可获得员工姓名、所属部门等一切相关信息。同样,在统计请假天数时采用了NETWORKDAYS与NETWORKDAYS.INTL两个公式,不但可以获取本年度工作日等信息,还可以调用在其他sheet中预先设置的法定节假日、寒暑假等信息。这样就做到了根据具体年份的具体情况进行灵活调整,保证了员工请假时长统计的精准性。汇总同一员工多张假条请假天数总和时,则使用了SUMIF公式,这样可以灵活统计某位员工全年请假的多张假条,计算出他总计请假天数,并可以预警某员工的总计请假天数是否已达到红线,以及预警某二级部门的所有员工的总计请假天数是否已达到红线。
四、结论
随着无纸化办公和绿色人力资源的发展,请假条的管理和汇总统计对精确性和高效性有着越来越高的要求。同时,伴随着OCR(Optical Character Recognition)技术的发展,我们有许多优秀的汉字OCR平台向大众提供接口,如汉王OCR、百度OCR、搜狗OCR、腾讯OCR等。它们能做到精确识别汉字人名中的生僻字,甚至对部分手写字体也有一定的识别能力。并且支持使用Java、JavaScript、Python、C、C++、C#、PHP等主流编程语言接入相关接口。
本文的实现方案即是使用JavaScript调用Node.js连接百度OCR的接口,以达到对制式电子假条的精确识别和抠取。再运用Node.js中的node-xlsx模块将抠取的内容导入Excel文件中进行各种汇总统计工作。整个过程只需人事管理员点击“运行.bat”便可自动化完成,是办公自动化和绿色人力资源管理的一次较好的实践。
参考文献:
[1] 兰天,张荣庆,梁乾.Excel协同汇总的Nodejs算法解决方案[J].数码世界,2020:39.
[2] 兰天,马叶.企业人力资源绩效管理的创新探讨[J].商讯,2019,(4):192-194.
[3] 兰天,马叶.绿色人力资源管理研究述评与展望[J].商讯,2019,(3):193-195.
[4] 许正义.基于NodeJs的成果管理辅助系统设计与实现[D].南昌:江西师范大学,2018.
[5] 邵明浩.基于NodeJS的接口管理平台设计与实现[D].南京:东南大学,2017.
[6] 黄孝羽.基于NodeJS函数接口描述的正则引擎的设计和实现[D].南京:东南大学,2017.
[7] 张海波.基于Android的学生电子假条管理平台[J].电脑知识与技术,2018,(30).
[8] 吴建军.浅谈人力资源管理中请假条标准格式设计[J].中小企业管理与科技(中旬刊),2015,(10).
[9] 张婷婷,马明栋,王得玉.OCR文字识别技术的研究[J].计算机技术与发展,2019,(4).
[10] 王学梅.OCR文字识别系统的应用[J].现代信息科技,2020,(18).
收稿日期:2020-06-08
作者简介:兰天(1990-),男,陕西汉中人,助教,硕士,从事人力资源管理研究;邓小云(1984-),女,陕西汉中人,硕士,从事公共管理研究。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!