急求考勤中的加班模块解决方案

xhai 2003-08-27 10:11:08
关于加班考勤记录的解决方案:
如果临时决定需要加班的,不必对当天方案进行修改,只需要照常登记。并且记录登记时间。对于此种方式的考勤记录,应该在月底进行考勤结果统计时,查询“额外加班表”中是否有本月的”额外加班记录”,若有”额外加班记录”则弹出提示框提醒统计人员进行统计, 否则直接进行统计。加班时间的安排可以在事后设置,也可以提前设置。
1)在此前现有的数据库中增加两个数据表: 额外加班记录登记表(T_TimeOverTime)和 额外加班方案明细表(T_TimeOverTimeDetail).具体如下:

额外加班表(T_TimeOverTime)
字段名 字段类型与长度 说明
IAttend#* tinyint(1) !null 编号
IIdx# tinyint(1) 时间段序号(外键,T_TimeOverTimeDetail)
dDateTime Datetime 加班日期
dBeginTime datetime 上班时间
dEndTime datetime 下班时间
iLMinutes Int 迟到分钟数
iEMinutes Int 早退分钟数
fHourValue float !null 合计时数
iLogIn int 标志是否已经统计过(1:已经统计,0:还未统计)

额外加班方案明细表(T_TimeOverTimeDetail)
IIdx#* tinyint(1) !null 时间段序号
iDept# int 部门编号(外键)
sStaffer# varchar(10) 职员编号(外键)
sWorkPiece varchar(20) !null 工作时段名称
dBeginTime datetime !null 上班时间
dEndTime datetime !null 下班时间
2)在额外加班方案明细表中设置加班的基本情况,(可以在加班之前进行设置,也可以在加班之后追加设置),其中可以分别按全部,部门及个人三种情况设置加班计划.
3)登记加班记录时,先进行判断额外加班方案明细表中是否已经对本此加班计划进行了设置,若是则在登记加班记录时就可以判断是否迟到,早退情况,并登记在档.否则在每次统计时则进行判断迟到,早退情况.
4)在判断上下班的情况方面,每次登记记录时先检索是这记录的”下班时间”字段是否为空,若不为空,则为上班时间,增加一新记录并且设下班时间为空;否则为下班时间,在原记录的”下班时间”字段追加此时间.
5)每次统计上班记录时,应判断”额外加班记录表”中的”统计标志(iLogIn)”,若全为1表示已经统计过加班记录.若有为0的标志存在,则应对这此标志为0的记录进行统计,并且加到统计表(T_TimeMonthlyTotal)中的此职员的”加班”字段.

提出问题:如果是事先不对加班时间进行安排先加班,到月底进行统计时再补充当时的应加班时间,怎么样才能不让读条形码时不出错.
例:张三上午加班时只读了"上班时间",而下班时忘记打卡.下午加班上班时就可能记录成上午的下班时间.如何才能不让下午的这次上班时间不出现在上午的下班时间中?

...全文
170 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
XACZ 2003-09-07
  • 打赏
  • 举报
回复
我所讲的办法就是鸵鸟政策,指导思想是"秋后算帐",就是说不管你是有排班的打卡,临时打卡,还是非法的打卡,系统都一一记录.
问题的本质是要按有效打卡记录来计算考勤以及工资等等,不要把焦点放在系统怎样规范人的行为上,要放怎样解决问题的本质上.
大不了我在最终计算考勤时审核一次数据,不管是人工还是系统自动审核,都将把非法的,不符合企业规则的数据排除在外,这样你就可以得到正确的结果了
tjWeili 2003-09-03
  • 打赏
  • 举报
回复
至于每次考勤多刷卡的问题,任何一个公司考勤时间都会有一个范围的,例如早晨9:00上班,那么一般会规定在8:45~9:15之间考勤有效,其它时间被旷工处理。如果一个公司没有这个规定,那么说明他们公司本身就是要求的不严格,他们的管理存在一定的问题,要求他们修改考勤制度,如果人家不肯改,那我同情你,你惨了,你得写一大堆垃圾来实现这个功能。
tjWeili 2003-09-03
  • 打赏
  • 举报
回复
算了,既然说了,就说清楚一些吧。
首先这个考勤是有排班的还是无排班的?
如果是有排班的,这个问题就很简单。提前能够预知的加班,直接排到加班里就可以了;如果是提前无法预知的加班,那么在加班后必须做一次加班登记,如果不然,软件是不可能知道,你多打的这次卡是什么意思,是乱刷的呢,还是真的加班;实际上这里面包含了一个制度问题,这个考勤制度是否是:只要你在非正常上班时间打卡了就算你加班呢?还是说一个人的加班必须经过上级领导的审核呢,如果是前一种,你把在非正常考勤时间的刷卡记录取出来直接作为加班即可,如果是后一种,则需要进行合法性登记。
tjWeili 2003-09-03
  • 打赏
  • 举报
回复
我是专门做考勤软件的,你的问题不是一个加班那么简单,如楼上几位所说,这里有制度问题,必须把软件和制度结合起来才能解决这个问题。
ergougou 2003-09-01
  • 打赏
  • 举报
回复
企业软件总是有些问题是不可能解决的,
你要想解决什么问题,你自己首先得想清楚,
电脑才可能会作对的.
xhfjy 2003-09-01
  • 打赏
  • 举报
回复
在做这种系统时,应该规定在多少时间内重复刷卡是无效的,可去了你所说的重复刷卡得,而对缺刷卡记录的,可在事后手工调整,这可以由使用者从公司管理上加以限定
XACZ 2003-08-30
  • 打赏
  • 举报
回复
只靠技术是不能解决员工打不打卡,登不登记加班的问题的,就好象:国家不允许你犯罪,但总还是有人犯罪。你只能从企业的政策管理上给予强调,另外出现有一次下班记录没有记录时,你可以在考核开始前检查一次数据,如果检查有错的话要求补录数据就行了。
xhai 2003-08-29
  • 打赏
  • 举报
回复
to:XACZ(带头大哥)
首先谢谢你的方法,只是我认为还是没能解决这个问题,
你解决的问题好像是如何在月未统计时的问题,
而我的问题是在记录加班时间时,如果有一次下班记录没有记录.哪他后面的记录不就要全部乱了,到月未统计时不就更乱了.
XACZ 2003-08-29
  • 打赏
  • 举报
回复
加班方案是不必要的,否则用户每次录入突然加班的记录前或后都要设置方案,导致上面的问题,而只要记录类似加班日志就可以解决,如下:
加班记录表:不管是正常加班,还是突然加班都写到该表。
字段名
ID 加班编号(PK)
dDate 加班日期
sStaffer 员工编号(FK)
dBeginTime 加班的上班时间
dEndTime 加班的下班时间

加班考勤参数表(仅仅在考勤开始时设)
ID 参数编号(PK)
sStaffer 员工编号(FK)
dBeginTime 上班时间
dEndTime 下班时间
SBegdate 考勤开始日期
SEnddate 考勤结束日期

月末考勤前先设置(加班考勤参数表),然后找出(加班记录中某员工加班日期)在(加班考勤参数表考勤范围内的记录,对比(加班记录中该员工上下班时间)和(加班考勤参数表上下班时间)就可以得到该员工的迟到,早退的值。
如此一来不仅加班时不用设方案,而且月末也可以得到想得到的值。


WaterUsage 2003-08-28
  • 打赏
  • 举报
回复
我做过这个,单靠技术无法解决这种例外情况。
还有一种麻烦的情况:一个人不小心连续打两次卡,算上班还是下班?

如果哪位找到好的办法,记得分享一下 ^_^
xhai 2003-08-28
  • 打赏
  • 举报
回复
此系统中,已经对正常的上下班(包括晚上加班时间)做了处理.也可以设计上班方案.
只是在面临的突然加班,有时可以在这些突然加班前进行加班设置,这没问题.
可是要是在加班以后才进行设置,哪怎样处理?
XACZ 2003-08-28
  • 打赏
  • 举报
回复
就是有点太长了,你可一先简要说一下考勤的流程,然后大家帮你出方案。
加班方案每个人都不同吗?我想你是不是搞的复杂了?
时间段序号是不应该加入的外健,比如:如果一个人上半个月的加班方案是17:00--20:00
下半个月方案改变成:0:00--3:00,那么整个月的考勤怎么算呢?本月加班的总时间按17:00开始还是按0:00开始来计算?
我觉的额外加班表应该记录谁,在哪一天,什么时候开始加班,加到什么时候就够了,在月底生成报表的时候自动计算每个人的加班时间写到报表里去,当然你也可以按预定义的加班工资方案计算加班工资。
以上纯属个人意见,大家来砸
愉快的登山者 2003-08-28
  • 打赏
  • 举报
回复
分两个打卡器:上班打卡器和下班打卡器,分设在上班通道和下班通道上。
关于加班处理:应该先将加班的处理业务流程搞清,然后设计数据库,在进行逻辑编程。
klbt 2003-08-27
  • 打赏
  • 举报
回复
问题好长,先顶一下。

1,265

社区成员

发帖
与我相关
我的任务
社区描述
软件工程/管理 管理版
社区管理员
  • 研发管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧