工时维度的考勤管理(支持小时假)
点击安装场景模板:自定义考勤规则 进行体验,内置工时维度的考勤管理(支持小时假)方案。
1.简介
1.1 场景简介
自定义考勤规则能够使得考勤制度更加灵活、公平和高效,从而适应不同情况,符合不同组织的实际需求,提升员工工作积极性和组织整体效能。
- 适应特定的模式:不同组织可能有不同的工作模式,例如弹性工作制、远程办公等。自定义考勤规则可以根据具体情况设定上下班时间、工作时长等,以适应不同的工作模式
- 优化员工福利:通过自定义考勤规则,可以设置加班补偿、休假制度等,以保障员工的权益和福利。自定义考勤规则可以提高员工满意度,增强员工对组织的归属感和忠诚度
- 提高工作效率:合理的考勤规则可以促使员工按时上下班、准时参加会议等,从而提高整体工作效率。例如,设置迟到早退的惩罚措施可以督促员工按时出勤,避免浪费时间和资源
- 管理考勤数据:自定义考勤规则可以帮助企业更好地管理考勤数据,包括请假记录、加班记录等。这些数据可以用于工资计算、绩效评估等,提供依据和参考,减少人为错误和争议
- 优化资源利用:通过自定义考勤规则,可以更好地分配和利用人力资源。根据员工的实际工作情况,合理安排人员调度和排班,确保各部门和岗位的工作需求得到满足
1.2 预期效果
1.3 设计思路
- 修改「请假申请」与「调休申请」表单内的考勤规则,提供「小时」与「天数」两种请假模式,员工请假时可以根据自身需求自由选择
- 新建「员工考勤统计」与「员工考勤明细」数据工厂,将大部分的考勤相关计算放入数据工厂内
- 修改考勤确认表单
- 删除所有辅助字段
- 修改仪表盘
2. 设置步骤
点击安装场景模板:自定义考勤规则 进行体验,内置工时维度的考勤管理(支持小时假)方案。
2.1 初步表单修改
2.1.1 修改「请假申请」模块
修改「请假日期」子表单为「请假详情」,在请假日期前增加单选按钮组「请假模式」,具体设置如下:
新增「请假开始时间」与「请假结束时间」两个时间字段,以供「小时」模式下的请假时间计算使用,具体设置如下:
修改「请假天数小计」为「请假时间小计」,并修改计算公式如下(具体时间点可根据使用实际情况自定义):
IF(请假模式=小时,IF(请假开始时间<当天12:00且请假结束时间>当天17:30,ROUND(DATEDIF(请假开始时间,请假结束时间,"h"),1)-1.5,ROUND(DATEDIF(请假开始时间,请假结束时间,"h"),1)),IF(请假时段=全天,8,4))
添加显隐规则,当「请假模式」选择“天数”时显示「请假日期」、「请假时段」、「请假时间小计」、「考勤归属周期」字段
当「请假模式」选择“小时”时显示「请假日期」、「请假开始时间」、「请假结束时间」、「请假时间小计」、「考勤归属周期」字段
不可见字段赋值设置为“始终重新计算”
2.1.2 修改「调休申请」模块
本质上同「请假申请」模块一致,详情参照2.1.1。
2.2 新建「员工考勤统计」数据流
在数据工厂新建数据流处理所有员工考勤相关数据,也可以自己参照模板中的分析结果。
2.2.1 打卡统计
以「考勤打卡」为数据源,具体设置参考下图:
添加「字段设置」节点,选择公式计算:
字段类型选择文本类型,计算公式如下:
IF(AND(VALUE(TEXT(DATE(打卡时间),"HHmm"))>500,VALUE(TEXT(DATE(打卡时间),"HHmm"))<=830),"正常签到",IF(AND(VALUE(TEXT(DATE(打卡时间),"HHmm"))>830,VALUE(TEXT(DATE(打卡时间),"HHmm"))<=1200),"迟到",IF(AND(VALUE(TEXT(DATE(打卡时间),"HHmm"))>1330,VALUE(TEXT(DATE(打卡时间),"HHmm"))<1800),"早退",IF(AND(VALUE(TEXT(DATE(打卡时间),"HHmm"))<=2359,VALUE(TEXT(DATE(打卡时间),"HHmm"))>=1800),"正常签退","该时间段不能签到哦~"))))
添加「行转列」节点,将数据转为以「打卡状态」为列字段,数据数量以计数统计为值,具体设置参考下图:
添加「字段设置」节点,将行专列之后的表头进行重命名
添加以「外勤打卡」为数据源的输入节点,重复之前的动作,并将两条数据流进行横向链接,具体设置如下:
2.2.2 请假统计
以「请假申请」为数据源,具体设置参考下图:
添加「行转列」节点,将数据转为以「请假类型」为列字段,数据数量以计数统计为值,具体设置参考下图:
将数据流与之前的打卡统计进行横向链接,具体设置如下:
2.2.3 调休统计、加班统计
参考2.2.2,搭建方式相同,将数据源换为「调休申请」与「加班申请」即可,搭建完成后将数据流进行横向链接
2.2.4 补卡统计
以「补卡申请」为数据源,具体设置参考下图:
添加「分组汇总」节点,将补签次数以考勤归属周期、姓名、所在部门为分组字段进行分组,具体设置参考下图:
将分组汇总后的数据流与之前的数据流进行横向链接,具体设置如下:
2.2.5 考勤时间统计
以「考勤打卡」为数据源,具体设置参考下图:
添加「字段设置」节点,选择公式计算:
字段类型选择文本类型,计算公式参考2.2.1,计算「打卡状态」
字段类型选择数字类型,计算公式如下:
IF(打卡状态="迟到",DATEDIF(上班要求时间,打卡时间,"h"),0)
添加「分组汇总」节点,将迟到时间与早退时间以考勤归属周期、姓名、所在部门为分组字段进行分组,具体设置参考下图:
将分组汇总后的数据流与之前的数据流进行横向链接,具体设置如下:
2.2.6 外勤时间统计
本质上同「考勤时间统计」模块一致,详情参照2.2.5。
2.2.7 加班时间统计
以「加班申请」为数据源,具体设置参考下图:
添加「行转列」节点,将数据转为以「加班类型」为列字段,加班时长以求和统计为值,具体设置参考下图:
将行专列后的数据流与之前的数据流进行横向链接,具体设置参考之前的横向链接
2.2.8 计算「员工考勤统计」其他数据
添加「字段设置」节点,选择公式计算:
字段类型选择数字类型,计算公式如下:
考勤签到次数=考勤正常签退次数+考勤正常签到次数+考勤迟到次数+考勤早退次数
外勤签到次数=外勤正常签退次数+外勤正常签到次数+外勤迟到次数+外勤早退次数
请假/调休总时长=事假时长+病假时长+丧假时长+婚假时长+产假时长+陪产假时长+调休时长
请假总时长=事假时长+病假时长+丧假时长+婚假时长+产假时长+陪产假时长
2.2.9 计算工时
以「考勤打卡」为数据源,具体设置参考下图:
添加「字段设置」节点,选择公式计算:
字段类型选择数字类型,计算公式如下:
IF(TEXT(DATE(打卡时间),"yyyyMMddHHmm")<TEXT(DATE(打卡时间),"yyyyMMdd1200"),1,0)
添加以「外勤打卡」为数据源的输入节点,重复之前的动作,并将两条数据流进行追加合并
添加「数据筛选」节点,筛选出“上午打卡判定=1”的数据
以「考勤打卡」为数据源,具体设置参考下图:
添加「数据筛选」节点,筛选出“审批意见=同意”且“补签时间段=上午签到”的数据
添加「字段设置」节点,选择公式计算:
字段类型选择文本类型,计算公式如下:
CONCATENATE(TEXT(DATE(补签日期),"yyyy-MM-dd")," 08:30")
字段类型选择日期时间类型,计算公式如下:
DATE(日期文本)
与之前的数据流进行追加合并,具体设置如下:
重复上述动作,将时间判断改为下午,具体操作不再赘述
将两条数据流进行横向链接,具体设置如下:
添加「字段设置」节点,选择公式计算:
字段类型选择文本类型,计算公式如下:
CONCATENATE(TEXT(DATE(日期),"yyyy-MM-dd")," 12:00")
字段类型选择日期时间类型,计算公式如下:
CONCATENATE(TEXT(DATE(日期),"yyyy-MM-dd")," 12:00")
字段类型选择数字类型,计算公式如下:
IFS(ISEMPTY(CONCATENATE(TEXT(上午打卡时间),TEXT(下午打卡时间)))==TRUE(),0,ISEMPTY(TEXT(上午打卡时间))==TRUE(),DATEDIF(缺卡辅助日期,下午打卡时间,"h")-1.5,ISEMPTY(TEXT(下午打卡时间))==TRUE(),DATEDIF(上午打卡时间,缺卡辅助日期,"h"),ISEMPTY(TEXT(上午打卡时间))==FALSE(),DATEDIF(上午打卡时间,下午打卡时间,"h")-1.5)
添加「分组汇总」节点,以考勤归属周期、姓名、所在部门/班组为分组字段,对工时进行汇总,具体设置如下:
与2.2.8的数据流进行横向链接,具体设置如下:
链接输出节点,完成数据流配置
2.3 新建「员工考勤明细」数据流
2.3.1 上午考勤状态汇总
以「考勤打卡」为数据源,具体设置参考下图:
添加「字段设置」节点,选择公式计算:
字段类型选择文本类型,计算公式参考2.2.1,计算「打卡状态」
字段类型选择文本类型,计算公式如下:
IF(OR(打卡状态="正常签到",打卡状态="迟到"),打卡状态,"")
IF(TEXT(DATE(打卡时间),"yyyyMMddHHmm")<TEXT(DATE(打卡时间),"yyyyMMdd1200"),1,0)
添加「数据筛选」节点,筛选出「上午打卡判定」为1的数据
添加「字段设置」节点,选择公式计算:
字段类型选择文本类型,计算公式如下:
TEXT(DATE(签到时间),"yyyy-MM-dd HH:mm:ss")
添加以「外勤打卡」为数据源的输入节点,重复之前的动作,并将两条数据流进行追加合并,具体设置如下:
以「补卡申请」为数据源,具体设置参考下图:
添加「数据筛选」节点,筛选出「审批意见」为“同意”且「补签时间段」为“上午签到”的数据
添加「字段设置」节点,选择公式计算:
字段类型选择文本类型,计算公式如下:
IF(ISEMPTY(补签时间段),"","补签")
与之前的数据流进行追加合并,具体设置如下:
2.3.2 下午考勤状态汇总
本质上同「上午考勤状态汇总」模块一致,详情参照2.3.1,搭建完成后将两条数据流进行横向链接,具体操作如下:
2.3.3 请假/调休状态汇总
以「请假申请」为数据源,具体设置参考下图:
添加「数据筛选」节点,筛选出「上级审批意见」为“同意”的数据
添加「字段设置」节点,选择公式计算:
字段类型选择文本类型,计算公式如下:
IF(请假计算方式="小时",TEXT(DATE(请假开始时间),"yyyy-MM-dd HH:mm"),IFS(OR(请假时段="全天",请假时段="上午"),CONCATENATE(TEXT(DATE(请假日期),"yyyy-MM-dd")," 09:00"),请假时段="下午",CONCATENATE(TEXT(DATE(请假日期),"yyyy-MM-dd")," 13:30\")))
IF(请假计算方式="小时",TEXT(DATE(请假结束时间),"yyyy-MM-dd HH:mm"),IFS(OR(请假时段="全天",请假时段="下午"),CONCATENATE(TEXT(DATE(请假日期),"yyyy-MM-dd")," 17:30"),请假时段="上午",CONCATENATE(TEXT(DATE(请假日期),"yyyy-MM-dd")," 12:00")))
添加以「调休申请」为数据源的输入节点,重复之前的动作,并将两条数据流进行追加合并,具体设置如下:
将追加合并后的数据流与之前的数据流进行横向链接,具体操作如下:
输入2023年工作日历,与之前的数据流进行横向链接,具体操作如下:
链接输出节点,完成数据流配置
2.4 修改「员工可调休天数」聚合表
将聚合表名称改为「员工可调休时长」,将指标名称分别改为「加班时长」、「调休时长」、「可用调休时长」
2.5 修改「考勤确认」表单
「员工考勤、请假信息」模块的信息源改为数据联动「员工考勤统计」数据流
添加「工时」、「调休时长」、「考勤累计迟到时长」、「考勤累计早退时长」、「外勤累计迟到时长」、「外勤累计早退时长」、「工时」、「迟到总时长」、「早退总时长」、「请假/调休时长」、「事假时长」、「病假时长」、「调休时长」等字段,具体设置参考下图:
「考勤明细」子表单关联「员工考勤明细」数据流
「员工加班、出差信息」模块添加「工作日加班时长」、「周末加班时长」、「节假日加班时长」字段,数据联动「员工考勤统计」数据流,具体设置参考上图。
2.7 检查仪表盘
由于字段的修改与「聚合表」、「数据工厂」变动,需要检查仪表盘配置是否正确,修改仪表盘展示维度为小时,并在「考勤报表」仪表盘的考勤月报中添加展示「工时」字段。