韓英
(晉中職業(yè)技術(shù)學(xué)院,山西 晉中 030600)
信息技術(shù)飛速發(fā)展,軍隊(duì)信息化建設(shè)正進(jìn)行得熱火朝天。隨著軍隊(duì)現(xiàn)代化改革的逐步深入,武器裝備蓬勃發(fā)展,彈藥的型號、種類也不斷豐富。面對彈藥產(chǎn)品的多樣化,彈藥的信息管理難度逐漸增加[1-4]?,F(xiàn)階段的彈藥包裝信息傳遞方式主要還是使用裝箱單的方式,這種方式傳遞的信息量小,無法記錄包裝在運(yùn)輸過程中的信息,機(jī)器對裝箱單可讀性低[5],進(jìn)行數(shù)字化管理還需要占用大量資源進(jìn)行人工錄入,效率低下。為了解決以上不足,提升管理水平,實(shí)現(xiàn)數(shù)字化管理[6],開發(fā)了基于二維碼技術(shù)的彈藥包裝信息管理系統(tǒng)[7-8]。
二維碼(QR Code)是在一維條碼(Bar Code)的基礎(chǔ)上擴(kuò)展出一維具有可讀性的條碼?,F(xiàn)已廣泛應(yīng)用于商業(yè)、工業(yè)、交通運(yùn)輸、移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、物資管理、倉儲等各個行業(yè)[9]。二維碼很大程度上可以說是條形碼的一種升級版本,相較于條形碼,二維碼具有如下優(yōu)勢:高密度編碼,信息容量大;編碼范圍廣;容錯能力強(qiáng),具有糾錯能力;譯碼可靠性高;可引入加密措施等[10]。相較于RFID,二維碼又有成本低、易于制作、持久耐用等優(yōu)點(diǎn)。綜合以上的幾點(diǎn)對比,認(rèn)為二維碼相比條形碼和RFID 更適合用來存儲彈藥包裝的信息。
彈藥包裝信息管理系統(tǒng)整體架構(gòu)分為用戶層、業(yè)務(wù)層、數(shù)據(jù)層共3 層[11],如圖1 所示,這種架構(gòu)的優(yōu)勢在于降低開發(fā)人員的工作量,減少了重復(fù)的代碼量,提升開發(fā)效率,使軟件具有較好的維護(hù)性和擴(kuò)展性[12]。系統(tǒng)采用了C/S(Client/Server)模式[13]開發(fā),客戶端和服務(wù)器直鏈接,相較于B/S(Browser/Server)模式,信息安全更為可控,數(shù)據(jù)傳輸更快,也更為穩(wěn)定[14]。Client 部分是以PyCharm 為開發(fā)工具,基于Python 語言進(jìn)行開發(fā)[15]。
圖1 彈藥包裝信息管理系統(tǒng)架構(gòu)Fig.1 Architecture diagram of ammunition packaging information management system
彈藥包裝信息管理系統(tǒng)客戶端主要有系統(tǒng)設(shè)置、彈藥信息管理、彈藥信息查詢、數(shù)據(jù)庫維護(hù)、相關(guān)工具等幾個功能模塊組成,見圖2。
圖2 彈藥包裝信息管理系統(tǒng)模塊Fig.2 Module diagram of ammunition packaging information management system
系統(tǒng)設(shè)置模塊主要包括系統(tǒng)初始用戶管理、權(quán)限管理、密碼設(shè)置。用戶需要輸入用戶名和密碼登錄才能使用該系統(tǒng)。該系統(tǒng)的用戶組主要分為2 類:管理員和普通用戶。管理員擁有最高權(quán)限,可以完全管理數(shù)據(jù)庫內(nèi)各表的信息,對數(shù)據(jù)庫的日志也能查看和管理,還能管理數(shù)據(jù)庫的備份和恢復(fù)等。普通用戶賬戶的增刪及權(quán)限的賦予或撤銷也是管理員的權(quán)限。該系統(tǒng)中,用戶權(quán)限直接決定了用戶是否能夠訪問相應(yīng)的功能或者模塊。比如普通用戶沒有權(quán)限管理的操作權(quán)限,當(dāng)普通用戶登錄后,權(quán)限管理的功能按鈕將會不顯示在系統(tǒng)設(shè)置的菜單中。
彈藥信息管理該模塊是實(shí)現(xiàn)用戶對各個表中的數(shù)據(jù)增加、刪除、修改以及綜合查詢等功能的關(guān)鍵部分。模塊包括了彈藥信息管理、彈藥包裝信息管理、彈藥生產(chǎn)質(zhì)量信息管理等。
考慮到用戶權(quán)限設(shè)置的便利性和數(shù)據(jù)庫的安全性,系統(tǒng)設(shè)計(jì)了彈藥信息查詢模塊。在該模塊中,用戶可以對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行查詢,還能導(dǎo)出信息、生成報(bào)表等,但是不能對數(shù)據(jù)進(jìn)行任何修改。
數(shù)據(jù)庫維護(hù)模塊主要包括日志管理、數(shù)據(jù)庫備份與恢復(fù)。根據(jù)該系統(tǒng)的用戶權(quán)限設(shè)置,只有管理員或管理源授權(quán)后的用戶有權(quán)限對該模塊進(jìn)行查看和操作。數(shù)據(jù)庫日志記錄了數(shù)據(jù)庫所有的事件和錯誤的信息,是數(shù)據(jù)庫出錯后恢復(fù)的關(guān)鍵功能之一。
相關(guān)工具模塊中,內(nèi)建的二維碼標(biāo)簽生成打印工具可以將數(shù)據(jù)庫中的彈藥數(shù)據(jù)批量輸出打印成二維碼標(biāo)簽。此外,模塊還整合了一些相關(guān)的國家標(biāo)準(zhǔn)和國家軍用標(biāo)準(zhǔn),可以提供快捷查詢功能。
數(shù)據(jù)庫設(shè)計(jì)在整個系統(tǒng)設(shè)計(jì)中是相當(dāng)重要的一個環(huán)節(jié),數(shù)據(jù)庫的結(jié)構(gòu)合理與否直接決定了系統(tǒng)在使用過程中的效率高低。對設(shè)計(jì)彈藥包裝信息的數(shù)據(jù)庫而言,需要結(jié)合E-R 建模[16]綜合考慮分析各個字段設(shè)計(jì)選用,盡可能減少數(shù)據(jù)冗余、節(jié)約存儲空間、提升數(shù)據(jù)庫訪問效率。
系統(tǒng)數(shù)據(jù)庫是基于SQL Server 2019 建立[17]的,SQL Server 是微軟開發(fā)的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),具有集成度高、開發(fā)方便快捷、管理數(shù)據(jù)庫簡單直觀等優(yōu)點(diǎn),同時還能夠?qū)崿F(xiàn)分布式數(shù)據(jù)庫系統(tǒng),基于以上特點(diǎn),該系統(tǒng)選用了SQL Server 來建立數(shù)據(jù)庫并進(jìn)行開發(fā)設(shè)計(jì)。數(shù)據(jù)庫共設(shè)計(jì)了3 個數(shù)據(jù)表,分別為彈藥信息、彈藥生產(chǎn)質(zhì)量信息、彈藥包裝信息。
根據(jù)前文系統(tǒng)功能分析,綜合考慮彈藥產(chǎn)品的需求,建立彈藥信息、生產(chǎn)質(zhì)量信息及包裝信息的E-R圖,見圖3—5。
圖3 彈藥信息E-R 圖Fig.3 E-R diagram of ammunition information
圖4 生產(chǎn)質(zhì)量信息E-R 圖Fig.4 E-R diagram of production quality information
圖5 包裝信息E-R 圖Fig.5 E-R diagram of packaging information
根據(jù)分析繪制的E-R 圖的內(nèi)容,將實(shí)體和實(shí)體間的聯(lián)系轉(zhuǎn)化為關(guān)系模式,并確定這些關(guān)系的屬性。最終數(shù)據(jù)庫共設(shè)計(jì)了3 個數(shù)據(jù)表,分別為彈藥信息(Ammo_info)表、彈藥生產(chǎn)質(zhì)量信息(Produ_info)表及彈藥包裝信息(Pack_info)表,見表1—3,各表的字段設(shè)計(jì)如下。
表1 彈藥信息Tab.1 Information of ammunition
1)彈藥信息(Ammo_info):彈藥編號(a_id)、種類(a_type)、彈藥名稱(a_name)、口徑(a_size)。
2)彈藥生產(chǎn)質(zhì)量信息(Produ_info):彈藥編號(a_id)、批號(a_batch_num)、序號(a_serial_num)、彈質(zhì)量(a_weight)、生產(chǎn)日期(produ_date)、有效日期(eff_date)、生產(chǎn)廠商(manufac)。
3)彈藥包裝信息(Pack_info):包裝編號(pack_id)、彈藥名稱(a_name)、規(guī)格(spec)、包裝形式(pack_type)、包裝尺寸(pack_size)、總質(zhì)量(total_weight)。
表2 彈藥生產(chǎn)質(zhì)量信息Tab.2 Information of ammunition production quality
表3 彈藥包裝信息Tab.3 Information of ammunition packaging
完成數(shù)據(jù)庫表設(shè)計(jì)之后,根據(jù)表1—3 中各個字段的定義可以確立數(shù)據(jù)庫表之間的關(guān)系,見圖6。在彈藥信息(Ammo_info)表中,彈藥編號(a_id)字段為主鍵,彈藥名稱(a_name)為外鍵;在彈藥生產(chǎn)質(zhì)量信息(Produ_info)表中,彈藥編號(a_id)字段為主鍵;在彈藥包裝信息(Pack_info)表中,包裝編號(pack_id)為主鍵,彈藥名稱(a_name)為外鍵。
圖6 數(shù)據(jù)庫表間關(guān)系Fig.6 Relationship among database sheets
主要結(jié)合前文所述的系統(tǒng)設(shè)計(jì)和數(shù)據(jù)庫設(shè)計(jì)的2個部分,在PyCharm 開發(fā)環(huán)中基于Python 語言和微軟SQL Server 數(shù)據(jù)庫對系統(tǒng)的各個模塊進(jìn)行具體實(shí)現(xiàn),系統(tǒng)主界面見圖7。
圖7 系統(tǒng)主界面Fig.7 Main interface of system
系統(tǒng)主界面在實(shí)現(xiàn)過程中,從實(shí)際出發(fā),考慮了彈藥信息以及包裝信息管理的日常工作需求,將“彈藥信息管理”、“彈藥信息查詢”、“識別二維碼標(biāo)簽”和“輸出二維碼標(biāo)簽”幾個系統(tǒng)的核心且最常用的功能入口放在了窗口上方比較顯眼的位置。
核心功能的下方是數(shù)據(jù)庫操作功能區(qū),該區(qū)的“添加”、“修改”、“刪除”選項(xiàng)是以管理員賬號或者管理員授權(quán)了數(shù)據(jù)庫修改權(quán)限的用戶登錄后,點(diǎn)擊“彈藥信息管理”界面才顯示出來的。如1.1 節(jié)所敘述,如果使用僅有只讀權(quán)限的用戶登錄系統(tǒng)的話,未被授權(quán)的功能選項(xiàng)將不會在系統(tǒng)中顯示出來,即“彈藥信息管理”以及下方的4 個操作選項(xiàng)都不會顯示,用戶只能訪問“彈藥信息查詢”的功能。
數(shù)據(jù)庫的快捷信息檢索部分設(shè)計(jì)在了操作功能區(qū)下方,復(fù)選框可以選擇檢索方式和檢索字段。在檢索框下方所呈現(xiàn)的就是數(shù)據(jù)庫的3 個表,“彈藥信息表”、“彈藥生產(chǎn)質(zhì)量表”、“彈藥包裝信息表”。在表格右側(cè),會根據(jù)所選擇的表列自動生成對應(yīng)的二維碼。
用戶點(diǎn)擊“識別二維碼標(biāo)簽”選項(xiàng)后,系統(tǒng)會啟動攝像頭,并自動捕捉畫面中的二維碼,系統(tǒng)識別后會將信息與數(shù)據(jù)庫中的信息進(jìn)行對比和校驗(yàn),最后彈出對話框,并輸出二維碼所對應(yīng)的彈藥信息或者彈藥包裝信息,見圖8。
圖 8 掃描結(jié)果Fig.8 Scanning result
基于二維碼技術(shù)完成了彈藥包裝信息管理系統(tǒng)的設(shè)計(jì),實(shí)現(xiàn)了彈藥產(chǎn)品信息的錄入、生成、識別、信息綜合查詢、用戶管理、數(shù)據(jù)庫維護(hù)備份等系統(tǒng)的核心功能。該系統(tǒng)為提升彈藥產(chǎn)品信息管理數(shù)字化水平、普及彈藥序號化管理,提供了一種新方法,可解決彈藥信息管理難點(diǎn),也可為彈藥信息管理技術(shù)研究提供參考。