孫道兵,田蘇梅,施元超,劉曉光
(上海航天控制技術研究所,上海 201109)
上海某院某研究所是擁有兩千多名員工的航天大所,員工組成成分復雜,人力資源管理業(yè)務多樣,涉及面廣,人員及其崗位、職位變化頻繁,業(yè)務邏輯復雜,業(yè)務數(shù)據(jù)種類繁多,業(yè)務人員日常需要花費大量的時間和精力來處理各種紛繁復雜的業(yè)務過程和數(shù)據(jù).而且單位內并沒有一個系統(tǒng)能夠完整實現(xiàn)人力資源管理相關業(yè)務管理的信息化,當前手工業(yè)務管理模式效率低下,容易出錯,不利于大量歷史數(shù)據(jù)的統(tǒng)計匯總分析,不便于為領導層提供好的決策依據(jù).同時,盡管市場上成熟的人力資源管理系統(tǒng)數(shù)量比較多,但是與本單位管理需求差異較大,不能很好的適應本單位人員管理的特殊性.
基于此,集合人力資源部、信息技術部門的管理和技術力量,自主構建管理系統(tǒng)開發(fā)平臺,該平臺支持可持續(xù)開發(fā),系統(tǒng)具有良好的伸縮性、可擴展性、可移植性.并基于此平臺實現(xiàn)人力資源管理業(yè)務,提高工作效率,提升人力資源管理業(yè)務水平,為高層決策提供高質量的人力資源數(shù)據(jù).
基于當前業(yè)界先進的Spring+SpringMVC+Hibernate開源技術自主構建JavaEE 開發(fā)平臺.
系統(tǒng)開發(fā)平臺支持可持續(xù)開發(fā),系統(tǒng)具有良好的伸縮性、可擴展性、可移植性.
平臺采用B/S 多層架構,提供良好的用戶體驗,集成Activiti5 流程引擎,支撐企業(yè)信息管理的業(yè)務流程,同時基于Apache CXF 服務框架構建服務模塊,滿足系統(tǒng)集成要求及面向未來的服務架構.
運用Spring、SpringMVC、Hibernate 框架建立了平臺基礎,并在其中集成了Activiti5 流程引擎,Apache CXF 服務基礎框架、spring-quartz 定時任務調度.技術框架如圖1所示.
圖1 系統(tǒng)平臺技術架構
基于JQuery EasyUI 前端框架技術實現(xiàn)前端展示,面向HTML5 技術,兼容主流瀏覽器.
基于Servlet3 規(guī)范的模塊化設計,應用RESTful結構,統(tǒng)一接口規(guī)則.
創(chuàng)建基于Web的遠程部署、管理控制臺使開發(fā)人員、系統(tǒng)管理員與生產(chǎn)環(huán)境完全隔離,結合數(shù)據(jù)加密技術,既保證了敏感數(shù)據(jù)安全,又提高了部署、管理效率.
數(shù)據(jù)庫管理系統(tǒng)采用Oracle 11g R2 以上版本.
2.3.1 多元主體權限管理模型
創(chuàng)新設計了多元主體權限管理模型,結合Spring攔截器技術設計了系統(tǒng)平臺的訪問控制與權限管理系統(tǒng)內核.這個授權系統(tǒng)解決了傳統(tǒng)系統(tǒng)僅可進行單一用戶授權的問題,可從用戶、組織機構、崗位、黨政職務、型號職務等多維度授權.登錄認證通過后,查詢該用戶的授權信息,即角色、菜單功能、許可操作集合.
圖2中的“角色對象”它負責建立主體與角色之間關系,這個關系有3 個要素:角色、主體對象、對象類別.要素“角色”是系統(tǒng)中角色實例;要素“主體對象”是主體的實例,是向某角色中分配的對象;要素“對象類別”描述主體對象的分類,在關系中用來識別主體對象,從而我們可以采用相應的算法取得主體關聯(lián)的用戶集合.
圖2 多元主體權限管理模型示意圖
(1)實體對象及關系設計
權限管理涉及到眾多實體,有兩個主要的實體關聯(lián):
① 通過“角色對象關聯(lián)表”建立角色與主體對象的關系;
② 通過“角色功能樹關聯(lián)表”建立角色與權限的關系.
實體關系圖如圖3所示.
實體表有:系統(tǒng)用戶表、組織機構、職務信息、崗位信息、用戶組對象.
員工與用戶是一對一關系;
員工與組織機構是多對多關系,即一個組織機構可有多個員工,員工可在多個組織機構任職;
員工與崗位是多對多關系,即一個崗位可有多個員工,員工可在多個崗位上擔任某個職務;
臨時項目組或特殊的人員組合,設為用戶組,與用戶是多對多關系.
角色對象關聯(lián)表是“角色對象”的關系數(shù)據(jù)庫二維表具體形式,它關聯(lián)角色表及各主體實體表.
圖3 多元主體權限管理實體關系圖
例如:“中層干部”角色中分配了“部長”、“副部長”、“主任”、“副主任”這幾個對象,人力資源的員工崗位職務信息中員工A、員工B 及員工C 通過職務關聯(lián)被間接“分配”至“中層干部”角色,通過系統(tǒng)用戶表得到用戶A、用戶B 及用戶C,當給角色“中層干部”授予某種權限時,即實現(xiàn)對應給用戶A、用戶B 及用戶C 授予了相應權限.同樣“用戶及終端管理”角色中分配了“信息中心”這個“組織機構”,示例的數(shù)據(jù)表明用戶X,用戶Y 實際分配于這一角色,當管理員給“信息中心”這個角色授予某種權限時即實現(xiàn)了給用戶X,用戶Y 授權.
(2)權限驗證
通過Spring 框架攔截器(interceptor)機制實現(xiàn)所有訪問URL的權限驗證處理.用戶登錄后會話對象中保存的“用戶角色、菜單功能、許可操作集合”授權信息作為本處理的輸入.權限控制活動如圖4所示.
① 獲取登錄用戶所關聯(lián)的角色,包括:用戶對象分配的角色+用戶關聯(lián)的組織崗位分配的角色+用戶所在組織機構及其所有上級組織機構分配的角色.
② 從角色功能關聯(lián)表查詢用戶、用戶組織機構、用戶所在崗位關聯(lián)的角色、這些角色所關聯(lián)的功能及其操作集合.
③ 將用戶角色、菜單功能、許可操作集合保持在用戶會話對象中,用于驗證用戶訪問操作URL的合法性、限制訪問資源的范圍.
圖4 權限控制活動圖
2.3.2 代碼及報表自動生成
在平臺效率方面,該平臺創(chuàng)新設計了基于數(shù)據(jù)物理模型的實體代碼生成工具.基于元數(shù)據(jù)的代碼自動生成功能,避免重復的機械的工作,按照統(tǒng)一的規(guī)范生成實體類,并具有自動化在線表單頁面設計、自動化報表設計功能.
(1)自動生成代碼
連接到數(shù)據(jù)源,自動獲取到全部數(shù)據(jù)表,選擇數(shù)據(jù)表,創(chuàng)建模型.
通過freemarker 模板自動生成代碼.自動生成的代碼包括:列表界面、新增界面、查看界面、審核界面、controller 控制器、service 接口及service 實現(xiàn)代碼、實體類.目前平臺設置的模板列表如圖5所示.
圖5 模板列表
(2)自動化報表設計
編寫SQL 語句后,自動解析出數(shù)據(jù)列,然后對每個數(shù)據(jù)列進行展示維護.創(chuàng)建成功后,自動生成訪問的URL 地址.對用戶分配該報表地址,進行報表查詢展示.自動化報表設計功能界面如圖6所示.
圖6 報表設計
為提高人力資源管理業(yè)務工作質量,提高工作效率,做好決策依據(jù),有必要將以往大量重復的業(yè)務活動利用現(xiàn)代化的信息技術手段進行管控,通過建立業(yè)務信息的關聯(lián)模型,使業(yè)務數(shù)據(jù)的管理自動化、智能化,從而大幅度消減業(yè)務人員的重復勞動,提高工作效率,提升人力資源管理業(yè)務水平,為高層決策提供高質量的人力資源數(shù)據(jù).
通過該系統(tǒng)平臺搭建的人力資源管理系統(tǒng),提供了人力資源管理的數(shù)據(jù)管理、業(yè)務管理以及數(shù)據(jù)展示功能[1-13].系統(tǒng)功能框架圖如圖7所示.
(1)數(shù)據(jù)管理能力
主要實現(xiàn)了人力資源數(shù)據(jù)的信息化管理功能,并作為其他應用系統(tǒng)的基礎數(shù)據(jù).建立組織機構、員工信息開放式服務,供其他系統(tǒng)調用,同時向注冊系統(tǒng)發(fā)布組織機構、員工信息變更信息.具體包括以下功能模塊:
① 組織管理:實現(xiàn)組織機構設置、職位管理、崗位管理,按崗位說明書建立崗位體系;按照“單位-部門-崗位”實現(xiàn)對組織的信息化管理.
② 人員配置:實現(xiàn)人與崗位的對應,包括減員、增員、員工信息、試用/見習管理、內部調動等功能.
③ 勞動合同管理:實現(xiàn)了合同簽訂、變更、續(xù)簽、解除記錄的查詢及相關管理、提醒功能.
④ 領導干部管理:實現(xiàn)行政干部職務信息、任免職管理、考核情況登記等功能.
⑤ 型號干部管理:實現(xiàn)技術干部職務信息、任免職管理等功能.
⑥ 檔案信息管理:實現(xiàn)員工個人基本信息的登記、變動、查詢等功能.
(2)業(yè)務管理能力
主要實現(xiàn)了在人力資源數(shù)據(jù)信息的基礎上,結合各項人力資源管理業(yè)務流程,開展具體的應用[14,15].具體包括以下功能模塊:
① 績效管理:實現(xiàn)了可以按部門管理也可以面向項目定制的績效考核管理,以及360 度評估、量化考核等功能.
② 薪酬管理:實現(xiàn)了面向部門領導的薪酬發(fā)放功能和面向員工個人的查詢功能.
③ 考勤管理:實現(xiàn)了考勤的外部數(shù)據(jù)導入、統(tǒng)計管理、實時假期控制、請假處理、出勤記錄查詢等功能,并對出勤數(shù)據(jù)進行統(tǒng)計分析.
④ 培訓管理:實現(xiàn)了培訓需求上報、培訓計劃匯總、培訓評價、培訓資源管理、培訓費用統(tǒng)計、培訓檔案記錄等管理功能.
⑤ 招聘管理:實現(xiàn)了根據(jù)崗位空缺發(fā)布信息制定招聘計劃的功能.
(3)數(shù)據(jù)展示能力
具體包括:報表中心,主要實現(xiàn)了基于上述模塊和不同應用者的權限的各種報表統(tǒng)計、分析、展示、查詢功能.
本文后續(xù)將詳細介紹其中的考勤管理模塊的設計與實現(xiàn).
圖7 人力資源管理系統(tǒng)功能架構
全所員工出勤存在多種刷卡狀態(tài),有各類請假、請假后又出勤、工作日歷設置也可變、有部分員工公假、企業(yè)特殊時段假等,為了應對這種復雜多變的出勤情況,保證每個員工考勤記錄正確,設計了考勤日志計算引擎,計算出每個員工每天的出勤狀態(tài)值及文字表述.在這些數(shù)據(jù)基礎上,提供了各類考勤狀態(tài)查詢、綜合統(tǒng)計分析.考勤管理模塊用例圖如圖8所示.
圖8 考勤管理用例圖
3.2.1 請假申請及查詢
利用activiti 框架,實現(xiàn)了員工在線辦理請假申請審批流程.
各類請假,在同一時間只能有一類有效的請假信息.按部門、請假員工工號、請假姓名拼音、請假類型、起止查詢日期執(zhí)行查詢,實現(xiàn)了各類角色分級查詢功能.
請假時間計算規(guī)則:
(1)事假、病假、市內公出請假起止時間記錄單位精確到分,請假時間計算:計量單位為小時,不包括非工作日,采用四舍五入原則計算;
(2)帶薪休假請假起止時間記錄單位精確到天,請假時間計算不包括非工作日;
(3)產(chǎn)前假、哺乳假請假起止時間記錄單位精確到小時,請假時間計算不包括非工作日,且每天最多請1 小時;
(4)其余公假類中請假類型請假起止時間記錄單位精確到天,請假時間計算包括工作日和非工作日.
事假、病假、工傷假、帶薪休假請假人為單人,其余請假類型請假人可多選.
3.2.2 刷卡記錄
讀取考勤機上的原始刷卡記錄,并依據(jù)考勤刷卡時間,計算異常類別.具體計算規(guī)則如下:
(1)讀取系統(tǒng)設置的上班時間,下班時間;
(2)上班時間容忍一分鐘:上班時間+1 分鐘,上班遲到:30 分鐘(系統(tǒng)可設置),下班早退:30 分鐘(系統(tǒng)可設置);
(3)首先判斷今天是否需要出勤,如果否,則不計算;如果是,則計算.
進所時間和出所時間相同,表示單次打卡或者未打卡,出勤狀態(tài)為“缺勤”;
進所時間>=上班容忍時間 &&進所時間<上班遲到,出勤狀態(tài)為“遲到”;
出所時間>=下班早退 &&出所時間<下班時間,出勤狀態(tài)為“早退”;
進所時間>=上班遲到 &&出所時間<=下班早退,出勤狀態(tài)為“上下班缺勤”;
進所時間>=上班遲到,出勤狀態(tài)為“上班缺勤”;
出所時間>進所時間,且出所時間<=下班早退,出勤狀態(tài)為“下班缺勤”;
進所時間<上班容忍時間 &&出所時間>下班時間,出勤狀態(tài)為“正常出勤”.
3.2.3 考勤統(tǒng)計
考勤統(tǒng)計分析以考勤數(shù)據(jù)為基礎,對個人、部門考勤數(shù)據(jù)進行匯總統(tǒng)計,分為:個人考勤信息、部門考勤匯總和出勤統(tǒng)計分析.考勤統(tǒng)計分析數(shù)據(jù)權限設計原則:個人考勤信息對普通員工開放查詢權限,部門考勤匯總和出勤統(tǒng)計分析,對領導及具有該菜單功能權限的角色用戶進行開放查詢.
個人考勤信息:以日歷卡片形式顯示員工每月每日的考勤狀態(tài).默認顯示系統(tǒng)當月的考勤狀態(tài),可切換年或月顯示不同月份的考勤日志顯示考勤刷卡進出所時間.界面展示如圖9所示.
圖9 個人考勤信息界面
(1)顯示刷卡記錄
進所時間~出所時間,時間格式:HH24:MI.
(2)顯示考勤狀態(tài)
出勤、缺勤n小時、某種假n小時、遲到、早退、刷卡異常.
(3)顯示假日及特殊工作日
若是異常刷卡,顯示“說明”按鈕,點擊此按鈕可發(fā)起刷卡異常說明流程.
若有缺勤,顯示“補假”按鈕,點擊此按鈕可發(fā)起請假流程,傳遞缺勤的時間,為2 補假提供方便.
(4)顯示統(tǒng)計項目
年度帶薪休假日數(shù)、年度已公休日數(shù)、年度事假累計(小時)、當月事假累計(小時)、年度公出累計(小時)、當月公出累計(小時)、當月遲到早退累計(次)、當月缺勤累計(小時).
部門考勤匯總:以表格方式匯總出部門考勤.界面示意圖如圖10所示.
圖10 部門考勤匯總
點擊員工姓名,可以進行穿透查詢,查詢該員工的刷卡記錄及考勤日志明細信息.左側“組織機構”根據(jù)用戶角色顯示相應權限內的數(shù)據(jù),右側上部默認組織機構內的全部一級部門考勤匯總數(shù)據(jù);右側下部顯示選中的組織機構內,人員的考勤匯總信息.點擊一級部門后,右側上部顯示該一級部門內各個二級部門考勤匯總數(shù)據(jù),右側下部顯示選中的組織機構內,人員的考勤匯總信息.
出勤統(tǒng)計分析:以圖形界面直觀的展示全所出勤情況.出勤統(tǒng)計分析界面如圖11所示.
點擊一級部門柱狀圖,可以進行穿透查詢,查詢其子部門的出勤圖形統(tǒng)計;點擊二級部門柱狀圖,可以進行穿透查詢,該部門每個員工日出勤明細及圖形統(tǒng)計.
出勤時間統(tǒng)計計算部門人均日均出勤時間,計算公式如下:
指定期間內:
(1)個人每天出勤時間=該員工計算對象日的刷卡時間差+該員工計算日的公假;單位為“分鐘”;若刷卡時間差>480 且 刷卡時間差<=(480+30)記為480 分(即8 小時);刷卡時間差>(480+30),則刷卡時間差=刷卡時間差-30;
(2)個人日均出勤時間=個人每天出勤時間之和/指定期間內工作日歷工作日日數(shù)/60;單位為“小時”,小數(shù)點后保留2 位,四舍五入;
(3)部門人均日均出勤時間=(部門內每個人的個人日均出勤時間之和)/ 部門內總人數(shù);單位為“小時”,小數(shù)點后保留1 位,四舍五入.
圖11 出勤統(tǒng)計分析
(1)菜單功能及操作注冊
對URL 路徑地址進行注冊登記,如圖12所示.
圖12 配置菜單及操作
(2)角色分配
創(chuàng)建角色,并分配對象,如圖13所示.
(3)權限分配
指定角色,分配對應的菜單及操作,如圖14所示.
企業(yè)信息管理的數(shù)字化、信息化、規(guī)范化是增強企業(yè)核心競爭力的關鍵環(huán)節(jié).人力資源管理系統(tǒng)支撐了人力資源管理全線業(yè)務,大大提高了人力資源管理工作效率.在滿足業(yè)務流程的同時,積累了大量有用的數(shù)據(jù),基于這些數(shù)據(jù)支撐了人員效能分析,優(yōu)化了人員配置,提供的綜合統(tǒng)計分析結果,為企業(yè)決策提供了依據(jù).同時這些數(shù)據(jù)將為建立企業(yè)大數(shù)據(jù)分析提供基礎數(shù)據(jù).通過人力資源管理系統(tǒng)的建設,也驗證了系統(tǒng)開發(fā)平臺運行穩(wěn)定、具有可擴展性、可維護性,能夠支撐人力資源管理業(yè)務.通過該系統(tǒng)開發(fā)平臺可以模塊化、高效快速開發(fā)項目,適應復雜業(yè)務及需求變化,具有廣泛推廣應用價值.
圖13 創(chuàng)建角色
圖14 權限分配