梁民, 李雪梅
(中國人民大學,實驗室管理與教學條件保障處,北京 100872)
中國人民大學實驗室管理與教學條件保障處于2012年開發(fā)了一套B/S(Brower/Server)架構(gòu)的資產(chǎn)管理系統(tǒng),通過桌面電腦,可以實現(xiàn)資產(chǎn)的增、刪、查、改以及批量報增報減等功能,方便了資產(chǎn)管理,也給運維工作帶來了很大便利。在一線運維工作使用系統(tǒng)的過程中,經(jīng)常會遇到以下需求:(1)運維現(xiàn)場查詢某個資產(chǎn)信息或某類資產(chǎn)信息;(2)運維現(xiàn)場實時更新資產(chǎn)信息,特別是當資產(chǎn)位置發(fā)生變化后,第一時間更新資產(chǎn)位置信息。對于需求(1),可以通過手機或者便攜式設備,現(xiàn)場操作。但是,由于系統(tǒng)是為PC端設計的,可操作性和易用性以及用戶體驗不好。對于需求(2),更新資產(chǎn)信息通常有專門的資產(chǎn)負責人來操作,但并不是每個一線運維工作人員都有權(quán)限。系統(tǒng)中更新資產(chǎn)信息流程和實際工作有不符合之處,運維現(xiàn)場不能做到第一時間更改相關信息,導致了經(jīng)常有漏改的現(xiàn)象發(fā)生,由此帶來了一個資產(chǎn)的實際信息和系統(tǒng)中的信息不符的現(xiàn)象。
資產(chǎn)實際信息和系統(tǒng)中的信息不符的問題可以通過制定相應制度和提高運維人員責任心來盡量解決。但是,在運維現(xiàn)場不能方便地查詢資產(chǎn)信息以及系統(tǒng)中更新資產(chǎn)信息流程跟實際工作不符合之處,只能通過對系統(tǒng)的二次開發(fā)予以解決。考慮微信公眾平臺的系統(tǒng)開發(fā)能同時適用于Andriod和IOS等移動操作系統(tǒng),避免開發(fā)不同的移動應用程序所帶來的新問題,在微信極其普及的情況下[1],借助微信公眾號平臺,對資產(chǎn)管理系統(tǒng)進行了二次開發(fā),實現(xiàn)了通過微信掃描設備二維碼,讀取資產(chǎn)信息,并能通過手機或者iPad等移動設備對資產(chǎn)信息進行實時修改,較好地解決了以上問題。
現(xiàn)有的資產(chǎn)管理系統(tǒng)采用B/S架構(gòu),前臺主要有資產(chǎn)信息查詢、資產(chǎn)信息修改、資產(chǎn)報增報檢減等功能。系統(tǒng)后臺還能對用戶進行權(quán)限角色分配。
對系統(tǒng)二次開發(fā)后,要求能通過手機或者iPad等便攜移動設備在運維現(xiàn)場訪問系統(tǒng),實現(xiàn)資產(chǎn)的查詢和信息更改等功能。具體需要滿足以下功能:(1)基于移動端的資產(chǎn)信息查詢 ;(2)通過微信掃描資產(chǎn)標簽二維碼識別資產(chǎn),顯示資產(chǎn)相關信息;(3)通過移動端設備進行資產(chǎn)信息更改。另一方面,頁面設計要簡單簡潔,盡可能使用選擇框或者下拉菜單,以減少文字輸入。
系統(tǒng)設計方面主要包括系統(tǒng)的權(quán)限設計、功能設計以及數(shù)據(jù)庫設計,分述如下。
(1)權(quán)限設計
鑒于系統(tǒng)用戶僅為本單位運維人員,類型比較單一且用戶數(shù)比較少,系統(tǒng)設定一個系統(tǒng)管理員,其有最高權(quán)限。其他用戶關注公眾號并被系統(tǒng)管理員審批通過后,系統(tǒng)管理員可在后臺分配相應權(quán)限,比如掃碼識別資產(chǎn)權(quán)限,添加維修記錄權(quán)限,查詢資產(chǎn)信息權(quán)限以及修改資產(chǎn)信息權(quán)限。其中修改資產(chǎn)信息權(quán)限僅限于一線運維人員。
(2)資產(chǎn)信息變更功能設計
資產(chǎn)保管人和資產(chǎn)位置,有如下對應關系:某個運維人員作為某個樓宇或者某幾個樓宇的資產(chǎn)保管人,其對應關系為一對多;某個樓宇的資產(chǎn)只能有一個資產(chǎn)保管人,其對應關系為一對一。
設定所有運維人員均可對資產(chǎn)信息發(fā)起更改,但是必須經(jīng)過資產(chǎn)保管人確認后,才能在后臺更新相關數(shù)據(jù)。
運維現(xiàn)場通過移動設備對資產(chǎn)信息進行變更的工作流程如下:資產(chǎn)信息變更發(fā)起人通過掃描資產(chǎn)條形碼發(fā)起信息變更申請,系統(tǒng)自動獲得資產(chǎn)相關信息,信息變更發(fā)起人輸入相關信息;信息變更發(fā)起人提交申請后,系統(tǒng)會推送微信消息給該資產(chǎn)的保管人進行確認。同時,如果涉及到資產(chǎn)位置變更從而導致變更資產(chǎn)保管人的,也會發(fā)送信息給新保管者進行確認。當新舊資產(chǎn)管理人都確認后,資產(chǎn)更新記錄才會在數(shù)據(jù)庫中更新,該資產(chǎn)信息變更流程才算結(jié)束。
資產(chǎn)信息變更流程圖如圖1所示。

圖1 資產(chǎn)信息更新流程圖
(3)數(shù)據(jù)庫設計
現(xiàn)有的資產(chǎn)管理系統(tǒng),資產(chǎn)表Asset主要有資產(chǎn)號、資產(chǎn)名稱、存儲位置、領用人、入庫時間等字段。其中領用人一般為單位主管領導,平時并不參與具體運維工作。二次開發(fā)完成后,要具備運維現(xiàn)場更改設備相關信息功能,結(jié)合實際運維工作,數(shù)據(jù)庫中新建一個保管人表Custodian,主要有以下字段:保管人Custodian(varchar);樓宇1 Building1(tinyint);樓宇2 Building 2(tinyint);樓宇3 Building 3(tinyint);……。如果某個Custodian是某個樓宇設備的保管人,其對應的樓宇賦值為1,否則賦值為0。保管人表Custodian如表1所示。

表1 Custodian表
微信是騰訊公司于2011年1月21日推出的一個為智能終端提供即時通訊的免費應用程序,支持跨運營商、跨操作系統(tǒng)平臺通過網(wǎng)絡快速發(fā)送免費語音短信、視頻、圖片和文字[2]。微信公眾平臺(WeChat Public Platform)是騰訊公司于2012年推出的一款給個人、企業(yè)和組織提供業(yè)務服務與用戶管理能力的服務平臺。已經(jīng)形成了一種主流的線上線下微信互動營銷方式,有服務號、訂閱號和小程序3個類型。通過微信公眾平臺進行二次開發(fā)過程中,用戶首先要申請微信公眾號,并配置開發(fā)環(huán)境,設置相關接口,文獻[3]有詳細描述。接口通過json格式傳輸數(shù)據(jù),為了保證移動端和服務端數(shù)據(jù)傳輸相對安全,對接口進行加密傳輸。整體規(guī)范采用RESTful 方式來實施。API與用戶的通信協(xié)議,使用HTTPS協(xié)議,以確保交互數(shù)據(jù)的傳輸安全。
對系統(tǒng)的二次開發(fā),前臺采用Java、HTML、JavaScript語言混合編寫,數(shù)據(jù)庫使用原系統(tǒng)MySQL數(shù)據(jù)庫。
(1)微信服務器與第三方應用服務器的通信連接
建立微信服務器和第三方服務器的通信連接,在通信開始時必須對接入通信請求進行校驗,確認通信請求來自微信服務器。如果請求來自微信服務器,則原樣回寫請求參數(shù)內(nèi)容,此時雙方通信成功,否則不予處理,接入失敗。
第三方服務器和微信服務器通信校驗代碼如下[4]。
pubic boolean check(String signature,String
timestamp,String nonce)
{
Step 1
array.sort()
//將tocken timestamp nonce三個參數(shù)按照字典順序進行排序;
Step 2:排序后的字符串拼接成一個字符串,用content存儲拼接后的字符串;
Step 3:
MessageDigest.getlnstance(”SHA-1”).digest(”拼接后串”.getByte())
//將拼接后的字符串進行shal加密;
Step 4:
if(”加密后字符串”==signature){
return true;
}
return false;
} //將加密后的字符串與signature進行對比。
如果上述方法返回true值,表明微信服務器和第三方應用服務器校驗成功,接下來就可以進行通信工作。否則不能通信,微信公眾號接入失敗。
(2)掃描條形碼識別設備功能的實現(xiàn)
微信公眾號開發(fā)框架提供了對二維碼掃碼支持,通過與微信對接,調(diào)用微信官方提供的JS-SDK,可以實現(xiàn)有權(quán)限的用戶通過點擊微信公眾號頁面的按鈕來執(zhí)行條形碼掃描器功能。當用戶點擊頁面掃描按鈕后,后臺調(diào)用wx.scanCode函數(shù)觸發(fā)攝像頭描器掃描固定資產(chǎn)上面的條碼[5],掃描條碼后系統(tǒng)根據(jù)返回的掃描信息和資產(chǎn)數(shù)據(jù)庫進行匹配,調(diào)取相同資產(chǎn)編號(資產(chǎn)編號唯一)的資產(chǎn)詳細信息,并進行頁面可視化處理,處理后將數(shù)據(jù)展現(xiàn)在前臺頁面。
實現(xiàn)掃描條形碼識別設備功能的主要代碼如下[6]。
document.querySelector('#scanQRCode').onclick
//點擊按鈕掃描二維碼
function(){
wx.scanQRCode({ //調(diào)用wx.scanQRCode函數(shù)
needResult :1,//默認為0,掃描結(jié)果由微信處理,1則直接返回掃描結(jié)果,
scanType :[ "qrCode"],//可以指定掃二維碼還是條形碼,默認二者都有
success:function(res){
var result =res.resultStr;//當needResult 為 1 時,掃碼返回的結(jié)果
window.location.href =result;//跳轉(zhuǎn)到該頁面
}
(3)資產(chǎn)信息變更功能的實現(xiàn)
資產(chǎn)信息變更發(fā)起人通過微信公眾平臺掃描資產(chǎn)二維碼識別出設備后,點擊“更新資產(chǎn)信息”可以進行資產(chǎn)信息更新。后端主要過程如下。
首先,引用微信JS-SDK文件及調(diào)用getJsApiQrode()函數(shù),實現(xiàn)掃描固定資產(chǎn)上面的條形碼功能,資產(chǎn)被識別出后,系統(tǒng)自動獲取當前資產(chǎn)信息,資產(chǎn)信息變更發(fā)起人輸入要變更的項如下。



〈div class="but_r"〉〈a href="#" onclick='doSubmitForm()'〉提交〈/a〉〈/div〉
)
資產(chǎn)信息變更發(fā)起人提交資產(chǎn)信息變更請求后,系統(tǒng)首先判斷資產(chǎn)信息變更發(fā)起人是否為資產(chǎn)保管人且不涉及資產(chǎn)保管人變更,若為真,則后臺直接更新資產(chǎn)信息。
如果資產(chǎn)信息更新涉及到變更保管人或者資產(chǎn)信息更新發(fā)起人非資產(chǎn)保管人,系統(tǒng)自動推送微信消息給原保管人和新的保管人進行確認,發(fā)送模版消息給資產(chǎn)負責人進行確認變更資產(chǎn)信息的主要代碼如下。




資產(chǎn)信息變更完畢,系統(tǒng)后臺變更信息的代碼如下。

//修改資產(chǎn)信息





系統(tǒng)二次開發(fā)完成并成功上線運行后,極大地解決了原來系統(tǒng)不能解決的問題,工作人員可在運維一線比較方便地使用系統(tǒng)查詢資產(chǎn)設備,并可實時對資產(chǎn)信息進行更改。系統(tǒng)投入使用前,由于不能在運維一線實時更改設備信息,每年學校組織的資產(chǎn)清查工作,資產(chǎn)實際位置和系統(tǒng)中位置符合率不足80%。系統(tǒng)二次開發(fā)后,資產(chǎn)實際位置和系統(tǒng)中位置符合率已達98%以上。系統(tǒng)查詢界面如圖2所示。

圖2 系統(tǒng)查詢界面
實驗室管理與教學條件保障處于2012年基于電腦端開發(fā)了一套資產(chǎn)管理系統(tǒng),使用移動設備訪問不方便,同時,通過原來的系統(tǒng)在運維一線查詢和更改設備信息都不能很好展開?;谖⑿殴娖脚_,對系統(tǒng)進行了二次開發(fā),擴展了系統(tǒng)對移動設備的支持。系統(tǒng)二次開發(fā)完成并上線應用,提高了運維效率,簡化了工作程序,提高了信息化程度,對其他高校的資產(chǎn)管理工作的信息化建設工作,也有很好的借鑒意義。