掌桥专利:专业的专利平台
掌桥专利
首页

一种支持乱序上传的考勤工时及夜班算法

文献发布时间:2023-06-19 11:27:38


一种支持乱序上传的考勤工时及夜班算法

技术领域

本发明涉及计算机技术和通信技术技术领域,具体而言,涉及一种支持乱序上传的考勤工时及夜班算法。

背景技术

在建筑行业的传统考勤管理中,对工人的考勤刷卡明细通常只支持按时间顺序上传,这种处理方式存在以下限制:(1)由于作业现场的网络情况复杂,经常会堆积大量历史考勤数据,导致无法快速上传最新考勤。且待作业现场网络恢复时,如果仅按照工人刷卡的时间顺序上传考勤,则最新的数据需要很长时间才能进入云端管理系统。由于无法及时查看到最新的项目工人考勤,导致项目管理极为不便。(2)现有的传统考勤管理不支持夜班考勤,对于跨天作业的工人考勤记录,无法准确的计算工人工时;(3)现有的传统考勤管理不支持补录历史数据,历史数据的缺失,严重影响以考勤为依据的业务。

发明内容

本发明的目的在于解决上述技术问题,通过使用乱序上传优先上传最新考勤信息以及能够支持考勤补录;通过采用夜班工时标识灵活处理夜班计算逻辑,能够准确计算夜班工时。

本发明的实施例通过以下技术方案实现:一种支持乱序上传的考勤工时及夜班算法,包括如下步骤:

S1.数据上传步骤:发送端选取待上传刷卡数据中的最新刷卡数据,并将刷卡数据按预设上传逻辑上传至云端入库,其中,所述云端存储有刷卡信息List,所述刷卡信息List由总览信息以及刷卡明细组成,总览信息包括考勤标识以及工时;

S2.数据更新步骤:每一次刷卡数据上传入库时,云端调取所述刷卡数据对应的旧的刷卡信息List,基于上传的刷卡数据重计算所述考勤标识以及工时,对所述旧的刷卡信息List进行更新得到新的刷卡信息List。

根据一种优选实施方式,所述考勤标识以及工时具体包括:工时h、首夜班工时bh,尾夜班工时eh、首夜班标识bf,尾夜班标识ef、首刷卡类型bt以及尾刷卡类型et。

根据一种优选实施方式,步骤S2具体包括:

S21.将所述刷卡信息List的总览信息以及刷卡明细分离,其中,刷卡信息List以凌晨0点分割为昨日、当日和次日;

S22.当日新的刷卡信息List中,若设置了首夜班工时bh

S23.当日旧的刷卡信息List中,若已设置首夜班标识bf,但当日新的刷卡信息List中首夜班标识bf被移除,则更新昨日与当日的刷卡信息List;

S24.当日新的刷卡信息List中,若设置了尾夜班工时eh

S25.当日旧的刷卡信息List中,若已设置尾夜班标识ef,但当日新的刷卡信息List中尾夜班标识ef被移除,则更新次日与当日的刷卡信息List;

S26.基于更新后的刷卡信息List,重计算当日工时h

根据一种优选实施方式,步骤S1中所述将刷卡数据上传至云端入库具体为:

若刷卡数据为上班刷卡数据,且时间节点对应刷卡明细的头部,则跳转至步骤S23;

若刷卡数据为下班刷卡数据,且时间节点对应刷卡明细的头部,则跳转至步骤S22;

若刷卡数据为上班刷卡数据,且时间节点对应刷卡明细的尾部,则跳转至步骤S24;

若刷卡数据为下班刷卡数据,且时间节点对应刷卡明细的尾部,则跳转至步骤S25。

根据一种优选实施方式,步骤S22具体包括:

若昨日的刷卡信息List中,尾刷卡类型et为上班,且未设置尾夜班标识ef,则设置尾夜班标识ef,重计算工时h

若已设置昨日尾夜班标识ef,则在当日的刷卡信息List中,设置首夜班标识bf,重计算工时h

根据一种优选实施方式,步骤S23具体包括:

S231.移除昨日尾夜班标识ef,重计算昨日工时h

S232.重计算当日工时h

根据一种优选实施方式,步骤S24具体包括:

S241.若次日的刷卡信息List中,首刷卡类型bt为下班,且未设置首夜班标识bf,则设置首夜班标识bf,重新计算工时h

S242.若已设置次日首夜班标识bf,则在当日的刷卡信息List中,设置尾夜班标识ef,设置尾夜班工时eh

根据一种优选实施方式,步骤S25具体包括:

S251.移除次日首夜班标识bf,重计算次日工时h

S252.重计算当日工时h

本发明实施例的技术方案至少具有如下优点和有益效果:本发明提供的算法能够支持作业现场优先上传最新数据,便于项目管理人员及时查看最新统计数据;能够支持项目全生命周期的考勤补录,为完善项目数据提供了便利;能够降低考勤入库时的查询量与计算量,提高考勤入库效率。

附图说明

图1为本发明实施例1提供的支持乱序上传的考勤工时及夜班算法的逻辑流程图;

图2为本发明实施例1提供的重计算工时的逻辑示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

实施例1

参阅图1所示,图1为本发明实施例提供的一种支持乱序上传的考勤工时及夜班算法的逻辑流程图。

需要说明的是,在建筑行业的传统考勤管理中,对工人的考勤刷卡明细通常只支持按时间顺序上传,这种处理方式存在以下限制:(1)由于作业现场的网络情况复杂,经常会堆积大量历史考勤数据,导致无法快速上传最新考勤。且待作业现场网络恢复时,如果仅按照工人刷卡的时间顺序上传考勤,则最新的数据需要很长时间才能进入云端管理系统。由于无法及时查看到最新的项目工人考勤,导致项目管理极为不便。(2)现有的传统考勤管理不支持夜班考勤,对于跨天作业的工人考勤记录,无法准确的计算工人工时;(3)现有的传统考勤管理不支持补录历史数据,历史数据的缺失,严重影响以考勤为依据的业务。所以,本发明实施例提供了一种支持乱序上传的考勤工时及夜班算法,具体内容如下所述:

该算法具体包括以下步骤:

S1.数据上传步骤:由于作业现场的网络情况复杂,经常会堆积大量历史考勤数据待上传;具体的,本发明实施例通过发送端选取待上传刷卡数据中的最新刷卡数据,并将刷卡数据按预设上传逻辑上传至云端入库,其中,所述云端存储有刷卡信息List,所述刷卡信息List由总览信息以及刷卡明细组成,总览信息包括考勤标识以及工时;所述考勤标识以及工时具体包括:工时h、首夜班工时bh,尾夜班工时eh、首夜班标识bf,尾夜班标识ef、首刷卡类型bt以及尾刷卡类型et。

S2.数据更新步骤:每一次刷卡数据上传入库时,云端调取所述刷卡数据对应的旧的刷卡信息List,基于上传的刷卡数据重计算所述考勤标识以及工时,对所述旧的刷卡信息List进行更新得到新的刷卡信息List。步骤S2具体包括:

S21.将所述刷卡信息List的总览信息以及刷卡明细分离,其中,刷卡信息List以凌晨0点分割为昨日、当日和次日。

S22.当日新的刷卡信息List中,若设置了首夜班工时bh

S23.当日旧的刷卡信息List中,若已设置首夜班标识bf,但当日新的刷卡信息List中首夜班标识bf被移除,则更新昨日与当日的刷卡信息List;具体包括:移除昨日尾夜班标识ef,重计算昨日工时h

S24.当日新的刷卡信息List中,若设置了尾夜班工时eh

S25.当日旧的刷卡信息List中,若已设置尾夜班标识ef,但当日新的刷卡信息List中尾夜班标识ef被移除,则更新次日与当日的刷卡信息List;具体包括:移除次日首夜班标识bf,重计算次日工时h

S26.基于更新后的刷卡信息List,重计算当日工时h

参阅图2所示,图2示出了重计算工时的逻辑示意图。图中1指上班,0指下班;图中A即指的是时间节点对应刷卡明细的头部的上班刷卡数据(7:00),B即指的是时间节点对应刷卡明细的头部的下班刷卡数据(6:00),C即指的是时间节点对应刷卡明细的尾部的上班刷卡数据(22:00),D即指的是时间节点对应刷卡明细的尾部的下班刷卡数据(23:00);本实施例以ABCD的顺序上传刷卡数据以描述如何支撑乱序上传。以下对本发明实施例进行举例说明:

云端原始考勤存储如表1和表2所示:

表1.总览信息

表2.刷卡明细(入代表上班,出代表下班)

如上所示的表1和表2可以看做是A上传时,调取的旧的刷卡信息List;

其中,已知A为(7:00)属于上班刷卡数据,且时间节点对应刷卡明细的头部,则进一步的对于2021-01-01(昨日)执行的流程为:移除尾夜班标识ef,重计算工时h

对于2021-01-02(当日):移除首夜班标识bf,重计算工时h

最终得到的新的刷卡信息List如表3和表4所示:

表3.总览信息

表4.刷卡明细

进一步的,如上所示的表3和表4可以看做是B上传时,调取的旧的刷卡信息List;

其中,已知B为(6:00)属于下班刷卡数据,且时间节点对应刷卡明细的头部,则进一步的对于2021-01-01(昨日)执行的流程为:添加尾夜班标识ef,重计算工时h

对于2021-01-02(当日):添加首夜班标识bf,将首夜班工时bh

最终得到的新的刷卡信息List如表5和表6所示:

表5.总览信息

表6.刷卡明细

进一步的,如上所示的表5和表6可以看做是C上传时,调取的旧的刷卡信息List;

其中,已知C为(22:00)属于上班刷卡数据,且时间节点对应刷卡明细的尾部,则进一步的对于2021-01-02(当日)执行的流程为:添加尾夜班标识ef,将尾夜班工时eh

对于2021-01-03(次日):添加首夜班标识bf,重计算工时h

最终得到的新的刷卡信息List如表7和表8所示:

表7.总览信息

表8.刷卡明细

进一步的,如上所示的表7和表8可以看做是D上传时,调取的旧的刷卡信息List;

其中,已知D为(23:00)属于下班刷卡数据,且时间节点对应刷卡明细的尾部,则进一步的对于2021-01-02(当日)执行的流程为:移除尾夜班标识ef,重计算工时h

对于2021-01-03(次日):移除首夜班标识bf,重计算工时h

最终得到的新的刷卡信息List如表9和表10所示:

表9.总览信息

表10.刷卡明细

综上所述,本发明提供的算法能够支持作业现场优先上传最新数据,便于项目管理人员及时查看最新统计数据;能够支持项目全生命周期的考勤补录,为完善项目数据提供了便利;能够降低考勤入库时的查询量与计算量,提高考勤入库效率。

以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种支持乱序上传的考勤工时及夜班算法
  • 一种支持乱序上传的考勤工时及夜班算法
技术分类

06120112938979