黃祖皓,趙彥喆,謝毓武,鄭慶華
(廣西科技大學(xué) 電氣電子與計(jì)算機(jī)科學(xué)學(xué)院,廣西 柳州 545616)
干部測(cè)評(píng)是高校對(duì)干部的管理、監(jiān)督、選拔、任用時(shí)進(jìn)行的必要考評(píng)管理工作??茖W(xué)、精確的對(duì)被測(cè)對(duì)象的客觀評(píng)價(jià),關(guān)系到干部的選拔、任用和培養(yǎng)。然而各高校在干部民主測(cè)評(píng)的方法、流程卻存在著很大差異。
之前的干部測(cè)評(píng)采用手工測(cè)評(píng)方式進(jìn)行,存在著工作周期長、工作量大、一般只統(tǒng)計(jì)總分、很難展現(xiàn)投票細(xì)節(jié)等一系列的問題,容易導(dǎo)致測(cè)評(píng)不到位,測(cè)評(píng)結(jié)果不能反映干部工作的真實(shí)水平,無法給領(lǐng)導(dǎo)干部更為細(xì)致的反饋。本文研究的內(nèi)容是:針對(duì)我校使用傳統(tǒng)方式在干部測(cè)評(píng)中存在的問題,設(shè)計(jì)開發(fā)一個(gè)Web測(cè)評(píng)系統(tǒng),極大地提高我校干部測(cè)評(píng)的工作效率和效果。
本項(xiàng)目以VUE、MySQL、Axios、Redis等多項(xiàng)技術(shù)開發(fā)一個(gè)干部測(cè)評(píng)系統(tǒng),實(shí)現(xiàn)一個(gè)在線測(cè)評(píng)管理、用戶管理、數(shù)據(jù)處理系統(tǒng),對(duì)干部德、能、績、廉等各個(gè)方面進(jìn)行測(cè)評(píng),并對(duì)測(cè)評(píng)指標(biāo)賦予權(quán)重化,然后再根據(jù)轉(zhuǎn)換公式計(jì)算出不同被測(cè)領(lǐng)導(dǎo)干部的得分,并把結(jié)果呈現(xiàn)給用戶。
測(cè)評(píng)系統(tǒng)的用戶分為三類:系統(tǒng)管理員,干部,測(cè)評(píng)人員。系統(tǒng)管理員負(fù)責(zé)基礎(chǔ)數(shù)據(jù)的維護(hù),包括職工數(shù)據(jù)、測(cè)評(píng)表、測(cè)評(píng)任務(wù)。干部負(fù)責(zé)提交述職報(bào)告和測(cè)評(píng)。測(cè)評(píng)人員只負(fù)責(zé)測(cè)評(píng)。測(cè)評(píng)進(jìn)行中以及結(jié)束后,管理員可查看統(tǒng)計(jì)分析結(jié)果。
整個(gè)系統(tǒng)的大致流程如圖1所示。
圖1 干部測(cè)評(píng)系統(tǒng)流程
(1)系統(tǒng)管理員創(chuàng)建職工數(shù)據(jù)后,干部和測(cè)評(píng)人員方能登錄測(cè)評(píng)系統(tǒng)。
(2)系統(tǒng)管理員創(chuàng)建測(cè)評(píng)表,創(chuàng)建測(cè)評(píng)任務(wù),把測(cè)評(píng)任務(wù)分配給干部作為被測(cè)評(píng)對(duì)象、分配給群眾作為測(cè)評(píng)人員。
(3)干部登錄后,可管理自己的述職報(bào)告。但要在分配到測(cè)評(píng)任務(wù)后,方能給測(cè)評(píng)任務(wù)提交述職報(bào)告。
(4)在測(cè)評(píng)任務(wù)的開始時(shí)間之后,干部和測(cè)評(píng)人員開始測(cè)評(píng)。
(5)測(cè)評(píng)的起始時(shí)間內(nèi),管理員可查看測(cè)評(píng)完成情況,通知未測(cè)評(píng)的人員及時(shí)測(cè)評(píng)。
(6)測(cè)評(píng)結(jié)束后,管理員可查看測(cè)評(píng)的統(tǒng)計(jì)分析結(jié)果,并下載相關(guān)信息存檔。
職工數(shù)據(jù)主要是測(cè)評(píng)者和被測(cè)評(píng)者的個(gè)人基本信息,該模塊主要的內(nèi)容就是對(duì)這些信息進(jìn)行管理,包括上傳職工信息表、查詢職工的基本信息、修改個(gè)人登錄密碼、刪除職工信息等各項(xiàng)內(nèi)容。導(dǎo)入的數(shù)據(jù)文件為Excel格式,首行為(工號(hào),姓名,部門,職務(wù))。由職務(wù)來區(qū)分干部和群眾:職務(wù)為空的為群眾(測(cè)評(píng)人員)。
該模塊主要對(duì)測(cè)評(píng)表進(jìn)行管理和測(cè)評(píng)任務(wù)進(jìn)行設(shè)定,如圖2所示。測(cè)評(píng)表管理包括測(cè)評(píng)表上傳、瀏覽測(cè)評(píng)表、刪除測(cè)評(píng)表、修改測(cè)評(píng)表基本信息。
圖2 測(cè)評(píng)表及測(cè)評(píng)任務(wù)預(yù)設(shè)定
測(cè)評(píng)表可由下面格式的文本文件上傳(導(dǎo)入)生成。由方括號(hào)[]區(qū)分各個(gè)測(cè)評(píng)小節(jié),在每個(gè)測(cè)評(píng)小節(jié)中,每一行對(duì)應(yīng)一個(gè)測(cè)評(píng)項(xiàng)。具體示例如下:
[思想政治建設(shè)]
#注釋與說明(#開頭,不會(huì)出現(xiàn)在最終測(cè)評(píng)表中):考察德品
貫徹民主集中制 議事決策規(guī)則健全
班子團(tuán)結(jié),分工合作
[領(lǐng)導(dǎo)能力]
工作目標(biāo)和規(guī)劃 工作思路和舉措
攻堅(jiān)克難、開拓進(jìn)取 管理效率與水平
……
最終生成的測(cè)評(píng)界面如圖3所示。
圖3 測(cè)評(píng)表預(yù)覽
測(cè)評(píng)表創(chuàng)建完成后,可以創(chuàng)建相應(yīng)的測(cè)評(píng)任務(wù)。測(cè)評(píng)任務(wù)分為3類:一般任務(wù)、部門內(nèi)任務(wù)、班子測(cè)評(píng)。一般任務(wù)需要分配被測(cè)評(píng)對(duì)象和測(cè)評(píng)人;部門內(nèi)的測(cè)評(píng)僅需分配被測(cè)評(píng)對(duì)象,測(cè)評(píng)人默認(rèn)為測(cè)評(píng)對(duì)象所在部門的所有人員(包括領(lǐng)導(dǎo)干部和群眾);如果測(cè)評(píng)任務(wù)的類型為班子測(cè)評(píng),則被測(cè)評(píng)對(duì)象,每個(gè)部門只能選擇1人,由他代表整個(gè)班子進(jìn)行述職報(bào)告的提交。
干部述職模塊主要包括干部述職報(bào)告的上傳、提交、查看、刪除,如圖4所示。干部擁有提交、查看、刪除報(bào)告權(quán)限。測(cè)評(píng)人員僅可以查看述職報(bào)告和刪除測(cè)評(píng)。管理員擁有全部權(quán)限。管理員、干部、測(cè)評(píng)人員對(duì)于述職報(bào)告的權(quán)限。
圖4 操作對(duì)象與干部述職表的關(guān)系圖
干部可以用 1 份上傳的述職報(bào)告提交給多個(gè)測(cè)評(píng)任務(wù)。在提交述職報(bào)告時(shí),干部也可以看到對(duì)應(yīng)的測(cè)評(píng)表內(nèi)容,以便有針對(duì)性地陳述自己的工作。
測(cè)評(píng)模塊主要包括查看述職報(bào)告、查看測(cè)評(píng)任務(wù)和測(cè)評(píng)開展,如圖5所示。
圖5 職工測(cè)評(píng)模塊功能預(yù)設(shè)
測(cè)評(píng)的界面如圖6所示。
圖6 測(cè)評(píng)界面效果,上方顯示測(cè)評(píng)任務(wù),左側(cè)為述職報(bào)告,右側(cè)為測(cè)評(píng)項(xiàng)
該模塊主要是通過數(shù)據(jù)采集和數(shù)據(jù)管理來進(jìn)行測(cè)評(píng)結(jié)果的統(tǒng)計(jì)和展示。在對(duì)處級(jí)干部進(jìn)行考核中,被測(cè)評(píng)者的客觀評(píng)價(jià),通過對(duì)各個(gè)指標(biāo)賦予相應(yīng)的測(cè)評(píng)權(quán)重,然后再根據(jù)統(tǒng)計(jì)公式計(jì)算出最終得分。通過多個(gè)報(bào)表展示測(cè)評(píng)的各個(gè)方面結(jié)果。
(1)所有部門的測(cè)評(píng)完成率??稍诖颂幉榭次赐瓿蓽y(cè)評(píng)任務(wù)的部門及個(gè)人,以便及時(shí)通知。
(2)群眾測(cè)評(píng)情況。從群眾的角度來展示測(cè)評(píng)結(jié)果,可以按部門看到每個(gè)測(cè)評(píng)人對(duì)所有測(cè)評(píng)對(duì)象的評(píng)分情況。從中群眾間的對(duì)比中分析/發(fā)現(xiàn)群眾對(duì)領(lǐng)導(dǎo)干部的極端意見。
(3)領(lǐng)導(dǎo)測(cè)評(píng)結(jié)果。從領(lǐng)導(dǎo)干部的角度來展示測(cè)評(píng)結(jié)果,可以按部門看到每個(gè)被測(cè)評(píng)對(duì)象的評(píng)分情況。從領(lǐng)導(dǎo)間的對(duì)比中分析/發(fā)現(xiàn)領(lǐng)導(dǎo)干部之間的差異。
(4)領(lǐng)導(dǎo)測(cè)評(píng)分項(xiàng)詳情。對(duì)比部門內(nèi)領(lǐng)導(dǎo)間在各個(gè)測(cè)評(píng)細(xì)項(xiàng)上的結(jié)果差異,從各等級(jí)票數(shù)/分?jǐn)?shù)來分析/發(fā)現(xiàn)領(lǐng)導(dǎo)在各方面的差異,便于總結(jié)對(duì)領(lǐng)導(dǎo)的評(píng)價(jià)意見,有利于提升該領(lǐng)導(dǎo)的表現(xiàn)。
(5)班子測(cè)評(píng)結(jié)果。對(duì)比單位內(nèi)各部門的班子得分,用于比較部門間的班子得分。
(6)班子測(cè)評(píng)分項(xiàng)詳情。比較各個(gè)班子在班子測(cè)評(píng)細(xì)項(xiàng)中的差異。
(7)所有測(cè)評(píng)任務(wù)分?jǐn)?shù)。顯示各個(gè)任務(wù)中各被測(cè)對(duì)象的分?jǐn)?shù)。
(8)計(jì)算成績。此處列出了每個(gè)領(lǐng)導(dǎo)所對(duì)應(yīng)的測(cè)評(píng)任務(wù),按任務(wù)組進(jìn)行劃分,有相同任務(wù)的領(lǐng)導(dǎo)放在一個(gè)表格中,指定各任務(wù)的權(quán)重后,可計(jì)算出領(lǐng)導(dǎo)的測(cè)評(píng)總分。此功能也可以在分配完任務(wù)后檢查領(lǐng)導(dǎo)的測(cè)評(píng)任務(wù)是否正確。
(9)輸出最終結(jié)果。此功能可查看領(lǐng)導(dǎo)的最終得分,并可以導(dǎo)出Excel文件。還可以進(jìn)入領(lǐng)導(dǎo)的界面,查看他們的述職報(bào)告、被測(cè)評(píng)任務(wù)。還可以打包下載所有領(lǐng)導(dǎo)的述職報(bào)告,以便存檔。
系統(tǒng)采用主流的Web前后端分離進(jìn)行開發(fā)實(shí)現(xiàn),便于團(tuán)隊(duì)開發(fā)與維護(hù)。前端以Vue和Element-ui框架為基礎(chǔ),實(shí)現(xiàn)用戶數(shù)據(jù)的輸入以及結(jié)果的展示。后端以Java語言為主,采用Spring Boot/Jersey等框架,為前端提供Restful風(fēng)格的訪問接口,實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)、處理等功能。
2.1.1 前端界面設(shè)計(jì)
整個(gè)界面風(fēng)格如圖7所示,分為3個(gè)部分:上方為功能導(dǎo)航區(qū),列出系統(tǒng)的功能類別。上方右側(cè)為個(gè)人信息區(qū)域,提供密碼修改和退出登錄功能。中部左側(cè)為每個(gè)功能所提供的操作項(xiàng)目。中間部分為數(shù)據(jù)展示及操作區(qū)。
圖7 前端界面的統(tǒng)一風(fēng)格
2.1.2 軟件模塊設(shè)計(jì)圖
軟件開發(fā)分為基礎(chǔ)數(shù)據(jù)維護(hù)、測(cè)評(píng)表及測(cè)評(píng)任務(wù)設(shè)定、干部述職、職工測(cè)評(píng)、報(bào)表統(tǒng)計(jì)五大部分,為后端設(shè)計(jì)了如圖8所示的類圖。
2.1.3 restful api設(shè)計(jì)
為適應(yīng)不同客戶端應(yīng)用,系統(tǒng)的前后端接口采用restful api風(fēng)格,部分接口如表1所示。
表1 restfulapi示例
圖8 后端系統(tǒng)的主要類圖
Redis不僅是一個(gè)高性能的key-value存儲(chǔ)系統(tǒng),還是一個(gè)NOSQL類型數(shù)據(jù)庫,擁有強(qiáng)大的消息隊(duì)列,為高并發(fā)等一系列的問題提供一個(gè)緩存方案。Redis作為緩存的作用,能夠減少對(duì)數(shù)據(jù)庫的訪問壓力。它位于數(shù)據(jù)庫的前端,訪問數(shù)據(jù)時(shí),首先從Redis中查看該數(shù)據(jù)是否存在:若無,則從數(shù)據(jù)庫中提取到Redis緩存;如果有,則從Redis緩存中讀取,不訪問數(shù)據(jù)庫了。如圖9所示。
圖9 Redis緩存原理圖
系統(tǒng)從2個(gè)層面來保證數(shù)據(jù)的安全性與保密性:系統(tǒng)層與應(yīng)用層。
2.3.1 系統(tǒng)安全設(shè)計(jì)
(1)服務(wù)器系統(tǒng)安全。系統(tǒng)運(yùn)行的操作系統(tǒng)為Ubuntu 18.04,數(shù)據(jù)庫為Redis4.0,運(yùn)行環(huán)境OpenJDK-JRE-8.0,Web服務(wù)器為Nginx。
述職報(bào)告存儲(chǔ)在本地文件系統(tǒng)中,目錄權(quán)限設(shè)置為用戶本身可訪問,其他用戶均不可訪問,由操作系統(tǒng)來保障數(shù)據(jù)的安全。
系統(tǒng)僅開放80(HTTP)和443(HTTPS)端口,關(guān)閉其他所有的端口,限制所有用戶的遠(yuǎn)程登錄,確保服務(wù)器的安全運(yùn)行。
(2)數(shù)據(jù)庫安全設(shè)計(jì)。基礎(chǔ)數(shù)據(jù)存在本地?cái)?shù)據(jù)庫中,禁止遠(yuǎn)程訪問,設(shè)置數(shù)據(jù)庫用戶的復(fù)雜登錄密碼,確保只有應(yīng)用程序能夠訪問數(shù)據(jù)庫。設(shè)計(jì)相應(yīng)的機(jī)制,防止數(shù)據(jù)庫的注入攻擊。
(3)傳輸安全。根據(jù)用戶的網(wǎng)絡(luò)情況,支持 HTTPS 安全傳輸協(xié)議,使數(shù)據(jù)在用戶端瀏覽器和服務(wù)器之間的數(shù)據(jù)傳輸能夠加密進(jìn)行,極大提高數(shù)據(jù)的保密性。
如果僅在用戶的內(nèi)網(wǎng)使用,則無法使用HTTPS協(xié)議,chrome之類的瀏覽器會(huì)在地址欄提示“不安全”。這只是chrome瀏覽器暗示所有網(wǎng)站都應(yīng)該使用HTTPS而已,對(duì)于無法訪問Internet的內(nèi)部網(wǎng)絡(luò),可適當(dāng)降低傳輸方面的要求。
2.3.2 應(yīng)用安全設(shè)計(jì)
(1)密碼。用戶輸入的密碼,在用戶端即進(jìn)行了加密處理,使用的方法為 SHA256,在目前的條件下,解密仍是不可逆的,保證了用戶的原始密碼。
(2)訪問控制(access control)。用戶登錄后,使用令牌(Token)代替用戶來進(jìn)行資源的訪問,保護(hù)了用戶的信息。
為了確保令牌的安全,設(shè)計(jì)了相應(yīng)的簽名機(jī)制,確保用戶的令牌不被其他用戶冒用。
(3)認(rèn)證(authenticate)。對(duì)于所有的系統(tǒng)基礎(chǔ)信息(用戶信息、測(cè)評(píng)表、測(cè)評(píng)任務(wù)、統(tǒng)計(jì)報(bào)表等),每次訪問都要驗(yàn)證令牌是否是系統(tǒng)管理員所有,防止信息泄露。
對(duì)于所有的用戶資源(述職報(bào)告、測(cè)評(píng)任務(wù)等),每次訪問都要進(jìn)行認(rèn)證,確保用戶的令牌與用戶本身一致,防止信息的盜用。
(4)鑒權(quán)(authorize)。系統(tǒng)管理員把測(cè)評(píng)任務(wù)分配給相關(guān)的領(lǐng)導(dǎo)干部和測(cè)評(píng)人員后,相應(yīng)對(duì)象才擁有對(duì)這些任務(wù)及測(cè)評(píng)表的訪問權(quán)限。
領(lǐng)導(dǎo)干部給測(cè)評(píng)任務(wù)提交述職報(bào)告后,相關(guān)的測(cè)評(píng)人員對(duì)該述職報(bào)告才有訪問權(quán)限。
對(duì)于所有的測(cè)評(píng)表、測(cè)評(píng)任務(wù)、述職報(bào)告,每次訪問都要對(duì)用戶進(jìn)行鑒權(quán),判斷用戶是否擁有相應(yīng)的權(quán)限,防止信息的泄露。
本文從理論和技術(shù)實(shí)現(xiàn)兩個(gè)方面,對(duì)基于緩存與消息隊(duì)列的高并發(fā)Web處級(jí)干部測(cè)評(píng)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)過程進(jìn)行了詳細(xì)的介紹。本系統(tǒng)有以下3個(gè)特點(diǎn):
(1)無紙化在線測(cè)評(píng),使得整個(gè)測(cè)評(píng)過程及結(jié)果都可以清晰可見、并且匿名化適當(dāng)保護(hù)測(cè)評(píng)者隱私。通過細(xì)致的分析各項(xiàng)測(cè)評(píng)細(xì)節(jié)、綜合客觀科學(xué)地反映處級(jí)干部各方面能力,為組織部選用人才提供可靠參考。
(2)設(shè)計(jì)符合安全要求的數(shù)據(jù)傳輸及訪問授權(quán)機(jī)制,確保測(cè)評(píng)信息的保密性。由于系統(tǒng)部署在校園內(nèi)網(wǎng),暫時(shí)無法采用安全的HTTPS協(xié)議進(jìn)行數(shù)據(jù)的傳輸,因此,在不安全的HTTP協(xié)議上實(shí)現(xiàn)可信的測(cè)評(píng)是本系統(tǒng)的一個(gè)創(chuàng)新點(diǎn)。
(3)設(shè)計(jì)一套高并發(fā)框架,以適應(yīng)測(cè)評(píng)的高突發(fā)特性。測(cè)評(píng)通知下發(fā)后,我校數(shù)千職工可能會(huì)帶來一些訪問尖峰。借鑒一些緩存、消息隊(duì)列等方案,提高系統(tǒng)吞吐率并進(jìn)行削峰處理,沉穩(wěn)應(yīng)對(duì)可能的高并發(fā)訪問。