段磊,劉濤,李偉鵬,張寧,咸日常,鄒國(guó)鋒
(1.國(guó)網(wǎng)山東省電力公司淄博供電公司,淄博 255000;2.山東理工大學(xué)電氣與電子工程學(xué)院,淄博 255049)
當(dāng)前供電部門(mén)涉密文件管理仍然采用傳統(tǒng)紙質(zhì)或Excel 公文管理方式,存在資源浪費(fèi),不利于存檔,檢索查詢不便等問(wèn)題,已明顯落后于現(xiàn)代企業(yè)管理制度,且無(wú)法實(shí)現(xiàn)涉密文件流轉(zhuǎn)的全程監(jiān)控,存在嚴(yán)重的泄密隱患,落后的涉密文件管理方式已無(wú)法滿足當(dāng)前企業(yè)的公文管理需求[1,2]。隨著計(jì)算機(jī)技術(shù)、數(shù)據(jù)存儲(chǔ)技術(shù)和人工智能的發(fā)展,涉密人員和涉密文件一體化智能管理系統(tǒng)越來(lái)越受到檔案管理部門(mén)的青睞[3]。本文考慮到供電部門(mén)涉密人員和文件管理的特殊性,設(shè)計(jì)了一套電子和實(shí)體檔案一體化管理系統(tǒng)。
針對(duì)涉密文件管控,王宇[4]提出融合射頻識(shí)別和條碼技術(shù)的紙質(zhì)涉密文件流轉(zhuǎn)管控機(jī)制,能夠較好解決機(jī)關(guān)辦公環(huán)境下紙質(zhì)文件的保密問(wèn)題,但無(wú)法針對(duì)涉密人員和文件接觸人員身份進(jìn)行核實(shí),更無(wú)法適用于供電部門(mén)涉密文件異地流轉(zhuǎn)的需求。文獻(xiàn)[5]研究了基于字符識(shí)別的檔案數(shù)字化技術(shù),通過(guò)紙質(zhì)涉密文件的電子化、數(shù)字化,提高了管理人員工作效率,便于涉密文件的后續(xù)統(tǒng)計(jì)和管控。姚媛等人[6]針對(duì)涉密文件的管控制度建設(shè)提出相應(yīng)的策略,對(duì)涉密文件管控理論和技術(shù)進(jìn)步具有重要指導(dǎo)意義。
鑒于供電部門(mén)對(duì)涉密人員和涉密文件一體化智能管理的迫切需求,本文對(duì)涉密人員和涉密文件的智能化管理技術(shù)進(jìn)行了詳細(xì)探討,設(shè)計(jì)了一套電子和實(shí)體檔案一體化管理平臺(tái)。該平臺(tái)能夠有效的實(shí)現(xiàn)信息化匯總,在存放實(shí)體涉密文件的同時(shí)通過(guò)OCR 技術(shù)的智能化錄入手段將信息在數(shù)據(jù)庫(kù)中實(shí)現(xiàn)了歸集、匯總、索引,以便于信息的檢索和查詢。該系統(tǒng)實(shí)現(xiàn)了各部門(mén)、單位兼職文書(shū)的線上管理,解決了文件領(lǐng)取人員混雜的現(xiàn)狀,確保文件專人專管,追溯源頭,避免了因傳閱人員過(guò)多導(dǎo)致的文件丟失、文件私自復(fù)印等隱患。該系統(tǒng)實(shí)現(xiàn)了涉密、非涉密收發(fā)文件的登記、流轉(zhuǎn)、分發(fā)、清退、銷(xiāo)毀的全過(guò)程記錄,確保了各類(lèi)文件各環(huán)節(jié)有跡可查,流程清晰、過(guò)程合規(guī),既避免了手工紙質(zhì)登記造成的流轉(zhuǎn)不便及不易保存,又保留了手工登記清晰明了、可查可閱的優(yōu)點(diǎn),對(duì)供電部門(mén)涉密文件管理規(guī)范化、系統(tǒng)化提升具有深遠(yuǎn)影響。
本系統(tǒng)主要包括涉密人員管理系統(tǒng)、涉密文件管理系統(tǒng)和系統(tǒng)配置管理系統(tǒng)等三個(gè)子系統(tǒng)。通過(guò)這些子系統(tǒng)的協(xié)作,實(shí)現(xiàn)信息化匯總,在存放實(shí)體涉密文件的同時(shí)通過(guò)智能化錄入等手段將信息在數(shù)據(jù)庫(kù)中實(shí)現(xiàn)了歸集、匯總、索引,以便于信息的檢索和查詢。實(shí)現(xiàn)重要文件數(shù)量及傳閱路徑的全過(guò)程管控,利用信息化手段提高工作效率。系統(tǒng)的整體功能框圖如圖1。
圖1 涉密人員和文件一體化智能管理系統(tǒng)框圖
本系統(tǒng)具備如下特點(diǎn):
(1)符合國(guó)家、行業(yè)對(duì)檔案管理的相關(guān)標(biāo)準(zhǔn)要求;
(2)存儲(chǔ)與歸檔系統(tǒng)具有操作簡(jiǎn)便性、高效性及實(shí)用性,安全性高、成本低、易維護(hù)等特點(diǎn);
(3)對(duì)重要檔案信息的存取、運(yùn)行環(huán)境實(shí)現(xiàn)虛擬管理,系統(tǒng)具有兼容性;
(4)檔案各類(lèi)操作具有可控性,可對(duì)檔案分區(qū)多級(jí)授權(quán)、多用戶共享;
(5)多樣化的檢索和調(diào)檔手段,極大地滿足檔案的分級(jí)管理需求;
(6)實(shí)體檔案、電子檔案互為關(guān)聯(lián),安全、管理一體化,系統(tǒng)極具有包容性。
涉密人員管理系統(tǒng)主要實(shí)現(xiàn)兩大功能:①實(shí)現(xiàn)成員分組與部門(mén)分組分別管理;②支持成員信息修改、變遷,部門(mén)信息修改、變遷。
用戶輸入用戶名以及相應(yīng)的用戶密碼,用戶名與用戶密碼相匹配,則登錄成功;反之,則登錄失敗。用戶登錄界面如圖2 所示。用戶登錄成功后首先進(jìn)入系統(tǒng)導(dǎo)航頁(yè)面,然后再根據(jù)自己的業(yè)務(wù)需要選擇功能模塊,進(jìn)行操作。
登錄時(shí)用到登錄名和密碼,使用用戶表user 進(jìn)行存儲(chǔ),用戶表中存儲(chǔ)用戶名、密碼和是否為管理員的判斷標(biāo)識(shí)。登錄模塊主要使用Spring 的Validator 校驗(yàn)機(jī)制以及Shrio 的安全驗(yàn)證機(jī)制。首先使用BindingResult與Validator 配對(duì)使用,由BindingResult 監(jiān)聽(tīng)前臺(tái)傳來(lái)的是否為User 用戶對(duì)象,若不是User 對(duì)象,則返回監(jiān)聽(tīng)結(jié)果;若監(jiān)聽(tīng)到的是User 對(duì)象,則創(chuàng)建一個(gè)SecurityUtils對(duì)象subject,同時(shí)調(diào)用UsernamePasswordToken 將前臺(tái)傳來(lái)的Username 和Upwd 生成令牌token,然后subject將token 傳入logion()。再將登錄結(jié)果導(dǎo)入HashMap,最后將結(jié)果轉(zhuǎn)換為Json 字符串傳到前臺(tái)。
圖2 用戶登錄界面
該模塊通過(guò)業(yè)務(wù)需求選擇界面,單擊“增加”按鈕,進(jìn)入添加成員的編輯頁(yè)面。根據(jù)增加成員的要求,依次填寫(xiě)用戶名、用戶所屬部門(mén)等信息。填寫(xiě)完畢后,單擊“保存”按鈕,頁(yè)面提示“操作成功”則增加成員操作成功;反之,則該操作失敗。最后,單擊“返回首頁(yè)”退回到增加成員之前的頁(yè)面。
圖3 添加成員界面
該模塊接收了前端錄入信息,并進(jìn)行數(shù)據(jù)寫(xiě)入,同時(shí)需要設(shè)置系統(tǒng)的錄入時(shí)間,操作結(jié)果返回用戶的ID和狀態(tài)碼。
刪除成員模塊主要是根據(jù)工作人員ID 進(jìn)行刪除,需保證刪除用戶的權(quán)限信息和指紋信息。刪除成員前,首先需要查看該成員是否存在未歸還的涉密文件,若存在未歸還的涉密文件,則不能刪除該成員。同時(shí),為便于查詢涉密文件借閱記錄,在實(shí)際刪除涉密工作人員時(shí),系統(tǒng)內(nèi)部只是將其標(biāo)志位設(shè)置為“刪除”,取消其權(quán)限信息,并不會(huì)將其文件借閱記錄真正刪除。保證了涉密文件的全過(guò)程監(jiān)控和對(duì)歷史借閱數(shù)據(jù)的監(jiān)控信息查詢。該模塊設(shè)計(jì)采用的方法或接口如表1。
表1 刪除成員模塊設(shè)計(jì)方法
涉密文件實(shí)體登記管理操作主要包括添加文件、刪除文件、修改文件、清退文件和銷(xiāo)毀文件等操作,操作界面如圖4 所示。
圖4 涉密文件登記管理操作界面
3.1.1 添加文件模塊
添加文件模塊,使用頁(yè)面右側(cè)的“啟用掃描儀”按鈕,將本地的文件上傳到服務(wù)器,進(jìn)行OCR 掃描,掃描后的結(jié)果保存在服務(wù)器中。然后,填寫(xiě)頁(yè)面左側(cè)的文件的基本信息,例如文件名、發(fā)文號(hào)、擬稿人、簽發(fā)人、密級(jí)等信息,填寫(xiě)完畢之后單擊“保存”按鈕對(duì)文件進(jìn)行保存。最后單擊“返回首頁(yè)”按鈕返回到上一頁(yè)面。
圖5 添加文件界面
該模塊在添加文件時(shí),需要考慮多種情形:
(1)待添加的文件已經(jīng)存在
①文件存在且已經(jīng)被分配。此時(shí)該文件不能被添加,返回IS_EXIST_BORROW_UID。
②文件存在且已經(jīng)被借走。此時(shí)文件也不能被添加,返回IS_EXIST_BORROW_UID_FILEGO。
(2)待添加的文件不存在
此時(shí)文件可以被添加,添加成功返回SUCCESS_INSERT,否則返回FAILURE_INSERT。
具體操作:調(diào)用insertCompanyFileInfoNew()方法,同時(shí)傳入?yún)?shù)文件對(duì)象companyFile,調(diào)用getCfid()方法獲取該文件的ID 以判斷該文件是否存在。若文件存在,則只能對(duì)文件進(jìn)行修改,即調(diào)用updateCompany-File()方法;否則可以添加該文件,同時(shí)要設(shè)置文件的添加時(shí)間,然后調(diào)用setCfdatetime()方法。返回操作結(jié)果。
3.1.2 刪除文件模塊
刪除文件模塊需要考慮以下三種情況:
(1)文件不存在。此時(shí)不能對(duì)文件進(jìn)行刪除,返回FILE_IS_NOTEXISTS。
(2)文件存在,但是已經(jīng)被借走。此時(shí)文件不能對(duì)文件進(jìn)行刪除,返回IS_BORROW。
(3)文件存在,且未被借走
①可以刪除,且刪除成功。此時(shí)可以對(duì)文件進(jìn)行刪除,返回SUCCESS_DEL。
②可以刪除,但是刪除失敗。此時(shí)可以對(duì)文件進(jìn)行刪除,但是刪除失敗,返回FAILURE_DEL。
具體操作:調(diào)用delCompanyFileNew()方法,將文件的ID 傳入?yún)?shù)。調(diào)用FileServiceImpl 接口下del-CompanyFileById()方法,按照文件ID 對(duì)文件進(jìn)行刪除。根據(jù)delCompanyFileById()方法的返回結(jié)果判斷文件的存在狀態(tài),并以JSON 字符的形式返回操作結(jié)果。
3.1.3 修改文件模塊
該模塊通過(guò)用戶單擊“修改”按鈕,根據(jù)需要對(duì)待修改的文件進(jìn)行修改,進(jìn)入文件信息編輯頁(yè)面。然后根據(jù)自己的需要對(duì)文件的基本信息進(jìn)行改寫(xiě)。改寫(xiě)完后單擊“保存”按鈕,然后單擊“返回首頁(yè)”返回到上一頁(yè)面。
具體操作:調(diào)用insertGetFileInfoNew()方法,將文件對(duì)象作為參數(shù)傳入。若文件存在,則調(diào)用FileServiceImpl 接口下的 updateGetFileByGFid()方法,對(duì)文件進(jìn)行修改;反之,調(diào)用insertGetFile()方法對(duì)文件進(jìn)行添加。使用result 變量暫存以上兩個(gè)方法的結(jié)果。然后根據(jù)result 的值進(jìn)行判斷文件的存在情況。
3.1.4 銷(xiāo)毀文件模塊
該模塊通過(guò)用戶單擊“銷(xiāo)毀”按鈕,根據(jù)需要對(duì)待銷(xiāo)毀的文件進(jìn)行銷(xiāo)毀。若系統(tǒng)彈出“操作成功”,則表明文件銷(xiāo)毀成功;否則,操作失敗。
在銷(xiāo)毀文件時(shí),需要考慮兩種情況:
●可以銷(xiāo)毀,且銷(xiāo)毀成功。此時(shí)可以對(duì)文件進(jìn)行銷(xiāo)毀,返回SUCCESS_DEL。
●可以銷(xiāo)毀,但是銷(xiāo)毀失敗。此時(shí)可以對(duì)文件進(jìn)行銷(xiāo)毀,但是銷(xiāo)毀失敗,返回FAILURE_INSERT。
具體操作:調(diào)用 updateCompanyFileIsDestroy()方法,將文件的ID 傳入?yún)?shù)。調(diào)用FileServiceImpl 接口下 updateCompanyFileIsDestroy()方法,按照文件 ID 對(duì)文件進(jìn)行刪除。使用result 變量暫存以上兩個(gè)方法的結(jié)果。然后根據(jù)result 的值進(jìn)行判斷文件的存在情況。
該模塊是通過(guò)用戶在文件搜索框中輸入要查找的文件關(guān)鍵字,然后單擊“搜索”按鈕。若系統(tǒng)中存在含有該關(guān)鍵詞的文件,則在搜索結(jié)果中顯示本次搜索結(jié)果;反之,表明該系統(tǒng)中不存在包含該關(guān)鍵字文件。
圖6 查詢文件界面
查詢文件模塊,可根據(jù)文件的密級(jí)、時(shí)間期限進(jìn)行二次篩選,還可以設(shè)置每頁(yè)的記錄數(shù)量。
具體操作:調(diào)用selectCompanyFileNew()方法,輸入秘密level、頁(yè)碼page、每頁(yè)數(shù)量pageSize、文件對(duì)象companyFile、截止時(shí)間endtime。然后調(diào)用 FileServiceImpl 接口下的 selectCompanyFile()方法,返回結(jié)果DisableCircularReferenceDetect。表2 所示為該模塊設(shè)計(jì)方法。
表2 文件查詢模塊設(shè)計(jì)方法
3.3.1 文件分發(fā)模塊
該模塊通過(guò)用戶單擊“分發(fā)文件”按鈕,選擇接受對(duì)象,對(duì)要分發(fā)的文件進(jìn)行分發(fā)。若系統(tǒng)提示“操作成功”,則表明本次操作成功;反之,則表明文件分發(fā)操作失敗。在進(jìn)行文件分發(fā)之前,先對(duì)文件的狀態(tài)進(jìn)行判斷,只有文件沒(méi)有被銷(xiāo)毀,沒(méi)有被分配,沒(méi)有被清退才能進(jìn)行文件分發(fā)。
圖7 分發(fā)文件界面
3.3.2 文件歸還模塊
該模塊通過(guò)用戶單擊“清退”按鈕,對(duì)要?dú)w還的文件進(jìn)行歸還。若系統(tǒng)提示“操作成功”,則表明文件歸還成功;反之,則表明文件歸還失敗。該模塊根據(jù)前端傳回的flag 判斷是進(jìn)行文件分發(fā)還是文件歸還。若flag=1 表示可以對(duì)文件進(jìn)行分發(fā);否則表示可以對(duì)文件進(jìn)行歸還。
若進(jìn)行文件分發(fā),需要先判斷文件是否已經(jīng)被分配,若已經(jīng)分配,則不能分發(fā);否則可以進(jìn)行分發(fā)。進(jìn)行文件分發(fā)之前需要更改文件的相關(guān)信息,設(shè)置文件的領(lǐng)取人、應(yīng)歸還時(shí)間等信息。
若進(jìn)行文件歸還,在進(jìn)行文件歸還時(shí)同樣需要對(duì)文件的相關(guān)信息進(jìn)行修改,設(shè)置歸還人和歸還時(shí)間。除此之外,還需要判斷文件是否完全歸還,并返回操作結(jié)果。
3.3.3 查看借閱歷史模塊
該模塊是通過(guò)用戶單擊“借閱歷史”按鈕,對(duì)要查看文件查看其借閱歷史。若該文件已經(jīng)被借閱,則系統(tǒng)會(huì)彈出頁(yè)面,顯示該文件的借閱情況;反之,若文件沒(méi)有被借出,則顯示空白。該模塊的設(shè)計(jì)思想與查詢文件模塊的設(shè)計(jì)思想相差不大。主要不同之處在于,查詢文件是根據(jù)CompanyFile 對(duì)象的信息進(jìn)行篩選,本模塊根據(jù)各部門(mén)的wid 進(jìn)行篩選。除此之外,該模塊還可以用于查詢文件或者個(gè)人的待領(lǐng)取、待歸還、已歸還等文件。
該模塊通過(guò)用戶單擊“數(shù)據(jù)庫(kù)備份”按鈕,對(duì)系統(tǒng)數(shù)據(jù)進(jìn)行備份。系統(tǒng)彈出提示頁(yè)面,用戶可以根據(jù)需求選擇備份的保存路徑,單擊“確認(rèn)”按鈕,成功實(shí)現(xiàn)數(shù)據(jù)庫(kù)備份,在保存目錄下生成一個(gè).sql 文件。
備份數(shù)據(jù)庫(kù)主要有以下關(guān)鍵步驟:
(1)確定備份后的文件保存目錄BACKUP_DIR;使用java.util.Properties 工具包下的getProperty()方法獲取系統(tǒng)中 Tomcat 的地址,再使用 String BACKUP_DIR = System.getProperty( "catalina.home" ) + "/OCR/pic/"+"filesystem_";拼接生成最終的備份文件存放目錄BACKUP_DIR。
(2)獲取MySQL 數(shù)據(jù)庫(kù)的相關(guān)配置信息;將項(xiàng)目中db.properties 文件轉(zhuǎn)換為字符流,再調(diào)用java.util.Properties 工具包將字符流中的jdbc.username、jdbc.password 值,返回 mysqlInfo。
(3)生成并調(diào)用cmd 命令進(jìn)行備份操作。使用靜態(tài)類(lèi)拼接 cmd 命令 String cmd = "mysqldump-u"+mysqlInfo[0] +"-p"+ mysqlInfo[1] +"--databases " +DB_NAME+"-r"+savePath+"--skip-lock-tables";再使 用 Process process = Runtime.getRuntime().exec(cmd);調(diào)用該 cmd。
圖8 系統(tǒng)配置管理界面
該模塊通過(guò)用戶單擊“數(shù)據(jù)庫(kù)還原”按鈕,對(duì)數(shù)據(jù)庫(kù)進(jìn)行還原。系統(tǒng)彈出系統(tǒng)提示,用戶選擇要還原的.sql 文件,完成數(shù)據(jù)庫(kù)還原。首先,獲取MySQL 的相關(guān)配置信息。調(diào)用上小節(jié)中的MysqlBackupUtils()工具類(lèi)獲取MySQL 配置文件的信息。然后,生成cmd 命令。最后,運(yùn)行cmd 命令進(jìn)行備份。模塊設(shè)計(jì)方法如表3 所示。
表3 數(shù)據(jù)庫(kù)還原模塊設(shè)計(jì)方法
針對(duì)當(dāng)前供電部門(mén)涉密人員和涉密文件管理的落后狀態(tài)和技術(shù)難題,本系統(tǒng)實(shí)現(xiàn)了電子和實(shí)體檔案一體化管理。針對(duì)涉密文件收發(fā)登記管理環(huán)節(jié)落后的信息錄入方式進(jìn)行改進(jìn),設(shè)計(jì)了結(jié)合指紋識(shí)別與OCR 技術(shù)的涉密載體收發(fā)登記管理方案。結(jié)合供電部門(mén)涉密文件的實(shí)際管理需求,本系統(tǒng)的開(kāi)發(fā)和成功應(yīng)用將有效克服供電部門(mén)涉密文件的丟失問(wèn)題,提高工作效率和信息利用率,為推動(dòng)涉密載體信息化和網(wǎng)絡(luò)化提供重要的借鑒案例。