林仙土
(臺州科技職業學院,浙江 臺州 318020)
高校設備管理是學校日常工作中一項非常重要的工作,是學校教學和科研等工作的物質保障,對設備資產的有效管理已成為學校新時期發展的重要因素。在“雙高”建設背景下,高水平實驗室和設備信息化管理更是“雙高”建設不可或缺的重要組成部分。高校的儀器設備,尤其是實驗室里的教科研設備,具有種類多、數量大、轉移頻繁等特點,加上職業教育對實驗操作的需求遞增,使得設備管理的難度不斷加大[1]。一方面,傳統的PC資產管理系統在查詢、盤點、上報等操作時仍存在諸多不便,導致賬目信息反映不及時、人工成本較高等問題;另一方面,閑置的設備沒有及時發現,造成資源浪費,不利于學校發展。
隨著移動互聯網技術和智能手機的不斷發展,移動端應用在各行各業逐步發揮重要作用。微信小程序是一種不需要下載安裝即可使用的應用,具有觸手可及的特點,用戶只要掃一掃或搜一下即可打開應用,出色的用戶體驗使其成為移動端應用的最佳選擇[2-3]。本文提出基于微信小程序開發設備管理系統的移動端應用,通過設計出色的交互功能,使設備管理更方便、更及時,有效地提高工作效率,提升實驗室管理的效能,具有廣闊的應用前景。
本系統包含微信小程序、服務器端程序和數據同步程序3部分。微信小程序基于微信平臺底層支撐,使用微信開發者工具開發設計界面,可跨平臺運行在手機等移動設備上[4]。服務器端程序采用跨平臺語言Python開發,基于Django框架,包括兩個部分:(1)數據庫接口。實現與數據庫、微信小程序之間的數據交互。(2)后臺管理界面。實現設備信息、上報信息、盤點信息和用戶信息等數據的統一管理。數據同步程序采用Navicat實現本地數據庫與云數據庫的數據表自動同步。
微信小程序是一種新形態的輕量級應用,基于微信平臺支撐,其新穎的開放能力方便開發者快速搭建一個應用。微信小程序是基于MINA框架,框架分視圖層和邏輯層。視圖層用來渲染和展示頁面,使用描述語言WXML和樣式WXSS。邏輯層則用來處理業務邏輯,使用JavaScript邏輯層語言,再加上json配置文件,構筑了整個小程序框架。框架的核心是一個響應的數據綁定系統,當在邏輯層修改數據后,視圖層就會做相應的更新[5]。MINA框架封裝了文件系統、任務管理、網絡通信等基礎功能,對上層提供一整套API,讓開發者方便快速地構建具有原生App體驗的應用。這里摘取了盤點開始代碼如下:
startPd:function (){
……
data:JSON.stringify({
dwid:this.data.dwid,
stime:Date.now(),
pdrid:wx.getStorageSync("username")
}),
success:function (t){
a.setData({
pdid:t.data.data
})
a.ddChange();
wx.setStorageSync(’pdid’,a.data.pdid)
……
本系統采用了當前主流的關系型數據庫MySQL存儲數據。該數據庫是開源軟件,具有強大的數據處理功能。提供多線程和多語言支持,并能運行在不同的系統平臺上。針對不同的功能模塊,本數據庫設計了多張數據表,比如:設備信息表、單位信息表、盤點匯總表、盤點詳情表、上報情況表、用戶信息表、用戶權限表等。本系統數據庫的部分數據來自本地資產管理系統的數據庫,為實現數據的定期同步,采用數據庫管理工具Navicat設置批處理作業,進行定時數據傳輸。在數據傳輸前還需對數據進行調整,篩選有用數據,以用戶數據為例:
INSERT into user(username,password,dwid,name,phone,usergroup)SELECT distinct us.[用戶名],us.[密碼],us.[單位編號],sr.[人員名],us.[電話],us.[用戶權限] FROM USER us INNER JOIN S_RYK sr on us.[用戶名]=sr.[人員編號]。
Python是一種跨平臺的計算機程序設計語言,有高效率的高層數據結構,其核心特點是簡潔、直接、清晰,允許引入C/C++的擴展,使得它在Web開發、網頁爬蟲、數據分析、自動化運維、機器學習等多領域得到了廣泛應用。服務端程序主要處理業務邏輯和數據的交互,根據小程序端的數據請求,訪問MySQL數據庫并返回數據,同時對設備盤點記錄和上報信息進行存儲。盤點過程的代碼部分如下:
def pddetail(id):
pandian=db.session.query(Unit.dwname,Pddetail.Deviceid,Device.yqname,Pddetail.hasPd,
Pddetail.location).join(Unit,Unit.dwid==Device.dwid).join(Pddetail,Pddetail.Devicei
d==Device.yqid).filter(Pddetail.pdid == id).all()
jsonData = []
for row in pandian:
result = {}
result[’dwname’] = row[0]
result[’yqid’] = row[1]
result[’yqname’] = row[2]
result[’hasPd’] = row[3]
result[’location’] = row[4]
jsonData.append(result)
jsondatar = json.dumps(jsonData,cls=MyEncoder,ensure_ascii=False)
return jsondatar
設備管理系統包括4個模塊:用戶管理、設備查詢、設備盤點和設備上報。
用戶通過微信公眾號找到小程序,在登錄界面輸入用戶名和密碼,經驗證后即進入小程序主界面。系統管理員可登錄后臺管理,對用戶信息、用戶權限和用戶密碼進行設置。用戶權限主要分:普通用戶、部門管理員、單位管理員、單位領導、系統管理員5類角色,分別擁有不同的功能模塊權限。
該模塊提供用戶多條件查詢設備信息,用戶在小程序應用里輸入領用單位、設備編號、設備名稱或領用人名稱等條件進行篩選查詢,也可以通過掃設備條形碼直接查詢信息。此外,系統管理員可通過后臺對設備信息進行維護。
該模塊為資產管理員提供了便捷的盤點手段,可以選擇按照所在單位(實驗室)、領用人、存放地等條件進行盤點,盤點時對設備的位置狀態進行選擇,盤點過的設備使用灰底色標識,如位置不對時可填寫正確位置。盤點結束后,管理員可登錄后臺查看盤點詳情,根據不同標識進行篩選,并能導出記錄。
該模塊包含設備報修、設備保養、設備閑置、可疑設備上報等事件的處理。設備管理員通過填寫申請單、上傳圖片或文件等方式詳細報送設備處理事件,資產管理部門工作人員登錄系統進行審核,從而保留了設備異常事件的歷史記錄。設備閑置事件的上報能便于資產管理部門及時了解設備的使用狀況,通過調撥將閑置設備用于其他需要的地方。針對日常管理過程中有些無法核實身份或者被丟棄在室外的設備,用戶可通過系統報送該設備信息給資產管理部門,便于后續及時處理。
該系統已完成測試上線,以管理員賬號登錄,系統小程序端界面如圖1—4所示。
圖1 查詢界面
圖2 上報界面
圖3 盤點界面
圖4 個人界面
針對高校現有設備管理系統存在的不足和實際工作需要,本文介紹了一種基于微信小程序的設備管理系統設計與實現,充分利用小程序的便捷靈活,實現在移動端完成設備查詢、盤點、報修、調劑等功能。該系統操作簡單方便,有助于提升高校設備管理從粗放型向精細化轉變,能有效提高設備管理部門的工作效率,實現儀器設備的動態管理,充分發揮儀器設備的使用效益。