看过不少考勤系统,发现都有很多用户手动的地方,并没有实现真正的自动化...
是不是因为工厂的上下充满太多变数?就没有一个更完美的解决方案了吗?
通常工厂的上下班都是有一定规律的,不管怎么变,都是上下班...
早班
08:00-12:00
14:00-18:00
晚班
20:00-08:00
等等....
是不是因为工厂的上下充满太多变数?就没有一个更完美的解决方案了吗?
通常工厂的上下班都是有一定规律的,不管怎么变,都是上下班...
早班
08:00-12:00
14:00-18:00
晚班
20:00-08:00
等等....
都要用户去手动排班
今天一个客户过来说他们的考勤情况:
一天24小时都有人上班,每个人上班都不是确定,也许这边,也许是那班,并且不可预见,
如果每次都要调整班次的话,那做人事的小姐都不知道要招多少个呢...
我的意思是说可不可以不用排班,直接根据实际打卡来判断打卡是属于哪个班次的呢?
---
楼上的大侠,可不可以加我的msn啊...我正有这方面的问题想请教呢...
MSN: [email protected]
我的回复,尽可能为你分忧解难
BLOG:blog.csdn.net/softj --欢迎光临,有更多信息等着你!
QQ高级群:5063844专研数据库 --大家进来聊一聊!
MSN:[email protected] --这不常用!
Mail:[email protected] --有什么问题可以和我来EMAIL!
=========================================================
--------------------------------------------
非也,我见过一个考勤系统,所有的计算项全部直接用SQL语句来完成,
只是用户给出需求,照着填SQL语句,调试好后几乎零维护,要改也只是改改软件
设置项中的SQL语句,超灵活,可以应付几乎所有的情况(在不修改软件的情况下)
,可惜人家当时说我的SQL水平太烂,于了不久就出来啦
----
ReViSion(和尚) :
如果有什么好方案可否请教一二?讨论一下嘛...谢谢啦...
--------------------------------------------------------------------------
算法包括怎么计算正常的出勤,和对异常的处理,
排班时,排不同的班时,就对应了不同的算法以一个班次为例A:
在班次中可以定义刷卡时间段,在时间段内的刷卡才有效,定义迟到早退的时间,定义
怎么样才算是异常,比如说迟到30分钟算异常,
还要定义如何算加班,迟到,早退,,现在给员工排定一天的班,A(上午)B(下午)
那么上午上班时间段的算法就是上面设定的算法,
不要把AB做为一个整体去处理,分而治之
一个月的考勤,
0.1秒钟搞定.
用VB+MSSQL
我已加了...
大家可以讨论一下,这考勤为什么不可以做得更加通用一些....
当然不可能是绝对通用的...不然微软的东西也不会给大家说了...
公司130人,
一个月的考勤,
0.1秒钟搞定.
------------------------------
打卡记录Sum()一下也不止0.1秒呀,
楼主高人
上班的工作日历与一个排班表,
规则定一个上班与下班点的上界
如:8:30上班,则8:00--8:30打卡有效,只允许一次
8:31-9:00打卡算迟到,当然迟到也有几个等级
超过都算无效<旷工>,
如果有请假,外出,则应的天数则需手动补漏刷卡的吧,
下面的继续
本人毕业后第一份工作就有搞考勤的尝试,时间是工作(VB+SQL 开发MRP)半年后开始,
当时只有我一人做这个工作,上头给4个星期时间完成整个人事考勤工资。天啊,那段日子
真难过!当时断断续续(还要参加其他模块开发)搞了半年,哈哈,惭愧ing...
============================================================================
如果是一班制(每天上班时间一样)比较好办,
1:规定每次打卡的正准时间(例如:上午8:00、中午12:00、
下午14:00、下午18:00);2:规定打卡时间范围(例如:7:30--8:30、12:00-12:30、
13:30--14:30、18:00--18:30,也可以定义为正准时间的前后30分钟);3:可以再定义打卡宽松时间(例如:迟到2分钟不算迟到),这比较适合迟到早退
按“次”计算的情况;4:我把打卡状态分为:“正常”、“迟到”、“早退”、“补卡”、“未打卡”;5:规定节假日、班次(就算只有一班),目的是指明某一天某一个时间段该有哪些员工
打卡;6:如果有加班情况,可以在之前或之后规定某段时间为加班时间,当然也要规定有什么
员工在这次加班范围中;7:不在打卡时间范围内打卡,则当作没有打卡。这种情况的处理办法如下:
A:补卡:考勤器坏了、停电、忘记打卡、意外等等,由操作员进行
补卡处理。我的做法是直接向考勤表插入一条打卡记录。
B:旷工:没有打卡又没有补卡。这里还需作一些处理,例如上班时打卡了,但下班
没打卡,或者反过来,或者都没有打卡;
C:请假、休假、临时调班:本来就不用打卡,除非加班;8:多次打卡:我用的是宽松方式,即只要有一次正常就算几次迟到都当作正常(例如:
打了三次:7:50、8:10、8:12);如果几次都迟到就以迟到最少的为准;早退情况类似;要注意的是,“打卡”是一个时刻概念,上班、旷工、
请假、休假都是时间段概念,例如员工请假,时间是9:00到15:00,或者跨天请假,请假
中又包含节假日......
=============================================================================
如果是多班制(每天上班时间可能不一样)
除上述几点外,还需设定某人某天某时段该上那个班次。比如先设定好下个月的班次安排,
遇到特殊情况再作调动。
=============================================================================
考勤表中做触发器,每次打卡都进行计算,实时显示出打卡状态,既提醒打卡人又可提醒
管理人;每天下班或某一个时间重新当天或前一天的打卡情况,这样就可以处理没有打卡、
请假、旷工、休假等情况,最后把结果保存下来。最好不要等月末再计算,当然有月末重
算功能会更好。考勤与工资是相结合的,能把考勤情况直接融合到工资的计算公式中是最好的,这个我不
再细说了。
=============================================================================以上只是我的个人的一点浅见,希望对楼主有帮助 ^-^
我的MSN: [email protected]
你的MSN加不了啊!我也是做考勤的,感觉一般都好处理,但是维护量太大!一直想弄成通用的,但是没有成功!(有其他事,也没花太多时间)
有兴趣的可以加我:MSN:[email protected]
大家一起探讨一下啊:)
采用自动找班的理论,从目前的使用情况下,能做到99%的判断正确,
哪怕有请假,出差,刷卡不正常的情况下,都能精确地报告异常。
自动找班的理论:
1、先建班次。
2、对班次分组, 形成考勤方案,这是最核心的。组内按优先级处理,自动找班算法采用最优算
法。
例如某考勤方案规律如下:
方案名称 班次分组 优先级 班次 周期
注晚班 A01 001 00:00白转夜 1
A01 002 18:00白转夜 1
A01 003 21:00白转夜 1
A02 001 18:00晚班 30
A02 002 21:00晚班 30
以上班次可以实现1号一天凡该考勤方案的员工可以任一上三个班次,其后可以上后面任意两个班次
如果是没有一点规律的可以把班次分组改成相同 结果如下
注塑班 A01 001 00:00白转夜 1
A01 002 18:00白转夜 1
A01 003 21:00白转夜 1
A01 004 18:00晚班 1
A01 005 21:00晚班 1
算法一定要采用最优算法, 才能有效地提高精确率, 出差、请假可以采用系统伪补卡处理,用临时表处理3、考勤方案分配,可以针对部门、职位、员工进行分配 这样可以做到不需要每个人都分配。综上所述,考勤可以做到“一次维护,终生使用”,除非作休时间有大的改动。考勤处理是个非常复杂的事件,
需要千锤百炼才能达到炉火纯青。听供应商说这个考勤结合门禁、消费系统用存储过程用了三千多行。
考勤表结构使用as to结构才会更灵活, 反应基本事实。
一般考勤系统考勤一个员工每天考勤一条记录的话,这样的表结构不灵活,
不能支持一天多种类型请假,不能支持小、大夜班同时存在的情况等。更不能详细的反应考勤结果,字段如下:
员工ID int
部门ID int
考勤日期 DateTime
考勤类型 int
考勤子类型 int
开始时间 DateTime
始束时间 DateTime
工时 numeric(8,4)
工日 numeric(10,8)字段说明:
考勤情况 考勤子类型
1 休息 1平时休息/2周休日/3法定休息
2 出勤 班次ID
3 请假 请假类型(事假、病假等)
4 加班 1平时加班/2周休日加班/2法定加班/4..用户自定义.
5 缺勤 0
7 出差 0
8 迟到 0
9 早退 0
10 夜班次数 用户自定义(1小夜班, 2大夜班)
0 异常 异常信息代码(系统自定, 1 缺少上班卡、2、缺少下班卡等)工日 为了记录历史信息, 当员工有调动时,不同的方案有不同的工作时间。
例:生产班、办公室班每天8小时, 但保安每天12小时,这样关联到很多问题,
例如保安请假4小时,不是半天,而是1/3天。如果从15号保安班调到生产班,
那么15号之前的请假4个小时与生产班的请假4个小时的天数是不一样的,
不得统一处理半天肯定会给薪资计算带来误差,一个员一天的考勤结果例如
08:00 – 08:01 迟到
08:01 – 10:00 出勤
10:00 – 11:30 事假
11:55 – 12:00 早退
13:00 – 13:02 迟到
13:10 – 13:30 休假
13:30 – 15:30 出差
15:30 – 17:30 缺勤
18:00 – 01:00 加班
23:00 - 01:00 夜班
薪资系统,不仅仅要是与考勤系统,生产/计件系统、进销系统等,更有甚者需要访问其它服务器、不同类型的数据库。
加上复杂条件判断,这样使薪资系统变得比考勤系统还要复杂。公式一定要做具体类似编译器的功能。
可不可以下载到的?
可以联系吗?我的msn: [email protected]
谢谢!
以前我们公司的考勤所有要求出来的项目的计算方法(迟到,早退)都是自定义的
,而且可以自由的添加删除各个计算项目,
------------------------------------------------------------------
所有的计算项目只是用SQL语句在程序中填充就可以,程序几乎0维护,对不同的客户
,仅仅是做些不同的报表而已,
------------------------------------------------------------------
怎么样,羡慕吧
真有那么全面的考勤吗?
不知道客户使用得怎样呢?
tsp3ng(): 我加你了...---------大家可以将自己的经验介绍一下吗?谢谢了...
你搜索一下
--------------------------------------------------------------------
只是针对不同的客户需求写几个SQL语句,如果全部做成客户都能操作的,那么
我可以说,考勤一定不通用,据我所知道的资料,在珠江三角没有哪一家可以做到
十分的通用又客户操作十分简单的考勤系统,以前富士康招标我注意到没有真正哪
一家可以做到两者兼得,
我记得我以前跟的一个客户的计算年假项目:写个有个七八百行SQL语句才搞定,
我就不想信你用几个简单的公式可以搞定
可以建一个变量表来维护变量与内部SQL的对应关系,在计算时找到变量对应的SQL传递几个参数就可以计算出来,返回一个值,然后用值代替公式中的变量即可,形成一个表达式交给SQL计算就能得到整个公式的结果。
变量ID 变量类型 变量名称 计算体 数据类型公式如下
应发工资 = [當前員工科目_基本工資] +[當前員工科目_加班工資] +[當前員工科目_崗位津貼] +[當前員工科目_技術加級] +[當前員工科目_出勤獎] +[當前員工科目_住房補貼] +[當前員工科目_工傷保險] +[當前員工科目_補上月_上月]当计算时,只能根据变量名称找到相应的SQL执行即可。
结论:因为没有什么计算规则SQL语句不能表达,等于没有算不出来的工资。
正如《和尚》所说的
------------------------------------------------------------------
所有的计算项目只是用SQL语句在程序中填充就可以,程序几乎0维护,对不同的客户
,仅仅是做些不同的报表而已,
------------------------------------------------------------------
目前我们使用指纹考勤机的技术规格是
考勤速度<=2秒
误判率<=0.0001%
拒登率<=1%有可能100个人里可能有一个人不能识别.
不过应该可以杜绝代打卡了吧.
utmost100(斌)
加我msn吧,交流一下,不知道可不可以,我的MSN是:[email protected]
有固定班次的比较好做.不管是缺打.多打都么有问题 , 加班直落也没有什么问题\,
自动判定班次就比较复杂了 , (当然也有比较准确的软件 ,我朋友的一个貌似比较正确.但是我不知道他的算法 ,当然我分析过他的软件也是有局限性的)还有一个最复杂的情况就是 一天上十二个小时的班.,然后自动排班.根据数据来分析, 这个情况估计是做不出来 .反正我是想不出来算法
不做考勤已经快一年了 ,但是原来想的比较多,大家 如果有兴趣,可以聊聊~~ [email protected]
==========================================
我们的目标是让 我们的项目实施者 尽量少改动程序,数据库.存储过程 ,就能够完成每一个单位的考勤项目
==========================================
为每一家定制 .不是我的目标