跳到主要内容

如何实现员工考勤打卡管理

1.场景

如何实现上下班打卡与考勤管理

本案例工作时间为:9:30-12:00;13:30-18:30,办公地点为:零号湾

🔗安装方案

2.实现效果

为展示效果将上下班打卡时间、定位地点字段设置为可编辑,实际使用字段不可编辑,仅返回当前时间和当前地点

视频:AFAN 2022-06-06 15.09.20.mp4。请在原文中查看。

3.搭建步骤

image.png

3.1.上班打卡

3.1.1.表单设置

【姓名】:成员字段-自定义-当前用户

image.png

【日期】:日期-设置公式

CURDATDE:返回当前日期

image.png

【上班打卡时间】:日期-设置公式

日期字段的显示格式设置为“年-月-日 时:分”

NOW:返回当前日期时间

image.png

【上班打卡状态】:单行文字-设置公式

YEAR/MONTH/DAY:返回日期中的年份/月份/天

DATE:将数字拼接为日期

DAYS:返回两个日期字段之间的天数

公式分析:

DATE(YEAR(上班打卡时间),MONTH(上班打卡时间),DAY(上班打卡时间***),9,30):***上班时间为9:30,返回上班打卡时间的年月日,通过DATE函数拼接为当天的上班时间(工作时间是几点,公式中直接设置对应数字即可)

DAYS(DATE(YEAR(上班打卡时间),MONTH(上班打卡时间),DAY(上班打卡时间),9,30),上班打卡时间***)>=0:***通过DAYS函数计算当天的上班时间和打卡时间之间相差的天数(可为小数),如果计算结果是>=0,即打卡时间早于/等于上班时间,如果<0,即打卡时间晚于上班时间,为迟到

image.png

【迟到时间】:数字-设置公式

迟到时间可以分为三种情况去计算

image.png

HOUR:返回日期中的小时

DATETOTIMESTAMP:日期转时间戳

NUM:返回文本中的数字

  • 打卡时间为9:30-12:00之间,迟到时间为打卡时间和9:30的时间差

公式分析:

AND(DAYS(上班打卡时间,DATE(YEAR(上班打卡时间),MONTH(上班打卡时间),DAY(上班打卡时间),9,30))>0,HOUR(上班打卡时间***)<12):***打卡时间处于9:30-12:00之间,也就是需要同时满足打卡时间晚于9:30和早于12:00的两个条件,DAYS函数计算打卡时间和上班时间相差天数>0,以及打卡时间的小时数<12

(NUM(DATETOTIMESTAMP(上班打卡时间))-NUM(DATETOTIMESTAMP(DATE(YEAR(上班打卡时间),MONTH(上班打卡时间),DAY(上班打卡时间***),9,30))))/60000:***计算打卡时间和上班时间之间的分钟差,将两个时间分别转时间戳后相减,差值/60000转为分钟

image.png

  • 打卡时间为12:00-13:30之间,迟到时间为9:30-12:00的150分钟

公式分析:

OR(HOUR(上班打卡时间)==12,AND(HOUR(上班打卡时间)==13,MINUTE(上班打卡时间***)<=30)):***分为两个时间段判断,一个时间段为打卡时间的小时数是12(12:00-12:59),另一个为小时数是13且分钟<=30(13:00-13:30)

image.png

  • 打卡时间为13:30之后,迟到时间为打卡时间和9:30的时间差-午休的90分钟

DAYS(上班打卡时间,DATE(YEAR(上班打卡时间),MONTH(上班打卡时间),DAY(上班打卡时间***),13,30))>0:***DYAS函数计算打卡时间和13:30相差天数>0,即打卡时间晚于13:30

(NUM(DATETOTIMESTAMP(上班打卡时间))-NUM(DATETOTIMESTAMP(DATE(YEAR(上班打卡时间),MONTH(上班打卡时间),DAY(上班打卡时间***),9,30))))/60000-90:***计算打卡时间和上班时间之间的分钟差,将两个时间分别转时间戳后相减,差值/60000转为分钟,再减去午休时间90分钟

image.png

最后将三种情况的公式用IFS函数进行判断打卡时间处于哪个时间段,并计算出迟到时间

image.png

【打卡地点】:定位

3.1.2.流程设置

在申请人节点-高级设置设置提交校验-字段校验条件

image.png

通过SEARCH函数在定位地点中查询公司地点,如果查找结果不等于0,说明是在公司打卡,如果结果为0,说明不在公司打卡

SEARCH:在第二个字段中查找第一个字段/字符串,并返回第一个字段/字符串的起始位置的编号,该编号从第二个字段字符串的第一个字符算起。返回0则表示没有查到

image.png

3.2下班打卡

3.2.1.表单设置

image.png

【下班打卡时间】:日期-设置公式

显示格式设置为“年-月-日 时:分”

通过DAYS函数计算下班打卡时间和下班时间18:30相差的天数,如果结果>=0,打卡时间晚于/等于下班时间,即为正常,反之迟到

image.png

【早退时间】:数字-设置公式

迟到时间是将打卡时间和上班时间进行比较和计算时间差

而早退时间是将打卡时间和下班时间进行比较和计算时间差,但设置逻辑相似

image.png

image.png

【打卡地点】:定位

3.2.2.流程设置

流程中添加下班打卡的填写节点,同样在高级设置中设置提交校验-字段校验条件,查找定位地点中是否是公司地点

image.png

3.3.考勤管理

3.3.1.考勤表

image.png

创建报表-汇总表,行维度与指标设置如图,筛选条件:日期动态范围“上月”

image.png

3.3.2.打卡天数

image.png

创建报表-汇总表,行维度与指标设置如图,筛选条件:日期动态范围“上月”

image.png