我正在使用ZKTeco Standalone SDK and their Demo using VB.NET和TFT(薄膜晶体管)设备开发生物识别考勤系统。
到目前为止我做了什么:
员工注册
员工指纹扫描和注册
现在,当每个注册员工将他/她的手指放在设备上时,设备会存储所谓的出勤日志。
稍后应将出勤日志从设备下载到ListView,然后保存到EmployeeAttendance表。
EmployeeAttendance表结构
SerialNo,EnrollmentNo,TimeIn,TimeOut,AttendanceStatus(Present / Absent),ActionDate,DoneBy
问题是,当我下载出勤日志并将它们填充到ListView时,我(来自设备)的列是:
SQN,EnrollNumber,VerifyMody,InOutMode,Date(包含日期和时间值)。
所以,我打算下载考勤日志,然后插入/更新到EmployeeAttendance表,我的挑战是如何制作TimeIn和TimeOut?
让我清楚一点,当所有员工上午出席时,用户应下载出勤日志,当下载出勤日志时,我将插入EmployeeAttendance表并匹配下载的日期列EmployeeAttendance表中的data和TimeIn列,并设置为TimeOut的NULL - 这是一个TimeIn事务并清除日志,在一天结束时,用户应该下载出勤日志,然后我将更新下载的日期列出勤记录每个员工的EmployeeAttendance表的TimeOut(以前设置为NULL)列并清除日志。
那么,这是控制出勤率的更好方法吗?或者我可能遇到问题?
理论上建议我一个更好的方法,如果没问题,我很乐意实施它。
编辑:
VerifyMode: 指向长变量的指针。该值是收到的出勤记录的验证模式。值如下: 一般来说,0:密码验证,1:指纹验证,2:卡验证
InOutMode: 指向长变量的指针。该值是收到的出勤记录的AttState。值如下: 0-Check-In(默认值)1-Check-Out 2-Break-Out 3-Break-In 4-OT-In 5-OT-Out。
参考:TFT SDK手册
答案 0 :(得分:1)
分析Bio-metric系统日志中的数据。
SQN,EnrollNumber,VerifyMody,InOutMode,日期(包含日期和时间 值)。
分析VerifyMody,InOutMode中的值。
InOutMode是否提供任何细节,如果它是第一次滑动或第二次......左右
如果用户滑动两次,那么日志是什么。您将从日志中考虑哪条记录。
这是您在分析原始数据时得到的问题,您将了解需要应用哪种逻辑。
E.g。如果设备记录了同一用户的所有滑动,那么您将第一条记录视为时间,将当天的最后一条记录视为时间。
希望你明白我的意思,这对你有帮助。