韩英
(晋中职业技术学院,山西 晋中 030600)
信息技术飞速发展,军队信息化建设正进行得热火朝天。随着军队现代化改革的逐步深入,武器装备蓬勃发展,弹药的型号、种类也不断丰富。面对弹药产品的多样化,弹药的信息管理难度逐渐增加[1-4]。现阶段的弹药包装信息传递方式主要还是使用装箱单的方式,这种方式传递的信息量小,无法记录包装在运输过程中的信息,机器对装箱单可读性低[5],进行数字化管理还需要占用大量资源进行人工录入,效率低下。为了解决以上不足,提升管理水平,实现数字化管理[6],开发了基于二维码技术的弹药包装信息管理系统[7-8]。
二维码(QR Code)是在一维条码(Bar Code)的基础上扩展出一维具有可读性的条码。现已广泛应用于商业、工业、交通运输、移动互联网、物联网、物资管理、仓储等各个行业[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
基于二维码技术完成了弹药包装信息管理系统的设计,实现了弹药产品信息的录入、生成、识别、信息综合查询、用户管理、数据库维护备份等系统的核心功能。该系统为提升弹药产品信息管理数字化水平、普及弹药序号化管理,提供了一种新方法,可解决弹药信息管理难点,也可为弹药信息管理技术研究提供参考。