• 考勤相关资料


    百度搜索:

    hr系统排名 考勤

    考勤系统

    ------------------------------------------------------------------

    网络资料:http://bbs.csdn.net/topics/390755003

    最近为工作在写一套考勤系统。
    考勤数据采集、请假单、出差单、加班单,还有班次时间段管理、人员管理等都写好了。
    最后冲关考勤日报的生成处理,思考了三天,头脑还是一片迷糊,上来CSDN放松放松,看看有没有处理过和考勤系统的指点一下。
    头脑纠结的地方:
    1、每天四次卡:上班上下班、下午下下班。
    2、如果中午只打了一次,那这个得根据上、下午是否请假或出差来放到相应时间点。
    3、加班起始或结束的时间可能是跟正常下班或上班的时间连到一起的。
    4、加班会加到隔天去。
    5、公司是大小周制,一周上6天,一周上5天。
    6、正常情况下周日是休息日,如果碰上国家放假调整,可能就会出现反常。
    7、部分部门采用加班单跟上班间双重确认的方式来认定是否计加班,另外的部分则不写加班单,只按实际打卡时间。

    如果取当天离上班时间最近的刷卡时间做为上班卡,也会出现因夜间加班到早上4、5点,故上午不去上班的状况,就会错把加班的下班卡当做上午的上班卡了。
    如果取下班最近的时间点,则会把加班时间给丢了。如果加班到隔天,这个又要怎么取。
    每个时间点都很好几个因素挂上关系,绕来绕去。

    脑子里头越想越多,越想越复杂,越想越不知道从何着手。
    连大方向都迷失了
    唉。。。。。。工厂的考勤比一般公司复杂多了。
    求救命啊,脑子要炸开了

    我就是想给每个员工每天生成一记录,记录他的上班各个时间段的打卡时间,加班的打卡时间,加班时长、请假时长、迟到时间、早退时长
    判断究意是节假日呢还是正常工作日,加班开始时间如果跟下班时间重叠则不计异常

    哪怕是最没效率,最笨的方法都想不到了。
    写了几年的程序,第一次这么纠结,非常膜拜那些专业的HR系统开发人员

    --------

    考勤最核心的内容就是考勤算法,考勤时间段的设置直接影响考勤算法的效率。
    1、每天四次卡:上班上下班、下午下下班。
     A: 无论多少次,都是时间段,时间段包括:开始上班时间,上班时间,上班考勤结束时间,下班开始时间,下班时间,下班结束时间。这样处理之后,你这里只不过是使用两个时间段而已。
    2、如果中午只打了一次,那这个得根据上、下午是否请假或出差来放到相应时间点。
    A:请假要预先计算,有请假,就不计算考勤
    3、加班起始或结束的时间可能是跟正常下班或上班的时间连到一起的。
    A:确定了下班结束时间,就可以剥离加班。可使用选项处理。
    4、加班会加到隔天去。
    A:加班时间按照0点进行分割,之前的算作前一天。
    5、公司是大小周制,一周上6天,一周上5天。
    A:增加选项,算法上只不过是多计算一天。
    6、正常情况下周日是休息日,如果碰上国家放假调整,可能就会出现反常。
    A:国家放假要单独设置,优先考虑放假、休假、出差,所有的这些都是考勤异常的内容。
    7、部分部门采用加班单跟上班间双重确认的方式来认定是否计加班,另外的部分则不写加班单,只按实际打卡时间。
    A:这里要有一个标准或者设定,无论哪种形式的加班肯定是有条件的,比如:下班多久后算加班?可以使用选项进行处理。

    另外原始记录和最终考勤计算结果是要分开的,每个人,每一天都要有一条考勤记录,记录人员的ID,上下班时间及考勤异常等情况。

    -------- 

    班段(确定上下班时间点)
    班次(确定每天上下班时间点,及工作天如何分割)
    排班(确认个人每天上下班时间点)

    请假及出差(影响上下班时间点,假别影响薪资)
    加班(影响上下班时间点,加班类型可能影响薪资)
    异常上下班(时间点修正,也可以通过重建一个班次来实现,但异常是有原因备查的,修改月排班则往往没有原因说明)

    以上可推算出每天每个班段的上下班时间点,通过匹配算法,匹配每天打卡,每次打卡。
    这是固定时间点上下班的算法,是必须支持的。
    另外的浮动时间点上下班的匹配算法则不需要具体的上下班时间点,请假与加班方式影响也不一样。

    迟到早退计法(迟到早退另计还是在班段工时中直接扣,还是每天累加......)、
    加班工时计法(固定班段为加班,还是超8小时为加班,周日工时回补平时上班,跨天加班计法.....)
    旷工计法(打一次卡是否为旷工,还是当天工时为0就旷工?...因为需要做旷工统计及旷工提醒)
    自动补卡规则(出差自动补卡,缺卡批量自动补卡,补卡统计影响薪资)
    周日算法(周日双倍,何为周日,这个有多种解释,需要制定具体规则,然后依规则计算周日)
    国假日算法( 法定国假日不支持跨天,固定为0时交割。)
    夜班津贴计法(也就是分时段计工时)
    ......
    除了这些的算法规则外,还得应付使用上的一些要求:
    自动倒班,依打卡时间定班次,当班查岗支持,班次复制修改,批量作业,入职离职当天特别打卡支持及识别离职时间点。
    检测与处理不合理现象(如:时间冲突(加班与上班冲突,排班冲突.....),请假期间代打卡(可能录入错误的请假时间),跨天加班异常.....)。

    多种多样的考勤规则,业务逻辑复杂。当前实现支持到哪一步,是考勤软件需要考虑的。
    我不建议用SQL语言实现全部考勤计算过程,当支持的规则多了,实测结果SQL实现的计算速度也比不上App计算。

    ------------------------------------------------------------------

  • 相关阅读:
    Linux Virtual Server技术
    log4j+slf4j迁移到log4j2+slf4j (Servlet3.0)
    Android控件ToggleButton的使用方法
    Redis学习手冊(事务)
    游戏server之server优化思路
    Codeforces 474D Flowers (线性dp 找规律)
    【C语言】编写函数实现库函数atof
    unity3D游戏开发实战原创视频讲座系列7之消消乐游戏开发
    [WebGL入门]二十一,从平行光源发出的光
    TwoSum leetcode
  • 原文地址:https://www.cnblogs.com/zouhao/p/6543902.html
Copyright © 2020-2023  润新知