单据编码生成的方法和装置的制造方法

文档序号:8528231阅读:183来源:国知局
单据编码生成的方法和装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,特别是涉及一种单据编码生成的方法和装置。
【背景技术】
[0002]随着计算机网络技术的发展,人们使用各种网络应用进行工作和学习。采用电子单据进行记录和管理也越来越普遍。
[0003]在运用电子单据时,不同的单据往往对应一个单据编号,用于标识一个单据。现有的方案往往采用生成单据的各个终端向服务器申请单据编码的方法,由服务器统一对单据编码进行生成。然而在断网的情况下,终端与服务器不能通信,只能由终端生成单据编码,各个终端生成的编码很可能重复。

【发明内容】

[0004]基于此,有必要针对上述技术问题,提供一种单据编码生成的方法和装置,降低生成的单据编码的重复率。
[0005]一种单据编码生成的方法,所述方法包括:
[0006]获取单据类型,根据所述单据类型生成单据前缀;
[0007]获取单据编码生成时间,根据所述时间生成流水号;
[0008]获取当前终端已经生成的单据编码数目,根据所述单据编码数目生成顺序号;
[0009]根据所述单据前缀、流水号和顺序号生成单据编码。
[0010]在其中一个实施例中,所述获取单据编码生成时间,根据所述时间生成流水号的步骤包括:
[0011]获取所述时间的年位值、月位值、日位值、时位值、分位值和秒位值;
[0012]将所述年位值、月位值、日位值、时位值、分位值和秒位值进行排列组合生成流水号。
[0013]在其中一个实施例中,所述获取单据编码生成时间,根据所述时间生成流水号的步骤为:
[0014]获取所述时间的年位值和月位值,将所述年位值和月位值进行排列组合生成流水号;
[0015]所述方法还包括:
[0016]获取所述时间的秒位值,根据所述秒位值查找预设字符串得到单据后缀;
[0017]根据所述单据前缀、流水号、顺序号和单据后缀生成单据编码。
[0018]在其中一个实施例中,所述预设字符串为60位的字符串,每位上的字符不同,所述获取所述时间的秒位值,根据所述秒位值查找预设字符串得到单据后缀的步骤包括:
[0019]按照从前往后的顺序查找与所述秒位值对应的位置;
[0020]取出所述位置上的字符作为单据后缀。
[0021]在其中一个实施例中,所述方法还包括:
[0022]获取当前终端硬件标识,所述硬件标识用于唯一标识当前终端;
[0023]根据所述单据前缀、流水号、顺序号和硬件标识生成单据编码。
[0024]一种单据编码生成的装置,所述装置包括:
[0025]前缀生成模块,用于获取单据类型,根据所述单据类型生成单据前缀;
[0026]流水号生成模块,用于获取单据编码生成时间,根据所述时间生成流水号;
[0027]顺序号生成模块,用于获取当前终端已经生成的单据编码数目,根据所述单据编码数目生成顺序号;
[0028]单据编码生成模块,用于根据所述单据前缀、流水号和顺序号生成单据编码。
[0029]在其中一个实施例中,所述流水号生成模块包括:
[0030]获取单元,用于获取所述时间的年位值、月位值、日位值、时位值、分位值和秒位值;
[0031]生成单元,用于将所述年位值、月位值、日位值、时位值、分位值和秒位值进行排列组合生成流水号。
[0032]在其中一个实施例中,所述流水号生成模块还用于获取所述时间的年位值和月位值,将所述年位值和月位值进行排列组合生成流水号,所述装置还包括:
[0033]后缀生成模块,用于获取所述时间的秒位值,根据所述秒位值查找预设字符串得到单据后缀;
[0034]所述单据编码生成模块,还用于根据所述单据前缀、流水号、顺序号和单据后缀生成单据编码。
[0035]在其中一个实施例中,所述预设字符串为60位的字符串,每位上的字符不同,所述后缀生成模块还用于按照从前往后的顺序查找与所述秒位值对应的位置,取出所述位置上的字符作为单据后缀。
[0036]在其中一个实施例中,所述装置还包括:
[0037]标识获取模块,用于获取当前终端硬件标识,所述硬件标识用于唯一标识当前终端;
[0038]所述单据编码生成模块,还用于根据所述单据前缀、流水号、顺序号和硬件标识生成单据编码。
[0039]上述单据编码生成的方法和装置,通过获取单据类型,根据单据类型生成单据前缀,获取单据编码生成时间,根据时间生成流水号,获取当前终端已经生成的单据编码数目,根据所述单据编码数目生成顺序号,根据单据前缀、流水号和顺序号生成单据编码。生成的单据编码考虑了单据类型、单据编码生成时间、已经生成的单据编码数目,由于各个终端单据类型的区别,和单据编码生成时间的不同,并且各个终端已经生成的单据编码数目也各异,在考虑了多方因素的情况下生成的单据编号往往不同,大大降低了生成的单据编码的重复率。
【附图说明】
[0040]图1为一个实施例中单据编码生成的方法的流程图;
[0041]图2为一个实施例中生成流水号的流程图;
[0042]图3为另一个实施例中单据编码生成的方法的流程图;
[0043]图4为一个实施例中生成单据后缀的流程图;
[0044]图5为一个实施例中生成单据编码的流程图;
[0045]图6为一个实施例中单据编码生成的装置的结构框图;
[0046]图7为一个实施例中流水号生成模块的结构框图;
[0047]图8为另一个实施例中单据编码生成的装置的结构框图;
[0048]图9为再一个实施例中单据编码生成的装置的结构框图。
【具体实施方式】
[0049]在一个实施例中,如图1所示,提供了一种单据编码生成的方法,包括:
[0050]步骤S110,获取单据类型,根据单据类型生成单据前缀。
[0051]具体的,单据类型是指单据所属的类别,如销售单、进货单、收款单、付款单等。根据单据类型生成不同的单据前缀,生成的具体内容可以根据需要自定义,如销售单可定义为XSD等。
[0052]步骤S120,获取单据编码生成时间,根据时间生成流水号。
[0053]具体的,可以在新建单据时生成单据编码,也可以在保存单据时生成单据编码,单据编码生成时间可从终端系统时间获取,精确度可以到秒,也可获取更精确的时间如精确到毫秒。根据时间可直接将时间按照精确度大小进行排序生成流水号,也可以自定义排序顺序,或经过运算生成流水号。如获取的单据编码生成时间为“2011年4月3日15点30分22秒”,可直接将20110403153022作为流水号,也可以通过查表的方式查找数据对应的字符,将查找出的字符进行排列生成流水号。
[0054]步骤S130,获取当前终端已经生成的单据编码数目,根据单据编码数目生成顺序号。
[0055]具体的,当前终端在生成当前单据编码前可能已经生成过多个单据编码了,每生成一个单据编码可进行统计,将统计的已生成单据编码数目进行存储。使用此单据编码数目生成顺序号,如当前终端一个单据编码还没有生成过,已经生成的单据编码数目为0,则可以将O直接作为顺序号。也可以规定顺序号的范围,如从0001-9999,如果单据编码数目超过此范围,则从0001重新开始。
[0056]步骤S140,根据单据前缀、流水号和顺序号生成单据编码。
[0057]具体的,将单据前缀、流水号和顺序号按照自定义顺序进行组合排列生成单据编码。
[0058]本实施例中,通过获取单据类型,根据单据类型生成单据前缀,获取单据编码生成时间,根据时间生成流水号,获取当前终端已经生成的单据编码数目,根据所述单据编码数目生成顺序号,根据单据前缀、流水号和顺序号生成单据编码。生成的单据编码考虑了单据类型、单据编码生成时间、已经生成的单据编码数目,由于各个终端单据类型的区别,和单据编码生成时间的不同,并且各个终端已经生成的单据编码数目也各异,在考虑了多方因素的情况下生成的单据编号往往不同,大大降低了生成的单据编码的重复率。
[0059]在一个实施例中,如图2所示,步骤S120包括:
[0060]步骤S121,获取时间的年位值、月位值、日位值、时位值、分位值和秒位值。
[0061]步骤S122,将年位值、月位值、日位值、时位值、分位值和秒位值进行排列组合生成流水号。
[0062]具体的,时间精确到秒位,可将各个精确度上的值按照自定义顺序进行排列组合生成流水号。由于时间精确到秒,只要不在同一秒生成单据编码就不会单据编码相同,而且即使刚好在同一秒生成单据编码,还有单据前缀和顺序号配合,很难生成相同的单据单号。
[0063]在一个实施例中,如图3所示,提供了一种单据编码生成的方法,步骤S120为:获取时间的年位值和月位值,将年位值和月位值进行排列组合生成流水号,所述方法包括:
[0064]步骤S210,获取单据类型,根据单据类型生成单据前缀。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1