考勤打卡设计方案

select * from t_kq_wastebook where  date_format(kaoqin_time,'%Y-%m-%d')='2016-07-05'

-- 这个单位打几次卡?一般是二次或四次,不支持其它班次

-- 一轮班次

06:00:00 至  09:00:00  上午上班班次   其中 08:00:00之前为正常到岗,08:00:01之后至09:00:00之间,为迟到

17:00:00 至  21:00:00  下午上班班次   其中 17:00:00至17:30:00之前为早退,17:30:01之后至21:00:00之间,为正常下班



-- 两轮班次

06:00:00 至  09:00:00  上午上班班次   其中 08:00:00之前为正常到岗,08:00:01之后至09:00:00之间,为迟到

11:00:00 至  12:00:00  上午下班班次   其中 11:00:00至11:30:00 之间为早退,11:30:01之后至12:00:00之间,为正常下班
 

12:30:00 至  13:30:00  下午上班班次   其中 13:00:00之前为正常到岗,13:00:01之后至13:30:00之间,为迟到

17:00:00 至  21:00:00  下午上班班次   其中 17:00:00至17:30:00之前为早退,17:30:01之后至21:00:00之间,为正常下班


其它时间为无效打卡记录

-- 某个单位支持默认班次, 也支持特殊人群的指定班次,班次就是描述有几次打卡,支持两次和四次,其它不支持。
-- 四次打卡的四个字段均需要维护,二次打卡的只维护前两个字段

表1:

打卡规则 规则ID,几次打卡(
24) 分别的打卡有效时间是什么范围?
表2:

哪个人,使用哪套打卡规则
表3:
哪个人,哪一天,四次(或两次)的有效打卡时间是什么?
AM_START:
AM_END:


PM_START:
PM_END:

HAPPEN_DATE:
PERSON_ID:
BUREAU_ID:
表4:流水帐,暂时用MYSQL来记录。

CREATE TABLE `t_kq_wastebook` ( `id`
int(11) NOT NULL AUTO_INCREMENT, `person_id` int(11) DEFAULT NULL, `kaoqin_time` datetime DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

 

*************************需要基础数据提供为每名员工维护员工编号的功能,并可以打印出带员工编号的员工列表。员工编号因打卡机为纯数字,不能输入字母,但东师理想的财务编号却是带字母的,所以,可能是两列,描述同一个人。*************************

统计分析应包括:

1、按部分汇总(一级部门,二级部门)

2、按人员查看打卡流水。

3、显示上面图示的整体全单位打卡的概况图。

上图中0表示旷工,即没有打卡记录。

原文地址:https://www.cnblogs.com/littlehb/p/5666983.html