《中控奥康考勤机接口使用说明书》由会员分享,可在线阅读,更多相关《中控奥康考勤机接口使用说明书(11页珍藏版)》请在金锄头文库上搜索。
1、陈本栋2013/12/10中 控 考 勤 机 接 口 使 用 说 明 书指纹考勤机控制服务程序使用说明此接口服务程序适用于中控 iClock 系列指纹考勤机,指纹算法版本为 V10.0 适用。如:IClock 360,IClock 660 等。2013-12-101 中控考勤机接口使用说明书一 、 程 序 文 件本接口程序包含三个部分内容,分别是:1、 需要升级以及支持系统运行的 SQL 脚本文件,“支持脚本 ”目录下两个文件a) 201310291201.GPIBDataOut 接口调用验证改到函数里.sqlb) 支撑表脚本.sql2、 MAS 接口文件, “App_DataInterfac
2、ezk.fp”目录下,包含:a) empCheckFinger.sql 收接到考勤记录后执行的刷卡记录处理脚本b) getEmpList.sql “数据库到设备操作”界面人员列表查询关联脚本c) getEmpTmps.sql “数据库到设备操作”界面同步人员查询关联脚本d) getMacList.sql “设备登记”界面设备列表查询脚本e) getMacType.sql “设备登记”界面设备类型选项脚本f) setEmpFinger.sql 从设备传回指纹数据到数据库的处理脚本g) setMachine.sql “设备登记”界面中保存设备信息的处理脚本h) svrCmdQueue.sql “控
3、制服务”查询操作指令的查询脚本i) svrCmdResult.sql “控制服务”指令执行结果反馈脚本j) svrGetQueue.sql “考勤记录接收服务”轮询设备信息及时间脚本k) svrSubsequent.sql “考勤记录接收服务”考勤记录接收后执行脚本3、 控制服务程序文件,包括中控 SDK6.2.4.0 版本,masZkFpSvc 目录:a) Sdk 文件:中控考勤机驱动及 sdk 接口 API 文件i. commpro.dllii. comms.dlliii. plce.dlliv. rscagent.dllv. rscomm.dllvi. tcpcomm.dllvii. u
4、sbcomm.dllviii. zkemkeeper.dllix. zkemsdk.dllx. regZkemkeeper.bat sdk 注册文件b) absLib.dll 程序库文件c) employee.sql 人员列表 SQL 暂存文件d) Interop.zkemkeeper.dll sdk 引用文件e) mas86.dll 程序库文件f) masZkFpSvc.exe 主程序文件(控制服务及接收服务)g) masZkFpSvc.exe.config 主程序配置文件h) srvInstall.bat 主程序注册为 NT 服务命令文件i) srvUnInstall.bat 删除 NT
5、注册命令文件2013-12-102 二 、 安 装 说 明1、 在 SQL 查询分析器中执行两个需要升级以及支持系统运行的 SQL 脚本文件。2、 将“MAS 接口文件”目录复制到 MAS 系统的 App_Data 目录下覆盖,以便在这个目录里添加接口文件。3、 将“控制服务程序文件”目录复制到服务器的“C:Program Files”目录下新建一个“”子目录,完成后目录全称如下:C:Program FmasZkFpSvc4、 注:如果服务器是 64 位系统则在:5、 C:Program Files (x86)masZkFpSvc 目录下。6、 进入到 masZkFpSvc 目录下,以管理员身
6、份运行其中的:regZkemkeeper.bat 文件,以便注册 SDK 的 API。7、 进入到 masZkFpSvc 目录,以管理员身份运行其中的:srvInstall.bat 文件,将程序注册为 NT 服务。三 、 设 置 说 明1、 中控考勤机接口程序有两种工作模式,一是界面模式,二是服务模式。界面模式主要针对管理员使用,用于登记考勤机,对考勤机各项操作进行调试,以及对大批量的考勤机进行初始化操作等。2、 进入 masZkFpSvc 目录,双击运行 masZkFpSvc.exe 程序文件,如下图:2013-12-103 3、 先转到“设置”页进行 MAS 服务地址等设置,如下图:MAS
7、 服务地址是访问 MAS 系统的地址,地址后面的文件指向部分是一样的(“/common/DataProvider.asmx”),不用改,前面的地址根据实际安装的位置进行更改。地址在安装本程序的在 IE 中必须能访问,访问画面如下:改好后点保存,并关闭程序,重新打开后,可以点“测试连接”按钮进行测试,如果返回版本信息,恭喜了,说明设置成功了。4、 回到第一个画面“设备登录& 初始化”页面。该界面主要是进行考勤机的登记测试和初始化工作。比如对考勤机进行联机测试,数据初始化等的处理。2013-12-104 连接好考勤机后就可以进行联机测试了,选择左边的考勤机列表,可以点住鼠标拖拉多选,也可以按住Ct
8、rl或Shift后点鼠标多选,然后点联机测试如下图:本页面只是登记考勤机以及对考勤机进行批量初始化操作所用。本页面的所有功能都在按钮上写着了。5、 转到设备到数据库操作页面该页面有“读取刷卡记录”和“读取指纹记录”两功能,这个功能都是从左边选定的考勤机中直接读取数据。2013-12-105 读到数据后可以执行,“保存数据到服务器”操作,该操作中刷卡记录的保存,系统调用了 MAS 接口中的“empCheckFinger.sql ”这个脚本进行处理,且当一台考勤机记录处理结束后将调用“svrSubsequent.sql”脚本进行后续处理;而保存指纹记录时则调用了“setEmpFinger.sql”
9、 脚本来处理。(注:上述,以及后面文档中所说到的接口脚本,均指本文档第一部分“程序文件”的第 2 条“ MAS 接口文件”中所提到的,存在于系统的“App_DataInterfacezk.fp”目录下接口脚本文件。)其中,保存指纹的脚本,在使用 A01Fpt 表时,不需要做任何调整。而对于刷卡记录的处理,基于各个公司对业务的需求不同可以进行更改。比如,标准接口中的脚本内容如下:这个脚本说明程序在调用的时候,传入 3 个参数1、员工号 考勤机上看到的员工号2、刷卡时间时间格式是 120,即:2013-12-12 13:573、刷卡地点考勤机的 IP 地址(如果直接进入 K07 表请加大 K070
10、2 字段的宽度)接收到刷卡记录后直接插入到考勤刷卡记录表(K07 )中去的。这样做有两个缺点,一是如果考勤记录中的,如果我们需要员工号不存在于系统的 A01 表中,则该刷卡记录就行丢失;二是每笔记录都去执行员工号与 A0188 的转换处理以及日期时间的转换处理,将会降底执行效率。所以,实际使用中,我们可以建立一张刷卡记录临时表进行过渡处理和原始记录保存操作,这个可以这样做创建格式一样的两张表,一张为原始刷卡记录表,另一张为刷卡记录处理临时表,在收到刷卡数据时,只往刷卡记录处理临时表只写,这样收多少写多少,不做多余处理,速度会有很大提升。当收完一个考勤机后,系统用调用 svrSubsequent
11、.sql 脚本,而在这个脚本中,我们再对接收到的记录进行批处理,第一步,原记录倒入到原始刷卡记录表中去,第二步,与 A01 表关联向 K07 表插入数据,第三步,删除临时表中的数据记录。- 员工号,刷卡时间,刷卡地点(考勤机 IP)declare A0188 intset A0188 = -1select A0188 = A0188 from A01 where A0190 = 0if (A0188 -1)begininsert into K07(A0188, K0700, K0701, K0702)select A0188, convert(varchar(20), cast(1 as da
12、tetime), 102), convert(varchar(20), cast(1 as datetime), 8), right(2,6)end2013-12-106 这样的好处是,原始记录保存了,数据一批次在 SQL 中处理,提高效率。以下是这样的解决方案第一步,建表第二步,改刷卡记录接收接口脚本 empCheckFinger.sql第三步,改考勤机接收后续处理接口脚本 svrSubsequent.sql6、 转到数据库到设备操作页面在这个页面里,可以进行把 MAS 系统中的人员名单,人员指纹下发到各个考勤机上,也可以处理从各个考勤机中删除指定人员名单的操作。- 建立原始记录保存表Cre
13、ate table po_kcard_org(recDate datetime not null default(getdate(),empCode varchar(40) not null,logTime datetime not null,macAddr varchar(15)- 建立记录处理临时表Create table po_kcard_tmp(recDate datetime not null default(getdate(),empCode varchar(40) not null,logTime datetime not null,macAddr varchar(15)- 员工
14、号,刷卡时间,刷卡地点(考勤机 IP)insert into po_kcard_tmp (empCode, logTime, macAddr)select 0, 1, 2- 输入参数:考勤机 IP, 记录数declare MacIP varchar(15)set MacIP = 0- 1、备份原始记录insert into po_kcard_orgselect * from po_kcard_tmp where macAddr = MacIP- 2、插入到考勤刷卡记录表insert into K07(A0188, K0700, K0701, K0702)select A0188, conver
15、t(varchar(20), cast(logTime as datetime), 102), convert(varchar(20), cast(logTime as datetime), 8), macAddrfrom po_kcard_tmp, A01 where empCode = A0190 and macAddr = MacIP- 3、删除临时记录delete po_kcard_tmp where macAddr = MacIP2013-12-107 这里是管理员工具,所以对人员名单的查询过滤直接设计为直接写 SQL 语句的方案,以便支持更加灵活。如下图所示查询语句必须有的字段以字段名称是:empCode, empNmae, empProfile,即员工号(即下面表格中的“识别号”),员工姓名,和员工简介这三个字段。对于 SQL 的条件范围可以随便写。比如上面中的语句是查到所有部门编号在1002 下的所有人员,如果我们只要查有指纹记录的人员名单可以在后面加一行条件变成从“指纹个数”栏可以看出这个员工在数据库中登记了多枚指纹,如果为 0 即没有登记过指纹。在表格中选择人员列表进行指纹的上传或删除操作,可以用户鼠标点住拖拉方式多选,也可以使用按住Ctrl点鼠标方式挑选,或是按住Shift点鼠标方式连续多选,或组合使用,还可以按键盘Ctrl+A 全