CN103164907B - 票据解析装置和税控系统 - Google Patents
票据解析装置和税控系统 Download PDFInfo
- Publication number
- CN103164907B CN103164907B CN201110417520.9A CN201110417520A CN103164907B CN 103164907 B CN103164907 B CN 103164907B CN 201110417520 A CN201110417520 A CN 201110417520A CN 103164907 B CN103164907 B CN 103164907B
- Authority
- CN
- China
- Prior art keywords
- data
- bill
- template
- resolver
- state
- 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.)
- Active
Links
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种票据解析装置和税控系统,其中,该票据解析装置包括:数据控制模块,用于接收原始数据,并采用环形缓存的存储方式将接收的原始数据进行保存;模板配置模块,用于载入预先配置的模板配置文件,并将模板配置文件转换为内存模板数据结构类型;元数据解析模块,用于根据模板配置模块载入的模板配置文件、对原始数据进行数据处理提取元数据。本发明具有识别速度快、准确性高、适应性强的特点。
Description
技术领域
本发明涉及一种票据解析装置和税控系统。
背景技术
目前国内许多省份正在进行税控改造,其中在大型商业零售企业的税控改造升级中,直接使用税控收款机需要企业更换大量的原有POS机,甚至整个POS系统都需要变更,这为改造增加了极大的成本和代价。网络税控器是一种架设于POS机与小票打印机之间的税控设备,无需改变任何POS系统,只需要打印数据经过网络税控设备就可以达到税控的目的,网络税控器获取票据中的税控元数据生成税控码。这种方案就十分适合于商超基于原有POS机系统的税控改造升级,不仅成本低,而且可以准确无误的获取真实的税控数据。
在这种税控改造的架构中,需要税控设备准确、同步、及时地输出打印数据以及税控发票信息,而不影响正常的POS机开票过程。准确地获取POS机发送出的票据数据,这是税控信息生成的原始数据;同步输出POS的打印数据,不影响票据数据的打印,不因税控设备处理数据而导致打印停滞;并且在票据数据获取完毕的同时,及时生成税控信息的元数据,直接进入发票信息生成环节,并输出打印税控信息。
因此,需要一种新的票据解析技术已解决上述问题。
发明内容
为解决上述问题,本发明的主要目的在于提供一种票据解析装置和税控系统,其中:
根据本发明实施例的票据解析装置包括:
数据控制模块,用于接收原始数据,并采用环形缓存的存储方式将接收的原始数据进行保存;模板配置模块,用于载入预先配置的模板配置文件,并将模板配置文件转换为内存模板数据结构类型;元数据解析模块,用于根据模板配置模块载入的模板配置文件、对原始数据进行数据处理提取元数据。
其中,数据控制模块用于管理原始数据的读数据的位置信息和写数据的位置信息。
其中,数据控制模块为元数据解析模块提供原始数据的读数据的位置信息和写数据的位置信息,元数据解析模块以字节为单位从数据控制模块中连续地读取原始数据。
其中,元数据解析模块根据有限自动机原理、并根据模板配置模块载入的模板配置文件,对原始数据进行数据处理提取元数据。
其中,模板配置模块载入的模板配置文件至少包括:匹配字符列表、状态转换表、属性信息。
其中,数据控制模块将接收的原始数据发送至接收装置;元数据解析模块与接收装置同步工作。
根据本发明实施例的税控系统包括上述的票据解析装置。
根据本发明的技术方案,通过根据配置模板配置文件、对原始数据进行数据处理从而提取元数据,本发明具有识别速度快、准确性高、适应性强的特点,并且票据解析装置可以独立于税控业务,重用度高。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的票据解析装置的应用场景的示意图;
图2是本发明实施例的票据解析装置的结构框图;
图3是本发明实施例的环形缓存的原理示意图;
图4是本发明实施例的自动机的状态转换示意图。
具体实施方式
在详细描述本发明之前,首先解释本文下文中出现的一些名词。
(1)元数据:解析所需要提取的数据,如金额,时间等。
(2)匹配字符:匹配的最小元素。只要状态需要,可以出现在任何一个状态中。
(3)状态:解析过程的一个独立单元,能够达到一个状态意味着当前数据与该状态下的匹配字符集完全匹配。关键信息的获取就是以状态为单位,满足该状态的同时,完成信息的获取。
(4)状态字符序列:由匹配字符构成,匹配时按照其先后顺序进行匹配。仅当完全匹配上此序列,则实现状态跳转,进入此状态,即状态匹配成功。
(5)状态序列:状态匹配权重。当下一个状态可能有多个时,按照状态序列依次进行匹配,期间只要有状态匹配成功,则直接进入该状态。
(6)起始状态:解析初始状态,必须存在。该状态只含有状态序列,没有匹配字符序列。
(7)终止状态:解析结束状态,必须存在。该状态既没有状态序列,也没有匹配字符序列。自动机结束即状态转换以进入该状态。
为使本发明的目的、技术方案和优点更加清楚,以下结合附图及具体实施例,对本发明作进一步地详细说明。
根据本发明的实施例,提供了一种票据解析装置。
如图1所示,该票据解析装置设置在输出装置和接收装置之间。具体地,输出装置可以是销售终端(POS机),接收装置可以是小票打印机。票据解析装置获取POS机发送出的票据数据,这是税控信息生成的原始数据;在对原始数据进行数据解析的同时,向小票打印机同步输出POS机的打印数据,也就是输入票据的打印与解析是同步的,这样,既可以达到边打印边解析的目的,而且可以控制税控信息的输出位置。
根据本发明实施例的票据解析过程包括:原始数据由硬件接口传入,将传入的原始数据采用环形缓存的存储方式,循环不断地保存传入的数据,并管理数据读写的位置信息。以字节为单位从环形缓存中连续读取数据,进入解析流程。在解析结束时,变更解析状态为完毕,监控程序得知结束后,根据元数据信息类型,使用元数据读取接口得到所需数据。
本发明的技术方案旨在使用一种通用的模式识别方法,它使得识别具有高度适应的特点。在面对众多POS系统打印出的票样时,没有一种统一的全局适应的提取规则,同样语义的词语有许多,无法考虑到全部情况。因此,本方案引入解析模板的概念,这是票据数据识别的基础,整个识别的实现过程都是以此展开的。模板文件使解析可以不局限于某一种票据的票样,而是通过人工简单地配置即可定制出具有针对性的解析方案。从而达到无论企业的POS打印数据具有何种多样的票样,本方案都可适应其变化的目的。
图2是本发明实施例的票据解析装置的结构框图,如图2所示,该装置包括:数据控制模块10、模板配置模块20、元数据解析模块30。
数据控制模块10,用于接收原始数据,并采用环形缓存的存储方式将接收的原始数据进行保存。
数据控制模块10采用环形缓存的存储方式实现票据数据的存储,作为解析数据读取的源数据区。数据控制模块就是负责管理环形缓存中数据的读写操作,记录位置信息,并为元数据解析模块提供字节流的读取位置。
在硬件设备进行数据读取时,如采用串口通信方式,其数据传入时间具有不确定性,需要不断进行监听读取,并且一次传入的数据大小也不确定。而另一方面,解析程序是以字节流的方式处理,如果传入一个字节数据就进入解析处理,会导致频繁的IO操作,延缓了数据传入的速度。由于在实际环境中读写顺序具有不确定性,一次读写数据数目不确定,这些现象导致无法采用直接字节数据处理的方式。因此该数据控制模块管理一个足够大缓存,参考图3,可写入由串口一次传入的数据,同时读写各有一个位置标记,读标记(mark)和写标记(wmark),使得读写互不干扰。为保证数据读写的连续,使用环形存储方式,当读写到达缓存末端时,新的读写标记将回到缓存起始位置。由于缓存可以根据一次票据数据的大小设置得足够大,并且写入与读取是同步进行的,因此不会出现新数据覆盖还未读取数据的情况。
模板配置模块20,用于载入预先配置的模板配置文件,并将模板配置文件转换为内存模板数据结构类型。
模板配置子模块首先完成模板文件的载入,存储到内存中特定数据结构中,作为整个解析程序运行的全局模板配置数据区。配置文件的信息主要包括:匹配字符列表,状态转换表,属性信息。匹配字符列表存储解析的候选匹配关键字,状态转换表构成解析数据的路线图,属性信息用于记录匹配字符类型,元数据信息类型等辅助信息。
根据本发明的实施例,该模块由模板配置文件和配置信息读取两部分构成。模板配置文件是本方案的一大特点,它使得解析不再局限于某一种票据票样。通过简单的模板文件更改,就可进行新的票样元数据解析。模板配置文件具有属性信息,可以自定义元数据的类型,如计税金额、开票时间、收银员等各种需要提取的元数据。配置信息读取是完成由模板配置文件到内存模板数据结构的映射,将配置信息转换成解析所用到的数据结构类型,程序运行时将不再使用模板配置文件,避免频繁的文件操作。同时也提供文件重新载入接口,同步更新模板文件的改变。
元数据解析模块30分别与数据控制模块10和模板配置模块20连接,用于根据模板配置模块20载入的模板配置文件、对数据控制模块10保存的原始数据进行数据处理提取元数据。
元数据解析模块30的数据处理方式是以字节流的方式连续不断的读取环形缓存中的数据,这种方式使得数据处理与数据的编码格式毫无关系,因此对内码和点阵数据都可以完全适应。解析本身采用有限自动机的实现原理完成模式识别的过程,利用状态转换序列控制识别的状态变化。当到达一个终止状态时,说明一个票据数据已解析完成。元数据的识别是在状态发生转移前进行,当到达终止状态时,即得到模板中指明的所有元数据信息。
具体地,元数据解析模块30采用有限自动机原理,通过状态转换序列完成元数据的解析提取。该模块每次从环形缓存中以单字节大小读取数据,进入状态转化序列中进行匹配。一次解析匹配返回时,子模块会在返回前保存一些现场信息,当新的数据进入时则恢复上次现场信息继续匹配。这样在使得匹配具有连贯性,并不会出现大量的重复匹配环节,从而使解析效率更高。
解析数据的过程就是有限自动机进行状态转换的过程,根据状态转换序列确定状态转移的方式。当状态序列中某个状态的匹配字符序列被完全匹配成功时,则进入到这个状态中,从而实现了状态的跳转。同时,状态中还表明是否具有元数据提取的任务,当属性信息中包含某个元数据类型时,则说明需要在匹配结束后提取其中的元数据。在进行字符序列匹配时,元数据在环形缓存中的起止位置将被记录下来,状态匹配成功时,就可根据起止位置提取出元数据,保存在该状态下的元数据存储区中。跳转到结束状态则说明一次票据解析完毕,对提取的元数据需要进行一定的格式转换和计算处理,如转换成数字,日期等格式,计算计税金额等,并统一存入元数据提取列表中。之后其他模块可根据事先定义的元数据类型得到需要的元数据信息。
自动机的状态转换可表达成一个状态转换图,如图4所示。每个状态中包含匹配字符序列和状态转换序列。存在两个特殊状态,起始状态0和终止状态5,前者没有匹配字符序列,后者没有状态转换序列。从起始状态0的状态转换序列的第一个状态开始,对输入的字节流进行匹配。当该状态下的匹配字符序列全部匹配成功时,则状态跳转到该状态,如由状态1进入状态2。然后,进行同样的匹配方式,对状态2的状态转换序列第一个状态进行匹配。同时,状态还可以跳转到它本身,用于相同匹配内容重复出现的情况,如由状态2再次回到状态2。POS机打出的票据会有不同类型,如正票、退票、刷卡消费的票据等,需要根据这些具体内容总结出所有情况,完成自动机状态转换的设计。这样一种POS输出的所有票据可用一个自动机表达,而一张票只会沿着一条状态转换路线达到终止状态。
该解析方法的有限自动机具有以下性质,同时也是在设计某个票样的自动机时需要遵循的原则:
(1)开始状态中没有匹配字符序列及属性信息,只包含状态转换序列。
(2)一个状态中只包含一种元数据类型,即一个状态最多解析出一种元数据类型的信息。
(3)状态匹配成功就是匹配字符序列中的字符依次全部匹配成功。当第一个匹配字符匹配失败时,则对下一个状态进行匹配;当第一个字符匹配成功时,则继续下一个匹配字符,直到匹配字符序列全部匹配完成,否则不会跳出该匹配状态。
(4)状态转换序列和匹配字符序列中的元素具有先后优先关系。只有前一个状态匹配失败时才进行下一个状态的匹配,只有前一个匹配字符匹配成功时才进行下一个字符的匹配。这种做法可消除在设计时出现的二义性。
模板的设计是将图4表示的图形化自动机转换成计算机可识别处理的形式。为达到快速读取自动机模板,易于修改,存储介质无关性目的,设计一种特定的自动机表达式。首先为状态、匹配字符以及元数据类型定义索引号,这样便于自动机状态转换和匹配字符序列的表示。其次,自动机表达式由左到右起始依次进行解释,状态序列和匹配字符序列具有匹配先后顺序,模板配置子模块读取并存储到模板数据结构中。
以下根据图4举例说明由转换图到自动机表达式的设计。图4中存在0到5共6个状态,其中假设状态2的优先级比状态3高。表达式生成如下:
0[::1]1[:1.0:2]2[1:2.1,3.2:2,3]3[*1:4.1,7.2:4]4[:5.0:5]5[:6.0:]
每个状态由四个部分组成:状态序号,属性信息,匹配字符序列,状态转换序列。表1是对状态表达式2[1:2.1,3.2:2,3]各部分的详细说明,其中的粗体字表示具体说明的部分。
表1
根据本发明的实施例,还提供了一种税控系统,该税控系统包括如图2所示的票据解析装置和税控模块。
综上所示,根据本发明的技术方案,具有下列优点:
(1)将有限自动机原理应用于票据元数据识别中,有效的解决了当出现各种票样数据时,无法仅用一种方式识别票据的问题。模板匹配文件使得识别更具针对性,也更具灵活性。
(2)实现POS数据的边输出打印边解析,不会因为解析票据信息而延缓打印数据的时间,并可在预定位置输出税控信息。
(3)采用字节流方式处理数据,使得解析识别与数据编码格式无关,可对不同内码编码数据以及点阵数据进行解析识别。
(4)对元数据信息的获取十分开放,可快速灵活地增加获取新的类型信息,或去除原有类型信息。并针对计税金额提供自动计算功能,得到实际计税金额。
以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (6)
1.一种票据解析装置,该装置在输出装置和接收装置之间,其特征在于,所述票据解析装置包括:
数据控制模块,用于接收原始数据,并采用环形缓存的存储方式将接收的所述原始数据进行保存;还用于管理所述原始数据的读数据的位置信息和写数据的位置信息;
模板配置模块,用于载入预先配置的模板配置文件,并将所述模板配置文件转换为内存模板数据结构类型,所述预先配置的模板配置文件根据需要定制具有针对性的解决方案,不局限于某一种票据的票样;
元数据解析模块,用于根据所述模板配置模块载入的模板配置文件、对所述原始数据进行数据解析,所述数据解析的过程与打印过程同步进行。
2.根据权利要求1所述的票据解析装置,其特征在于,所述数据控制模块为所述元数据解析模块提供所述原始数据的读数据的位置信息和写数据的位置信息,所述元数据解析模块以字节为单位从所述数据控制模块中连续地读取所述原始数据。
3.根据权利要求1所述的票据解析装置,其特征在于,所述元数据解析模块根据有限自动机原理、并根据所述模板配置模块载入的模板配置文件,对所述原始数据进行数据解析。
4.根据权利要求3所述的票据解析装置,其特征在于,所述模板配置模块载入的所述模板配置文件至少包括:
匹配字符列表、状态转换表、属性信息。
5.根据权利要求1所述的票据解析装置,其特征在于,所述数据控制模块将接收的原始数据发送至所述接收装置;
所述元数据解析模块与所述接收装置同步工作。
6.一种包括如权利要求1至5中任一项所述票据解析装置的税控系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110417520.9A CN103164907B (zh) | 2011-12-14 | 2011-12-14 | 票据解析装置和税控系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110417520.9A CN103164907B (zh) | 2011-12-14 | 2011-12-14 | 票据解析装置和税控系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103164907A CN103164907A (zh) | 2013-06-19 |
CN103164907B true CN103164907B (zh) | 2016-06-08 |
Family
ID=48587959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110417520.9A Active CN103164907B (zh) | 2011-12-14 | 2011-12-14 | 票据解析装置和税控系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103164907B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679452B (zh) * | 2013-12-02 | 2018-04-20 | 航天信息股份有限公司 | 一种税控系统中发票打印数据绑定方法 |
CN105589686B (zh) * | 2014-11-14 | 2021-03-02 | 航天信息股份有限公司 | WinCE平台下基于模板的信息录入、打印方法和装置 |
CN107291789B (zh) * | 2016-08-22 | 2021-08-03 | 西安艾润物联网技术服务有限责任公司 | 发票信息索引方法和装置 |
CN110096556B (zh) * | 2019-04-22 | 2022-03-01 | 浙江诺诺网络科技有限公司 | 一种可提高开票智能赋码准确度的系统和方法 |
CN110459022A (zh) * | 2019-08-13 | 2019-11-15 | 杭州有赞科技有限公司 | 一种小票打印系统及方法 |
CN114595199B (zh) * | 2022-05-10 | 2022-09-02 | 太平金融科技服务(上海)有限公司 | 文件解析方法、装置、计算机设备和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1924787A (zh) * | 2005-08-29 | 2007-03-07 | 海信集团有限公司 | 从pos机输出的打印数据中生成防伪税控码的方法 |
CN101051406A (zh) * | 2007-05-24 | 2007-10-10 | 北京雅普兰科技发展有限公司 | X86平台税源监控系统及其采集商业销售数据的方法 |
CN101093572A (zh) * | 2007-07-20 | 2007-12-26 | 中国建设银行股份有限公司 | 一种前置系统及一种数据集中处理系统 |
CN101118632A (zh) * | 2007-09-13 | 2008-02-06 | 中商流通生产力促进中心有限公司 | 一种网络税控器断网的数据处理方法 |
CN101140684A (zh) * | 2007-09-11 | 2008-03-12 | 中商流通生产力促进中心有限公司 | 基于网络服务器的税控系统 |
CN101149860A (zh) * | 2007-09-30 | 2008-03-26 | 中商流通生产力促进中心有限公司 | 一种网络税控系统的税控数据申报、稽查处理方法 |
CN101894398A (zh) * | 2010-07-28 | 2010-11-24 | 浪潮齐鲁软件产业有限公司 | Pos机连接税控机自动开具发票的方法 |
CN201955848U (zh) * | 2011-01-18 | 2011-08-31 | 周绍君 | 一种pos机、计算机用可加载无线税源监测器及系统 |
-
2011
- 2011-12-14 CN CN201110417520.9A patent/CN103164907B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1924787A (zh) * | 2005-08-29 | 2007-03-07 | 海信集团有限公司 | 从pos机输出的打印数据中生成防伪税控码的方法 |
CN101051406A (zh) * | 2007-05-24 | 2007-10-10 | 北京雅普兰科技发展有限公司 | X86平台税源监控系统及其采集商业销售数据的方法 |
CN101093572A (zh) * | 2007-07-20 | 2007-12-26 | 中国建设银行股份有限公司 | 一种前置系统及一种数据集中处理系统 |
CN101140684A (zh) * | 2007-09-11 | 2008-03-12 | 中商流通生产力促进中心有限公司 | 基于网络服务器的税控系统 |
CN101118632A (zh) * | 2007-09-13 | 2008-02-06 | 中商流通生产力促进中心有限公司 | 一种网络税控器断网的数据处理方法 |
CN101149860A (zh) * | 2007-09-30 | 2008-03-26 | 中商流通生产力促进中心有限公司 | 一种网络税控系统的税控数据申报、稽查处理方法 |
CN101894398A (zh) * | 2010-07-28 | 2010-11-24 | 浪潮齐鲁软件产业有限公司 | Pos机连接税控机自动开具发票的方法 |
CN201955848U (zh) * | 2011-01-18 | 2011-08-31 | 周绍君 | 一种pos机、计算机用可加载无线税源监测器及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103164907A (zh) | 2013-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103164907B (zh) | 票据解析装置和税控系统 | |
CN102135963B (zh) | 数据迁移的方法和系统 | |
CN107295039A (zh) | 数据接入处理方法和装置 | |
CN106485243A (zh) | 一种票据识别纠错方法及装置 | |
CN102713834A (zh) | 管理记录格式信息 | |
US9720885B2 (en) | Detection of UTF-16 encoding in streaming XML data without a byte-order mark and related printers, systems, methods, and computer program products | |
CN111985229A (zh) | 一种序列标注方法、装置及计算机设备 | |
CN103473056A (zh) | 一种遥测配置文件自动生成方法 | |
CN104778616A (zh) | 一种发票信息快速输入系统和方法 | |
CN102959538B (zh) | 给文档编索引 | |
US20210073257A1 (en) | Logical document structure identification | |
CN103488441B (zh) | 一种阿拉伯语在pos机上打印的实现方法 | |
CN101894299A (zh) | 支持rfid、hs编码和图像处理的快件出入境智能申报系统 | |
CN104898991B (zh) | 一种基于自动化ral的寄存器访问方法及系统 | |
CN102729647B (zh) | 记录控制装置、记录系统和记录控制方法 | |
CN110297926A (zh) | 星载图像处理装置在轨配置方法 | |
CN115294586A (zh) | 一种识别发票的方法、装置、存储介质及电子设备 | |
CN102810095B (zh) | 一种学词方法和装置 | |
CN115294593A (zh) | 一种图像信息抽取方法、装置、计算机设备及存储介质 | |
CN100359509C (zh) | 使用有效数据传送格式的异步通信协议 | |
CN101089841A (zh) | 基于知识编码的精确搜索方法和系统 | |
CN111209724A (zh) | 文本的校验方法、装置、存储介质以及处理器 | |
CN101325758A (zh) | 可显示多种语言的移动通讯装置及方法 | |
CN113487698B (zh) | 基于双通道神经网络模型的表单生成方法及装置 | |
CN101739389A (zh) | 一种方便的实现藏文扩充集的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |