方志丹
(廣東電網有限責任公司汕頭供電局,廣東汕頭515041)
根據持證上崗管理辦法的要求,崗位勝任能力評價合格證書是內部員工的上崗證書,也是員工能力素質評價的重要依據。崗位勝任能力評價的考核對象覆蓋全體專業技術類和技能類人員,以年度、季度間隔常態化開展,考核項目包括知識、技能、潛能3個維度共34個項目,其中,考生在某一維度下所有項目均須取得合格成績,方可通過該維度的評價,通過3個維度的評價則代表通過本次崗評,成績有效期為3年。
在崗評實際開展過程中,考生可能出現但不限于以下情況:通過或不通過本次崗評;本次崗評為補考;無須參加部分項目的考試(免考或認定);本次崗評缺考;部門、班組或崗位等級變更,重新進行崗評。因此,在各次崗評成績匯總統計表中,為了記錄上述考試情況,相應項目的成績欄會以不同的符號加以標記區分,如直接填寫分數、填寫小橫杠“—”、填寫“缺考”、留空等。在人員和項目數量繁多的情況下,對這些情形進行判斷和處理工作量巨大,為此,本文利用相關信息技術,提出一種對各項成績結果進行自動匯總和更新的解決方案。
1.1.1 C#與.NET編程
作為一種基于現代面向對象設計方法的語言,C#的體系結構和方法論反映了.NET基礎方法論,其特定語言功能依賴于.NET基類。.NET基類內容豐富,直觀且易用,可完成此前需要經Windows API實現的大部分工作,極大地提升開發人員的效率[1]。
ASP.NET是目前主流網絡開發技術之一,具有高效的運行性能、簡易且靈活、可管理性強、生產效率高,使網絡程序開發傾向于智能化,運行更為流暢[2-3]。
1.1.2 NPOI組件
NPOI是一套用于在.NET環境讀寫Excel、Word等文檔的開源組件,其框架支持大部分Excel的特性(如單元格樣式、數據格式、公式等)和文件格式(xls、xlsx),支持文件導入和導出,可在沒有安裝Office或相應環境的機器上對Excel文檔進行讀寫操作。利用NPOI,可根據實際需要編寫不同的程序實現相應的功能。
由于本工具的目標用戶為人力資源部專責,適合采用便于通過瀏覽器直接訪問的B/S架構進行系統搭建。將歷年各次崗評的結果統計依次導入程序,通過程序中設定好的判斷邏輯對人員、項目、分數、時間、特殊情況等因素進行自動識別處理,對各條成績記錄做添加或更新操作并寫入數據庫,同時向用戶展示匯總更新后的規范化統計結果,用戶可查看或導出文件進行下一步的分析處理工作。
本工具的系統架構如圖1所示,一方面,ASP.NET頁面向用戶提供表格文件導入功能,后臺程序將對表格內的數據進行識別處理,獲取人員信息、考試成績和時間等參數,并通過數據庫接口寫入系統數據庫中;另一方面,后臺程序從數據庫中讀取相關數據,在前端頁面的表格組件中進行數據展示,并向用戶提供文件導出功能。根據各次崗評成績統計結果和所有項目的統計需求,本文采用的數據庫表結構設計如表1所示。

圖1 系統架構示意圖

表1 數據庫表結構
本文使用基于Visual Studio環境的ASP.NET編程進行程序開發,系統主界面樣式如圖2所示,其中,采用第三方DevExpress組件中的GridView表格控件作為數據展示主體,以取得更優的界面優化和用戶體驗效果;使用標準FileUpload控件用于用戶文件上傳;文件上傳后,依次完成將數據庫數據整體備份到CSV表格、對上傳文件進行列名和成績識別、將識別結果組合成SQL語句并執行數據庫操作。邏輯步驟如下:
(1)創建一個包含空白Sheet的Workbook對象,Sheet中各列的排列與數據庫表結構一致;
(2)從第一行起掃描,直到檢測到標題行,如“身份證號”“員工編號”“姓名”等用戶信息字段名及“SB”“SS”“G”“PA”等考試項目名,記錄這些字段所在列數,后續讀取到的數據將根據這些列數存放到Sheet相應列中;
(3)從標題行下一行起作為內容行,逐行掃描,將各項數據按照上一步獲取的列數對應關系填入Sheet的各列中,將考試時間格式化為數據庫規范xxxx/xx/xx,對于成績項,以如下規則進行轉換:“缺考”替換為0,小橫杠“—”替換為-2,空格替換為-3,其他格式替換為-5留待處理;
(4)完成上述對上傳文件的遍歷讀取轉換,即完成上傳文件數據轉換為格式規范的Sheet對象的操作,此時Sheet的每一行數據均為規范化的單個員工所有項目的考試情況,逐行讀取后可將各個單元格的數據作為參數組合成數據庫SQL語句,以便在后續的數據庫讀寫中進行下一步操作。

圖2 系統主界面
對于數據庫操作,本文采用PLSQL構建數據表和編寫存儲過程腳本。此處數據庫除執行ASP.NET后臺程序所調用的常規讀寫操作,還需要對已完成數值化轉換(即正常分數和代表特殊情況的負數)的成績信息進行判斷,相應存儲過程腳本執行邏輯如下:
(1)比對輸入數據與已有數據,如果員工編號、申報班組、申報等級均相同,當新考試時間晚于原考試時間且新舊考試成績不同,或當新考試時間早于原考試時間且兩次成績相同,則將數據替換為新考試成績和新考試時間;否則直接插入整行數據。
(2)對于知識、技能、潛能三個維度,如果維度下每一項成績均達到80分及以上,則該維度為通過;如果成績處在(0,80)區間則為不通過;當三個維度均通過時,本次崗評方為通過,反之不通過。
(3)由于原始成績數據中僅有“缺考”須視為不通過(已替換為0分),因此已置為負數的其余情況默認為通過,保留數值供后續統計處理。
完成以上存儲過程腳本的編寫,上傳文件處理邏輯第四步即可對其進行調用執行,至此可完成文件導入讀取、數據識別轉換和庫表寫入全過程的數據處理。
基于上述數據處理執行流程,將2014—2016年各次技能人員崗位勝任能力評價結果匯總表(共約5 000條記錄)依次導入,得到最終匯總結果并在前端頁面展示,如圖3所示。

圖3 2014—2016年各次崗評結果匯總
經過比對檢查,驗證程序可正確處理以下情形:
(1)添加新的人員考試記錄;
(2)區分考生單項、維度及崗評總體成績是否通過;
(3)考生再次參加相同班組、崗位及項目的考試且成績不同,以最新成績為準;
(4)考生再次參加相同班組、崗位及項目的考試但成績相同,以最早時間為準;
(5)對考生被標記為“免考”或“認定”的項目,默認為通過;
(6)對考生被標記為“缺考”的項目,視為0分;
(7)考生申報班組或崗位等級變更并參加考試,作為新考試記錄進行添加。
將該工具應用于崗位勝任能力評價結果統計的實際業務中,取得了顯著成效。以往使用手工方式進行表格數據的篩選、查詢、比對和復制,人力資源部人才評價專責需要花費2 h以上時間對每月約100條考生考試記錄進行處理,且數據繁多密集易導致不同程度的誤操作。通過該工具,針對上文2014—2016年的各次崗評結果,從用戶導入文件、程序執行匯總到展示最終結果,耗時僅約2 min,在完成效率和準確率方面具有明顯的提升效果,切實滿足了用戶的業務需求。
崗評數據是培訓評價工作開展的基礎,沒有準確的基礎數據支撐,一切工作都無從談起,以信息技術為支撐建立起有效的數據信息化管理機制,是提高工作質量和效率的重要途徑。本文提出的解決方案和實用工具在實際應用中體現了處理速度快和準確率高的優勢,借助其技術原理和解決思路,在相關領域的信息技術應用中可進行下一步的研究及開發工作。