CN104463665A - 一种对普通发票数据进行存储解析的方法 - Google Patents
一种对普通发票数据进行存储解析的方法 Download PDFInfo
- Publication number
- CN104463665A CN104463665A CN201410767426.XA CN201410767426A CN104463665A CN 104463665 A CN104463665 A CN 104463665A CN 201410767426 A CN201410767426 A CN 201410767426A CN 104463665 A CN104463665 A CN 104463665A
- Authority
- CN
- China
- Prior art keywords
- invoice
- template
- class
- microstructure
- data
- 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.)
- Granted
Links
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明是一种对普通发票数据进行存储解析的方法,使用数据库表单一记录+发票快速查验+微结构+JAVA反射类二次解析;通过发票模板基类自动识别主杆和明细主要信息;通过模板基类中解析的模板代码,自动去模板管理类中,找到相应的具体发票模板类;再通过反射技术生成具体的发票模板类,并对微结构中的结点进行完整解析;最后返回具体的发票模板类。本发明可以保证发票数据的完整性和一致性,无需进行二次解析,可直接进行快速查询,且自动对微结构进行二次解析工作,并容易对其进行封装,简化发票的存取。
Description
技术领域
本发明涉及一种网络发票开票系统发票信息的存储解析技术,具体的说是一种对普通发票数据进行存储解析的方法。
背景技术
目前对于有很多票样的普通发票存储与解析的方法,都是纯基于数据库的,最多也是配合代码表进行存储,在存储时,通常有以下两种方式:一主表加多子表或一种模板发票对应一张表。
对于一主表加多子表的方式来讲,就是把发票共性的存在一张主表中,并把不同模板的发票明细信息,通过模板类型存在不同的子表中,在查询时先查主表,再根据模板类型查子表,从而可以解析出一张完整的发票。对于一种模板发票对应一张表的方式,是通过一张不同的发票模板,存于不同表,每表设计成共性部分和明细部分,按模板的每行明细信息放于一行数据的明细部分,这样每一条记录都记录共性部分和一行的明细信息,把这张表的多行信息读取后,就组成了一张完整发票的信息。
以上现有技术存在的问题是:⑴一主表加多子表方式:a)子表主健是主表主健的强制外健,以保持一致性,对数据库性能压力较大;b)在子表中由于存在多行,非常容易可能删除一条,从而不利于保整完整性;c)由于表比较多维护比较困难,在备份发票数据时,需要多表备份,并容易形成死锁,并且不利于利用大型关系型数据库的分区表技术实现分区管理。⑵一种模板发票对应一张表的方式:a)由于对共性部份要保存多个备份,数据冗余度较大;b)在子表中由于存在多行,非常容易可能删除一条,从而不利于保整完整性;c)由于表比较多维护比较困难,在备份发票数据时,需要多表备份;d)需要通过软件确定访问那个数据表,如果一个用户有多种票时,给应用提供了困难。
发明内容
本发明所要解决的技术问题是,克服现有技术的缺点,提供一种对普通发票数据进行存储解析的方法,保证发票数据的完整性和一致性,无需进行二次解析,可直接进行快速查询,且自动对微结构进行二次解析工作,并容易对其进行封装,简化发票的存取。
本发明解决以上技术问题的技术方案是:
一种对普通发票数据进行存储解析的方法,按以下步骤进行:
㈠把普通发票存储分成三部分:主杆信息、明细主要信息和微结构,其中,所述主杆信息为各种发票的共同所有的字段,包括:发票代码、发票号码、开票防伪码、开票方纳税人识别号、开票方名称、授票方纳税人识别号、授票方纳税人名称、开票金额、开票时间、开票状态及发票数据来源类型,用以通用的发票查询;所述明细主要信息为发票中的明细条目中金额最大的那一条,如果最大金额有多条,则取第一条,包括这一条明细信息中的品目名称、数量、单价和金额,用以进行发票真伪查验;所述微结构由两个字段组成,一个是发票模板代码,另一个是可存储小于4GB的CLOB类型字段,所述CLOB类型字段存储了发票的明细数据,存储形式为完整的XML文件;
㈡在微结构的XML文件中定义发票的三个层次节点:主杆节点、明细主要节点和发票上具体每行的记录信息节点,在XML中不但存储字符结点,同时提供其它二进制信息的存储,在对这个微结构进行解析时使用一个模板管理类、一个发票模板基类以及基于这个基类所派生的发票模板类,将各个发票模板类自动注册到模板管理类中,在对单张发票进行完整解析时,步骤如下:
⑴通过发票模板基类、自动识别主杆和明细主要信息;
⑵通过模板基类中解析的模板代码,自动去模板管理类中找到相应的具体发票模板类;
⑶通过JAVA的反射技术,即通过类的字符串名称来动态生成实体发票模板对象,并根据微结构中节点的字符串名称来获取实体发票模板对象中相应名称的属性,并把此节点中的值赋给此属性,以此盾环,直至微结构中的所有节点都处理了一次,从而对整个微结构的数据进行解析;
⑷返回具体的发票模板类。
以上方法中,如果是发票查询与查验,则只要执行步骤⑴解析即可。以上方法中,发票上具体每行的记录信息节点包括:品名、规格、单价、数量和总价。本发明所用的JAVA的反射技术为本领域的常用技术,在此不再详细描述。
本发明的有益效果是:⑴使发票数据可以统一存储在一张关系表中,并且是一张发票一条记录,更好的保证了其完整性和一致性,降底了数据库处理和存储资源的开销,并为实现分区存储提供了便利;⑵对于发票主体查询和查验工作,无需进行二次解析,可直接进行查询,并满足快速查验要求;⑶即使在不同的软件中传递发票数据,因为无需解析微结构,所以不会影响发票的查询和查验功能;⑷利用反射技术,可以较好的自动对微结构进行二次解析工作,并容易对其进行封装,简化发票的存取工作;⑸使用微结构,可以在三个层次中增加数据结点,并支持多种数据类型,提供了良好的模板扩展性。
附图说明
图1为本发明的对普通发票数据进行存储解析的示意图。
具体实施方式
实施例1
本实施例是一种对普通发票数据进行存储解析的方法,如图1所示,首先把普通发票存储分成三部分:主杆信息、明细主要信息和微结构。主杆信息是指各种发票的共同所有的字段,包括:发票代码、发票号码、开票防伪码、开票方纳税人识别号、开票方名称、授票方纳税人识别号、授票方纳税人名称、开票金额、开票时间、开票状态及发票数据来源类型等,它主要来应付通用的发票查询;明细主要信息是指发票中的明细条目中金额最大的那一条,如果最大金额有多条,则取第一条,包括了这一条明细信息中的:品目名称、数量、单价和金额,它可以用来进行发票真伪查验;微结构是有两个字段组成,一个是发票模板代码,另一个是可存储小于4GB的CLOB类型字段,它存储了发票的明细数据,存储形式为完整的XML(扩展性标识语言)文件。
在微结构的XML文件中定义发票的三个层次节点:主杆节点、明细主要节点和发票上具体每行的记录信息节点,发票上具体每行的记录信息节点包括:品名、规格、单价、数量和总价等,这三个层次,可以为模板中不同层次中增加结点信息提供支持。在XML中不但存储字符结点,同时提供其它二进制信息的存储,比如加密信息等。在对这个微结构进行解析时使用一个模板管理类、一个发票模板基类以及基于这个基类所派生的发票模板类,将各个发票模板类自动注册到模板管理类中,在对单张发票进行完整解析时,步骤如下:
⑴通过发票模板基类、自动识别主杆和明细主要信息;
⑵通过模板基类中解析的模板代码,自动去模板管理类中找到相应的具体发票模板类;
⑶通过JAVA的反射技术,即通过类的字符串名称来动态生成实体发票模板对象,并根据微结构中节点的字符串名称来获取实体发票模板对象中相应名称的属性,并把此节点中的值赋给此属性,以此盾环,直至微结构中的所有节点都处理了一次,从而对整个微结构的数据进行解析;
⑷返回具体的发票模板类。
如果是发票查询与查验,则只要执行第一步解析即可。
除上述实施例外,本发明还可以有其他实施方式。凡采用等同替换或等效变换形成的技术方案,均落在本发明要求的保护范围。
Claims (3)
1.一种对普通发票数据进行存储解析的方法,其特征在于:按以下步骤进行:
㈠把普通发票存储分成三部分:主杆信息、明细主要信息和微结构,其中,所述主杆信息为各种发票的共同所有的字段,包括:发票代码、发票号码、开票防伪码、开票方纳税人识别号、开票方名称、授票方纳税人识别号、授票方纳税人名称、开票金额、开票时间、开票状态及发票数据来源类型,用以通用的发票查询;所述明细主要信息为发票中的明细条目中金额最大的那一条,如果最大金额有多条,则取第一条,包括这一条明细信息中的品目名称、数量、单价和金额,用以进行发票真伪查验;所述微结构由两个字段组成,一个是发票模板代码,另一个是可存储小于4GB的CLOB类型字段,所述CLOB类型字段存储了发票的明细数据,存储形式为完整的XML文件;
㈡在微结构的XML文件中定义发票的三个层次节点:主杆节点、明细主要节点和发票上具体每行的记录信息节点,在XML中不但存储字符结点,同时提供其它二进制信息的存储,在对这个微结构进行解析时使用一个模板管理类、一个发票模板基类以及基于这个基类所派生的发票模板类,将各个发票模板类自动注册到模板管理类中,在对单张发票进行完整解析时,步骤如下:
⑴通过发票模板基类、自动识别主杆和明细主要信息;
⑵通过模板基类中解析的模板代码,自动去模板管理类中找到相应的具体发票模板类;
⑶通过JAVA的反射技术,即通过类的字符串名称来动态生成实体发票模板对象,并根据微结构中节点的字符串名称来获取实体发票模板对象中相应名称的属性,并把此节点中的值赋给此属性,以此盾环,直至微结构中的所有节点都处理了一次,从而对整个微结构的数据进行解析;
⑷返回具体的发票模板类。
2.如权利要求1所述的对普通发票数据进行存储解析的方法,其特征在于:如果是发票查询与查验,则只要执行步骤⑴解析。
3.如权利要求1或2所述的对普通发票数据进行存储解析的方法,其特征在于:所述发票上具体每行的记录信息节点包括:品名、规格、单价、数量和总价。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410767426.XA CN104463665B (zh) | 2014-12-11 | 2014-12-11 | 一种对普通发票数据进行存储解析的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410767426.XA CN104463665B (zh) | 2014-12-11 | 2014-12-11 | 一种对普通发票数据进行存储解析的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104463665A true CN104463665A (zh) | 2015-03-25 |
CN104463665B CN104463665B (zh) | 2017-11-14 |
Family
ID=52909656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410767426.XA Active CN104463665B (zh) | 2014-12-11 | 2014-12-11 | 一种对普通发票数据进行存储解析的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104463665B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106408356A (zh) * | 2015-08-03 | 2017-02-15 | 航天信息股份有限公司 | 一种节省流量的开票方法和系统 |
CN106469363A (zh) * | 2015-08-21 | 2017-03-01 | 上海合印包装服务有限公司 | 具有退票判断功能的印刷开票管理系统 |
CN106777397A (zh) * | 2017-03-02 | 2017-05-31 | 百望电子发票数据服务有限公司 | 一种电子发票数据组织查询方法及系统 |
CN106934632A (zh) * | 2015-12-30 | 2017-07-07 | 远光软件股份有限公司 | 发票验真方法及发票验真系统 |
CN107220256A (zh) * | 2016-03-22 | 2017-09-29 | 中电科海洋信息技术研究院有限公司 | web前端展示文件的自动生成方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030130945A1 (en) * | 2002-01-08 | 2003-07-10 | Bottomline Technologies (De) Inc. | Electronic transaction processing server with trend based automated transaction evaluation |
CN101944212A (zh) * | 2010-09-29 | 2011-01-12 | 用友软件股份有限公司 | 变更单据生成方法和装置 |
EP2339528A1 (en) * | 1999-10-29 | 2011-06-29 | Computer Sciences Corporation | Business transaction processing systems and methods |
CN102136093A (zh) * | 2010-01-26 | 2011-07-27 | 金蝶软件(中国)有限公司 | 一种实现核销的方法和系统 |
CN102222060A (zh) * | 2011-06-28 | 2011-10-19 | 用友软件股份有限公司 | 单据转换装置和单据转换方法 |
-
2014
- 2014-12-11 CN CN201410767426.XA patent/CN104463665B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2339528A1 (en) * | 1999-10-29 | 2011-06-29 | Computer Sciences Corporation | Business transaction processing systems and methods |
US20030130945A1 (en) * | 2002-01-08 | 2003-07-10 | Bottomline Technologies (De) Inc. | Electronic transaction processing server with trend based automated transaction evaluation |
CN102136093A (zh) * | 2010-01-26 | 2011-07-27 | 金蝶软件(中国)有限公司 | 一种实现核销的方法和系统 |
CN101944212A (zh) * | 2010-09-29 | 2011-01-12 | 用友软件股份有限公司 | 变更单据生成方法和装置 |
CN102222060A (zh) * | 2011-06-28 | 2011-10-19 | 用友软件股份有限公司 | 单据转换装置和单据转换方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106408356A (zh) * | 2015-08-03 | 2017-02-15 | 航天信息股份有限公司 | 一种节省流量的开票方法和系统 |
CN106469363A (zh) * | 2015-08-21 | 2017-03-01 | 上海合印包装服务有限公司 | 具有退票判断功能的印刷开票管理系统 |
CN106934632A (zh) * | 2015-12-30 | 2017-07-07 | 远光软件股份有限公司 | 发票验真方法及发票验真系统 |
CN107220256A (zh) * | 2016-03-22 | 2017-09-29 | 中电科海洋信息技术研究院有限公司 | web前端展示文件的自动生成方法 |
CN106777397A (zh) * | 2017-03-02 | 2017-05-31 | 百望电子发票数据服务有限公司 | 一种电子发票数据组织查询方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104463665B (zh) | 2017-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8015222B2 (en) | Virtual repository management | |
CN1949763B (zh) | 共享信息服务器系统 | |
US9218409B2 (en) | Method for generating and using a reusable custom-defined nestable compound data type as database qualifiers | |
CN103902653B (zh) | 一种构建数据仓库表血缘关系图的方法和装置 | |
CN104463665A (zh) | 一种对普通发票数据进行存储解析的方法 | |
US20100115100A1 (en) | Federated configuration data management | |
US20070192374A1 (en) | Virtual repository management to provide functionality | |
US20100070496A1 (en) | Searchable Object Network | |
CN102799634A (zh) | 数据存储方法及装置 | |
JP7051108B2 (ja) | データソースシステムに不可知のファクトカテゴリパーティション化情報リポジトリ及び情報リポジトリを用いてデータを挿入及び検索するための方法 | |
WO2006115705A2 (en) | Apparatus and method for constructing a semantic layer based on xbrl data | |
CN102346744B (zh) | 用于在多租户应用系统中处理物化表的装置 | |
CN104408171A (zh) | 单据子表行关联查询装置和方法 | |
CN106095964A (zh) | 一种对数据进行可视化归档与搜索的方法 | |
US20110145005A1 (en) | Method and system for automatic business content discovery | |
Petermann et al. | BIIIG: enabling business intelligence with integrated instance graphs | |
CN112100181B (zh) | 一种基于沙盘的数据资源管理方法 | |
CN106326243A (zh) | 一种数据处理方法及装置 | |
CN104391899B (zh) | 一种集中清算系统的数据管理方法及系统 | |
US10430413B2 (en) | Data information framework | |
CN102831123B (zh) | 一种用于查询数据的权限控制方法和系统 | |
CN113535966A (zh) | 知识图谱的创建方法、信息获取的方法、装置和设备 | |
US8856187B2 (en) | Data management for data aggregation | |
Sala et al. | Midas for government: Integration of government spending data on Hadoop | |
US8418049B2 (en) | Stakeholder matrix |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 210061 No. 8-2 Pu Si highway, Nanjing hi tech Industrial Development Zone, Jiangsu Applicant after: Aerospace Information Jiangsu Co., Ltd. Address before: 210061 building five, A building, 9 Spark Road, Nanjing hi tech Development Zone, Pukou District, Jiangsu Applicant before: JIANGSU AISINO TECHNOLOGY CO., LTD. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |