考勤排班

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/PPower/article/details/2060004

        班次及排班對於考勤有著重要的意義,是計算考勤的基准。考勤軟件是否好用,排班是否好用就占了很大的比重。

1、群組排班與個人排班的關系。不同的軟件其排班實現不大一樣,一般分為群組排班及個人排班,排班邏輯是個人排班優先於群組排班。對於群組的概念,有些軟件直接用部門替代有些則有專門的考勤班組概念,無論如何做,都是一個員工集合也就是Group這個概念,個人排班作為特殊情況對待。其當天排班過程則是這樣:如果當天有做個人排班,則以個人排班為准,否則以群組排班作為當天班次,如果群組排班也沒排,那麼就依全局設定來處理這個異常,沒排班的可以設定一個默認班次,或者設一個部門默認班次或者直接發出異常,總之在考勤計算前要確認當天所上班次,我是反對智能匹配班次這個概念的,因為考勤是個很嚴肅的話題,就算你做到了99.99%成功匹配,但就是出現一個錯誤,就需要人工來做全部檢查。

2、異動與歷史記錄對排班的影響。一個例子就是:員工2007-3-15從排班組A 調入排班組B,那麼其班次也會跟著改變,計算時得考慮這些因素。類似這樣的例子有:員工部門調動對於統計部門每天人數的影響,薪資異動對於每月薪資計算的影響。

3、數據的來攏去脈能夠展示出來給用戶看,回答為什麼員工當天上的是這個班次,打了這些卡後,為什麼得到如此計算結果。

4、個人月排班查詢:數據來源是群組排班與、個人排班、加班、請假及異動記錄,依據預定的規則計算出員工當天排班然後展示出來給用戶看,"加"表示當天有安排加班,"假"表示當天有請假,"離"表示當天已離職,"未"表示當天尚未入職,並提供快捷的方式查找到相應的記錄,以做到有理可依有據可查。個人排班與群組排班具有類似的界面及批量排班功能,目的是減少排班工作量,讓軟件更人性化一些。

5、 個人考勤明細:考勤計算結果與相關考勤數據展示出來,讓用戶明白刷了什麼卡,得到什麼樣的結果,力求做到數據透明化。解決幾個問題:
1)當天該員工是否應上班?
這由排班系統來排定。
2) 應該什麼時候上下班 ?
這由班次定義指定。
3) 打了什麼卡?
這通過自動采集考勤機數據得到。
4)計算結果是什麼樣的?為什麼是這樣?
將計算結果顯示出來,並支持相應的分組統計。能方便地過濾出每一天的異常人員,並提供方便的途徑回答員工的考勤疑問。

 排班系統與考勤計算的關系

排班系統與考勤計算其實關系不大,也就是考勤計算只需要排班系統告訴員工當天排的是哪個班次就行了,具體如何排班,如何倒班則與考勤計算無關。理解這一點就可以將排班系統與考勤計算獨立開來。排班系統的目標是更好地真實地反映企業中排班的實際情況,企業中排班的主要對象是:1、人。2、班次。3、倒班規則。下面分開來說:

1、人,要解決多人同時排班的問題。最簡單方法是手工進行每人每天的排班,加一個批量處理功能來解決多人同時排班的問題。這裡說另一種方法:將人歸入群組,然後對群組進行每天排班,特殊的人員進行個人每天排班。也就有群組排班與個人排班同時存在,匹配邏輯是個人排班優先於群組排班。同時群組排班及個人排班都應該有批量處理功能。對人分群組進行群組排班的方法比較貼近千人以上的企業的實際情況,能清楚地反映當前群組的班次。其帶來的問題是員工歸屬群組的歷史記錄問題,這個問題要處理。

2、班次,班次的種類及具體班次的定義請看另個的文章,這裡只是提出排班時,要對所排班次的合理性作出檢測並警告,主要是相鄰天的上下班時間交叉問題,特別是1號上夜班,2號上白班這種情況。當班次很多時,一般會對班次進行分類,常有以下分類:1、按部門分。2、按使用性質分:常用班次,臨時班次,一次性班次等。分類後能很容易就能找到相應的班次,不用記住班次的名稱或編號。

3、倒班規則,如果做好了群組排班與個人排班,就算沒做倒班規則,對千人左右的廠也夠用了。但要應付更多的員工時,倒班規則可以幫助HR人員很快地生成當月排班表。常見的倒班規則有:兩班倒,三班倒,倒班時間則有 :按月倒及按周倒,或者自定義倒班日期。倒班規則掛在員工考勤群組中,不同的考勤群組指定不同的倒班規則,這樣就可以快速生成群組排班表。 快速生成一個群組排班表,再由HR人員手工做少少修改或不用修改就可以完成排班,這可以減輕排班難度。

4、員工排班表的生成。排班表決定員工最終排定班次,注意:該表不一定存在於數據庫中,至少在我的設計裡,該表沒有存在於數據庫表中。它是排班系統動態依據“群組排班表”“個人排班表”“個人歷史記錄”計算而得出的。目前我 設計中“倒班規則”則是用來快速生成群組排班表,減輕排班工作量的,與排班表生成邏輯無關。如果要做得更復雜一些,也可以在將“倒班規則”考慮到排班表的生成中去,那樣的排班表生成邏輯就復雜很多了。我認為:將“倒班規則”只用作快速生成群組排班表,不計入排班表生成邏輯中是一個足夠好用的方案,系統不需要再復雜化。

5、關於自動偵測員工當天班次。

          自動偵測員工當天班次,作為一個功能存在,做成“偵測可能的排班錯誤”,並提供對應的可能班次。用以方便檢測排班錯誤。還是不贊成用自動檢測到的班次來替代排班的方案。因為那不能回答:當天員工是否應該出勤?(不用出勤也就沒有曠工缺席了。)

       關於考勤有很多很多的話題與規則,因為其復雜與易變,考勤軟件走的是螺旋上升的發展道路,程序員的每一次努力都讓軟件更強壯易用,所以最好用面向對象的方法來開發考勤軟件。至於數據庫表設計及具體程序對象接口代碼,我沒准備這方面的內容,至於用戶操作界面如何才易用,那又是另一個話題了。思想與解決方案說出,代碼就是次要的了。

考勤班次:http://blog.csdn.net/PPower/archive/2008/02/21/2111975.aspx

考勤排班:http://blog.csdn.net/PPower/archive/2008/01/22/2060004.aspx

考勤規則: http://blog.csdn.net/PPower/archive/2008/02/20/2109073.aspx

相關貼子: http://topic.csdn.net/u/20080108/14/da34d9b5-a362-4d13-91b5-d0870b2581a6.html

展开阅读全文

sql 考勤排班考勤计算问题

04-12

序号 日期 时间 员工编号rn1 2011-3-14 07:51:00 9115rn2 2011-3-14 12:18:34 9115rn3 2011-3-14 12:30:51 9115rn4 2011-3-14 17:46:08 9115rn5 2011-3-14 18:03:14 9115rn6 2011-3-15 00:35:34 9115rn7 2011-3-15 07:05:25 9115rn8 2011-3-15 12:14:56 9115rn9 2011-3-15 12:27:52 9115rn10 2011-3-15 17:48:02 9115rn11 2011-3-15 18:09:58 9115rn12 2011-3-16 00:40:11 9115rn13 2011-3-16 06:57:28 9115rn14 2011-3-16 12:14:02 9115rn15 2011-3-16 12:26:40 9115rn16 2011-3-16 17:50:38 9115rn17 2011-3-16 18:05:38 9115rn18 2011-3-16 23:49:15 9115rn打卡记录数据(1)rn序号 班次编号 班次名称 开始时间 持续时数 班次进入1 班次离开1 跨日 班次进入2 跨日 班次离开2 跨日 班次进入3 跨日 班次离开3 跨日 自由打卡 忽略出入记录 每日时数 班次进入4 跨日 班次离开4 跨日 班次进入5 跨日 班次离开5 跨日 班次进入6 跨日 班次离开6 跨日rn1 1 保安早班 07:00 23 08:00 16:00 否 8 rn2 2 保安中班 15:00 23 16:00 00:00 是 8 rn3 3 保安晚班 23:00 23 00:00 08:00 否 8 rn4 4 休息班次 05:00 23 07:30 12:00 否 √ 8 rn5 5 办公室 06:00 23 08:00 12:00 否 13:30 否 17:30 否 8 rn6 6 B班不加班班次 05:00 23 08:00 12:00 否 13:30 否 17:30 否 8 rn7 7 全厂加班B班00 05:00 23 08:00 12:00 否 13:30 否 17:30 否 18:30 否 21:30 否 8 rn8 8 通宵B班(更新) 18:00 17 21:00 23:00 否 00:00 是 06:00 是 8 rn以上是班次表数据(2)rnrnrn序号 员工编号 员工姓名 日期 星期 班次 出勤分钟 进入1 离开1 进入2 离开2 进入3 离开3 进入4 离开4 进入5 离开5 进入6 离开6 要求打卡次数 实际打卡次数 班次进入1 班次离开1 班次进入2 班次离开2 班次进入3 班次离开3 班次进入4 班次离开4 班次进入5 班次离开5 班次进入6 班次离开6rn10 9115 陈云妹 2011-3-14 星期一 [63]全厂加班B班00 480 07:51:00 12:18:34 12:30:51 17:46:08 18:03:14 00:35:34 6 6 08:00:00 12:00:00 13:30:00 17:30:00 18:30:00 21:30:00 rn11 9115 陈云妹 2011-3-15 星期二 [63]全厂加班B班00 480 07:05:25 12:14:56 12:27:52 17:48:02 18:09:58 00:40:11 6 6 08:00:00 12:00:00 13:30:00 17:30:00 18:30:00 21:30:00 rn12 9115 陈云妹 2011-3-16 星期三 [19]B班不加班班次 480 06:57:28 12:14:02 12:26:40 17:50:38 4 4 08:00:00 12:00:00 13:30:00 17:30:00 rn13 9115 陈云妹 2011-3-17 星期四 [63]全厂加班B班00 480 07:20:23 12:20:50 12:35:27 17:34:10 18:07:42 23:36:50 6 6 08:00:00 12:00:00 13:30:00 17:30:00 18:30:00 21:30:00 rn以上是考勤计算结果. 想根据打卡记表录跟班次表比较得出考勤计算结果.rnrn 论坛

没有更多推荐了,返回首页