我正在开发一个员工管理系统,员工可以
现在我要在这些报告中介绍一个处理公众假期和雇员缺勤的方法。我在网上读了几篇文章,比如
但我什么也想不出来。我的问题基本上是。
>
处理员工缺勤的最佳方法是什么?考虑到在该特定的一天,员工将不会办理入住手续。
如何在报表中增加/指定周末/公休日?因为日后更改公众假期/常规假期可能会影响我们过去数月的报告。
我真的很感谢你的帮助!谢谢
很少有数据库(如果有的话)将日期范围作为一种数据类型来处理,尽管有计算日期范围交点的方法,但这些方法代价高昂,并且会导致对任何大型数据集进行爬网。因此,您需要用计算速度来换取数据存储
因此,最好的检查方法是有一个存储日期的表,然后使用该表中的日期将您的日期范围扩大到该范围内的所有日期,结构很简单,只有一列日期在其中
我不建议使用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
因此,如果员工缺勤-在特定日期不会有行。