孫道兵,田蘇梅,施元超,劉曉光
(上海航天控制技術(shù)研究所,上海 201109)
上海某院某研究所是擁有兩千多名員工的航天大所,員工組成成分復(fù)雜,人力資源管理業(yè)務(wù)多樣,涉及面廣,人員及其崗位、職位變化頻繁,業(yè)務(wù)邏輯復(fù)雜,業(yè)務(wù)數(shù)據(jù)種類繁多,業(yè)務(wù)人員日常需要花費(fèi)大量的時間和精力來處理各種紛繁復(fù)雜的業(yè)務(wù)過程和數(shù)據(jù).而且單位內(nèi)并沒有一個系統(tǒng)能夠完整實(shí)現(xiàn)人力資源管理相關(guān)業(yè)務(wù)管理的信息化,當(dāng)前手工業(yè)務(wù)管理模式效率低下,容易出錯,不利于大量歷史數(shù)據(jù)的統(tǒng)計(jì)匯總分析,不便于為領(lǐng)導(dǎo)層提供好的決策依據(jù).同時,盡管市場上成熟的人力資源管理系統(tǒng)數(shù)量比較多,但是與本單位管理需求差異較大,不能很好的適應(yīng)本單位人員管理的特殊性.
基于此,集合人力資源部、信息技術(shù)部門的管理和技術(shù)力量,自主構(gòu)建管理系統(tǒng)開發(fā)平臺,該平臺支持可持續(xù)開發(fā),系統(tǒng)具有良好的伸縮性、可擴(kuò)展性、可移植性.并基于此平臺實(shí)現(xiàn)人力資源管理業(yè)務(wù),提高工作效率,提升人力資源管理業(yè)務(wù)水平,為高層決策提供高質(zhì)量的人力資源數(shù)據(jù).
基于當(dāng)前業(yè)界先進(jìn)的Spring+SpringMVC+Hibernate開源技術(shù)自主構(gòu)建JavaEE 開發(fā)平臺.
系統(tǒng)開發(fā)平臺支持可持續(xù)開發(fā),系統(tǒng)具有良好的伸縮性、可擴(kuò)展性、可移植性.
平臺采用B/S 多層架構(gòu),提供良好的用戶體驗(yàn),集成Activiti5 流程引擎,支撐企業(yè)信息管理的業(yè)務(wù)流程,同時基于Apache CXF 服務(wù)框架構(gòu)建服務(wù)模塊,滿足系統(tǒng)集成要求及面向未來的服務(wù)架構(gòu).
運(yùn)用Spring、SpringMVC、Hibernate 框架建立了平臺基礎(chǔ),并在其中集成了Activiti5 流程引擎,Apache CXF 服務(wù)基礎(chǔ)框架、spring-quartz 定時任務(wù)調(diào)度.技術(shù)框架如圖1所示.

圖1 系統(tǒng)平臺技術(shù)架構(gòu)
基于JQuery EasyUI 前端框架技術(shù)實(shí)現(xiàn)前端展示,面向HTML5 技術(shù),兼容主流瀏覽器.
基于Servlet3 規(guī)范的模塊化設(shè)計(jì),應(yīng)用RESTful結(jié)構(gòu),統(tǒng)一接口規(guī)則.
創(chuàng)建基于Web的遠(yuǎn)程部署、管理控制臺使開發(fā)人員、系統(tǒng)管理員與生產(chǎn)環(huán)境完全隔離,結(jié)合數(shù)據(jù)加密技術(shù),既保證了敏感數(shù)據(jù)安全,又提高了部署、管理效率.
數(shù)據(jù)庫管理系統(tǒng)采用Oracle 11g R2 以上版本.
2.3.1 多元主體權(quán)限管理模型
創(chuàng)新設(shè)計(jì)了多元主體權(quán)限管理模型,結(jié)合Spring攔截器技術(shù)設(shè)計(jì)了系統(tǒng)平臺的訪問控制與權(quán)限管理系統(tǒng)內(nèi)核.這個授權(quán)系統(tǒng)解決了傳統(tǒng)系統(tǒng)僅可進(jìn)行單一用戶授權(quán)的問題,可從用戶、組織機(jī)構(gòu)、崗位、黨政職務(wù)、型號職務(wù)等多維度授權(quán).登錄認(rèn)證通過后,查詢該用戶的授權(quán)信息,即角色、菜單功能、許可操作集合.
圖2中的“角色對象”它負(fù)責(zé)建立主體與角色之間關(guān)系,這個關(guān)系有3 個要素:角色、主體對象、對象類別.要素“角色”是系統(tǒng)中角色實(shí)例;要素“主體對象”是主體的實(shí)例,是向某角色中分配的對象;要素“對象類別”描述主體對象的分類,在關(guān)系中用來識別主體對象,從而我們可以采用相應(yīng)的算法取得主體關(guān)聯(lián)的用戶集合.

圖2 多元主體權(quán)限管理模型示意圖
(1)實(shí)體對象及關(guān)系設(shè)計(jì)
權(quán)限管理涉及到眾多實(shí)體,有兩個主要的實(shí)體關(guān)聯(lián):
① 通過“角色對象關(guān)聯(lián)表”建立角色與主體對象的關(guān)系;
② 通過“角色功能樹關(guān)聯(lián)表”建立角色與權(quán)限的關(guān)系.
實(shí)體關(guān)系圖如圖3所示.
實(shí)體表有:系統(tǒng)用戶表、組織機(jī)構(gòu)、職務(wù)信息、崗位信息、用戶組對象.
員工與用戶是一對一關(guān)系;
員工與組織機(jī)構(gòu)是多對多關(guān)系,即一個組織機(jī)構(gòu)可有多個員工,員工可在多個組織機(jī)構(gòu)任職;
員工與崗位是多對多關(guān)系,即一個崗位可有多個員工,員工可在多個崗位上擔(dān)任某個職務(wù);
臨時項(xiàng)目組或特殊的人員組合,設(shè)為用戶組,與用戶是多對多關(guān)系.
角色對象關(guān)聯(lián)表是“角色對象”的關(guān)系數(shù)據(jù)庫二維表具體形式,它關(guān)聯(lián)角色表及各主體實(shí)體表.

圖3 多元主體權(quán)限管理實(shí)體關(guān)系圖
例如:“中層干部”角色中分配了“部長”、“副部長”、“主任”、“副主任”這幾個對象,人力資源的員工崗位職務(wù)信息中員工A、員工B 及員工C 通過職務(wù)關(guān)聯(lián)被間接“分配”至“中層干部”角色,通過系統(tǒng)用戶表得到用戶A、用戶B 及用戶C,當(dāng)給角色“中層干部”授予某種權(quán)限時,即實(shí)現(xiàn)對應(yīng)給用戶A、用戶B 及用戶C 授予了相應(yīng)權(quán)限.同樣“用戶及終端管理”角色中分配了“信息中心”這個“組織機(jī)構(gòu)”,示例的數(shù)據(jù)表明用戶X,用戶Y 實(shí)際分配于這一角色,當(dāng)管理員給“信息中心”這個角色授予某種權(quán)限時即實(shí)現(xiàn)了給用戶X,用戶Y 授權(quán).
(2)權(quán)限驗(yàn)證
通過Spring 框架攔截器(interceptor)機(jī)制實(shí)現(xiàn)所有訪問URL的權(quán)限驗(yàn)證處理.用戶登錄后會話對象中保存的“用戶角色、菜單功能、許可操作集合”授權(quán)信息作為本處理的輸入.權(quán)限控制活動如圖4所示.
① 獲取登錄用戶所關(guān)聯(lián)的角色,包括:用戶對象分配的角色+用戶關(guān)聯(lián)的組織崗位分配的角色+用戶所在組織機(jī)構(gòu)及其所有上級組織機(jī)構(gòu)分配的角色.
② 從角色功能關(guān)聯(lián)表查詢用戶、用戶組織機(jī)構(gòu)、用戶所在崗位關(guān)聯(lián)的角色、這些角色所關(guān)聯(lián)的功能及其操作集合.
③ 將用戶角色、菜單功能、許可操作集合保持在用戶會話對象中,用于驗(yàn)證用戶訪問操作URL的合法性、限制訪問資源的范圍.

圖4 權(quán)限控制活動圖
2.3.2 代碼及報(bào)表自動生成
在平臺效率方面,該平臺創(chuàng)新設(shè)計(jì)了基于數(shù)據(jù)物理模型的實(shí)體代碼生成工具.基于元數(shù)據(jù)的代碼自動生成功能,避免重復(fù)的機(jī)械的工作,按照統(tǒng)一的規(guī)范生成實(shí)體類,并具有自動化在線表單頁面設(shè)計(jì)、自動化報(bào)表設(shè)計(jì)功能.
(1)自動生成代碼
連接到數(shù)據(jù)源,自動獲取到全部數(shù)據(jù)表,選擇數(shù)據(jù)表,創(chuàng)建模型.
通過freemarker 模板自動生成代碼.自動生成的代碼包括:列表界面、新增界面、查看界面、審核界面、controller 控制器、service 接口及service 實(shí)現(xiàn)代碼、實(shí)體類.目前平臺設(shè)置的模板列表如圖5所示.

圖5 模板列表
(2)自動化報(bào)表設(shè)計(jì)
編寫SQL 語句后,自動解析出數(shù)據(jù)列,然后對每個數(shù)據(jù)列進(jìn)行展示維護(hù).創(chuàng)建成功后,自動生成訪問的URL 地址.對用戶分配該報(bào)表地址,進(jìn)行報(bào)表查詢展示.自動化報(bào)表設(shè)計(jì)功能界面如圖6所示.

圖6 報(bào)表設(shè)計(jì)
為提高人力資源管理業(yè)務(wù)工作質(zhì)量,提高工作效率,做好決策依據(jù),有必要將以往大量重復(fù)的業(yè)務(wù)活動利用現(xiàn)代化的信息技術(shù)手段進(jìn)行管控,通過建立業(yè)務(wù)信息的關(guān)聯(lián)模型,使業(yè)務(wù)數(shù)據(jù)的管理自動化、智能化,從而大幅度消減業(yè)務(wù)人員的重復(fù)勞動,提高工作效率,提升人力資源管理業(yè)務(wù)水平,為高層決策提供高質(zhì)量的人力資源數(shù)據(jù).
通過該系統(tǒng)平臺搭建的人力資源管理系統(tǒng),提供了人力資源管理的數(shù)據(jù)管理、業(yè)務(wù)管理以及數(shù)據(jù)展示功能[1-13].系統(tǒng)功能框架圖如圖7所示.
(1)數(shù)據(jù)管理能力
主要實(shí)現(xiàn)了人力資源數(shù)據(jù)的信息化管理功能,并作為其他應(yīng)用系統(tǒng)的基礎(chǔ)數(shù)據(jù).建立組織機(jī)構(gòu)、員工信息開放式服務(wù),供其他系統(tǒng)調(diào)用,同時向注冊系統(tǒng)發(fā)布組織機(jī)構(gòu)、員工信息變更信息.具體包括以下功能模塊:
① 組織管理:實(shí)現(xiàn)組織機(jī)構(gòu)設(shè)置、職位管理、崗位管理,按崗位說明書建立崗位體系;按照“單位-部門-崗位”實(shí)現(xiàn)對組織的信息化管理.
② 人員配置:實(shí)現(xiàn)人與崗位的對應(yīng),包括減員、增員、員工信息、試用/見習(xí)管理、內(nèi)部調(diào)動等功能.
③ 勞動合同管理:實(shí)現(xiàn)了合同簽訂、變更、續(xù)簽、解除記錄的查詢及相關(guān)管理、提醒功能.
④ 領(lǐng)導(dǎo)干部管理:實(shí)現(xiàn)行政干部職務(wù)信息、任免職管理、考核情況登記等功能.
⑤ 型號干部管理:實(shí)現(xiàn)技術(shù)干部職務(wù)信息、任免職管理等功能.
⑥ 檔案信息管理:實(shí)現(xiàn)員工個人基本信息的登記、變動、查詢等功能.
(2)業(yè)務(wù)管理能力
主要實(shí)現(xiàn)了在人力資源數(shù)據(jù)信息的基礎(chǔ)上,結(jié)合各項(xiàng)人力資源管理業(yè)務(wù)流程,開展具體的應(yīng)用[14,15].具體包括以下功能模塊:
① 績效管理:實(shí)現(xiàn)了可以按部門管理也可以面向項(xiàng)目定制的績效考核管理,以及360 度評估、量化考核等功能.
② 薪酬管理:實(shí)現(xiàn)了面向部門領(lǐng)導(dǎo)的薪酬發(fā)放功能和面向員工個人的查詢功能.
③ 考勤管理:實(shí)現(xiàn)了考勤的外部數(shù)據(jù)導(dǎo)入、統(tǒng)計(jì)管理、實(shí)時假期控制、請假處理、出勤記錄查詢等功能,并對出勤數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析.
④ 培訓(xùn)管理:實(shí)現(xiàn)了培訓(xùn)需求上報(bào)、培訓(xùn)計(jì)劃匯總、培訓(xùn)評價、培訓(xùn)資源管理、培訓(xùn)費(fèi)用統(tǒng)計(jì)、培訓(xùn)檔案記錄等管理功能.
⑤ 招聘管理:實(shí)現(xiàn)了根據(jù)崗位空缺發(fā)布信息制定招聘計(jì)劃的功能.
(3)數(shù)據(jù)展示能力
具體包括:報(bào)表中心,主要實(shí)現(xiàn)了基于上述模塊和不同應(yīng)用者的權(quán)限的各種報(bào)表統(tǒng)計(jì)、分析、展示、查詢功能.
本文后續(xù)將詳細(xì)介紹其中的考勤管理模塊的設(shè)計(jì)與實(shí)現(xiàn).

圖7 人力資源管理系統(tǒng)功能架構(gòu)
全所員工出勤存在多種刷卡狀態(tài),有各類請假、請假后又出勤、工作日歷設(shè)置也可變、有部分員工公假、企業(yè)特殊時段假等,為了應(yīng)對這種復(fù)雜多變的出勤情況,保證每個員工考勤記錄正確,設(shè)計(jì)了考勤日志計(jì)算引擎,計(jì)算出每個員工每天的出勤狀態(tài)值及文字表述.在這些數(shù)據(jù)基礎(chǔ)上,提供了各類考勤狀態(tài)查詢、綜合統(tǒng)計(jì)分析.考勤管理模塊用例圖如圖8所示.

圖8 考勤管理用例圖
3.2.1 請假申請及查詢
利用activiti 框架,實(shí)現(xiàn)了員工在線辦理請假申請審批流程.
各類請假,在同一時間只能有一類有效的請假信息.按部門、請假員工工號、請假姓名拼音、請假類型、起止查詢?nèi)掌趫?zhí)行查詢,實(shí)現(xiàn)了各類角色分級查詢功能.
請假時間計(jì)算規(guī)則:
(1)事假、病假、市內(nèi)公出請假起止時間記錄單位精確到分,請假時間計(jì)算:計(jì)量單位為小時,不包括非工作日,采用四舍五入原則計(jì)算;
(2)帶薪休假請假起止時間記錄單位精確到天,請假時間計(jì)算不包括非工作日;
(3)產(chǎn)前假、哺乳假請假起止時間記錄單位精確到小時,請假時間計(jì)算不包括非工作日,且每天最多請1 小時;
(4)其余公假類中請假類型請假起止時間記錄單位精確到天,請假時間計(jì)算包括工作日和非工作日.
事假、病假、工傷假、帶薪休假請假人為單人,其余請假類型請假人可多選.
3.2.2 刷卡記錄
讀取考勤機(jī)上的原始刷卡記錄,并依據(jù)考勤刷卡時間,計(jì)算異常類別.具體計(jì)算規(guī)則如下:
(1)讀取系統(tǒng)設(shè)置的上班時間,下班時間;
(2)上班時間容忍一分鐘:上班時間+1 分鐘,上班遲到:30 分鐘(系統(tǒng)可設(shè)置),下班早退:30 分鐘(系統(tǒng)可設(shè)置);
(3)首先判斷今天是否需要出勤,如果否,則不計(jì)算;如果是,則計(jì)算.
進(jìn)所時間和出所時間相同,表示單次打卡或者未打卡,出勤狀態(tài)為“缺勤”;
進(jìn)所時間>=上班容忍時間 &&進(jìn)所時間<上班遲到,出勤狀態(tài)為“遲到”;
出所時間>=下班早退 &&出所時間<下班時間,出勤狀態(tài)為“早退”;
進(jìn)所時間>=上班遲到 &&出所時間<=下班早退,出勤狀態(tài)為“上下班缺勤”;
進(jìn)所時間>=上班遲到,出勤狀態(tài)為“上班缺勤”;
出所時間>進(jìn)所時間,且出所時間<=下班早退,出勤狀態(tài)為“下班缺勤”;
進(jìn)所時間<上班容忍時間 &&出所時間>下班時間,出勤狀態(tài)為“正常出勤”.
3.2.3 考勤統(tǒng)計(jì)
考勤統(tǒng)計(jì)分析以考勤數(shù)據(jù)為基礎(chǔ),對個人、部門考勤數(shù)據(jù)進(jìn)行匯總統(tǒng)計(jì),分為:個人考勤信息、部門考勤匯總和出勤統(tǒng)計(jì)分析.考勤統(tǒng)計(jì)分析數(shù)據(jù)權(quán)限設(shè)計(jì)原則:個人考勤信息對普通員工開放查詢權(quán)限,部門考勤匯總和出勤統(tǒng)計(jì)分析,對領(lǐng)導(dǎo)及具有該菜單功能權(quán)限的角色用戶進(jìn)行開放查詢.
個人考勤信息:以日歷卡片形式顯示員工每月每日的考勤狀態(tài).默認(rèn)顯示系統(tǒng)當(dāng)月的考勤狀態(tài),可切換年或月顯示不同月份的考勤日志顯示考勤刷卡進(jìn)出所時間.界面展示如圖9所示.

圖9 個人考勤信息界面
(1)顯示刷卡記錄
進(jìn)所時間~出所時間,時間格式:HH24:MI.
(2)顯示考勤狀態(tài)
出勤、缺勤n小時、某種假n小時、遲到、早退、刷卡異常.
(3)顯示假日及特殊工作日
若是異常刷卡,顯示“說明”按鈕,點(diǎn)擊此按鈕可發(fā)起刷卡異常說明流程.
若有缺勤,顯示“補(bǔ)假”按鈕,點(diǎn)擊此按鈕可發(fā)起請假流程,傳遞缺勤的時間,為2 補(bǔ)假提供方便.
(4)顯示統(tǒng)計(jì)項(xiàng)目
年度帶薪休假日數(shù)、年度已公休日數(shù)、年度事假累計(jì)(小時)、當(dāng)月事假累計(jì)(小時)、年度公出累計(jì)(小時)、當(dāng)月公出累計(jì)(小時)、當(dāng)月遲到早退累計(jì)(次)、當(dāng)月缺勤累計(jì)(小時).
部門考勤匯總:以表格方式匯總出部門考勤.界面示意圖如圖10所示.

圖10 部門考勤匯總
點(diǎn)擊員工姓名,可以進(jìn)行穿透查詢,查詢該員工的刷卡記錄及考勤日志明細(xì)信息.左側(cè)“組織機(jī)構(gòu)”根據(jù)用戶角色顯示相應(yīng)權(quán)限內(nèi)的數(shù)據(jù),右側(cè)上部默認(rèn)組織機(jī)構(gòu)內(nèi)的全部一級部門考勤匯總數(shù)據(jù);右側(cè)下部顯示選中的組織機(jī)構(gòu)內(nèi),人員的考勤匯總信息.點(diǎn)擊一級部門后,右側(cè)上部顯示該一級部門內(nèi)各個二級部門考勤匯總數(shù)據(jù),右側(cè)下部顯示選中的組織機(jī)構(gòu)內(nèi),人員的考勤匯總信息.
出勤統(tǒng)計(jì)分析:以圖形界面直觀的展示全所出勤情況.出勤統(tǒng)計(jì)分析界面如圖11所示.
點(diǎn)擊一級部門柱狀圖,可以進(jìn)行穿透查詢,查詢其子部門的出勤圖形統(tǒng)計(jì);點(diǎn)擊二級部門柱狀圖,可以進(jìn)行穿透查詢,該部門每個員工日出勤明細(xì)及圖形統(tǒng)計(jì).
出勤時間統(tǒng)計(jì)計(jì)算部門人均日均出勤時間,計(jì)算公式如下:
指定期間內(nèi):
(1)個人每天出勤時間=該員工計(jì)算對象日的刷卡時間差+該員工計(jì)算日的公假;單位為“分鐘”;若刷卡時間差>480 且 刷卡時間差<=(480+30)記為480 分(即8 小時);刷卡時間差>(480+30),則刷卡時間差=刷卡時間差-30;
(2)個人日均出勤時間=個人每天出勤時間之和/指定期間內(nèi)工作日歷工作日日數(shù)/60;單位為“小時”,小數(shù)點(diǎn)后保留2 位,四舍五入;
(3)部門人均日均出勤時間=(部門內(nèi)每個人的個人日均出勤時間之和)/ 部門內(nèi)總?cè)藬?shù);單位為“小時”,小數(shù)點(diǎn)后保留1 位,四舍五入.

圖11 出勤統(tǒng)計(jì)分析
(1)菜單功能及操作注冊
對URL 路徑地址進(jìn)行注冊登記,如圖12所示.

圖12 配置菜單及操作
(2)角色分配
創(chuàng)建角色,并分配對象,如圖13所示.
(3)權(quán)限分配
指定角色,分配對應(yīng)的菜單及操作,如圖14所示.
企業(yè)信息管理的數(shù)字化、信息化、規(guī)范化是增強(qiáng)企業(yè)核心競爭力的關(guān)鍵環(huán)節(jié).人力資源管理系統(tǒng)支撐了人力資源管理全線業(yè)務(wù),大大提高了人力資源管理工作效率.在滿足業(yè)務(wù)流程的同時,積累了大量有用的數(shù)據(jù),基于這些數(shù)據(jù)支撐了人員效能分析,優(yōu)化了人員配置,提供的綜合統(tǒng)計(jì)分析結(jié)果,為企業(yè)決策提供了依據(jù).同時這些數(shù)據(jù)將為建立企業(yè)大數(shù)據(jù)分析提供基礎(chǔ)數(shù)據(jù).通過人力資源管理系統(tǒng)的建設(shè),也驗(yàn)證了系統(tǒng)開發(fā)平臺運(yùn)行穩(wěn)定、具有可擴(kuò)展性、可維護(hù)性,能夠支撐人力資源管理業(yè)務(wù).通過該系統(tǒng)開發(fā)平臺可以模塊化、高效快速開發(fā)項(xiàng)目,適應(yīng)復(fù)雜業(yè)務(wù)及需求變化,具有廣泛推廣應(yīng)用價值.

圖13 創(chuàng)建角色

圖14 權(quán)限分配