如何设计一套OA假勤管理系统
今天市面上到处都是OA系统,假勤模块如何实现已经有很多案例了,但要完整摸清楚里面的计算规则,依旧不是一件容易的事情。本文描述一下搭建OA系统中的假勤模块,需要做哪些事情,以及关于假勤规则计算的一些关键问题。 作为一名打工人,每天上班的打卡是最烦的时候,又是早起当牛马的一天,还不能迟到。那么我们的考勤一般会有哪些规则,怎么算我这个月是不是全勤、要扣多少钱? 一、假勤业务规则 我们先从视角,来看各项假勤的业务规则。 1. 有哪几类考勤业务 -考勤打卡:每个工作日需要员工上下班打卡,看牛马们有没有来上班,有没有迟到早退旷工。 如果迟到早退就要罚款。比如迟到1分钟,扣100块钱。旷工会加倍罚款。 考勤的各项规则比较多,比如有些公司不要求员工上下班打卡;再比如有些公司弹性打卡,前一天下班晚第二天可以晚点上班,等等。 -补卡:如果迟到或者忘记打卡了,可以用补卡来抵,一个月有使用次数限制。 -请假:请假有年假、事假、病假、调休假等不同类型的假。不同的假主要影响是否带薪。事假不带薪;年假带薪,一年5天或者10天,根据员工工龄来定;病假、产假这些会发个基本工资。 请假的时间,按半天或者小时来请。 -外出和出差:员工外出出差,一般需要提个外出或出差申请,上下班进行外勤打卡或者不用打卡。 -加班:有些心地善良的资本家,会制定加班折算调休的规则,比如加几个小时的班可以调休半天。 2. 计算每月的出勤结果 需要结合员工的打卡、请假、外出出差、迟到早退等各种情况,计算员工每个月的出勤天数,来计算薪资。 二、产品功能设计 明确业务规则之后,我们就可以开始着手设计一套假勤管理系统了。 1. 产品方向 假勤管理属于OA系统中的一个模块,目标为准确统计员工的出勤。为了满足各公司不同的业务规则,这套系统需要支持用户自主可配置。 2. 产品架构 整体架构如图所示 首先是规则配置,段需要配置考勤规则,和假期规则; 然后是考勤日常使用,员工端的考勤打卡,以及请假、补卡、外出、出差、加班的申请和审批; 最后是统计,月度出勤统计和每日出勤明细,端和员工端都能看到。 3、考勤规则设置 通过考勤组管理,把一群人圈在这个组里,并设定这群人的考勤规则。考勤规则还是比较复杂的,具体需要设置内容有: 1)人员,即哪些人要被圈在这个考勤组里。可以选单个人或者按部门选; 2)考勤班次: 考勤班次用于定义上下班的时间,比如9点上班、下午5点下班,就用考勤班次定义; 考勤班次可以制定多个,主要针对早晚班、三班倒这类情况; 一个班次里,通常需要设置这几个时间,上班时间、下班时间、午休开始/结束时间、下班卡结束/上班卡开始时间。有些公司只需要上下班各打一次卡,而有些公司会要求中午午休前后也要打卡。下班卡结束/上班卡开始时间主要用于考勤打卡区分第一天下班和第二天上班。 考勤班次会用在很多地方,我们需要用这几个时间点来计算一天的应出勤时长、上下班打卡时间等。 3)考勤日期,即哪几天要上班,哪几天不用上班。这里需要支持几种形式: 按照国家法定节假日上班; 固定每周哪几天上班。针对一些不管法定节假日、都是固定每周的周几上班的职位,比如医生这种; 大小周、单休、不用调休之类的特殊情况。需要在前两种的基础上,再支持手动设置哪几天需要上班,或者哪几天不需要上班的功能; 轮班制、三班倒这类。多人轮流上班和休息的职位,常见于一些线下服务业、客服等等,每周的上班和休息日不一样,比如这周一三五上班,下周二四六上班,或者这周早班,下周晚班。这种情况需要排班功能,人+班次+日期,由人工维护; 设置考勤日期后,就可以算出每个员工每月的应出勤天数,有哪几天需要打卡; 4)是否需要打卡。如果设置为不需要打卡,则默认每天都正常上下班,不过依旧会有上下班时间; 5)打卡方式。手机定位打卡,或者是对接第三方系统进行指纹、人脸打卡; 6)打卡地点。如果是手机定位打卡,选择具体定位,周边多少米范围,作为打卡位置; 7)弹性打卡,是否需要开启,如果开启,允许迟到几分钟; 8)外勤打卡,是否需要开启,如果开启,允许在非打卡地点进行外勤打卡; 9)补卡,是否需要开启,如果开启,设置每个月的补卡次数和最晚日期 10)迟到早退的扣款规则:通常有两种逻辑,一种是直接扣钱,比如迟到一小时以内扣50块钱;另一种是算到缺勤天数中,比如迟到一小时以上计为缺勤半天。可以按照迟到时间区间,配置多个规则。 11)加班规则,加班是否折算调休,如果要,需要设置加班折算调休的比例。 4. 考勤打卡 即上下班打卡,支持员工根据考勤组中配置的打卡地点、时间,进行打卡即可。 如果不在公司位置,可以定位当前地址进行外勤打卡。 考勤打卡虽然看起来很简单,但这是员工最出岔子的地方,一些小问题都得想好怎么处理,不然容易被骂。 比如,9点上班,打卡时间是截止到9点00分00秒,还是到9点00分59秒;再比如,用户开着打卡页面从打卡地点范围外到范围内,如果页面刷新太慢了,可能人已经到打卡区域内了,页面还是显示不在打卡区域内,万一这几秒刚好过了迟到时间,用户就要骂娘了。 考勤打卡的难点是需要区分上班打卡和下班打卡。比如早上忘打卡,下班的时候再进入页面,这个时候是上班卡还是下班卡?通常有两种处理方式: 第一,根据考勤组-考勤班次中设置的午休开始/结束时间,划分上午下午,没打卡算对应的半天缺卡,午休结束后页面上就算下午打卡。下班卡切换上班卡,根据下班卡结束/上班卡开始时间,通常设置再凌晨,主要应对凌晨加班的情况。 第二,下班卡,根据上面这种方式;上班卡,如果当天没打过,进入页面显示的就是上班卡。 这两种的区别,在于忘打上班卡、不考虑补卡的情况下,前者可以默认算用户上班了半天,后者不算。 5. 假期规则设置 通过假期规则管理功能,设置有哪几种假期类型,并且设置每种假期的规则。具体需要设置的内容有: 1)是否带薪 可以选择全薪、不带薪、和带部分薪资。 带部分薪资比如病假,需要填写系数; 2)请假时长 可以选择按小时、按半天、按天 按小时,需要按照考勤班次的应出勤时长来换算到天; 按半天,有两种计算规则,一种是0.5天,一种是选择上午/下午,并根据考勤班次确定上午和下午分别是多久,两者是不一样的; 按小时,需要定义最小颗粒度,时分秒、5分钟、还是半小时; 3)是否有假期余额 带薪假都需要用到余额,一般有几种情况: 固定一年几天或一共几天,比如小公司的年假、婚假丧假 按照工龄或者司龄,阶梯设置假期余额,比如年假 同步加班时长作为假期余额,比如调休假 4)假期余额所属周期、有效期 我们常说的年假属于2024年还是2025年,就是余额所属周期的意思。 余额所属周期实际影响的是这个假期余额的使用时间,比如2024年的年假,在2024年用。 余额所属周期可以选择按年、按月。年假的余额周期就是按年;有些公司的调休假可能这个月有效、下个月失效,余额周期就是按月,当然这种场景比较少。 5)假期余额的有效期 余额有效期,可以选择是否延期,延期的时长或者日期。比如年假的周期一年,12月31日到期,很多公司会延期到第二年3月31日,可以通过设置余额有效期延长3个月来实现。 6. 假期余额管理 有假期余额的假期,需要专门有个页面管理假期余额。假期余额涉及到几个规则: 1)假期余额的发放 发放假期余额有几种情况: 定时自动发放,比如年假,通常在每年的1月1日、或者提前一两个月发放;调休假,通常加班审批通过后发放; 新员工入职后,完成入职或者转正审批通过后发放。通常用于入职当年的年假,发放的余额数量,需要根据员工入职时间的比例进行折算; 手动修改和导入操作。修改假期余额的逻辑是新增或扣减,而不是直接改数值 假期余额的发放和开始使用时间不是同一个概念,发放后只是用户可以看得到,实际使用需要看余额所属周期和有效期。 2)假期余额的消耗 余额的消耗,包括正常使用和扣减这两种情况; 正常使用需要考虑使用哪个批次,比如有去年年假和今年年假,先用哪个; 扣减包含过期自动扣减、离职自动扣减、手动扣减这几种情况。扣减需要考虑是否给员工折算薪资。 3)假期余额的查看 假期余额看起来是数字,背后是每个批次的进出,跟库存余额的逻辑类似。比如年初某一天有年假8天,可能是去年的3天+今年的5天。 因此假期余额查看,也需要看到当前余额对应了哪几个批次,每个批次的所属周期、到期时间分别是多少。 7. 各类申请 最后是各类人事申请和审批,包括:请假、外出、出差、补卡、加班、销假这几块。 8. 考勤报表 考勤模块可以做两个维度的报表,面向员工和: 1)考勤每日明细,包括每天上班、下班的考勤状态、打卡时间、是否迟到、是否请假外出等。员工自己可以通过这个功能查看自己每天有没有正常打卡,要不要补卡; 2)考勤月度统计,包括每个月的实际出勤天数、请假天数、外出出差天数、迟到早退天数等。员工自己可以通过这个统计查看自己这个月是否全勤,大概会被扣多少钱,领导和可以看有多少人请假了几天等。 三、考勤时长和状态的计算规则 考勤模块最复杂的部分,是结合多种情况的考勤状态设置和出勤结果统计。一个员工每天可能会有多种情况,正常打卡、迟到、请假、出差等,需要结合这么多的情况,来计算出用户实际的出勤结果,最终用于计算出勤工资。单靠看钉钉飞书这些系统,很难把他们底层的规则看出来。 要把考勤数据计算准确,需要几个环节: 1. 数据项和影响因素的定义 首先,定义本质逻辑:可以理解为将一天的时间作为时间轴,把各类情况根据发生的时间段放到时间轴上。通过时间轴就能得出各项出勤时长,并且不相互矛盾。 需要计算、并在报表中呈现的数据和状态有几下几项: 出勤状态:根据各类因素汇总一个最终结果,正常OR异常。一天的时间轴通过打卡、请假、外出出差满了就是正常,如果缺勤、迟到早退就是异常; 上班和下班的打卡状态:取上班和下班点发生的事情,正常打卡,或迟到早退,或请假外出等; 出勤时长:当天正常打卡加上外出出差的时长,即扣减请假和缺勤的时长。一般不包含迟到早退,迟到早退会另外算; 请假时长:可以细分为带薪假时长和无薪假时长; 迟到早退时长 一天考勤影响的因素,按照优先级,有以下几项: 请假 外出和出差 补卡和后台置为正常。补卡可以将缺勤、迟到早退修正为正常打卡,后台置为正常是管理员的操作,效果和补卡一样; 正常打卡。是否迟到早退,根据正常打卡的时间来计算; 缺勤。没打卡补卡、请假、外出出差的任何记录,就记为缺勤 需要按照以上的优先级,比如一天即外出,又请假,还正常打卡了,按照优先级就是,先算请假的时间段,再算外出的时间段,剩余部分算正常打卡的时间段。 2. 几个规则的处理和约定 以上确定了底层逻辑和要计算的数据,接下来我们还要处理几个规则: 1)上班下班一个打卡另一个未打卡,算缺勤半天还是缺勤一天? 按时间轴的底层逻辑,需要上班卡和下班卡都打卡,才算是一天正常出勤,只有一个打卡当天时间轴无效。有些公司的人事制度会把这种算缺勤半天,我们的处理方式为0.5天的那个时间点,给一个类似于系统打卡的记录,把这一天的上下班都打上。功能上可以提供配置,根据用户选择这种算缺勤一天还是半天,来判断要不要设置这个系统打卡记录 2)覆盖上班或下班点的请假外出,要不要在请假外出前后打上下班卡? 比如早上请假2小时,2小时后是否还需要上班打卡?底层逻辑和上一条一样,比如请假9-11点,如果11点不需要打上班卡,系统自动给一个11点的打卡记录,也是通过配置实现。 3)迟到早退的扣款如何处理? 很多公司有专门的迟到早退扣款规则,比如迟到1小时内扣100块钱,迟到1小时以上算缺勤半天等,这个规则计算的结果和直接拿打卡时间计算的出勤时长并不一样。所以迟到早退的处理方式,迟到早退扣款规则配置需要另外做,在出勤时长的计算中不考虑迟到早退,比如迟到了5分钟,时间轴依旧算正常出勤,另外扣这5分钟的钱。 3. 每天考勤时长和状态的计算规则 以上确定后,就可以计算考勤时长和状态了。 按照9点下班、5点下班、一天8小时。针对各种场景举个例子: 4. 每月出勤工资的计算规则 将日汇总到月后,就可以计算每月的出勤
今天市面上到处都是OA系统,假勤模块如何实现已经有很多案例了,但要完整摸清楚里面的计算规则,依旧不是一件容易的事情。本文描述一下搭建OA系统中的假勤模块,需要做哪些事情,以及关于假勤规则计算的一些关键问题。
作为一名打工人,每天上班的打卡是最烦的时候,又是早起当牛马的一天,还不能迟到。那么我们的考勤一般会有哪些规则,怎么算我这个月是不是全勤、要扣多少钱?
一、假勤业务规则
我们先从视角,来看各项假勤的业务规则。
1. 有哪几类考勤业务
-考勤打卡:每个工作日需要员工上下班打卡,看牛马们有没有来上班,有没有迟到早退旷工。
如果迟到早退就要罚款。比如迟到1分钟,扣100块钱。旷工会加倍罚款。
考勤的各项规则比较多,比如有些公司不要求员工上下班打卡;再比如有些公司弹性打卡,前一天下班晚第二天可以晚点上班,等等。
-补卡:如果迟到或者忘记打卡了,可以用补卡来抵,一个月有使用次数限制。
-请假:请假有年假、事假、病假、调休假等不同类型的假。不同的假主要影响是否带薪。事假不带薪;年假带薪,一年5天或者10天,根据员工工龄来定;病假、产假这些会发个基本工资。
请假的时间,按半天或者小时来请。
-外出和出差:员工外出出差,一般需要提个外出或出差申请,上下班进行外勤打卡或者不用打卡。
-加班:有些心地善良的资本家,会制定加班折算调休的规则,比如加几个小时的班可以调休半天。
2. 计算每月的出勤结果
需要结合员工的打卡、请假、外出出差、迟到早退等各种情况,计算员工每个月的出勤天数,来计算薪资。
二、产品功能设计
明确业务规则之后,我们就可以开始着手设计一套假勤管理系统了。
1. 产品方向
假勤管理属于OA系统中的一个模块,目标为准确统计员工的出勤。为了满足各公司不同的业务规则,这套系统需要支持用户自主可配置。
2. 产品架构
整体架构如图所示
首先是规则配置,段需要配置考勤规则,和假期规则;
然后是考勤日常使用,员工端的考勤打卡,以及请假、补卡、外出、出差、加班的申请和审批;
最后是统计,月度出勤统计和每日出勤明细,端和员工端都能看到。
3、考勤规则设置
通过考勤组管理,把一群人圈在这个组里,并设定这群人的考勤规则。考勤规则还是比较复杂的,具体需要设置内容有:
1)人员,即哪些人要被圈在这个考勤组里。可以选单个人或者按部门选;
2)考勤班次:
考勤班次用于定义上下班的时间,比如9点上班、下午5点下班,就用考勤班次定义;
考勤班次可以制定多个,主要针对早晚班、三班倒这类情况;
一个班次里,通常需要设置这几个时间,上班时间、下班时间、午休开始/结束时间、下班卡结束/上班卡开始时间。有些公司只需要上下班各打一次卡,而有些公司会要求中午午休前后也要打卡。下班卡结束/上班卡开始时间主要用于考勤打卡区分第一天下班和第二天上班。
考勤班次会用在很多地方,我们需要用这几个时间点来计算一天的应出勤时长、上下班打卡时间等。
3)考勤日期,即哪几天要上班,哪几天不用上班。这里需要支持几种形式:
- 按照国家法定节假日上班;
- 固定每周哪几天上班。针对一些不管法定节假日、都是固定每周的周几上班的职位,比如医生这种;
- 大小周、单休、不用调休之类的特殊情况。需要在前两种的基础上,再支持手动设置哪几天需要上班,或者哪几天不需要上班的功能;
- 轮班制、三班倒这类。多人轮流上班和休息的职位,常见于一些线下服务业、客服等等,每周的上班和休息日不一样,比如这周一三五上班,下周二四六上班,或者这周早班,下周晚班。这种情况需要排班功能,人+班次+日期,由人工维护;
设置考勤日期后,就可以算出每个员工每月的应出勤天数,有哪几天需要打卡;
4)是否需要打卡。如果设置为不需要打卡,则默认每天都正常上下班,不过依旧会有上下班时间;
5)打卡方式。手机定位打卡,或者是对接第三方系统进行指纹、人脸打卡;
6)打卡地点。如果是手机定位打卡,选择具体定位,周边多少米范围,作为打卡位置;
7)弹性打卡,是否需要开启,如果开启,允许迟到几分钟;
8)外勤打卡,是否需要开启,如果开启,允许在非打卡地点进行外勤打卡;
9)补卡,是否需要开启,如果开启,设置每个月的补卡次数和最晚日期
10)迟到早退的扣款规则:通常有两种逻辑,一种是直接扣钱,比如迟到一小时以内扣50块钱;另一种是算到缺勤天数中,比如迟到一小时以上计为缺勤半天。可以按照迟到时间区间,配置多个规则。
11)加班规则,加班是否折算调休,如果要,需要设置加班折算调休的比例。
4. 考勤打卡
即上下班打卡,支持员工根据考勤组中配置的打卡地点、时间,进行打卡即可。
如果不在公司位置,可以定位当前地址进行外勤打卡。
考勤打卡虽然看起来很简单,但这是员工最出岔子的地方,一些小问题都得想好怎么处理,不然容易被骂。
比如,9点上班,打卡时间是截止到9点00分00秒,还是到9点00分59秒;再比如,用户开着打卡页面从打卡地点范围外到范围内,如果页面刷新太慢了,可能人已经到打卡区域内了,页面还是显示不在打卡区域内,万一这几秒刚好过了迟到时间,用户就要骂娘了。
考勤打卡的难点是需要区分上班打卡和下班打卡。比如早上忘打卡,下班的时候再进入页面,这个时候是上班卡还是下班卡?通常有两种处理方式:
第一,根据考勤组-考勤班次中设置的午休开始/结束时间,划分上午下午,没打卡算对应的半天缺卡,午休结束后页面上就算下午打卡。下班卡切换上班卡,根据下班卡结束/上班卡开始时间,通常设置再凌晨,主要应对凌晨加班的情况。
第二,下班卡,根据上面这种方式;上班卡,如果当天没打过,进入页面显示的就是上班卡。
这两种的区别,在于忘打上班卡、不考虑补卡的情况下,前者可以默认算用户上班了半天,后者不算。
5. 假期规则设置
通过假期规则管理功能,设置有哪几种假期类型,并且设置每种假期的规则。具体需要设置的内容有:
1)是否带薪
可以选择全薪、不带薪、和带部分薪资。
带部分薪资比如病假,需要填写系数;
2)请假时长
可以选择按小时、按半天、按天
- 按小时,需要按照考勤班次的应出勤时长来换算到天;
- 按半天,有两种计算规则,一种是0.5天,一种是选择上午/下午,并根据考勤班次确定上午和下午分别是多久,两者是不一样的;
- 按小时,需要定义最小颗粒度,时分秒、5分钟、还是半小时;
3)是否有假期余额
带薪假都需要用到余额,一般有几种情况:
- 固定一年几天或一共几天,比如小公司的年假、婚假丧假
- 按照工龄或者司龄,阶梯设置假期余额,比如年假
- 同步加班时长作为假期余额,比如调休假
4)假期余额所属周期、有效期
我们常说的年假属于2024年还是2025年,就是余额所属周期的意思。
余额所属周期实际影响的是这个假期余额的使用时间,比如2024年的年假,在2024年用。
余额所属周期可以选择按年、按月。年假的余额周期就是按年;有些公司的调休假可能这个月有效、下个月失效,余额周期就是按月,当然这种场景比较少。
5)假期余额的有效期
余额有效期,可以选择是否延期,延期的时长或者日期。比如年假的周期一年,12月31日到期,很多公司会延期到第二年3月31日,可以通过设置余额有效期延长3个月来实现。
6. 假期余额管理
有假期余额的假期,需要专门有个页面管理假期余额。假期余额涉及到几个规则:
1)假期余额的发放
发放假期余额有几种情况:
- 定时自动发放,比如年假,通常在每年的1月1日、或者提前一两个月发放;调休假,通常加班审批通过后发放;
- 新员工入职后,完成入职或者转正审批通过后发放。通常用于入职当年的年假,发放的余额数量,需要根据员工入职时间的比例进行折算;
- 手动修改和导入操作。修改假期余额的逻辑是新增或扣减,而不是直接改数值
假期余额的发放和开始使用时间不是同一个概念,发放后只是用户可以看得到,实际使用需要看余额所属周期和有效期。
2)假期余额的消耗
余额的消耗,包括正常使用和扣减这两种情况;
正常使用需要考虑使用哪个批次,比如有去年年假和今年年假,先用哪个;
扣减包含过期自动扣减、离职自动扣减、手动扣减这几种情况。扣减需要考虑是否给员工折算薪资。
3)假期余额的查看
假期余额看起来是数字,背后是每个批次的进出,跟库存余额的逻辑类似。比如年初某一天有年假8天,可能是去年的3天+今年的5天。
因此假期余额查看,也需要看到当前余额对应了哪几个批次,每个批次的所属周期、到期时间分别是多少。
7. 各类申请
最后是各类人事申请和审批,包括:请假、外出、出差、补卡、加班、销假这几块。
8. 考勤报表
考勤模块可以做两个维度的报表,面向员工和:
1)考勤每日明细,包括每天上班、下班的考勤状态、打卡时间、是否迟到、是否请假外出等。员工自己可以通过这个功能查看自己每天有没有正常打卡,要不要补卡;
2)考勤月度统计,包括每个月的实际出勤天数、请假天数、外出出差天数、迟到早退天数等。员工自己可以通过这个统计查看自己这个月是否全勤,大概会被扣多少钱,领导和可以看有多少人请假了几天等。
三、考勤时长和状态的计算规则
考勤模块最复杂的部分,是结合多种情况的考勤状态设置和出勤结果统计。一个员工每天可能会有多种情况,正常打卡、迟到、请假、出差等,需要结合这么多的情况,来计算出用户实际的出勤结果,最终用于计算出勤工资。单靠看钉钉飞书这些系统,很难把他们底层的规则看出来。
要把考勤数据计算准确,需要几个环节:
1. 数据项和影响因素的定义
首先,定义本质逻辑:可以理解为将一天的时间作为时间轴,把各类情况根据发生的时间段放到时间轴上。通过时间轴就能得出各项出勤时长,并且不相互矛盾。
需要计算、并在报表中呈现的数据和状态有几下几项:
- 出勤状态:根据各类因素汇总一个最终结果,正常OR异常。一天的时间轴通过打卡、请假、外出出差满了就是正常,如果缺勤、迟到早退就是异常;
- 上班和下班的打卡状态:取上班和下班点发生的事情,正常打卡,或迟到早退,或请假外出等;
- 出勤时长:当天正常打卡加上外出出差的时长,即扣减请假和缺勤的时长。一般不包含迟到早退,迟到早退会另外算;
- 请假时长:可以细分为带薪假时长和无薪假时长;
- 迟到早退时长
一天考勤影响的因素,按照优先级,有以下几项:
- 请假
- 外出和出差
- 补卡和后台置为正常。补卡可以将缺勤、迟到早退修正为正常打卡,后台置为正常是管理员的操作,效果和补卡一样;
- 正常打卡。是否迟到早退,根据正常打卡的时间来计算;
- 缺勤。没打卡补卡、请假、外出出差的任何记录,就记为缺勤
需要按照以上的优先级,比如一天即外出,又请假,还正常打卡了,按照优先级就是,先算请假的时间段,再算外出的时间段,剩余部分算正常打卡的时间段。
2. 几个规则的处理和约定
以上确定了底层逻辑和要计算的数据,接下来我们还要处理几个规则:
1)上班下班一个打卡另一个未打卡,算缺勤半天还是缺勤一天?
按时间轴的底层逻辑,需要上班卡和下班卡都打卡,才算是一天正常出勤,只有一个打卡当天时间轴无效。有些公司的人事制度会把这种算缺勤半天,我们的处理方式为0.5天的那个时间点,给一个类似于系统打卡的记录,把这一天的上下班都打上。功能上可以提供配置,根据用户选择这种算缺勤一天还是半天,来判断要不要设置这个系统打卡记录
2)覆盖上班或下班点的请假外出,要不要在请假外出前后打上下班卡?
比如早上请假2小时,2小时后是否还需要上班打卡?底层逻辑和上一条一样,比如请假9-11点,如果11点不需要打上班卡,系统自动给一个11点的打卡记录,也是通过配置实现。
3)迟到早退的扣款如何处理?
很多公司有专门的迟到早退扣款规则,比如迟到1小时内扣100块钱,迟到1小时以上算缺勤半天等,这个规则计算的结果和直接拿打卡时间计算的出勤时长并不一样。所以迟到早退的处理方式,迟到早退扣款规则配置需要另外做,在出勤时长的计算中不考虑迟到早退,比如迟到了5分钟,时间轴依旧算正常出勤,另外扣这5分钟的钱。
3. 每天考勤时长和状态的计算规则
以上确定后,就可以计算考勤时长和状态了。
按照9点下班、5点下班、一天8小时。针对各种场景举个例子:
4. 每月出勤工资的计算规则
将日汇总到月后,就可以计算每月的出勤工资了。
最终计算过程如下:
几个数据的说明:
1)前面计算的每天出勤时长,包含了正常打卡、外出、出差,不包含带薪假,因此计薪的时候,实际出勤天数需要加上带薪假;
2)实际出勤天数不等于计薪天数,分母和分子都还需要加上法定节假日中计薪日的天数。比如国庆7天假,计薪日是3天,另外4天属于周末不算计薪日;
3)迟到早退的扣钱规则,比如迟到1小时扣100元,这个扣款需要单独计算,最后在公式中扣减。
专栏作家
潘帕斯雄鹰,人人都是产品经理专栏作家,进击、踩坑中的产品狗一枚,关注互联网,写过小说,看过哲学。简书:潘帕斯雄鹰。
本文原创发布于人人都是产品经理。未经许可,禁止转载。
题图来自 Unsplash ,基于 CC0 协议。
你的反应是什么?