使用SQL Server将员工考勤日志数据存储到数据库

时间:2015-12-19 10:45:43

标签: sql-server vb.net database-design

我正在使用ZKTeco Standalone SDK and their Demo using VB.NET和TFT(薄膜晶体管)设备开发生物识别考勤系统。

到目前为止我做了什么:

  1. 员工注册

  2. 员工指纹扫描和注册

  3. 现在,当每个注册员工将他/她的手指放在设备上时,设备会存储所谓的出勤日志。

    稍后应将出勤日志从设备下载到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手册

1 个答案:

答案 0 :(得分:1)

分析Bio-metric系统日志中的数据。

  

SQN,EnrollNumber,VerifyMody,InOutMode,日期(包含日期和时间   值)。

分析VerifyMody,InOutMode中的值。
InOutMode是否提供任何细节,如果它是第一次滑动或第二次......左右 如果用户滑动两次,那么日志是什么。您将从日志中考虑哪条记录。

这是您在分析原始数据时得到的问题,您将了解需要应用哪种逻辑。

E.g。如果设备记录了同一用户的所有滑动,那么您将第一条记录视为时间,将当天的最后一条记录视为时间。

希望你明白我的意思,这对你有帮助。