




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2013-12-10中控考勤机接口使用说明书指纹考勤机控制服务程序使用说明此接口服务程序适用于中控iClock系列指纹考勤机,指纹算法版本为V10.0适用。如:IClock 360,IClock 660等。陈本栋2013/12/10中控考勤机接口使用说明书一、 程序文件本接口程序包含三个部分内容,分别是:1、 需要升级以及支持系统运行的SQL脚本文件,“支持脚本”目录下两个文件a) 201310291201.GPIBDataOut接口调用验证改到函数里.sqlb) 支撑表脚本.sql2、 MAS接口文件,“App_DataInterfacezk.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“控制服务”查询操作指令的查询脚本i) svrCmdResult.sql“控制服务”指令执行结果反馈脚本j) svrGetQueue.sql“考勤记录接收服务”轮询设备信息及时间脚本k) svrSubsequent.sql“考勤记录接收服务”考勤记录接收后执行脚本3、 控制服务程序文件,包括中控SDK版本,masZkFpSvc目录:a) Sdk文件:中控考勤机驱动及sdk接口API文件i. commpro.dllii. comms.dlliii. plce.dlliv. rscagent.dllv. rscomm.dllvi. tcpcomm.dllvii. usbcomm.dllviii. zkemkeeper.dllix. zkemsdk.dllx. regZkemkeeper.batsdk 注册文件b) absLib.dll程序库文件c) employee.sql人员列表SQL暂存文件d) Interop.zkemkeeper.dllsdk引用文件e) mas86.dll程序库文件f) masZkFpSvc.exe主程序文件(控制服务及接收服务)g) masZkFpSvc.exe.config主程序配置文件h) srvInstall.bat主程序注册为NT服务命令文件i) srvUnInstall.bat删除NT注册命令文件二、 安装说明1、 在SQL查询分析器中执行两个需要升级以及支持系统运行的SQL脚本文件。2、 将“MAS接口文件”目录复制到MAS系统的App_Data目录下覆盖,以便在这个目录里添加接口文件。3、 将“控制服务程序文件”目录复制到服务器的“C:Program Files”目录下新建一个“”子目录,完成后目录全称如下:C:Program FmasZkFpSvc4、 注:如果服务器是64位系统则在:5、 C:Program Files (x86)masZkFpSvc 目录下。6、 进入到masZkFpSvc目录下,以管理员身份运行其中的:regZkemkeeper.bat文件,以便注册SDK的API。7、 进入到masZkFpSvc目录,以管理员身份运行其中的:srvInstall.bat文件,将程序注册为NT服务。三、 设置说明1、 中控考勤机接口程序有两种工作模式,一是界面模式,二是服务模式。界面模式主要针对管理员使用,用于登记考勤机,对考勤机各项操作进行调试,以及对大批量的考勤机进行初始化操作等。2、 进入 masZkFpSvc目录,双击运行masZkFpSvc.exe程序文件,如下图:3、 先转到“设置”页进行MAS服务地址等设置,如下图:MAS服务地址是访问MAS系统的地址,地址后面的文件指向部分是一样的(“/common/DataProvider.asmx”),不用改,前面的地址根据实际安装的位置进行更改。地址在安装本程序的在IE中必须能访问,访问画面如下:改好后点保存,并关闭程序,重新打开后,可以点“测试连接”按钮进行测试,如果返回版本信息,恭喜了,说明设置成功了。4、 回到第一个画面“设备登录&初始化”页面。该界面主要是进行考勤机的登记测试和初始化工作。比如对考勤机进行联机测试,数据初始化等的处理。连接好考勤机后就可以进行联机测试了,选择左边的考勤机列表,可以点住鼠标拖拉多选,也可以按住Ctrl或Shift后点鼠标多选,然后点联机测试如下图:本页面只是登记考勤机以及对考勤机进行批量初始化操作所用。本页面的所有功能都在按钮上写着了。5、 转到设备到数据库操作页面该页面有“读取刷卡记录”和“读取指纹记录”两功能,这个功能都是从左边选定的考勤机中直接读取数据。读到数据后可以执行,“保存数据到服务器”操作,该操作中刷卡记录的保存,系统调用了MAS接口中的“empCheckFinger.sql”这个脚本进行处理,且当一台考勤机记录处理结束后将调用“svrSubsequent.sql”脚本进行后续处理;而保存指纹记录时则调用了“setEmpFinger.sql”脚本来处理。(注:上述,以及后面文档中所说到的接口脚本,均指本文档第一部分“程序文件”的第2条“MAS接口文件”中所提到的,存在于系统的“App_DataInterfacezk.fp”目录下接口脚本文件。)其中,保存指纹的脚本,在使用A01Fpt表时,不需要做任何调整。而对于刷卡记录的处理,基于各个公司对业务的需求不同可以进行更改。- 员工号,刷卡时间,刷卡地点(考勤机IP)declare A0188 intset A0188 = -1select A0188 = A0188 from A01 where A0190 = 0if (A0188 -1)begin insert into K07(A0188, K0700, K0701, K0702) select A0188, convert(varchar(20), cast(1 as datetime), 102), convert(varchar(20), cast(1 as datetime), 8), right(2,6)end比如,标准接口中的脚本内容如下:这个脚本说明程序在调用的时候,传入3个参数1、员工号 考勤机上看到的员工号2、刷卡时间时间格式是120,即:2013-12-12 13:573、刷卡地点考勤机的IP地址(如果直接进入K07表请加大K0702字段的宽度)接收到刷卡记录后直接插入到考勤刷卡记录表(K07)中去的。这样做有两个缺点,一是如果考勤记录中的,如果我们需要员工号不存在于系统的A01表中,则该刷卡记录就行丢失;二是每笔记录都去执行员工号与A0188的转换处理以及日期时间的转换处理,将会降底执行效率。所以,实际使用中,我们可以建立一张刷卡记录临时表进行过渡处理和原始记录保存操作,这个可以这样做创建格式一样的两张表,一张为原始刷卡记录表,另一张为刷卡记录处理临时表,在收到刷卡数据时,只往刷卡记录处理临时表只写,这样收多少写多少,不做多余处理,速度会有很大提升。当收完一个考勤机后,系统用调用svrSubsequent.sql脚本,而在这个脚本中,我们再对接收到的记录进行批处理,第一步,原记录倒入到原始刷卡记录表中去,第二步,与A01表关联向K07表插入数据,第三步,删除临时表中的数据记录。这样的好处是,原始记录保存了,数据一批次在SQL中处理,提高效率。以下是这样的解决方案- 建立原始记录保存表Create 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)第一步,建表- 员工号,刷卡时间,刷卡地点(考勤机IP)insert into po_kcard_tmp (empCode, logTime, macAddr)select 0, 1, 2第二步,改刷卡记录接收接口脚本empCheckFinger.sql- 输入参数:考勤机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, convert(varchar(20), cast(logTime as datetime), 102), convert(varchar(20), cast(logTime as datetime), 8), macAddr from po_kcard_tmp, A01 where empCode = A0190 and macAddr = MacIP- 3、删除临时记录delete po_kcard_tmp where macAddr = MacIP第三步,改考勤机接收后续处理接口脚本svrSubsequent.sql6、 转到数据库到设备操作页面在这个页面里,可以进行把MAS系统中的人员名单,人员指纹下发到各个考勤机上,也可以处理从各个考勤机中删除指定人员名单的操作。这里是管理员工具,所以对人员名单的查询过滤直接设计为直接写SQL语句的方案,以便支持更加灵活。如下图所示查询语句必须有的字段以字段名称是:empCode, empNmae, empProfile,即员工号(即下面表格中的“识别号”),员工姓名,和员工简介这三个字段。 and A0188 in (select A0188 from A01Fpt)对于SQL 的条件范围可以随便写。比如上面中的语句是查到所有部门编号在1002下的所有人员,如果我们只要查有指纹记录的人员名单可以在后面加一行条件select A0190 empCode, A0101 empName, CONTENT empProfile from A01, DEPTCODE where A01.Dept_id = DEPTCODE.Dept_id and dept_code like 1002% and A0188 in (select A0188 from A01Fpt)变成从“指纹个数”栏可以看出这个员工在数据库中登记了多枚指纹,如果为0即没有登记过指纹。在表格中选择人员列表进行指纹的上传或删除操作,可以用户鼠标点住拖拉方式多选,也可以使用按住Ctrl点鼠标方式挑选,或是按住Shift点鼠标方式连续多选,或组合使用,还可以按键盘Ctrl+A全选。按执行上传指纹操作时,如果所选人员的“指纹个数”栏为0,则将只在考勤机上创建该人员的名单,如果指纹大于0则会把所有指纹上传到考勤机上。当员工在分部入职,需要收集其指纹时,可以先下发名单到考勤机上,然后等该员工在考勤机上登记好指纹后,通过上述第5点的操作,把指纹收到在数据库中,以便于再下发到其他考勤机上。四、 与MAS无缝接口说明上节设置中说明到中控考勤机接口程序有两种工作模式,一是界面模式,二是服务模式。现在就来说说第二种服务模式。1、 无缝接口之数据接收支持数据服务模式接收的接口脚本有三个:svrGetQueue.sql和empCheckFinger.sql以及svrSubsequent.sql。empCheckFinger.sql和svrSubsequent.sql两个脚本方案上面第三节第5点已经说得很细了,这里就不再赘述了。下面只说svrGetQueue.sql接口:select MacNumber, MacIp, MacPort, 00:01 start_time, 23:59 stop_time from RollMachinesvrGetQueue.sql接口是服务对考勤机接收范围的定义,包括要对接收哪几台考勤机进行接收,在什么时间段进行轮询等。下面的脚本文件中的语句说明对考勤机表中的所有考勤机进行轮询接收,时间段是0点到24点,即一整天。select MacNumber, MacIp, MacPort, 09:30 start_time, 10:30 stop_time from RollMachineunion allselect MacNumber, MacIp, MacPort, 18:30 start_time, 19:30 stop_time from RollMachine但这样的设置可能不能在实际工作中使用,因为对考勤机进行数据接收时,考勤机会暂时停止对指纹打卡的响应,这样如果接收操作开始时刚好有人要打卡,则就打不进来了。所以,对考勤记录接收一般安排在没有人操作考勤机时进行,所以要分时段进行,比如,我们8点半上班,17点半下班,要在早上上班时间后一小时和晚上下班时间后一小时进行两次接收数据,则可以改这个SQL为如下语句同理,你可以从处延伸出其他的分时段方案。2、 无缝接口之考勤机操作对考勤机命令操作支持上节界面中几乎所有功能。该功能通过操作命令队列表(po_ftOperate)中的记录,进行对考勤机进行指纹下发,上传,用户登记,删除,设备数据清除等操作。该服务用到的接口脚本有两个:svrCmdQueue.sql和svrCmdResult.sql。select * from po_ftOperate where actdate is nullsvrCmdQueue是查询队列表中需要处理而还没有处理的命令,其中actdate为空则为还没有处理过的记录,所以脚本内容一般如下:参数两个:处理结果, 记录号update po_ftOperate set actdate = getdate(), actResult = 0 where rid in (1)svrCmdResult则是处理完每一个命令后,对处理结果进行反馈的数据操作:delete po_ftOperate where rid in (1)上面的语句说明处理完一个命令后,将这笔记录标志为已处理。这样,这张表将会越来越大,所以在这里我们也可以在处理完的命令后直接删除它:这个功能支撑的表是:po_ftOperate 表,该表字段说明如下:ridIDENTITY(1,1)命令行号actionvarchar命令作动名称,取值1、reg 登记2、rem 移除3、empty 清空4、haul 回传单人5、haulall 回传整机6、batreg 批量登记macidint设备编号macipint设备IP地址macportvarchar通讯端口号cardnovarchar员工编号fingerindexint指纹序号(09)表示10个手指;当执行删除员工操作时,取值为12empnamevarchar员工姓名templatetext文本格式的指纹数据passwordvarchar默认为空isenablevarchar默认为:trueactdatedatetime命令执行时间(命令反馈时回写)actResultvarchar命令执行结果(命令反馈时回写)简单的说,就是我们要在考勤机上做什么操作,就向这个表里插一条操作命令。以下是各命令说明例子:命令用途SQL例句reg向考勤机登记单个人的名单或指纹insert into po_ftOperate(action, macid, macip, macport, cardno, fingerindex, empname, template, isenable)select reg, 1, 18, 4370, A0190, fingerindex, A0101, tmpData, true from A01, A01Fpt where A01.A0188 = A01Fpt.A0188 and A0190 = 8888batreg向考勤机登记一批人和名单或指纹insert into po_ftOperate(action, macid, macip, macport, cardno, fingerindex, empname, template, isenable)select batreg, 1, 18, 4370, A0190, fingerindex, A0101, tmpData, true from A01, A01Fpt, deptcode where A01.A0188 = A0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 药品耗材存放管理制度
- 药品销售员工管理制度
- 药店分级分类管理制度
- 药店消防制度管理制度
- 菏泽基层宿舍管理制度
- 设备变更备案管理制度
- 设备定期维修管理制度
- 设备更新报废管理制度
- 设备管理二级管理制度
- 设备装配公司管理制度
- 声学装修施工方案
- 基于MATLABsimulink同步发电机突然三相短路仿真
- 《标准的制定》课件
- 国土空间规划环评培训
- 北京理工大学《工程电磁场》2021-2022学年第一学期期末试卷
- 火灾事故应急演练桌面推演
- 四川省成都市九县区2023-2024学年高一下学期期末调研考试化学试题(解析版)
- 《二倍角的正弦、余弦、正切公式》名师课件2
- 2024年中国浓缩料预混料行业市场现状、前景分析研究报告(智研咨询发布)
- 内蒙古兴安盟(2024年-2025年小学四年级语文)人教版期末考试(下学期)试卷及答案
- 2021-2022学年物理高一第二学期期末教学质量检测模拟试题含解析
评论
0/150
提交评论