本發(fā)明屬于自動排班技術(shù),尤其涉及一種自動排班系統(tǒng)。
背景技術(shù):
在需要24小時輪換工作的企業(yè),需要進(jìn)行排班,由于參與排班人數(shù)多、排班條件復(fù)雜多變;需綜合統(tǒng)籌考慮一個月中所有值班員的值班情況、工時情況基本一致,以保證排班表的公平性;在進(jìn)行次月排班時還需考慮上月排班各值班員的工時情況,以保證排班表具有連續(xù)的公平性。這樣通過人工的方式排班難度大且效率很低。在排班表確定后,還要統(tǒng)計每個值班員的值班情況、工時情況等各類報表,這也給排班工作帶來了極大的負(fù)擔(dān)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是:提供一種自動排班系統(tǒng),以解決現(xiàn)有技術(shù)中的排班系統(tǒng)由于采用人工方式排班,由于需要考慮的因素眾多,因此排班難度大且效率低下等技術(shù)問題。
本發(fā)明技術(shù)方案:
一種自動排班系統(tǒng),它包括:
排班參數(shù)配置模塊,定義排班參與人員、值班類型、夜班休息天數(shù)和一個月最大夜班數(shù),從數(shù)據(jù)庫中提取上月值班權(quán)值,為本月排班提供初始化功能,與數(shù)據(jù)庫系統(tǒng)連接;
排班規(guī)則配置模塊,通過該模塊新增、啟用、停用、配置及變更排班規(guī)則,并將排班規(guī)則轉(zhuǎn)換為數(shù)據(jù)庫二維表形式進(jìn)行存儲,與數(shù)據(jù)庫系統(tǒng)連接;
人機(jī)互動排班模塊,通過人工參與調(diào)整排班過程,與排班參數(shù)配置模塊和排班規(guī)則配置模塊連接;
自動排班模塊,通過上月值班員的值班累計權(quán)值和本月人工初始化后的值班權(quán)值相加得到本月開始排班的最終初始化權(quán)值,啟動自動排班引擎進(jìn)行排班,輸出排班表,并保存最后的權(quán)值信息、值班表、排班進(jìn)程和排班記錄信息,與數(shù)據(jù)庫系統(tǒng)連接;
工量統(tǒng)計模塊,通過訪問數(shù)據(jù)庫系統(tǒng)得到所有值班員累計的各類值班數(shù)據(jù),在系統(tǒng)自動排班前,計算當(dāng)前所有值班員的權(quán)值數(shù)據(jù)和工量數(shù)據(jù),在排班結(jié)束后計算對應(yīng)的值班報表,與數(shù)據(jù)庫系統(tǒng)連接;
系統(tǒng)訪問接口模塊,提供數(shù)據(jù)訪問和傳輸功能,與數(shù)據(jù)庫系統(tǒng)連接。
所述值班類型包括白班、夜班、行政班、休半天、休一天、整班和休假。
所述人工參與調(diào)整排班過程,其參與方法為:在系統(tǒng)自動排班之前,手工方式自定義節(jié)假日值整班情況、休年假情況,然后再進(jìn)入自動排班過程;在系統(tǒng)自動排班完成之后,通過手動方式調(diào)整排班需求。
所述啟動自動排班引擎進(jìn)行排班,輸出排班表,它包括:
步驟1.1、初始化本月排班權(quán)值生成動態(tài)權(quán)值排序隊列,為自動排班引擎提供所有值班員的值班權(quán)值數(shù)據(jù);初始化本月排班流程生成排班進(jìn)程表,為自動排班引擎提供本月所需排班班次與排班進(jìn)程;裝載排班規(guī)則生成排班規(guī)則過濾棧,為自動排班引擎提供排班規(guī)則校驗(yàn)的功能;
步驟1.2、從排班進(jìn)程表中提取本月排班的第一個排班班次,然后按該班次的值班類型將動態(tài)權(quán)值排序隊列重新按該值班類型升序排序,取隊列中第一個值班員;將該班次與該值班員作為排班規(guī)則校驗(yàn)的輸入條件,判斷該值班員值該班次是否通過排班規(guī)則過濾桟的所有規(guī)則;若未通過,則訪問動態(tài)權(quán)值排序隊列依次取下一個值班員過排班規(guī)則過濾桟,直至找到能值該班次的權(quán)值最低的值班員;當(dāng)通過排班規(guī)則過濾桟的所有規(guī)則后,更新動態(tài)權(quán)值排序隊列該值班員對應(yīng)該值班類型的權(quán)值加一,向值班表中的該班次輸入確定的值班員。這樣排班引擎完成了一個班次的排班;
步驟1.3、依次向排班進(jìn)程表中取下一個排班班次繼續(xù)循環(huán)步驟1.2的操作,直至排班引擎將排班進(jìn)程表中所有的班次排班完成,最后生成值班表。
本發(fā)明有益效果:
根據(jù)預(yù)置的排班參數(shù)與排班規(guī)則進(jìn)行系統(tǒng)全自動排班,并提供了新增、配置和變更排班參數(shù)與排班規(guī)則的功能,增強(qiáng)了排班系統(tǒng)的可擴(kuò)展性與可維護(hù)性;
整個排班過程均加入了人機(jī)互動的機(jī)制,實(shí)現(xiàn)了系統(tǒng)高效全自動排班與特殊定制排班需求的有效結(jié)合,極大增強(qiáng)了排班系統(tǒng)的互動性;
對各類值班類型均有對應(yīng)的值班權(quán)值,參與排班的值班員均有獨(dú)立的值班權(quán)值集合,系統(tǒng)全自動排班時各自計算值班權(quán)值互不干擾,在進(jìn)行本月排班時,會繼承上月排班權(quán)值,充分保證了系統(tǒng)全自動排班的公平合理性,通用性強(qiáng)應(yīng)用范圍廣泛。
本發(fā)明實(shí)現(xiàn)了系統(tǒng)全自動排班,能夠自動求解出最優(yōu)的排班結(jié)果,且求解出的排班結(jié)果具備充分的隨機(jī)性,大大降低了排班復(fù)雜度,提高了排班效率。由系統(tǒng)消息推送完成值班表到it服務(wù)管理系統(tǒng)的自動消息同步,不再由人工將排班系統(tǒng)生成的值班表反錄入到it服務(wù)管理系統(tǒng)中,增加了工作效率,降低了錯誤率。采用webservice技術(shù)增強(qiáng)了異構(gòu)系統(tǒng)的數(shù)據(jù)交互能力;解決了現(xiàn)有技術(shù)中的排班系統(tǒng)由于采用人工方式排班,由于需要考慮的因素眾多,因此排班難度大且效率低下等技術(shù)問題。
附圖說明
圖1為本發(fā)明原理框圖;
圖2為本發(fā)明系統(tǒng)流程圖;
圖3為本發(fā)明自動排班算法原理圖。
具體實(shí)施方式
一種自動排班系統(tǒng),它包括:
排班參數(shù)配置模塊,定義排班參與人員、值班類型、夜班休息天數(shù)和一個月最大夜班數(shù),從數(shù)據(jù)庫中提取上月值班權(quán)值,為本月排班提供初始化功能,與數(shù)據(jù)庫系統(tǒng)連接;
排班規(guī)則配置模塊,通過該模塊新增、啟用、停用、配置及變更排班規(guī)則,并將排班規(guī)則轉(zhuǎn)換為數(shù)據(jù)庫二維表形式進(jìn)行存儲,與數(shù)據(jù)庫系統(tǒng)連接;
人機(jī)互動排班模塊,通過人工參與調(diào)整排班過程,與排班參數(shù)配置模塊和排班規(guī)則配置模塊連接;
自動排班模塊,通過上月值班員的值班累計權(quán)值和本月人工初始化后的值班權(quán)值相加得到本月開始排班的最終初始化權(quán)值,輸出排班表,并保存最后的權(quán)值信息、值班表、排班進(jìn)程和排班記錄信息,與數(shù)據(jù)庫系統(tǒng)連接;
工量統(tǒng)計模塊,通過訪問數(shù)據(jù)庫系統(tǒng)得到所有值班員累計的各類值班數(shù)據(jù),在系統(tǒng)自動排班前,計算當(dāng)前所有值班員的權(quán)值數(shù)據(jù)和工量數(shù)據(jù),在排班結(jié)束后計算對應(yīng)的值班報表,與數(shù)據(jù)庫系統(tǒng)連接;
系統(tǒng)訪問接口模塊,提供數(shù)據(jù)訪問和傳輸功能,與數(shù)據(jù)庫系統(tǒng)連接。
所述值班類型包括白班、夜班、行政班、休半天、休一天、整班和休假。
所述人工參與調(diào)整排班過程,其參與方法為:在系統(tǒng)自動排班之前,手工方式自定義節(jié)假日值整班情況、休年假情況,然后再進(jìn)入自動排班過程;在系統(tǒng)自動排班完成之后,通過手動方式調(diào)整排班需求。
本發(fā)明工作流程原理(見圖2):排班系統(tǒng)啟動時,首先由排班參數(shù)配置模塊從數(shù)據(jù)庫系統(tǒng)中提取排班參數(shù)數(shù)據(jù)、上月排班權(quán)值;排班規(guī)則配置模塊從數(shù)據(jù)庫中提取排班規(guī)則數(shù)據(jù)并抽象為排班規(guī)則模型,為自動排班模塊初始化排班規(guī)則過濾棧。再由人機(jī)互動排班模塊通過班參數(shù)配置模塊和排班規(guī)則配置模塊生成排班參數(shù)信息以及排班規(guī)則模型生成初始化排班圖像界面,通過友好的操作方式為本月排班初始化界面、初始化班次信息以及排班人員信息展示給使用用戶,用戶可以通過此模塊預(yù)置本月班次信息如節(jié)假日排班、人員休假、人員出差等信息。當(dāng)用戶通過人機(jī)互動排班模塊完成本月需預(yù)置的班次信息后,自動排班模塊啟動自動排班引擎開始全自動排班,直至本月排班完成,然后將排班完成對值班表保存到數(shù)據(jù)庫系統(tǒng)。最后由工量統(tǒng)計模塊訪問數(shù)據(jù)庫系統(tǒng)統(tǒng)計各類排班報表、排班權(quán)值等信息;系統(tǒng)訪問接口模塊將系統(tǒng)將訪問數(shù)據(jù)庫系統(tǒng)將排班表通過webservice接口方式將排班數(shù)據(jù)庫推送給it服務(wù)管理系統(tǒng)。(數(shù)據(jù)庫系統(tǒng)保存整個排班數(shù)據(jù)模型)
自動排班引擎工作原理(見圖3),在自動排班引擎工作前,首先初始化本月排班權(quán)值生成動態(tài)權(quán)值排序隊列,為自動排班引擎提供所有值班員的值班權(quán)值數(shù)據(jù);初始化本月排班流程生成排班進(jìn)程表,為自動排班引擎提供本月所需排班班次與排班進(jìn)程;裝載排班規(guī)則生成排班規(guī)則過濾棧,為自動排班引擎提供排班規(guī)則校驗(yàn)的功能。當(dāng)初始化工作完成后,自動排班引擎開始啟動:首先,從排班進(jìn)程表中提取本月排班的第一個排班班次;然后按該班次的值班類型將動態(tài)權(quán)值排序隊列重新按該值班類型升序排序,取隊列中第一個值班員。然后將該班次與該值班員作為排班規(guī)則校驗(yàn)的輸入條件,判斷該值班員值該班次是否通過排班規(guī)則過濾桟的所有規(guī)則;若未通過,則訪問動態(tài)權(quán)值排序隊列依次取下一個值班員過排班規(guī)則過濾桟,直至找到能值該班次的權(quán)值最低的值班員。當(dāng)通過排班規(guī)則過濾桟的所有規(guī)則后,更新動態(tài)權(quán)值排序隊列該值班員對應(yīng)該值班類型的權(quán)值加一,向值班表中的該班次輸入確定的值班員。這樣排班引擎完成了一個班次的排班,依次向排班進(jìn)程表中取下一個排班班次繼續(xù)循環(huán)如上操作,直至排班引擎將排班進(jìn)程表中所有的班次排班完成,最后生成值班表。