看能不能用回溯法解决这个问题
关于考勤班次分析的问题
我定义了如下3个班次
A01
包括两个时间段,
上班 下班
1、08:30 - 12:00
2、13:00 - 17:30
A02
也包括两个时间段,
上班 下班
1、当天21:30 - 当天23:30
2、第二天00:30 - 第二天08:30
A03
包括一个时间段
上班 下班
00:00-08:30
这个员工可能上这三个班次的其中一个,怎么根据打卡信息分析出这个员工当天上哪个班次啊
打卡信息是这样的,(有忘记刷卡的可能)
工号 日期 时间
001 2007-1-1 12:02:00
001 2007-1-1 12:31:51
001 2007-1-1 17:35:11
望高手给个比较好的算法,不胜感激,多谢
[解决办法]
A01和A02
A03和A01
由于没有时间重叠都比较好判断
而A02和A03
A03 00:00-08:30
A02 00:30 - 08:30
有交叉,也主要在这个交叉区间的时间难判断
如果有记录
工号 日期 时间
007 2007-1-1 04:03:00
要判断的话该工号上的是哪个班次
还要查前一天的 21:30 - 23:30是否有记录
有就是A02,没有就是A03
--------------------------------------------
上面说的在21:30 - 23:30期间没有忘记打卡,或在上\下班其中之一忘记打卡是有效的
如果21:30 - 23:30中都忘了打卡的话
那就要看你们轮班是怎么轮的了
[解决办法]
有了打卡信息,上哪个班次的信息自然好查了.否则卡的信息还有什么用?
当然,忘了刷卡自然没法办了.但这时责任应由该员工自负.
[解决办法]
单条记录的迟到的怎么办? 是算到下一个班次 还是什么?
[解决办法]
只使用打卡记录来判断班次是不合理的业务逻辑
班次是在打卡发生之前就已经确定的,除非管理混乱
所以,正常情况需要有班次的表
这样结合两张表才能对一个员工的上班情况做比较合理客观的考勤
[解决办法]
/*因为这个员工可能上白班或夜班两个班次,甚至3个班次,所以要识别是哪个班次
/*怎么根据打卡信息分析出这个员工当天上哪个班次啊
矛盾啊!能保证员工不加班,不迟到?
[解决办法]
这个员工可能上这三个班次的其中一个,怎么根据打卡信息分析出这个员工当天上哪个班次啊
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~``
天哪!!!!!
这样也可以啊???
怎么能够根据打卡信息判断员工上的是哪一个班次????这样的话就岂不会乱套??
只能是根据员工该上哪个班次,来判断员工是否迟到或者早退。