提问者:小点点

在员工管理系统中实现休假


我正在开发一个员工管理系统,员工可以

  • 上班/下班(标记每日出勤)
  • 请病假
  • 生成报告,即每日签入/签出时间、总工时等。

现在我要在这些报告中介绍一个处理公众假期和雇员缺勤的方法。我在网上读了几篇文章,比如

  • https://softwareengineering.stackexchange.com/questions/262272/Integrating-Holidaysand-Accountability-in-HR-Management-System

但我什么也想不出来。我的问题基本上是。

>

  • 处理员工缺勤的最佳方法是什么?考虑到在该特定的一天,员工将不会办理入住手续。

    如何在报表中增加/指定周末/公休日?因为日后更改公众假期/常规假期可能会影响我们过去数月的报告。

    我真的很感谢你的帮助!谢谢


  • 共2个答案

    匿名用户

    很少有数据库(如果有的话)将日期范围作为一种数据类型来处理,尽管有计算日期范围交点的方法,但这些方法代价高昂,并且会导致对任何大型数据集进行爬网。因此,您需要用计算速度来换取数据存储

    因此,最好的检查方法是有一个存储日期的表,然后使用该表中的日期将您的日期范围扩大到该范围内的所有日期,结构很简单,只有一列日期在其中

    我不建议使用date表来跟踪假日,而只是将这些作为“public holiday”类型的缺勤包含在datetable中,您可能希望在datetable中标记周末(或星期几),但不要用它来表示某人当天是否工作,而是使用workingPattern表来表示factory worker类型的雇员星期一工作4小时,星期二工作6小时。这将给你一个雇员预期的工作时间和他们在一周内的工作天数,而不是强迫每一个雇员遵循相同的工作模式

    例如

    select d.Date, a.*
    from absence as a
    join dates as d on d.Date between a.StartDate and a.EndDate
    

    这将给你每个约会的人缺席,让你很容易比较不同的缺席时间在一起

    大多数雇佣系统很少允许员工提前一年以上工作,因此我建议每月运行一个作业,并使用(今天+12个月)(今天+13个月)之间的所有日期填充日期表。您还可以删除旧日期,但在这样做之前,请确保不存在需要查询数据的情况。在你离开的最小日期之前的一切都已归档。

    接下来要记住的是人的因素,人们会忘记上班或下班,所以你需要记住这一点,并有一个每天的工作,寻找时钟输入与匹配的时钟输出或签证反之亦然,然后你可以标志这些人为校正或处理他们自动

    对这两个元素进行排序后,您就可以计算每个人每天的工作时数,将其交叉连接到“每日缺勤”视图中,这将允许您检查是否存在不一致,如日期表中的日期没有计时,或者缺勤(未经授权的缺勤)可以通过适当的条目在缺勤表中更正,或者冲突,如某人在本应休假的时候上班,您还可以标记人为更正或自动处理,例如,如果有计时,则忽略缺勤

    实际构建系统的方式取决于系统需要什么,但如果不考虑这些因素,系统就会被扼杀

    匿名用户

    我本来是写评论的,但写得太远了,我考虑写一个答案。

    如何在报表中增加/指定周末/公休日?

    您可以使用一个表(就像这个问题)来存储给定年份的所有日子,标志是一天工作或不工作。我们在我们的环境中使用类似的东西。每年手动灌装一次。

    处理员工缺勤的最佳方法是什么?

    我打赌会有这样的表格:

    EmployeeID  InOut   Date                
    1           In      2016-07-24 07:00:01.000
    1           Out     2016-07-24 18:00:09.908
    etc
    

    因此,如果员工缺勤-在特定日期不会有行。