记录员工进出

Posted

技术标签:

【中文标题】记录员工进出【英文标题】:Record the entry and exit of employees 【发布时间】:2022-01-10 20:37:06 【问题描述】:

朋友们,我在做人事管理项目,在控制人员进出时遇到了问题。我通过人员ID登记人员的进出,但是不知道应该设计什么机制来登记退出。在 SQL Server 中控制系统的进入和退出。我写的代码是存储员工登录信息。需要注意的是,我使用的模型是repository generic和unit of Work模型。

 private void btnSave_Click(object sender, EventArgs e)
    
        var id = int.Parse(txtIDPersonnel.Text);          

        using (UnitOfWork db = new UnitOfWork())
        
            ArrivalsAndDepartures save = new ArrivalsAndDepartures();
           
            save.IDPersonnel = id;
            save.ArrivalTime = DateTime.Now;
            db.GenericArrivalsAndDepartures.Insert(save);                                                         
            db.Save();              
            
        
    

时间记录的表定义如下:

用户输入其 ID 的屏幕如下所示:

![在此处输入图片描述][1]

【问题讨论】:

您可能希望在“问题”中包含一个问题。考虑使用int.TryParse(而不是int.Parse);打错号码的人几乎不是例外 退出时间是什么意思?你什么时候会有这个值?如果稍后,那么您需要更新记录 我是指员工打算离开的离开时间,并记录她离开的日期和时间 员工打算离开的时间 你需要更准确。谁知道员工何时“打算离开”?您是否正在考虑为每个人分配在计划时间点开始和结束的轮班的工作时间表?似乎您可能需要更多帮助来定义您的需求在开始实施之前 这个程序还有其他部分,这些部分都已经完成了,只剩下登记员工进出的部分,这个有无是用条码阅读器完成的. 【参考方案1】:

在我研究过的每一个系统中,退出时间都是可以为空的(可以留空)。当我们登记到达时,我们将退出时间留空。这可以用于诸如“有多少员工有填写的进入时间和空白的退出时间?”之类的查询,因此这些是现在正在工作的员工。通过记录进入时间,我们还可以减去当前时间,看看他们工作了多少小时。

稍后当员工来并点击“退出”按钮并给出他们的ID时,您可以在表格中搜索该ID的记录,其中设置了进入时间并且退出时间为空;那就是您需要以当前时间作为退出时间更新的记录。然后,您还可以选择检测员工在进入时没有登录并进行更正(也许问他们什么时候到达?),因此您应该始终只拥有一个退出时间为空白的记录。每个员工有多个空白退出时间也是您可以检测到的错误/当他们下次登录时,您可以检查他们是否仍有未结记录,因为他们上次忘记退出

在一周/月结束时,登录/退出时间可用于计算在场时间和潜在的欠薪。将“更正登录和退出”时间设置为仅限主管可能很重要,以防止员工注册不正确的信息

【讨论】:

你能给我这个代码的示例吗? 我担心 *** 不是免费的编码服务,并且在某种程度上它甚至会推动它寻求设计建议,因为我们无法为您设计您的系统.我故意不断地谈论我在我从事的大多数访问控制系统的结构方面所经历的事情;设计和实现由您决定,但我们可以帮助您解决您在代码中遇到的任何具体问题。查看您拥有的代码,如何根据 ID 加上空退出时间定位用户记录,如何更新退出时间然后保存 我的平板电脑的钥匙是别的东西,我通过人员ID来来去去。如何找到可用于记录出发时间的两者之间的关系? 编辑问题,告诉我们更多关于数据库设计的信息 你看到我问的照片了吗??

以上是关于记录员工进出的主要内容,如果未能解决你的问题,请参考以下文章

[sql问题]查找出员工工资表中薪水第3高的员工记录。

接受用户的员工编号 从“员工”表中获取员工详细信息并将其存储到 PL SQL 记录类型变量并打印相同

为每个员工选择一天中最早时间戳的完整记录[重复]

蓝桥杯 考勤打卡

oracle中plsql练习题----查询姓为“SMITH”的员工信息,并输出其员工号姓名工资部门号。 – –如果该员工不存在,则插入一条新记录,员工号为2012,员工姓名为“Smith”,工(代码

如果基于开始日期的行之间没有更改,则合并员工历史记录