韓英
(晉中職業技術學院,山西 晉中 030600)
信息技術飛速發展,軍隊信息化建設正進行得熱火朝天。隨著軍隊現代化改革的逐步深入,武器裝備蓬勃發展,彈藥的型號、種類也不斷豐富。面對彈藥產品的多樣化,彈藥的信息管理難度逐漸增加[1-4]。現階段的彈藥包裝信息傳遞方式主要還是使用裝箱單的方式,這種方式傳遞的信息量小,無法記錄包裝在運輸過程中的信息,機器對裝箱單可讀性低[5],進行數字化管理還需要占用大量資源進行人工錄入,效率低下。為了解決以上不足,提升管理水平,實現數字化管理[6],開發了基于二維碼技術的彈藥包裝信息管理系統[7-8]。
二維碼(QR Code)是在一維條碼(Bar Code)的基礎上擴展出一維具有可讀性的條碼?,F已廣泛應用于商業、工業、交通運輸、移動互聯網、物聯網、物資管理、倉儲等各個行業[9]。二維碼很大程度上可以說是條形碼的一種升級版本,相較于條形碼,二維碼具有如下優勢:高密度編碼,信息容量大;編碼范圍廣;容錯能力強,具有糾錯能力;譯碼可靠性高;可引入加密措施等[10]。相較于RFID,二維碼又有成本低、易于制作、持久耐用等優點。綜合以上的幾點對比,認為二維碼相比條形碼和RFID 更適合用來存儲彈藥包裝的信息。
彈藥包裝信息管理系統整體架構分為用戶層、業務層、數據層共3 層[11],如圖1 所示,這種架構的優勢在于降低開發人員的工作量,減少了重復的代碼量,提升開發效率,使軟件具有較好的維護性和擴展性[12]。系統采用了C/S(Client/Server)模式[13]開發,客戶端和服務器直鏈接,相較于B/S(Browser/Server)模式,信息安全更為可控,數據傳輸更快,也更為穩定[14]。Client 部分是以PyCharm 為開發工具,基于Python 語言進行開發[15]。

圖1 彈藥包裝信息管理系統架構Fig.1 Architecture diagram of ammunition packaging information management system
彈藥包裝信息管理系統客戶端主要有系統設置、彈藥信息管理、彈藥信息查詢、數據庫維護、相關工具等幾個功能模塊組成,見圖2。

圖2 彈藥包裝信息管理系統模塊Fig.2 Module diagram of ammunition packaging information management system
系統設置模塊主要包括系統初始用戶管理、權限管理、密碼設置。用戶需要輸入用戶名和密碼登錄才能使用該系統。該系統的用戶組主要分為2 類:管理員和普通用戶。管理員擁有最高權限,可以完全管理數據庫內各表的信息,對數據庫的日志也能查看和管理,還能管理數據庫的備份和恢復等。普通用戶賬戶的增刪及權限的賦予或撤銷也是管理員的權限。該系統中,用戶權限直接決定了用戶是否能夠訪問相應的功能或者模塊。比如普通用戶沒有權限管理的操作權限,當普通用戶登錄后,權限管理的功能按鈕將會不顯示在系統設置的菜單中。
彈藥信息管理該模塊是實現用戶對各個表中的數據增加、刪除、修改以及綜合查詢等功能的關鍵部分。模塊包括了彈藥信息管理、彈藥包裝信息管理、彈藥生產質量信息管理等。
考慮到用戶權限設置的便利性和數據庫的安全性,系統設計了彈藥信息查詢模塊。在該模塊中,用戶可以對數據庫中的數據進行查詢,還能導出信息、生成報表等,但是不能對數據進行任何修改。
數據庫維護模塊主要包括日志管理、數據庫備份與恢復。根據該系統的用戶權限設置,只有管理員或管理源授權后的用戶有權限對該模塊進行查看和操作。數據庫日志記錄了數據庫所有的事件和錯誤的信息,是數據庫出錯后恢復的關鍵功能之一。
相關工具模塊中,內建的二維碼標簽生成打印工具可以將數據庫中的彈藥數據批量輸出打印成二維碼標簽。此外,模塊還整合了一些相關的國家標準和國家軍用標準,可以提供快捷查詢功能。
數據庫設計在整個系統設計中是相當重要的一個環節,數據庫的結構合理與否直接決定了系統在使用過程中的效率高低。對設計彈藥包裝信息的數據庫而言,需要結合E-R 建模[16]綜合考慮分析各個字段設計選用,盡可能減少數據冗余、節約存儲空間、提升數據庫訪問效率。
系統數據庫是基于SQL Server 2019 建立[17]的,SQL Server 是微軟開發的關系型數據庫管理系統,具有集成度高、開發方便快捷、管理數據庫簡單直觀等優點,同時還能夠實現分布式數據庫系統,基于以上特點,該系統選用了SQL Server 來建立數據庫并進行開發設計。數據庫共設計了3 個數據表,分別為彈藥信息、彈藥生產質量信息、彈藥包裝信息。
根據前文系統功能分析,綜合考慮彈藥產品的需求,建立彈藥信息、生產質量信息及包裝信息的E-R圖,見圖3—5。

圖3 彈藥信息E-R 圖Fig.3 E-R diagram of ammunition information

圖4 生產質量信息E-R 圖Fig.4 E-R diagram of production quality information

圖5 包裝信息E-R 圖Fig.5 E-R diagram of packaging information
根據分析繪制的E-R 圖的內容,將實體和實體間的聯系轉化為關系模式,并確定這些關系的屬性。最終數據庫共設計了3 個數據表,分別為彈藥信息(Ammo_info)表、彈藥生產質量信息(Produ_info)表及彈藥包裝信息(Pack_info)表,見表1—3,各表的字段設計如下。

表1 彈藥信息Tab.1 Information of ammunition
1)彈藥信息(Ammo_info):彈藥編號(a_id)、種類(a_type)、彈藥名稱(a_name)、口徑(a_size)。
2)彈藥生產質量信息(Produ_info):彈藥編號(a_id)、批號(a_batch_num)、序號(a_serial_num)、彈質量(a_weight)、生產日期(produ_date)、有效日期(eff_date)、生產廠商(manufac)。
3)彈藥包裝信息(Pack_info):包裝編號(pack_id)、彈藥名稱(a_name)、規格(spec)、包裝形式(pack_type)、包裝尺寸(pack_size)、總質量(total_weight)。

表2 彈藥生產質量信息Tab.2 Information of ammunition production quality

表3 彈藥包裝信息Tab.3 Information of ammunition packaging
完成數據庫表設計之后,根據表1—3 中各個字段的定義可以確立數據庫表之間的關系,見圖6。在彈藥信息(Ammo_info)表中,彈藥編號(a_id)字段為主鍵,彈藥名稱(a_name)為外鍵;在彈藥生產質量信息(Produ_info)表中,彈藥編號(a_id)字段為主鍵;在彈藥包裝信息(Pack_info)表中,包裝編號(pack_id)為主鍵,彈藥名稱(a_name)為外鍵。

圖6 數據庫表間關系Fig.6 Relationship among database sheets
主要結合前文所述的系統設計和數據庫設計的2個部分,在PyCharm 開發環中基于Python 語言和微軟SQL Server 數據庫對系統的各個模塊進行具體實現,系統主界面見圖7。

圖7 系統主界面Fig.7 Main interface of system
系統主界面在實現過程中,從實際出發,考慮了彈藥信息以及包裝信息管理的日常工作需求,將“彈藥信息管理”、“彈藥信息查詢”、“識別二維碼標簽”和“輸出二維碼標簽”幾個系統的核心且最常用的功能入口放在了窗口上方比較顯眼的位置。
核心功能的下方是數據庫操作功能區,該區的“添加”、“修改”、“刪除”選項是以管理員賬號或者管理員授權了數據庫修改權限的用戶登錄后,點擊“彈藥信息管理”界面才顯示出來的。如1.1 節所敘述,如果使用僅有只讀權限的用戶登錄系統的話,未被授權的功能選項將不會在系統中顯示出來,即“彈藥信息管理”以及下方的4 個操作選項都不會顯示,用戶只能訪問“彈藥信息查詢”的功能。
數據庫的快捷信息檢索部分設計在了操作功能區下方,復選框可以選擇檢索方式和檢索字段。在檢索框下方所呈現的就是數據庫的3 個表,“彈藥信息表”、“彈藥生產質量表”、“彈藥包裝信息表”。在表格右側,會根據所選擇的表列自動生成對應的二維碼。
用戶點擊“識別二維碼標簽”選項后,系統會啟動攝像頭,并自動捕捉畫面中的二維碼,系統識別后會將信息與數據庫中的信息進行對比和校驗,最后彈出對話框,并輸出二維碼所對應的彈藥信息或者彈藥包裝信息,見圖8。

圖 8 掃描結果Fig.8 Scanning result
基于二維碼技術完成了彈藥包裝信息管理系統的設計,實現了彈藥產品信息的錄入、生成、識別、信息綜合查詢、用戶管理、數據庫維護備份等系統的核心功能。該系統為提升彈藥產品信息管理數字化水平、普及彈藥序號化管理,提供了一種新方法,可解決彈藥信息管理難點,也可為彈藥信息管理技術研究提供參考。