正常的是一天打一个上班卡和一个下班卡,
上班卡就是第一个,下班卡就是第二个,
但是,非 正常的情况很多,比方说我记性不好,8:20打了一下卡,
到办公室后又忘记自己是否打卡,然后又跑去打了一下卡,
还有一种情况,一天就在15:00点打了一下卡,我都不知道这是上班卡,
还是下班卡,不知道怎么搞,
这还只是现在能想到的,后边的特殊情况肯定特别多
------解决思路----------------------
打卡机器上面有没有按钮能够实现自己打上班,还是下班卡?
------解决思路----------------------
打卡机,一般只做身份识别和时间记录
所以我觉得,这个区分,还是靠你们对规则的定位
如果按次数,就把第一次当成上班,最后一次当成下班
或者按时间段,比如 9 点之前的识为上班打卡, 17点以后的识为下班
当然,肯定有问题的,这时就要靠系统的提供一个人工较正的接口,整体数据以人工为主
比如,把第一次当成上班,最后一次当成下班情况,出现上班连续打两次打卡时,然后下班没打卡,应该属未签退,然而这种方式会当成上班很短,这时就靠人工补单
大概这个意思,主要还是看你们公司对这些要抱以什么样的处理方式
------解决思路----------------------
你得定义好部门和对应的上下班时间, 比如有的部门, 可能是24小时3班倒的, 也可能是一天两班的, 有加班的等等...还有你说的那些情况等, 都不能用单纯的用第一个第二个打卡纪录来区分上下班打卡的.
象有些生产部门, 你还得要排班表辅助, 才可以排出员工的正班打卡和加班打卡等...
,比方说我记性不好,8:20打了一下卡,
到办公室后又忘记自己是否打卡,然后又跑去打了一下卡,
这种打卡两次的情况, 落在上班时间段的, 应该取第一个打卡时间为有效时间, 第二个时间我想你可以做一个判断, 如果也是刚上班的时间段, 就略掉. 如果落在下班时间, 可以取第一个, 也可以取第二个, 这个情况, 估计你还得跟人事部门沟通下, 看他们认为哪个是有效的下班时间了.
还有一种情况,一天就在15:00点打了一下卡,我都不知道这是上班卡,
这种, 你可以將一天划段, 比如, 上班时间是9:00-17:00 , 15点打卡, 你可以填到上班的位置, 下班位置留空.
应该考勤纪录, 得先读取后, 人事会发放到各个部门去校对, 你这种,只有 15点一个卡的, 在打印考勤纪录的时候, 各部门需要确认到底这个卡是怎么回事的, 然后人事还要补全到数据库, 比如 15点这个员工打卡走了, 他又忘记打上班卡, 那人事补全上班卡时间 9:00 进去. 或者他有事请假, 到15:00 来上班, 那人事补下班时间纪录....
打卡不规范, 这不是你的事情
从考勤机或考勤卡读取了员工考勤信息后, 还有一次确认的过程. 可以正常的不确认, 只确认那些只打卡一次的, 上班时间沒打卡纪录的.
你不能自己就给他们补上缺失的卡纪录額.
------解决思路----------------------
简单方式:
假如只有白班的情况下,读当天的全部打卡记录,第一个是上班的,最后一个是下班的,其他的不管。
复杂方式:
需要先排班,例如早上8点~下午17点,那就读早上8点的前后一小时(这个做成变量,可改)内的打卡记录,第一条是上班的;再读下午17点前后一小时(这个做成变量,可改)内的打卡记录,最后一条是下班的。
这种方式支持夜班(主要是跨天上班)。