料场燃料收购系统软件的设计与实现
2024-06-03段晋鄂
段晋鄂
摘要:文章结合燃料收购核心业务,全面分析了燃料收购管理的各类需求,采用数字化设备,应用QT技术、MySQL数据库设计开发了一个面向对象的燃料收购系统。
关键词:燃料收购管理;QT技术;MySQL数据库
doi:10.3969/J.ISSN.1672-7274.2024.04.016
中图分类号:TP 31,TP 392 文献标志码:B 文章编码:1672-7274(2024)04-00-04
The Design and Implementation of Fuel Acquisition System
Software for the Stock Yard
DUAN jine
(Wuhan Huafeng Electronics Engineering Co., Ltd., Wuhan 430074, China)
Abstract: In this paper, combined with the core business of fuel acquisition, a comprehensive analysis of fuel acquisition management needs, using digital equipment, QT technology, MySQL database design and development of an object-oriented fuel acquisition system.
Keywords: fuel acquisition management; QT technology; MySQL database
0 引言
隨着科学技术的不断进步,料场的建设、管理都向着信息化、智能化的方向发展,建立智能化料场是生产经营管理高效性、实时性的迫切需要,当前料场收料的管理一般以人工管理为主,需要将各环节分开处理,效率较低,而且各个环节需要派专人执行,也导致人工管理的成本过高,而且完全依赖人为操作,也容易出现错误,更有甚者还会营私舞弊。
本系统设计的初衷是针对现有技术的不足,提供一种料场收购管理系统,通过对供应商的身份进行验证,通过称重得到燃料的重量,并根据原料的类型和等级确定单价,最后计算得到收料的总价,并将收料信息发送至上游数据库,从而对料场收料过程的身份验证、称重计量、票据打印和数据上传进行一体化管理。
1 系统开发技术
1.1 QT框架
QT框架是一种跨平台的应用程序开发框架,它提供了广泛的工具和组件,使得开发人员可以快速、高效地开发各种类型的应用程序。QT框架采用面向对象的设计思想,通过良好的封装机制实现了高度模块化和可重用性,QT引入了一种安全的信号/槽机制来替代传统的回调方式,简化了组件间的协作工作。QT框架提供了超过250个C++类,涵盖了模板、序列化、文件、I\O设备、目录管理、日期/时间等众多功能。使用QT框架进行软件开发,将享受跨平台的灵活性、面向对象的开发便捷以及丰富的API支持,从而提升开发效率并实现更强大的应用程序。
1.2 MySQL数据库
MySQL由瑞典MySQL AB公司开发,是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,增加了速度并提高了灵活性[1] 。MySQL优化的SQL查询算法,有效地提高查询速度,特别是在处理大量数据时,具有很高的效率;提供了许多强大的功能,例如数据库触发器、存储过程、视图等。
2 系统分析
2.1 功能需求分析
该系统的需求主要源于为适应社会信息化的快速发展,拟将料场的建设、管理向着信息化、智能化的方向发展。该系统主要用于供应商刷卡入场,确认基本信息和过磅信息;刷卡出场,核对卡号信息和扣杂信息;最后打印小票,在供应商出场刷卡确认基本信息后,管理员刷卡选择燃料图片和燃料等级,输入扣杂重量,确认最终信息;每一次的收料过程都将生成抓拍图片和过磅数据捆绑在一起存储在收料主机内,总部的管理人员有需求时可通过上网模块,连接互联网调用相关信息到总部的燃料收购系统管理平台。料场核心业务以燃料收、储、加工为主,建立智能化料场,提高生产经营管理的高效性、实时性。
2.2 数据流程分析
供应商送料至料场主要经过入场和出场两个数据流程。
(1)入场数据流程。每一位供应商都配有唯一身份识别的送料卡。供应商来到设备箱处通过显控模块选择“入场”后,供应商刷卡,刷卡同时地磅摄像机进行抓拍动作,抓拍图片内容包括地磅上车辆情况(燃料、车牌、车内人员等),入场完成后则生成入场记录数据(包括客户姓名、公司代码、项目部代码、料场编号、过磅单号、过磅类型、IC卡号、客户编号、身份证号、毛重、过毛时间、过毛图片、上传时间)。
(2)出场数据流程。在送料车进入料场卸料返回地磅上时,供应商来到设备箱处通过显控模块选择“出场”后,供应商刷卡,刷卡同时地磅摄像机进行抓拍动作,抓拍图片内容包括地磅上车辆情况(燃料、车牌、车内人员等)。之后料场管理人员在设备箱的显控模块上点击输入燃料种类、燃料等级、扣杂、结算单价信息,刷管理卡确认后,供应商再次刷送料卡确认信息,触发人脸采集模块进行拍照,同时打印模块将打印出此次收料的结算小票。出场完成后生成出场记录数据(包括燃料名称、燃料编号、燃料单价、燃料金额、皮重、扣杂、过皮图片、扣杂图片、过皮时间)。
每一次的自动收料过程都将生成3副抓拍图片和过磅数据捆绑在一起,和软件生成的一条过磅单号一起存储在收料主机内,总部的管理人员有需求时可通过上网模块,连接互联网调用相关信息到总部的燃料收购系统管理平台。
3 系统设计
3.1 系统设计原理
燃料收购系统软件实现进场、称重、出场结算、图片抓拍等进场流程的一体化设计。系统遵循模块化设计的原理,组成软件系统的模块满足高内聚低耦合的要求。该系统采用架构分层设计思想,把各个功能模块划分为数据采集层、数据处理层、表示层三层架构,各层之间采用接口相互访问,对料场的进场、称重计算、凭据打印、数据上传进行一体化管理,实现料场的收、储、加工全过程智能化操作,提高料场管理的规范性、实时性,減少人工管理的成本。数据采集层、数据处理层、表示层详细设计如下描述。
3.1.1 数据采集层
刷卡入场后采集客户姓名、公司代码、项目部代码、料场编号、过磅单号、过磅类型、IC卡号、客户编号、身份证号、客户联系电话、客户家庭住址、毛重、过毛时间、过毛图片、上传时间;刷卡出场后采集选择的燃料名称,燃料编号、燃料等级、燃料单价、燃料金额、皮重、扣杂、过皮图片、扣杂图片、过皮时间。
3.1.2 数据处理层
(1)生成本地的记录数据。入场完成后生成入场记录数据(包括客户姓名、公司代码、项目部代码、料场编号、过磅单号、过磅类型、IC卡号、客户编号、身份证号、毛重、过毛时间、过毛图片、上传时间),出场完成后生成出场记录数据(包括燃料名称、燃料编号、燃料单价、燃料金额、皮重、扣杂、过皮图片、扣杂图片、过皮时间)。其中过磅单号由过磅系统自动生成(公司代码+项目代码+村级点+年月日+流水号,过磅系统未连接入信息系统时,采用人工将数据批量导入方式。燃料名称从燃料选择的种类获取。结算金额等于结算单价乘净重)。
(2)本地数据上传。本地数据库数据上传:总部服务器发出请求时,将本地的用户入场信息上传到总部服务器数据库。在本地数据库入场信息记录表添加上传状态字段,将本地更新的数据库记录上传到总部数据库记录表,并对本地上传状态进行更改。
(3)本地数据更新。本地数据库需要实时更新用户信息表、燃料信息表、燃料价格表。在总部数据库添加数据库新增、修改、删除记录触发器,新建一张总部数据变更记录表和料场更新时间记录表,总部数据发生变化时会激活相应触发器,在变更记录表内记录本次数据变更的表名、操作(新增、删除、修改)、更新时间。
①根据配置的时间,本地查询总部料场更新时间记录表,查询到本料场的最新更新时间,查询总部数据表更表记录,查看是否有更新时间大于本料场最新更新时间,有则表示需要更新数据。
②查询总部更新记录表获取对应的表名、操作代码、记录主键号。根据表名、操作代码、记录主键号,将总部数据实时更新到本地数据库,保存信息的一致性。
备注:为了保证数据更新的准确性,初始化时需要将本地数据与总部数据保持一致。因为数据更新的依据是数据的操作时间,需要校准本地时间和系统时间。
3.1.3 表示层
表示层以用户体验为中心设计原则,界面直观简洁,操作方便快捷用户接触软件后对界面上对应的功能一目了然,不需要太多培训就可以方便使用本应用系统[2] 。在进行UI设计时充分考虑布局的合理性,遵循用户从上而下,自左向右浏览;避免常用业务功能按键排列过于分散,造成用户鼠标移动距离过长的弊端。
3.2 功能模块设计
该系统集成了读卡模块、显控模块、称重模块、实时摄像、打印小票、数据上传等功能,系统运行流程图如图1所示。各设备采用有线网络相连,将过磅数据和图像信息存储在本地,总部的管理人员有需求时可通过互联网调用相关信息到总部的燃料收购系统管理平台。
(1)读卡模块:燃料收购系统软件接收读卡模块读取供应商的送料卡上的身份信息。读卡模块可读取非接触式智能IC卡,通过USB接口与收料主机内工控模块免驱动连接。
(2)显控模块:刷卡显示客户信息(入场时显示姓名、料场编号、毛重、过毛时间,出场时显示对应的燃料名称和燃料图片、燃料等级),生成用户过磅单号(公司代码+项目代码+料场编号+年月日+记录编号)、料场级别、过磅信息等插入数据库。
(3)称重模块:供应商刷卡后将车停在地磅上,确认后就会显示毛重在界面上。
(4)实时摄像:当供应商入场刷卡(用枪机摄像)、出场刷卡(用枪机摄像)、最后确认打印时刷卡就会实时摄像(用针孔摄像机摄像)。
(5)打印小票:当供应商刷卡确认打印后,打印出小票信息(包括:日期、时间、姓名、燃料、毛重、皮重、净重、扣杂、实际净重、单价、金额)。
(6)数据上传:燃料品种信息、燃料价格信息24小时同步一次,客户信息在规定时间段进行同步。在用户送料记录表里生成一条数据保存在本地服务器,有需求时数据同步,过程中异常状态会触发事件回滚。
3.3 数据库设计
数据库是对所有数据进行统一管理,为数据的安全性、完整性、并发控制和数据恢复提供了保证。利用数据库,能够实现对数据的快速检索和维护。该系统的数据库名字为MySQLDB。该系统的数据库表主要有用户信息表、燃料信息表、燃料价格表、入场记录表,为了保证数据更新的准确性,初始化时需要将本地数据与总部数据保持一致。
3.4 界面设计
用户界面采用主框架加子界面的模式,主框架一直保留在桌面上,子界面在业务处理过程中被调用并放置于主框架之上,处理完业务逻辑后自动关闭。各界面风格、背景等保持一致性。
该界面为料场燃料收购系统的主界面,供应商通过触摸屏选择入场或出场,送料人必须先入场,再出场;每次入场需将同类型物料一次放在地磅上;送料过多,或种类多,需分多次进行入场、出场流程。软件主界面如图2所示。
用户点击入场按钮,完成入场程序后返回信息确认界面,供应商核对信息后点击确认进入下一流程,点击返回键回到初始界面。送料人必须认真核对卡号是否正确,该卡号作为结算的唯一凭证。用户信息确认界面如图3所示。
用户点击确认按钮返回过磅后信息显示界面,显示信息均为自动生成,不能编辑,右边区域为拍摄图片显示区域。供应商确认信息后点击确认进入下一界面。返回键回到初始界面。送料人必须认真核对数据,该数据作为结算唯一凭证;点击确认后表示信息无误,若有异议请联系管理员并点击返回。过磅信息显示界面如图4所示。
用户完成入场后,点击主界面出场按钮,进入出场选料界面,显示燃料类型图片,图片为可点击区域,选择图片后自动显示燃料类型名称,燃料等级选择为单选方式,选择完成后自动显示燃料等级在上方区域,管理员选择完毕后点击确认进入下一界面。管理员必须认真核对数据,燃料名称和等级作为结算价格唯一凭证。出场选料界面如图5所示。
管理员点击确认按钮后显示最终信息确认界面,界面中管理员扣杂可以通过下方数字点击区域进行选择,输入错误可通过清除回退,数字按键右边为采集图像显示区域,输入无误后点击确认进入下一界面,点击取消返回上级界面。管理员必须认真核对数据,所有数据将作为最终数据存档;扣杂由管理员填写。送料信息确认界面如图6所示。
送料信息确认后显示打印信息界面,点击确认并打印,将打印出票据信息,该界面持续1分钟,超过时间将返回上一界面。送料小票打印界面如图7所示。
4 程序的测试
该系统通过单元、功能、接口等方面的测试,系统目前能够正常的运行;通过入场、出场功能的测试,该系统的使用流程简洁流畅,操作方式简单。与传统的人工管理模式相比,通过对供应商身份进行验证,接收称重模块发送的燃料的总质量,根据燃料的类型和等级确定单价,计算得到燃料的收购总价,待收到管理员和供应商确认后,将收料信息存储到本地数据库。该系统既满足收料一站式快速反应的特点,又满足相关收料信息和视频信息采集处理备案的功能,使得燃料收购流程更加规范和简单。
5 结束语
本文结合燃料收购核心业务,全面分析了燃料收购管理的各类需求,采用数字化设备,应用QT技术、MySQL数据库设计开发了一个面向对象的燃料收购系统,整个系统以实用、操作方便、简洁、性能高效为原则,简化燃料收购的过程,提高燃料收购的效率;通过对燃料收购核心业务的综合分析,建设一套数字化智能料场系统满足生产经营管理的高效性、实时性,适应社会信息化的快速发展。
参考文献
[1] 崔敏,刁波,黎勇.十堰市震害防御技术服务系统的实现与应用[J].华北地震科学,2020, 38(S1):119-125.
[2] 陈明阳,李晢.“less is more”在UI界面中的應用与研究[J].科技视界, 2017(02):197.