本发明涉及软件管理技术领域,特别涉及一种基于考勤数据实时运算的方法。
背景技术:
目前考勤管理软件大都内置考勤算法,通过用户点击运算或者配置定时运算时进行结果核算,并将最终核算结果展示给用户。但是传统的算法需要任务触发才能计算,并且大都基于用户需求进行定制,无法做到考勤记录上传及假期、加班单据申请审核后的实时运算,无法满足用户实时考勤结果需求以及异常实时预警的需求。因此,需对现有技术加以改进。
技术实现要素:
本发明为了克服现有技术的不足,现提供了一种基于考勤数据实时运算的方法,能够根据用户实时考勤记录、实时假期、加班申请及审批单据结合对应考勤制度进行实时运算,并实现异常实时预警的目的。
本发明提供一种基于考勤数据实时运算的方法,包括以下步骤:
s1:用户上传考勤工时记录到实时工时记录表,获取需要运算的实时记录;
s2:依据获取需要运算的工时记录信息,进行实时运算;
s3:通过用户申请或者审批的假期、加班单据表,获取需要运算的单据记录;
s4:依据单据进行实时运算,将最终运算结果更新考勤结果表,并同时推送异常信息至异常预警表。
相对于现有技术而言,采用上述实时考勤算法,能够根据用户实时考勤记录、实时假期、加班申请及审批单据结合对应考勤制度进行实时运算,并将最终运算结果更新至考勤报表,同时对异常及需要预警信息推送至预警任务表,及时推送给需要获取异常信息的用户,便于用户及时知晓异常考勤信息,及时处理异常考勤信息,从而规避因为处理不及时从而造成月末薪资核算错误问题,并及时对劳动法将要超时预警,规避企业触发劳动法风险。
进一步地,步骤s1中的所述实时考勤记录信息包含:考勤设备实时上传考勤记录信息、移动端定位考勤记录信息及用户补签卡考勤记录信息,便于对不同的信息都进行记录。
进一步地,所述步骤s1的具体操作如下:
每隔固定的时间轮询当前月份的考勤记录;
将未执行核算任务的考勤记录保存至考勤实时核算任务表中;
同时修改考勤记录表任务标志为已触发任务,更新任务处理日志。如此操作,不会对任何一个考勤信息遗漏或者重复记录,便于整体统计。
进一步地,步骤s2中的操作步骤包括:
依据实时考勤记录运算任务表进行逐一运算;
以用户日期为排序进行逐一实时运算;
每个人运算时依据人员对应考勤制度、当日对应排班信息和运算记录进行对比运算。将每个人的信息分别进行运算,防止在运算时出现遗漏或者重叠等现象。
进一步地,步骤s3中所述审批的单据包含最新提交未审批单据及已审批单据。以便于重复审批。
进一步地,步骤s3具体步骤为:
每隔固定时间轮询当月申请单据表;
将未执行任务单据插入到单据运算任务队列;
同时标注修改单与申请单据表核算状态为已触犯任务。同样,如此操作,不会对任何一个单据信息遗漏或者重复记录,便于整体统计。
步骤s4中的实时运算包括:
依据实时单据任务表进行逐一运算;
以用户日期为排序进行逐一实时运算;
每个人运算时依据人员对应考勤制度、当日对应排班信息和异常信息进行运算。
本发明由于采用了以上技术方案,使其具有的有益效果是:
能够根据用户实时考勤记录、实时假期、加班申请及审批单据结合对应考勤制度进行实时运算,并将最终运算结果更新至考勤报表,同时对异常及需要预警信息推送至预警任务表,及时推送给需要获取异常信息的用户,便于用户及时知晓异常考勤信息,及时处理异常考勤信息,从而规避因为处理不及时从而造成月末薪资核算错误问题,并及时对劳动法将要超时预警,规避企业触发劳动法风险。
附图说明
图1为本发明基于考勤数据实时运算的方法的算法流程图。
具体实施方式
为利于对现有技术的进一步了解,以下结合附图及实施例对本发明进一步详细描述。
本发明的实施方式提供了一种基于考勤数据实时运算的方法,结合图1所示,该方法具体包括以下步骤:
s1:用户上传考勤工时记录到实时工时记录表,获取需要运算的实时记录;
s2:依据获取需要运算的工时记录信息,进行实时运算;
s3:通过用户申请或者审批的假期、加班单据表,获取需要运算的单据记录;
s4:依据单据进行实时运算,将最终运算结果更新考勤结果表,并同时推送异常信息至异常预警表。
具体地说,步骤s1中用户首先通过考勤设备上次考勤记录信息、移动端定位考勤记录信息、用户补签卡考勤记录信息等等,每隔固定的时间(一般为5分钟)轮询当前月份考勤记录表,将未执行核算任务的考勤记录保存至考勤实时核算任务表中,并同时修改考勤记录表任务标志为已触发任务,更新任务处理日志。
将以上信息列入:userid(用户id),record_datetime(记录时间),rec_direction(进出方向)、rec_status(记录状态),create_time(记录入库时间)。记录列表为当前所有未核算的考勤记录列表(rec_status=0)。
实时记录运算任务表举例为;userid(用户id),record_datetime(记录时间),rec_direction(进出方向)、task_status(任务状态),create_time(记录入库时间)。
另外,当进行步骤s2时,要依据实时考勤记录运算任务表进行逐一运算,以用户日期为排序进行逐一实时运算,每个人运算时依据人员对应考勤制度、当日对应排班信息和运算记录进行对比运算。
例如:a用户当日共有1条未运算记录,先取出a用户当日排班信息,获取排班规则;
从算法调度中心获取a员工对应考勤制度;
依据a用户考勤异常信息缺少记录类型结合实时考勤记录和排班表判断该记录属于对于哪个异常记录,并进行核算出勤信息、工时信息、及其他异常信息。
举例a用户考勤任务记录未执行为:2016-04-0619:00:00,员工当日排班对应上下班时间为:应上班时间08:00,应下班时间17:00,考勤制度为17:00后1小时为单位核算加班。
a用户当日考勤异常信息记录为缺失下班记录,依据应下班记录和实时考勤记录对比得出该记录可消除缺失下班记录异常,并结合班次信息重新核算出勤工时,加班工时。
a用户当日核算结束后,插入当日员工异常信息表,并依据异常预警任务机制推送预警单元同时删除实时记录任务表中该用户当日记录。
同时,步骤s3中,获取的实时单据信息包括:最新提交未审批单据(含加班、请假、差勤),已审批单据(含加班、请假、差勤)。其具体步骤为:
每隔固定时间(通常情况下为5分钟)轮询当月申请单据表,将未执行任务单据插入到单据运算任务队列,并同时修改单与申请单据表核算状态为已触犯任务。
例如:当月申请单据表包含userid(用户id),apply_type(申请类型),apply_date(申请日期),begin_date(开始时间),end_date(结束时间),wf_status(审批状态),rec_status(记录状态),将所有rec_status为0的数据插入实时单据运算任务表进行执行。
另外,实行步骤s4时,首先依据实时单据任务表进行逐一运算,以用户日期为排序进行逐一实时运算,每个人运算时依据人员对应考勤制度、当日对应排班信息和异常信息。
算法的原理如下:
依据任务记录apply_type判断是否加班类型,如果是加班类型,
结合begin_date,end_date和员工当日上下班记录和应上下班信息进行对比,对比后获取数值作为当日加班工时;
如果任务类型是非加班类型,直接依据begin_date、end_date和当日上下班时间对比核算出请假时间,将请假时间更新至结果信息表。
最后依据预警任务信息推送例如加班超时预警至异常信息表和预警信息表,完成操作。
在实践中,通过用户上传考勤工时记录到实时工时记录表,获取需要运算实时记录;依据工时待运算工时记录表,获取带运算人员信息;依据带运算人员信息对应考勤制度,以及单日考勤数据进行综合运算;将实时运算结果更新至考勤结果表,同时异常信息推送至异常预警表。另外,通过用户上传申请或者审批的假期、加班单据表,依据实时申请、审批加班请假单据表,获取待运算人员信息;依据待运算人员信息获取对应加班、假期制度,依据制度进行综合运算;将最终运算结果更新考勤结果表,同时推送异常信息至异常预警表,最后得出考勤结果,完成统计。
本发明采用了上述实时考勤算法,能够根据用户实时考勤记录、实时假期、加班申请及审批单据结合对应考勤制度进行实时运算,并将最终运算结果更新至考勤报表,同时对异常及需要预警信息推送至预警任务表,及时推送给需要获取异常信息的用户,便于用户及时知晓异常考勤信息,及时处理异常考勤信息,从而规避因为处理不及时从而造成月末薪资核算错误问题,并及时对劳动法将要超时预警,规避企业触发劳动法风险。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。