CN117492667A - 兼容多发票机的打印方法、装置、服务器及存储介质 - Google Patents
兼容多发票机的打印方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN117492667A CN117492667A CN202311358196.7A CN202311358196A CN117492667A CN 117492667 A CN117492667 A CN 117492667A CN 202311358196 A CN202311358196 A CN 202311358196A CN 117492667 A CN117492667 A CN 117492667A
- Authority
- CN
- China
- Prior art keywords
- printing
- invoice
- target
- information
- consumption
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000007639 printing Methods 0.000 title claims abstract description 413
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000006243 chemical reaction Methods 0.000 claims description 22
- 238000009877 rendering Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 abstract description 22
- 230000005540 biological transmission Effects 0.000 description 23
- 230000006870 function Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 7
- 230000010365 information processing Effects 0.000 description 7
- 238000012544 monitoring process Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000003796 beauty Effects 0.000 description 4
- 238000003672 processing method Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000010023 transfer printing Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1253—Configuration of print job parameters, e.g. using UI at the client
- G06F3/1255—Settings incompatibility, e.g. constraints, user requirements vs. device capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1244—Job translation or job parsing, e.g. page banding
- G06F3/1245—Job translation or job parsing, e.g. page banding by conversion to intermediate or common format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1253—Configuration of print job parameters, e.g. using UI at the client
- G06F3/1257—Configuration of print job parameters, e.g. using UI at the client by using pre-stored settings, e.g. job templates, presets, print styles
Abstract
本申请涉及计算机技术领域,提供了一种兼容多发票机的打印方法、装置、服务器及存储介质,所述方法通过获取与消费打印信息相关的目标发票纸模版以及目标打印策略,从而根据获取的消费打印信息、目标发票纸模版和目标打印策略生成具体的发票打印指令,进而基于目标打印策略确定发票打印指令路由到目标发票机的路径,最终通过路由路径发送打印指令,以驱动相应的目标发票机执行实际的打印操作并生成发票。本申请通过将打印信息接收及处理进行集成,并生成特定于目标发票机的打印指令,实现了多个不同型号的发票机之间的兼容性。
Description
技术领域
本申请涉及计算机技术领域,尤其是涉及一种兼容多发票机的打印方法、装置、服务器及存储介质。
背景技术
目前用于打印支付/交班凭证的发票机之间存在着各种差异,例如,机型不同,与系统连接的网络协议不同,发票纸出票模板不同等,使得服务型企业的软件运营服务(Software as a Service,SaaS)系统无法兼容多种发票机。
发明内容
有鉴于此,本申请提供了一种兼容多发票机的打印方法、装置、服务器及存储介质,为解决软件运营服务无法兼容不同型号发票机的问题。
本申请第一方面提供了一种兼容多发票机的打印方法,所述方法包括:
获取与消费打印信息对应的目标发票纸模版及获取与所述消费打印信息对应的目标打印策略;
根据所述消费打印信息、所述目标发票纸模版及所述目标打印策略生成发票打印指令;
根据所述目标打印策略确定目标路由路径;
将所述发票打印指令路由至与所述目标路由路径对应的目标发票机进行发票打印。
在一个可选的实施方式中,所述获取与消费打印信息对应的目标发票纸模版包括:
获取所述消费打印信息中的打印标识;
从预设发票纸模版库中查询是否存在与所述打印标识对应的发票纸模版;
当查询到存在与所述打印标识对应的发票纸模版时,将查询到的发票纸模版确定为所述目标发票纸模版;
当查询到不存在与所述打印标识对应的发票纸模版时,将默认设置的发票纸模版确定为所述目标发票纸模版。
在一个可选的实施方式中,所述获取与所述消费打印信息对应的目标打印策略包括:
识别接收所述消费打印信息的应用程序编程接口类型;
当所述应用程序编程接口类型为预设第一类接口类型时,确定预设的第一打印策略为所述目标打印策略;
当所述应用程序编程接口类型为预设第二类接口类型时,确定预设的第二打印策略为所述目标打印策略。
在一个可选的实施方式中,所述根据所述消费打印信息、所述目标发票纸模版及所述目标打印策略生成发票打印指令包括:
根据所述消费打印信息及所述目标发票纸模板生成虚拟发票;
当所述目标打印策略为所述第一打印策略时,根据所述第一打印策略对所述虚拟发票进行第一数据渲染及第一格式转换,根据所述第一数据渲染及所述第一格式转换后的虚拟发票生成第一发票打印指令;
当所述目标打印策略为所述第二打印策略时,根据所述第二打印策略对所述虚拟发票进行第二数据渲染及第二格式转换,根据所述第二数据渲染及所述第二格式转换后的虚拟发票生成第二发票打印指令。
在一个可选的实施方式中,所述根据所述目标打印策略确定目标路由路径包括:
当所述打印策略为所述第一打印策略时,将部署的公有云路径确定为所述目标路由路径;
当所述打印策略为所述第二打印策略时,将部署的私有云路径确定为所述目标路由路径。
在一个可选的实施方式中,所述方法还包括:
当所述消费打印信息接收失败时,通知所述消费打印信息的信息发送端重新发送所述消费打印信息。
在一个可选的实施方式中,所述方法还包括:
根据所述消费打印信息生成销售数据,其中,所述销售数据包括商品销售数目;
当所述商品销售数目大于预设数目阈值时,按照预设报警方式进行报警。
本申请第二方面提供了一种兼容多发票机的打印装置,所述装置包括:
获取模块,用于获取与消费打印信息对应的目标发票纸模版及获取与所述消费打印信息对应的目标打印策略;
生成模块,用于根据所述消费打印信息、所述目标发票纸模版及所述目标打印策略生成发票打印指令;
确定模块,用于根据所述目标打印策略确定目标路由路径;
发送模块,用于将所述发票打印指令路由至与所述目标路由路径对应的目标发票机进行发票打印。
本申请第三方面提供了一种服务器,所述系统包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述的兼容多发票机的打印方法的步骤。
本申请第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的兼容多发票机的打印方法的步骤。
本申请提供的兼容多发票机的打印方法、装置、服务器及存储介质,通过获取与消费打印信息相关的目标发票纸模版以及目标打印策略,从而根据获取的消费打印信息、目标发票纸模版和目标打印策略生成具体的发票打印指令,进而基于目标打印策略确定发票打印指令路由到目标发票机的路径,最终通过路由路径发送打印指令,以驱动相应的目标发票机执行实际的打印操作并生成发票。本申请通过集成打印信息的处理以生成特定于目标发票机的打印指令,实现了多个不同型号的发票机之间的兼容。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的发票机服务器的应用环境示意图;
图2是本申请实施例提供的一种兼容多发票机的打印方法的流程图;
图3是本申请实施例提供的SaaS系统打印发票的方法的流程图;
图4是本申请实施例提供的一种兼容多发票机的打印装置的功能模块图;
图5是本申请实施例提供的服务器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前用于加油站打印支付/交班凭证的发票机存在各种差异,例如,发票机的机型不同,与系统连接的网络协议不同,发票纸出票模板不同等等,导致传统加油平台的油站SaaS系统无法兼容多种发票机设备。
现有同一个加油平台使用多套油站SaaS系统,每一套系统都需要独立配置与油站关联的发票机,或者,同一个加油平台采用型号完全相同的发票机。
然而,采用多套油站SaaS系统,需要油站工作人员在日常工作中来回切换油站SaaS系统,容易造成用户加油信息错乱,极大影响用户体验和加油效率。采用单一型号的发票机,则不利于油站对发票机更新换代的需求,而且发票机更新时,要求整个油站SaaS系统也要更新,更新成本较高。
因此,为解决同时兼容多种发票机的问题,本发明实施例提供了一种应用在油站SaaS系统中兼容多种发票机的方法、装置、服务器及存储介质。
参阅图1所示,为本申请实施例提供的一种发票机服务器的应用环境示意图。
发票机服务器与交易中心、油站SaaS、站点中心及多种不同型号的发票机进行链接。其中,交易中心负责发送订单支付和订单退款打印消息,油站SaaS负责发送交接班打印消息,站点中心提供小票纸模板查询。
发票机分为公有云部署和私有云部署(即兼容发票机远端服务部署和本地私有化部署)。
如图2所示为本申请实施例提供的一种兼容多发票机的打印方法的流程图。本申请实施例提供的兼容多发票机的打印方法包括以下步骤。
S21:获取与消费打印信息对应的目标发票纸模版及获取与所述消费打印信息对应的目标打印策略。
其中,消费打印信息为发票机打印指令,包括但不限于消费信息和打印标识。目标发票纸模版为预设的发票打印格式及内容。打印策略为预设的打印信息处理方法,通过预设的打印策略进行打印信息的数据化处理及数据传递进行规定。
通过监听消息队列(Message Queue,MQ)中接收到的信息并进行信息内容与预设的消息类型进行对比以识别信息的类型,从而筛选出消费打印信息。根据该消费打印信息进行预设目标发票模版的查询以获取该消费信息对应的目标发票纸模版,并根据该消费打印信息进行打印策略的匹配。通过MQ监听实时接收的信息,从而快速响应新的打印任务和消费打印信息,确保发票打印的时效性。同时,通过根据消息内容和类型匹配打印策略,可以为不同类型的消费打印信息定制不同的处理方式,够适应多样的打印需求。
在一个可选的实施方式中,所述获取与消费打印信息对应的目标发票纸模版包括:
获取所述消费打印信息中的打印标识;
从预设发票纸模版库中查询是否存在与所述打印标识对应的发票纸模版;
当查询到存在与所述打印标识对应的发票纸模版时,将查询到的发票纸模版确定为所述目标发票纸模版;
当查询到不存在与所述打印标识对应的发票纸模版时,将默认设置的发票纸模版确定为所述目标发票纸模版。
通过提取消费打印信息中打印标识,进而根据该打印标识在预设的发票纸模版库进行查询,以确定与所述消费打印信息相匹配的发票纸模版。当查询匹配成功时,将查询获得的发票纸模版作为目标发票纸模版;当没有匹配项时,将使用默认设置的发票纸模版作为目标发票纸模版。示例性的,易加油SaaS系统预设的发票纸模版库中设置有油品消费小票纸模版、油站便利店消费小票纸模版以及默认小票纸模版,消费打印信息的ID码为打印标识。其中,油品消费小票纸模版对应消费打印信息ID1,油站便利店消费小票纸模版对应消费打印信息ID2。当接收到的消费打印信息ID为3时,易加油SaaS系统在发票纸模版库中并未查询到对应的小票纸模版,便将默认小票纸模版作为目标发票模版,以对ID3的消费打印信息的消费信息进行数据处理。
通过打印标识进行预设的发票模版查询以确认目标发票模版,能够迅速确定适用于特定打印任务的合适模版,同时,默认设置的发票纸模版,可以适应那些没有特定匹配项的打印任务,从而提高了灵活性。简化了目标发票纸模版的选择过程,自动匹配和默认设置提高了效率和准确性,从而改进了消费打印信息的处理方式。
在一个可选的实施方式中,所述获取与所述消费打印信息对应的目标打印策略包括:
识别接收所述消费打印信息的应用程序编程接口类型;
当所述应用程序编程接口类型为预设第一类接口类型时,确定预设的第一打印策略为所述目标打印策略;
当所述应用程序编程接口类型为预设第二类接口类型时,确定预设的第二打印策略为所述目标打印策略。
通过识别接收到信息的应用程序编程接口(Application ProgrammingInterface,API)以确定消费打印信息的来源,并根据该API接口定义的类型确定打印策略,从而针对消费打印信息来源进行符合要求的信息数据处理和数据传递的方式。示例性的,易加油SaaS系统与油站交易中心以及油站SaaS系统进行链接,且交易中心负责发送订单支付和订单退款打印消息,油站SaaS系统负责发送交接班打印消息,需要对交易中心以及油站SaaS系统发送的消费打印信息采用不同的数据处方式和路由传递路径。因此,预设对连接交易中心的API接口类型为第一接口类型以及连接油站SaaS系统的API接口为第二类型接口,并预设第一打印策略对应第一接口类型以及预设第二打印策略对应第二接口类型。通过识别接收消费打印信息的API接口,采用不同的打印策略对消费打印信息进行处理,以满足油站交易中心以及油站SaaS系统的发票打印要求。
S22:根据所述消费打印信息、所述目标发票纸模版及所述目标打印策略生成发票打印指令。
根据目标发票纸模版规定了该消费打印信息对应发票打印格式,根据目标打印策略规定了该消费打印信息对应的数据处理方法及路由传递的路径。通过预设与消费打印信息相对应的目标发票纸模版和目标打印策略对消费打印信息进行针对性处理以符合业务所需的打印要求,可以提高发票打印流程的一致性、准确性,提高效率,减少错误和成本,适用于那些需要大规模、重复性的发票打印工作,可以提高生产力和管理效能。
为适应信息传递的不同需求以及发票机路由路径的不同部署。
在一个可选的实施方式中,所述根据所述消费打印信息、所述目标发票纸模版及所述目标打印策略生成发票打印指令包括:
根据所述消费打印信息及所述目标发票纸模板生成虚拟发票;
当所述目标打印策略为所述第一打印策略时,根据所述第一打印策略对所述虚拟发票进行第一数据渲染及第一格式转换,根据所述第一数据渲染及所述第一格式转换后的虚拟发票生成第一发票打印指令;
当所述目标打印策略为所述第二打印策略时,根据所述第二打印策略对所述虚拟发票进行第二数据渲染及第二格式转换,根据所述第二数据渲染及所述第二格式转换后的虚拟发票生成第二发票打印指令。
其中,虚拟发票为系统服务器根据目标发票模版的内容要求对所述消费打印信息中的消费信息(例如,商品信息及价格)进行提取,并根据目标发票模版的格式要求生成的发票虚拟图像数据。
为满足不同型号的发票机数据读取要求以及路由路径的数据传递要求,需要对虚拟发票进行数据渲染和数据格式转换。示例性的,易加油SaaS系统中设置有公有云部署的发票机和私有云部署的发票机。易加油SaaS系统需要通过厂商的SaaS系统去驱动公有云部署的发票机进行发票打印,易加油SaaS系统可以直接将符合私有云部署的发票机数据读取要求的图像数据设置为虚拟发票,因此对于私有云部署的发票机所需的虚拟发票不再作数据渲染和格式转换。但易加油SaaS系统生成的虚拟发票需要按照对应的打印策略进行数据渲染和格式转换以符合该厂商的SaaS系统和公有云部署的发票机数据读取的要求。
S23:根据所述目标打印策略确定目标路由路径。
发票机的部署中包括远端服务部署和本地私有化部署,根据发票机打印所述部署的方式预设有公有云路径和私有云路径。其中,从应用本申请方法的SaaS系统发送发票打印指令至目标厂商SaaS系统,再由目标厂商SaaS系统发送信息驱动发票机的传递路径为公有云路径;从应用本申请方法的SaaS系统直切发送打印指令至发票机的传递路径为私有云路径。
在一个可选的实施方式中,所述根据所述目标打印策略确定目标路由路径包括:
当所述打印策略为所述第一打印策略时,将部署的公有云路径确定为所述目标路由路径;
当所述打印策略为所述第二打印策略时,将部署的私有云路径确定为所述目标路由路径。
在本实施方式中,第一打印策略与公有云路径相对应,第二打印策略与私有云路径相对应。通过设置将目标打印策略与目标路由路径相对应,将厂商的SaaS系统的消费打印信息处理功能集成至应用本申请方法的SaaS系统中,从而避免了因发票机的硬件和驱动差异导致不同型号的发票机之间的兼容问题。同时,通过路由路径扩展,可以兼容公有云路径的普适性和私有云的私密安全性,避免单一路径带来的操作问题。示例性的,加油站使用与美团外卖同样的公有云部署发票机进行发票的打印。用餐时间段时内存在美团外卖端信息过多导致厂商SaaS系统出现信息串扰影响油站进行小票打印的风险。
为确保数据传递过程的完整,应用本申请方法还可以包括进行发票机状态监测,当发票机连接异常时,进行预警。其中,发票机的状态包括离线和在线。示例性的,易加油SaaS系统中设置有佳博发票机,其中佳博发票机一部分部署在发票机厂商远端服务器,一部分在易加油SaaS系统做私有化部署,且建立Redis数据库保存发票机状态数据。易加油SaaS系统发送定时任务至对应的目标厂商SaaS系统以获取发票机厂商远端服务器部署的佳博发票机状态并同步保存至所述Redis数据库中,对易加油SaaS系统做私有化部署的佳博发票机进行实时监测并将发票机状态保存至Redis数据库中,从而实现佳博发票机状态汇总,当佳博发票机出现连接异常时,发送信息至维护人员进行排查检修。
通过实时监控发票机的状态,从而掌握发票机的连接情况,避免出现发票机连接异常影响打印信息发送和发票及时打印的问题。
S24:将所述发票打印指令路由至与所述目标路由路径对应的目标发票机进行发票打印。
示例性的,由交易中心生产订单支付、退款小票的消息,由油站SaaS系统生产交接班小票、补打小票的消息。易加油SaaS系统统一接收消费打印消息。消费打印消息是公有云部署的发票机的,则渲染完小票数据后直接请求发票机厂商通过API接口驱动发票机打印。打印消息是私有云部署的发票机的,则先存入Redis数据库的发票机打印队列中,并根据通信管道与发票机的对应关系进行区分暂存。同时,根据打印队列的暂存先后顺序逐一通过通信管道发送至发票机进行打印。
参阅图3所示,为本申请实施例提供的SaaS系统打印发票的方法的流程图。
S31:SaaS系统在接收到打印出票信息时,对所述信息进行数据处理并生成打印指令,其中,所述数据处理包括加锁操作。
S32:所述SaaS系统对所述打印指令进行加锁判断。
S33:当打印指令加锁成功,所述SaaS系统生成流水号。
S34:所述SaaS系统获取发票机打印处理器,从而发送打印指令和流水号至所述发票机打印处理器。
S35:所述发票机接收到所述打印指令时,所述发票机进行打印发票。
通过加锁操作对打印指令进行加锁可以防止多个线程同时访问和修改相同的数据,从而避免并发操作导致的数据不一致性。在打印主流程中,如果多个线程同时执行打印操作,可能会导致出票信息错乱、重复打印或丢失打印等问题。通过加锁,可以确保每个线程独立地获取并处理出票信息,保证一致性结果的生成。
为预防消费打印信息的丢失,在一个可选的实施方式中,所述方法还包括:
当所述消费打印信息接收失败时,通知所述消费打印信息的信息发送端重新发送所述消费打印信息。
在接受打印信息之前,SaaS系统会提前收到信息发送端发送的信息接受请求,SaaS系统在接收到接受请求后会激活API接口并监测所要接收的信息。当SaaS系统在激活API接口并在接受时间段未接收到信息,SaaS系统认定该消费打印信息接收失败,并发送重新发送指令至所述信息发送端,以使得信息发送端进行未接收成功的信息重新发送的措施,以防止消费打印信息丢失。示例性的,易加油SaaS系统接收到接收请求,当在预设的信息接收时间段内未接收到任何信息,则判定信息接收失败。易加油SaaS系统将发送重新发送指令,以使得发送失败的收银机执行重新发送该发送失败的信息3次。若3次均发送失败,则认定消费失败。
实际中,大型消费场所的货物存储出纳统计任务较重,容易出现缺货没有及时补货的情况。在一个可选的实施方式中,所述方法还包括:
根据所述消费打印信息生成销售数据,其中,所述销售数据包括商品销售数目;
当所述商品销售数目大于预设数目阈值时,按照预设报警方式进行报警。
其中,消费数据包括不限于商品销售数目及销售金额。根据各类商品的仓储库存数量预设数目阈值,且预设数目阈值必须小于仓储库存数量。在特定时间段根据销售打印信息进行各类商品的销售重量统计,从而生成该特定时间段的销售数据。通过实时对比销售数目与预设的数目阈值,对商品的库存剩余进行监测。当预设数目阈值小于该商品销售数目时,该商品库存告急需,并进行预设报警提醒商家及时补充货物。示例性的。油站进95号汽油1万升,预设监测时间为15天,预设数目阈值为9000升。系统根据消费打印信息统计出第12天95号汽油销售量达到9200升,系统发送预设的补货信息至站长,以提醒站长及时安排95号汽油的补货。
上述可选的实施方式,能够结合销售信息实现仓储出纳的智能监测,以进行补货提醒。
发票机打印涉及信息处理和硬件驱动流程,本申请通过将信息处理流程集成再同一个系统中,实现消费信息的集中处理,从而避开各种发票机的硬件差异和驱动差异,实现发票机的打印兼容。同时,通过预设的路由路径对与发票机之间的连接方式进行扩展,实现公有云和私有云的传递兼容。避免出现在发票机升级、硬件设备更新换代或者小票纸模板的维护需要同步更新SaaS系统的繁琐操作。
本申请应用于一套油站SaaS系统中,能够同时兼容多种发票机,油站无需对不同发票机进行单独维护。由于使用一套油站SaaS系统,能够自动根据消费打印信息获取匹配的目标发票纸模版以及目标打印策略,从而根据获取的消费打印信息、目标发票纸模版和目标打印策略生成具体的发票打印指令,进而基于目标打印策略确定的发票打印指令路由到目标发票机的路径,最终通过路由路径发送打印指令,以驱动相应的目标发票机执行实际的打印操作并生成发票,提高了发票打印的效率。同时,由于不需要多套油站SaaS系统,不需要油站工作人员在日常工作中来回切换油站SaaS系统,因而不会造成用户加油信息错乱,因此,提高了发票打印的准确度,提高了用户体验和加油效率。此外,能够兼容多种发票机,有利于油站对发票机更新换代的需求,发票机更新时,无需对油站SaaS系统进行更新,通用性强。
如图4所示为本申请实施例提供的一种兼容多发票机的打印装置的功能模块图。
在一些实施例中,所述兼容多发票机的打印装置4可以包括多个由计算机程序段所组成的功能模块。所述兼容多发票机的打印装置4中的各个程序段的计算机程序可以存储于服务器的存储器中,并由至少一个处理器所执行,以执行(详见图2描述)兼容多发票机的打印方法的功能。
本实施例中,所述兼容多发票机的打印装置4根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:获取模块41、生成模块42、确定模块43、发送模块44、重复发送模块45以及库存预警模块46。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
获取模块41,用于获取与消费打印信息对应的目标发票纸模版及获取与所述消费打印信息对应的目标打印策略。
其中,消费打印信息为发票机打印指令,包括但不限于消费信息和打印标识。目标发票纸模版为预设的发票打印格式及内容。打印策略为预设的打印信息处理方法,通过预设的打印策略进行打印信息的数据化处理及数据传递进行规定。
通过监听消息队列(Message Queue,MQ)中接收到的信息并进行信息内容与预设的消息类型进行对比以识别信息的类型,从而筛选出消费打印信息。根据该消费打印信息进行预设目标发票模版的查询以获取该消费信息对应的目标发票纸模版,并根据该消费打印信息进行打印策略的匹配。通过MQ监听实时接收的信息,从而快速响应新的打印任务和消费打印信息,确保发票打印的时效性。同时,通过根据消息内容和类型匹配打印策略,可以为不同类型的消费打印信息定制不同的处理方式,够适应多样的打印需求。
在一个可选的实施方式中,所述获取模块41还用于:
获取所述消费打印信息中的打印标识;
从预设发票纸模版库中查询是否存在与所述打印标识对应的发票纸模版;
当查询到存在与所述打印标识对应的发票纸模版时,将查询到的发票纸模版确定为所述目标发票纸模版;
当查询到不存在与所述打印标识对应的发票纸模版时,将默认设置的发票纸模版确定为所述目标发票纸模版。
通过提取消费打印信息中打印标识,进而根据该打印标识在预设的发票纸模版库进行查询,以确定与所述消费打印信息相匹配的发票纸模版。当查询匹配成功时,将查询获得的发票纸模版作为目标发票纸模版;当没有匹配项时,将使用默认设置的发票纸模版作为目标发票纸模版。示例性的,易加油SaaS系统预设的发票纸模版库中设置有油品消费小票纸模版、油站便利店消费小票纸模版以及默认小票纸模版,消费打印信息的ID码为打印标识。其中,油品消费小票纸模版对应消费打印信息ID1,油站便利店消费小票纸模版对应消费打印信息ID2。当接收到的消费打印信息ID为3时,易加油SaaS系统在发票纸模版库中并未查询到对应的小票纸模版,便将默认小票纸模版作为目标发票模版,以对ID3的消费打印信息的消费信息进行数据处理。
通过打印标识进行预设的发票模版查询以确认目标发票模版,能够迅速确定适用于特定打印任务的合适模版,同时,默认设置的发票纸模版,可以适应那些没有特定匹配项的打印任务,从而提高了灵活性。简化了目标发票纸模版的选择过程,自动匹配和默认设置提高了效率和准确性,从而改进了消费打印信息的处理方式。
在一个可选的实施方式中,所述获取模块41还用于:
识别接收所述消费打印信息的应用程序编程接口类型;
当所述应用程序编程接口类型为预设第一类接口类型时,确定预设的第一打印策略为所述目标打印策略;
当所述应用程序编程接口类型为预设第二类接口类型时,确定预设的第二打印策略为所述目标打印策略。
通过识别接收到信息的应用程序编程接口(Application ProgrammingInterface,API)以确定消费打印信息的来源,并根据该API接口定义的类型确定打印策略,从而针对消费打印信息来源进行符合要求的信息数据处理和数据传递的方式。示例性的,易加油SaaS系统与油站交易中心以及油站SaaS系统进行链接,且交易中心负责发送订单支付和订单退款打印消息,油站SaaS系统负责发送交接班打印消息,需要对交易中心以及油站SaaS系统发送的消费打印信息采用不同的数据处方式和路由传递路径。因此,预设对连接交易中心的API接口类型为第一接口类型以及连接油站SaaS系统的API接口为第二类型接口,并预设第一打印策略对应第一接口类型以及预设第二打印策略对应第二接口类型。通过识别接收消费打印信息的API接口,采用不同的打印策略对消费打印信息进行处理,以满足油站交易中心以及油站SaaS系统的发票打印要求。
生成模块42,用于根据所述消费打印信息、所述目标发票纸模版及所述目标打印策略生成发票打印指令。
根据目标发票纸模版规定了该消费打印信息对应发票打印格式,根据目标打印策略规定了该消费打印信息对应的数据处理方法及路由传递的路径。通过预设与消费打印信息相对应的目标发票纸模版和目标打印策略对消费打印信息进行针对性处理以符合业务所需的打印要求,可以提高发票打印流程的一致性、准确性,提高效率,减少错误和成本,适用于那些需要大规模、重复性的发票打印工作,可以提高生产力和管理效能。
为适应信息传递的不同需求以及发票机路由路径的不同部署。
在一个可选的实施方式中,所述生成模块42还用于:
根据所述消费打印信息及所述目标发票纸模板生成虚拟发票;
当所述目标打印策略为所述第一打印策略时,根据所述第一打印策略对所述虚拟发票进行第一数据渲染及第一格式转换,根据所述第一数据渲染及所述第一格式转换后的虚拟发票生成第一发票打印指令;
当所述目标打印策略为所述第二打印策略时,根据所述第二打印策略对所述虚拟发票进行第二数据渲染及第二格式转换,根据所述第二数据渲染及所述第二格式转换后的虚拟发票生成第二发票打印指令。
其中,虚拟发票为系统服务器根据目标发票模版的内容要求对所述消费打印信息中的消费信息(例如,商品信息及价格)进行提取,并根据目标发票模版的格式要求生成的发票虚拟图像数据。
为满足不同型号的发票机数据读取要求以及路由路径的数据传递要求,需要对虚拟发票进行数据渲染和数据格式转换。示例性的,易加油SaaS系统中设置有公有云部署的发票机和私有云部署的发票机。易加油SaaS系统需要通过厂商的SaaS系统去驱动公有云部署的发票机进行发票打印,易加油SaaS系统可以直接将符合私有云部署的发票机数据读取要求的图像数据设置为虚拟发票,因此对于私有云部署的发票机所需的虚拟发票不再作数据渲染和格式转换。但易加油SaaS系统生成的虚拟发票需要按照对应的打印策略进行数据渲染和格式转换以符合该厂商的SaaS系统和公有云部署的发票机数据读取的要求。
确定模块43,用于根据所述目标打印策略确定目标路由路径。
发票机的部署中包括远端服务部署和本地私有化部署,根据发票机打印所述部署的方式预设有公有云路径和私有云路径。其中,从应用本申请方法的SaaS系统发送发票打印指令至目标厂商SaaS系统,再由目标厂商SaaS系统发送信息驱动发票机的传递路径为公有云路径;从应用本申请方法的SaaS系统直切发送打印指令至发票机的传递路径为私有云路径。
在一个可选的实施方式中,所述确定模块43还用于:
当所述打印策略为所述第一打印策略时,将部署的公有云路径确定为所述目标路由路径;
当所述打印策略为所述第二打印策略时,将部署的私有云路径确定为所述目标路由路径。
在本实施方式中,第一打印策略与公有云路径相对应,第二打印策略与私有云路径相对应。通过设置将目标打印策略与目标路由路径相对应,将厂商的SaaS系统的消费打印信息处理功能集成至应用本申请方法的SaaS系统中,从而避免了因发票机的硬件和驱动差异导致不同型号的发票机之间的兼容问题。同时,通过路由路径扩展,可以兼容公有云路径的普适性和私有云的私密安全性,避免单一路径带来的操作问题。示例性的,加油站使用与美团外卖同样的公有云部署发票机进行发票的打印。用餐时间段时内存在美团外卖端信息过多导致厂商SaaS系统出现信息串扰影响油站进行小票打印的风险。
为确保数据传递过程的完整,应用本申请方法还可以包括进行发票机状态监测,当发票机连接异常时,进行预警。其中,发票机的状态包括离线和在线。示例性的,易加油SaaS系统中设置有佳博发票机,其中佳博发票机一部分部署在发票机厂商远端服务器,一部分在易加油SaaS系统做私有化部署,且建立Redis数据库保存发票机状态数据。易加油SaaS系统发送定时任务至对应的目标厂商SaaS系统以获取发票机厂商远端服务器部署的佳博发票机状态并同步保存至所述Redis数据库中,对易加油SaaS系统做私有化部署的佳博发票机进行实时监测并将发票机状态保存至Redis数据库中,从而实现佳博发票机状态汇总,当佳博发票机出现连接异常时,发送信息至维护人员进行排查检修。
通过实时监控发票机的状态,从而掌握发票机的连接情况,避免出现发票机连接异常影响打印信息发送和发票及时打印的问题。
发送模块44,用于将所述发票打印指令路由至与所述目标路由路径对应的目标发票机进行发票打印。
示例性的,由交易中心生产订单支付、退款小票的消息,由油站SaaS系统生产交接班小票、补打小票的消息。易加油SaaS系统统一接收消费打印消息。消费打印消息是公有云部署的发票机的,则渲染完小票数据后直接请求发票机厂商通过API接口驱动发票机打印。打印消息是私有云部署的发票机的,则先存入Redis数据库的发票机打印队列中,并根据通信管道与发票机的对应关系进行区分暂存。同时,根据打印队列的暂存先后顺序逐一通过通信管道发送至发票机进行打印。
为预防消费打印信息的丢失,在一个可选的实施方式中,所述兼容多发票机的打印装置4还包括:
重复发送模块45,用于当所述消费打印信息接收失败时,通知所述消费打印信息的信息发送端重新发送所述消费打印信息。
在接受打印信息之前,SaaS系统会提前收到信息发送端发送的信息接受请求,SaaS系统在接收到接受请求后会激活API接口并监测所要接收的信息。当SaaS系统在激活API接口并在接受时间段未接收到信息,SaaS系统认定该消费打印信息接收失败,并发送重新发送指令至所述信息发送端,以使得信息发送端进行未接收成功的信息重新发送的措施,以防止消费打印信息丢失。示例性的,易加油SaaS系统接收到接收请求,当在预设的信息接收时间段内未接收到任何信息,则判定信息接收失败。易加油SaaS系统将发送重新发送指令,以使得发送失败的收银机执行重新发送该发送失败的信息3次。若3次均发送失败,则认定消费失败。
实际中,大型消费场所的货物存储出纳统计任务较重,容易出现缺货没有及时补货的情况。在一个可选的实施方式中,所述兼容多发票机的打印装置4还包括:
库存预警模块46,用于根据所述消费打印信息生成销售数据,其中,所述销售数据包括商品销售数目;
当所述商品销售数目大于预设数目阈值时,按照预设报警方式进行报警。
其中,消费数据包括不限于商品销售数目及销售金额。根据各类商品的仓储库存数量预设数目阈值,且预设数目阈值必须小于仓储库存数量。在特定时间段根据销售打印信息进行各类商品的销售重量统计,从而生成该特定时间段的销售数据。通过实时对比销售数目与预设的数目阈值,对商品的库存剩余进行监测。当预设数目阈值小于该商品销售数目时,该商品库存告急需,并进行预设报警提醒商家及时补充货物。示例性的。油站进95号汽油1万升,预设监测时间为15天,预设数目阈值为9000升。系统根据消费打印信息统计出第12天95号汽油销售量达到9200升,系统发送预设的补货信息至站长,以提醒站长及时安排95号汽油的补货。
参阅图5所示,为本申请实施例提供的服务器的结构示意图。在本发明较佳实施例中,所述服务器5可以包括,但不限于:存储器51、至少一个处理器52及至少一条通信总线53。
本领域技术人员应该了解,图5示出的服务器5的结构并不构成本发明实施例的限定,所述服务器5还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置。
在一些实施例中,所述服务器5是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路、可编程门阵列、数字处理器及嵌入式设备等。
需要说明的是,所述服务器5仅为举例,其他现有的或今后可能出现的电子产品如可适应于本申请,也应包含在本申请的保护范围以内,并以引用方式包含于此。
在一些实施例中,所述存储器51中存储有计算机程序,所述计算机程序被所述至少一个处理器52执行时实现如所述的兼容多发票机的打印方法中的全部或者部分步骤 。所述存储器51包括只读存储器(Read -Only Memory,R OM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read -Only Memory,EPROM)、一次可编程只读存储器(One-time ProgrammableRead-Only Memory,OTPROM)、电子擦除式可复写只读存储器(Electrically-ErasableProgrammable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。进一步地,所述计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等。
在一些实施例中 ,所述至少一个处理器52是所述服务器5的控制核心(ControlUnit),利用各种接口和线路连接整个服务器5的各个部件,通过运行或执行存储在所述存储器51内的程序或者模块,以及调用存储在所述存储器51内的数据,以执行服务器5的各种功能和处理数据。例如,所述至少一个处理器52执行所述存储器51中存储的计算机程序时实现本申请实施例中所述的兼容多发票机的打印方法的全部或者部分步骤;或者实现兼容多发票机的打印装置的全部或者部分功能。所述至少一个处理器52可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能 或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。
在一些实施例中,所述至少一条通信总线53被设置为实现所述存储器51以及所述至少一个处理器52等之间的连接通信。尽管未示出,所述服务器5还可以包括给各个部件供电的电源(比如电池),优选的,电源可以通过电源管理装置与所述至少一个处理器52逻辑相连,从而通过电源管理装置实现管理充电、放电、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述服务器5还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,电子设备,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的部分。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,既可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
以上均为本申请的较佳实施例,并非依此限制本申请的保护范围,故:凡依本申请的结构、形状、原理所做的等效变化,均应涵盖于本申请的保护范围之内。
Claims (10)
1.一种兼容多发票机的打印方法,其特征在于,所述方法包括:
获取与消费打印信息对应的目标发票纸模版及获取与所述消费打印信息对应的目标打印策略;
根据所述消费打印信息、所述目标发票纸模版及所述目标打印策略生成发票打印指令;
根据所述目标打印策略确定目标路由路径;
将所述发票打印指令路由至与所述目标路由路径对应的目标发票机进行发票打印。
2.根据权利要求1所述的兼容多发票机的打印方法,其特征在于,所述获取与消费打印信息对应的目标发票纸模版包括:
获取所述消费打印信息中的打印标识;
从预设发票纸模版库中查询是否存在与所述打印标识对应的发票纸模版;
当查询到存在与所述打印标识对应的发票纸模版时,将查询到的发票纸模版确定为所述目标发票纸模版;
当查询到不存在与所述打印标识对应的发票纸模版时,将默认设置的发票纸模版确定为所述目标发票纸模版。
3.根据权利要求1所述的兼容多发票机的打印方法,其特征在于,所述获取与所述消费打印信息对应的目标打印策略包括:
识别接收所述消费打印信息的应用程序编程接口类型;
当所述应用程序编程接口类型为预设第一类接口类型时,确定预设的第一打印策略为所述目标打印策略;
当所述应用程序编程接口类型为预设第二类接口类型时,确定预设的第二打印策略为所述目标打印策略。
4.根据权利要求3所述的兼容多发票机的打印方法,其特征在于,所述根据所述消费打印信息、所述目标发票纸模版及所述目标打印策略生成发票打印指令包括:
根据所述消费打印信息及所述目标发票纸模板生成虚拟发票;
当所述目标打印策略为所述第一打印策略时,根据所述第一打印策略对所述虚拟发票进行第一数据渲染及第一格式转换,根据所述第一数据渲染及所述第一格式转换后的虚拟发票生成第一发票打印指令;
当所述目标打印策略为所述第二打印策略时,根据所述第二打印策略对所述虚拟发票进行第二数据渲染及第二格式转换,根据所述第二数据渲染及所述第二格式转换后的虚拟发票生成第二发票打印指令。
5.根据权利要求4所述的兼容多发票机的打印方法,其特征在于,所述根据所述目标打印策略确定目标路由路径包括:
当所述打印策略为所述第一打印策略时,将部署的公有云路径确定为所述目标路由路径;
当所述打印策略为所述第二打印策略时,将部署的私有云路径确定为所述目标路由路径。
6.根据权利要求1至5中任意一项所述的兼容多发票机的打印方法,其特征在于,所述方法还包括:
当所述消费打印信息接收失败时,通知所述消费打印信息的信息发送端重新发送所述消费打印信息。
7.根据权利要求1至5中任意一项所述的兼容多发票机的打印方法,其特征在于,所述方法还包括:
根据所述消费打印信息生成销售数据,其中,所述销售数据包括商品销售数目;
当所述商品销售数目大于预设数目阈值时,按照预设报警方式进行报警。
8.一种兼容多发票机的打印装置,其特征在于,所述装置包括:
获取模块,用于获取与消费打印信息对应的目标发票纸模版及获取与所述消费打印信息对应的目标打印策略;
生成模块,用于根据所述消费打印信息、所述目标发票纸模版及所述目标打印策略生成发票打印指令;
确定模块,用于根据所述目标打印策略确定目标路由路径;
发送模块,用于将所述发票打印指令路由至与所述目标路由路径对应的目标发票机进行发票打印。
9.一种服务器,其特征在于,所述系统包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现根据权利要求1至7中任意一项所述的兼容多发票机的打印方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现根据权利要求1至7中任意一项所述的兼容多发票机的打印方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311358196.7A CN117492667A (zh) | 2023-10-19 | 2023-10-19 | 兼容多发票机的打印方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311358196.7A CN117492667A (zh) | 2023-10-19 | 2023-10-19 | 兼容多发票机的打印方法、装置、服务器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117492667A true CN117492667A (zh) | 2024-02-02 |
Family
ID=89679089
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311358196.7A Pending CN117492667A (zh) | 2023-10-19 | 2023-10-19 | 兼容多发票机的打印方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117492667A (zh) |
-
2023
- 2023-10-19 CN CN202311358196.7A patent/CN117492667A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7215581B2 (ja) | サプライチェーン管理方法、サプライチェーン管理プログラム、取引記録蓄積方法、取引記録蓄積プログラム、取引記録表示方法、及び取引記録表示プログラム | |
US10552802B2 (en) | Central server for managing maintenance and materials for commercial aircraft fleets with fleet-wide benchmarking data | |
US6801835B2 (en) | System and method for controlling an automated fueling station | |
AU2006315349B2 (en) | Centralized management of maintenance and materials for commercial aircraft fleets with access to real-time information | |
US7689329B2 (en) | Integrated maintenance and materials services for fleet aircraft using aircraft data to improve quality of materials | |
JP3810139B2 (ja) | 電子式価格表示ラベル・システムにおける故障検知方法 | |
US8036955B2 (en) | Integrated materials management for commercial aircraft fleets | |
JP6785701B2 (ja) | 物品処理管理システム及び物品処理管理方法 | |
CN101310168B (zh) | 包括到实时机载系统信息的访问的商业机队的集成物料管理 | |
US20070112489A1 (en) | Integrated maintenance and materials services for fleet aircraft using aircraft data to improve maintenance quality | |
US20050222853A1 (en) | Systems and methods for international shipping and brokage operations support processing | |
EP1638043A1 (en) | System and method for extended enterprises planning across a supply chain | |
US20070112486A1 (en) | Centralized management of maintenance and materials for commercial aircraft fleets with information feedback to customer | |
US20070112608A1 (en) | Integrated maintenance services for fleet aircraft | |
CN101310253A (zh) | 商业机队的维护与物料的集中管理 | |
CN101356552A (zh) | 燃油加油机管理 | |
US6725106B1 (en) | System and method for backing up distributed controllers in a data network | |
JP2022119152A (ja) | 物品の注文が可能であるかどうかに対する情報を提供する方法および装置 | |
JPH11154280A (ja) | リアルタイム在庫管理システム | |
KR20030019078A (ko) | 물류 관리 시스템, 물류 관리방법 및 기록매체 | |
CN116569118A (zh) | 信息管理方法及装置 | |
CN117492667A (zh) | 兼容多发票机的打印方法、装置、服务器及存储介质 | |
KR101375076B1 (ko) | Aidc 기반의 클라우드형 물류정보 동기화 시스템 | |
CN103562896B (zh) | 用于最小化软件应用之间的通信和集成复杂性的装置 | |
WO2021153067A1 (ja) | 情報処理システム、情報処理方法およびコンピュータプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |