基于Qt 的轻量级商品配送系统设计

2022-02-01 10:21姜开永李文达林钦鸿梁浩文
科学技术创新 2022年36期
关键词:单据线程商家

黎 逍,姜开永,李文达,林钦鸿,梁浩文

(广州城市理工学院,广东 广州 510000)

零售批发商或小型库存企业在日常工作中,需要对大宗货物进行进销存、订单管理和货物分拣等工作,由于接触的商品类别,进出货的上下游商家/ 企业较多,往往耗费大量的时间和精力对商品信息进行维护。但由于经营规模或经营成本的限制,很多商家依然采用账本登记的方式记录销存信息等内容,这种方法不仅记录方式效率低,而且容易出现错误。特别是进行商品盘点时还需要人工介入,不仅人工成本较高,而且工作重复,效率低下。随着信息化在生活工作中的普及,这些商家若想提高效益,改善营销环境,就需要引入信息化管理措施,以降低订单和配送错误率,实现精准运营。为了契合这类商家的需求,因而研发设计了一款轻量级的商品配送系统。

1 系统结构

本系统采用Qt 框架[1]、lua 脚本语言和C++ Boost库[2]进行开发实现。其中,Qt 实现界面UI 设计;lua 脚本实现系统顶层功能实现,用于改善系统效率和灵活度;Boost 库作为C++语言的标准库,以便使用C++扩展的程序库,用于加快系统开发速度。

本系统的整体结构如图1 所示。根据商家对业务的需求,本系统划分了客户管理、商品管理、单据管理和业务员管理等模块。其中,客户管理和业务员管理属于基础数据的管理,能够实现对人员信息的注册、修改、删除和显示等操作;单据管理和商品管理属于业务数据的管理,能够实现对商品和订单的增、删、改、查操作。

图1 系统整体结构图

2 数据库设计

本系统采用PostgreSQL 数据库[3],用于存储数据信息。根据系统整体结构图中划分的逻辑功能进行数据库的设计,本系统需要创建包括客户信息表、业务员信息表、商品信息表和单据信息表在内的,共4 个数据表,部分表的信息如下:客户信息表如表1,记录了客户名称、客户类型、店铺名称、客户区域和客户地址等内容。

表1 客户信息表

商品信息表如表2,记录了商品条码、商品名称、规格、单价、系列和仓库等内容。

表2 商品信息表

单据信息表如表3,记录了客户地址、店铺名称、业务员、商品信息等内容。

表3 订单信息表

3 系统实现

3.1 系统主界面

系统主界面采用简约的设计风格,如图2 所示,界面从上到下分为三个部分,第一部分,包含软件名称和常用工具,用于燮制窗口关闭、最小化、发送邮件和查看信息等功能;第二部分,包含主功能燮件,用于实现系统的主要功能;第三部分,用于对所选功能进行解释说明。

图2 系统主界面

3.2 客户管理

客户管理集成了客户浏览、添加和删除操作,点击客户管理燮件,打开后的客户管理对话框如图3 所示。

图3 客户管理

客户管理对话框的顶部,设置了信息检索区和功能燮件区,当记录的客户数量较多时,可通过检索区域进行客户查询;也可以在该对话框内添加新客户或者修改现有客户信息等。

以客户信息修改为例,点击客户信息栏中的一个客户,使之处于被选中的状态,然后点击【客户信息修改】,即可进入客户修改对话框,如图4 所示。

图4 客户修改对话框

3.3 单据管理

单据管理是对客户采购订单的管理,能够进行基本的采购操作,如果商品在仓库的数量不足,将会进行提示,如图5 所示。

图5 单据管理

单据管理模块是本系统的核心模块,用于实现商家对单据进行统计和管理的功能。主要包括:新增单据、预览/打印单据和单据处理等功能。新增单据又分新增商品、删除商品和修改商品等功能;单据处理包括:显示单据详细信息,通过店铺名称、客户地址、查询时间段筛选单据信息,删除单据等功能。

单据处理模块在实现时,采用线程池和RAII 机制。程序一开始运行后,便初始化八个线程并使它们处于阻塞状态。当有一个IO 处理即数据的读取或者写入时,就会唤醒一个阻塞的线程处理IO 操作,以便线程在后期执行时不会影响主线程的执行。本系统使用线程池目的是方便管理线程的创建和销毁,防止反复开辟线程,以降低资源开销,提高系统运行效率。

3.4 商品管理

商品管理模块实现对商家的商品进行系统化管理功能,[4-5]录入系统的商品能够销售给客户,并记录在订单上,如图6 所示。

图6 商品管理

商品管理模块的功能包括增加商品、删除商品和修改商品信息等,可通过商品编码、商品名称和商品系列筛选商品的信息,为商家提供便利搜索的功能。其中,增加商品可以为商品增加商品序号、商品条款码、商品名称、商品规格单价等信息。商家也可在后台进行商品数据的录入。

为了便于数据筛选和查询,减少索引冲突,商品管理模块编程时,序号是通过自增索引进行自动生成的。

3.5 数据备份

备份数据模块,用于备份系统的数据,防止系统崩溃后导致数据丢失的问题产生,如图7 所示。

图7 数据备份

点击备份数据按键后,即可将数据备份成独立的文件,商家可通过查看文件来获取备份的内容,也可以进行再次存储和转发。

4 系统测试

在系统的客户模块、产品模块和业务员模块中,分别录入对应的数据后,进入单据管理模块并创建订单,若能启动打印机并进行打印操作,则表明系统运行正常,如图8所示。

图8 形成的配送单据

5 结论

本文研究并设计的基于Qt 框架的商品配送系统,采用C/S 结构,能够在Windows 系统上安装使用。由于采用C++多线程和线程池技术,对系统的资源开销小,运行效率高。系统的功能紧凑,从数据录入到配送订单生成直至最终打印,操作过程简单,形成的订单及其内容准确,打印输出纸质订单便于商家核对和保存。该系统的应用,对于提升商家的信息化管理和精准营销,具有一定的推动作用。

猜你喜欢
单据线程商家
中国人不骗中国人
基于C#线程实验探究
No.4 快手电商:已帮助至少50万线下商家恢复生意
基于国产化环境的线程池模型研究与实现
第三方单据辨析
线程池调度对服务器性能影响的研究*
汇票在信用证项下单据融资中的作用
重视单据的寄送
春节黄金周陕西省商家揽金二百一十亿元
唛头导致单据“不清洁”?