考勤系统的一个设计问题.做过考勤系统的兄弟请进!
现在不明白是:
1:加班怎么样设计.
2:比如在7:30---11:30之间有多少条打卡记录应该怎么处理?
3:什么是考勤异常,该如何设计与处理?
分不够再加.越详细越好.顶者有分.
[解决办法]
什么叫越详细越好,如果真的是详细,那么文档厚厚一大叠
逐渐回答问题
1、加班一般分为固定加班和自由加班
固定加班类似于普通上下班,其中具体可以分为4种:
A、固定时间,就是和普通上下班一样,有迟到早退问题
B、超时计加班,譬如12:00下班,如果到了12:30可以算加班半小时
C、早到计加班,类似上面
D、连班,譬如中午8:00-12:00/14:00-18:00,那么12:00-14:00之间可能会计算加班,当然要控制扣除中间吃饭时间
自由加班简单就是在某个时间段内,何时来都可以计算加班
譬如18:00-23:00算加班时间,如果是19:00-21:00,那么算加班2小时
其中自由加班的算法又可以分为8种,简单说几种
1、按指定时间取整计算,譬如8:08开始加班,可以自由设置为8:08/8:15/8:30
2、按照次数计算,譬如指定时间段内只能有2次
3、超时转页计算
4、先计算后取整
......
2、如果是自由加班那就是小儿科的问题了,按照次序一进一出就完了,依次算多次上下班
如果是正常上下班就罗嗦之极
譬如如果 9:00-10:00请假一小时,那么应该要刷卡4次,否则肯定是旷工
如果时间乱,那么可能有很多废卡,直接标记为废卡不参与计算即可
如果......
3、考勤异常,那可就多了,迟到、早退、旷工、空卡、签卡、多刷卡......要考虑这么多啊
如果真的完全通用,一个好的考勤计算软件大约需要4000-8000行左右的存储过程进行计算,这可是一个相当庞大的工程
[解决办法]
凑下热闹。
1、要通用,就应该没有排班。
2、加班就是正常上班时间之外的打卡记录,但这里可能关系到取卡技巧的问题,有些地方可能还要求与加班纸配合。
3、7:30-11:30,如果是工作时间,有多笔记录,则肯定是外出,应有假条。如果是非工作时间,如7:30下班,11:30上班,则取期间的两笔,min和max就可以了,其它的是废卡。
[解决办法]
楼上的tetsuya说得在理,复杂问题要简单化,而不是复杂化,要有变化,但更应该有一定的规则,上下班打卡就
该按规则打卡,不按规则打卡就报异常,异常反馈后可以取消。
[解决办法]
班次和时间段都需要循环.
上班时间段内如果有多条打卡记录的.取得后一条;下班时间段有打卡记录的,取早一条;
迟到与早退;将打卡时间减去上班时间点与下班时间点,如果不在迟到/早退规定的时间范围内,分别判断.再合计早退,迟到的时间,如果在旷工时间值外,就计旷工;
如果在班次中有多条打卡记录的,需要判断该打卡记录是否落在出差,请假,国家假日,公司自定义日历之类.
/////////////////////////////////////////////////////////////////////////////////////////////////
"你言更差,你连这个网站叫什么名字都说错了,是csdn,不是msdn好不好。
这个世界就是这么现实,这里是免费讨论技术问题没错,但是如果是别人辛辛苦苦设计出来的拿来赚钱的家伙,人家凭什么跟你分享?
“健全”的思路?唉……"
---------------------------------------------------------------
这话说的有点过了!分不分享是个人的自由.来这里讨论本身就是一个分享与被分享的过程.哈哈~!口下留情,不要骂我.