CN110704470B - 一种账单数据排重方法、终端设备及存储介质 - Google Patents
一种账单数据排重方法、终端设备及存储介质 Download PDFInfo
- Publication number
- CN110704470B CN110704470B CN201910932674.8A CN201910932674A CN110704470B CN 110704470 B CN110704470 B CN 110704470B CN 201910932674 A CN201910932674 A CN 201910932674A CN 110704470 B CN110704470 B CN 110704470B
- Authority
- CN
- China
- Prior art keywords
- transaction
- data
- time
- bill data
- group
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/12—Accounting
- G06Q40/125—Finance or payroll
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明涉及一种账单数据排重方法、终端设备及存储介质,该方法中包括:按交易对象账号分组、排重检测、按金额分组、排重比对和入库五种步骤,其中,通过按交易对象账号和交易金额进行分组,可以方便数据并行处理,同时缩减了排重数据的范围;采用动态规划的算法、规则树和循序渐进的比对,既保障了计算效率,又确保了最终的排重结果为最优;可以对多账单数据进行比较精确的排重,包括跨行转账和同账号不同时段或者不同渠道调取的数据,省去了大量人工进行标注排重的时间。
Description
技术领域
本发明涉及账单数据处理领域,尤其涉及一种账单数据排重方法、终端设备及存储介质。
背景技术
资金分析是数据分析系统中的主要模块,而银行账单流水数据是资金分析中主要数据来源,通常分析的数据会涉及多个人以及多个银行账号的账单,这其中会出现跨银行交易,多人之间数据有交叉的情况,比如分析多个人,涉及银行账号A和B,账号A的账单中包括跟账号B的交易数据,从账号B获取的账单也自然包括跟账号A的交易数据,在资金分析中需要对数据做合并分析,比如统计账号A和B之间的转账的次数和总金额等,这时必须对数据做排重合并。另外一个账号从不同时段或者不同渠道提取的数据也需要做排重合并,不然会影响数据分析质量和结果。目前常用的排重方案有两种:关键字段算唯一值排重合并;根据账单交易重叠时间段排除重复数据。目前资金分析的软件很多,但是涉及账单数据排重的效果都不太好,很多还是结合人工手动标注来排重。
目前常用的两种排重方案都有一定的效果,但是也存在很大的局限性。对于第一种方案采用关键字段算唯一值排重合并,主要是根据转账方账号、接收方账号、转账时间、转账金额作为关键字段,如果两条记录关键字段值都一样则认为重复。该方案可以高效的解决一个账号从不同时段或者不同渠道提取的数据,但是对于交易转账时间和到账时间存在时间差的记录则排重不掉。第二种方案是根据账单交易重叠时间段排除重复数据,就是账号A的账单记录中A与B交易时间段发生在时间T1~T2之间,而账号B的账单记录中B与A交易时间段发生在时间T3~T4之间,假如时间段重叠(T1<T3<T2<T4),则只保留一方账单记录中T3~T2时间段涉及A与B之间的交易。这种方案运行效率高,但是账单交易存在延迟到账的情况,这种重复时间段边界上的数据排重不了。而且不同渠道获取的账单数据明细不一样,比如账号A获取的账单都是资金在1000元以上的交易,而账号B获取的账单是所有金额的交易,这样会把明细数据误排重掉,丢失了真实交易数据。
发明内容
为了解决上述问题,本发明提出了一种账单数据排重方法、终端设备及存储介质。
具体方案如下:
一种账单数据排重方法,包括以下步骤:
S1:按交易对象账号对账号A的所有账单数据进行分组,设定组数为S,变量N=1;
S2:筛选出账号A的与第N个交易对象账号之间交易的账单数据D(AN),查询数据库中是否存在第N个交易对象账号与账号A之间交易的记录,如果存在,进入S3,否则,将账单数据D(AN)存入数据库内,进入S7;
S3:将账号A的与第N个交易对象账号之间交易的账单数据D(AN)按交易金额进行分组,设定组数为P,变量M=1,同时,对步骤S2中检测的数据库中存在的账号A与第N个交易对象账号之间交易的账单数据D(NA)按金额进行分组;
S4:针对D(AN)的第M组账单数据,判断是否能够在D(NA)中查找出与该组账单数据的交易金额相同的账单数据,如果是,则进入S5,否则,将D(AN)的该组账单数据存入数据库内,直到D(AN)的所有账单数据均处理完毕,进入S7;
S5:设定查找到的为D(NA)中的第K组账单数据,对D(AN)中第M组账单数据和D(NA)中第K组账单数据进行排重比对,标注出D(AN)中第M组账单数据和D(NA)中第K组账单数据中的重复数据;
S6:将D(AN)中第M组账单数据中的重复数据存入与数据库中,与D(NA)中第K组账单数据中对应的重复数据进行合并,将D(AN)中第M组账单数据中重复数据之外的剩余数据存入数据库内,判断M=P是否成立,如果是,进入S7;否则,令M=M+1,返回S4;
S7:判断N=S是否成立,如果是,则账号A的所有账单数据均处理完毕,结束;否则,令N=N+1,返回S2。
进一步的,步骤S5具体包括以下步骤:
S51:分别获取D(AN)中第M组账单数据和D(NA)中第K组账单数据中的最早交易时间和最晚交易时间,判断两组账单数据的交易时间是否有重叠,如果有,分别将交易时间重叠的账单数据作为待排重集合D_AM′和D_Bk′,进入S52,否则,则D(AN)中第M组账单数据中无重复数据,进入S6;
S52:针对待排重集合D_AM′中的每一条交易记录,分别从待排重集合D_Bk′中根据其交易时间向前和向后分别查找与其交易时间的时间差最小的交易记录,并判断查找到的交易记录的时间差是否满足到账时间规则,如果满足,将该交易记录与查找到的对应的交易记录作为一组填入时间差值表的同一行内,直到待排重集合D_AM′中的所有交易记录均查找完毕,进入S53;
所述时间差值表包括四列,分别为待入库交易记录、已入库交易记录、时间方向和时间差;
S53:将时间差值表中的各行按照时间差由小到大的顺序进行排序;
S54:从排序后的时间差值表中任意取一行,将该行对应的待入库交易记录和已入库交易记录均标注为重复数据,从待排重集合D_AM′和D_Bk′中删除对应的交易记录,并从时间差值表中删除该行;
S55:判断时间差值表中的已入库交易记录列中是否还包含有步骤S54中删除的D_Bk′中的交易记录,如果是,按照该交易记录所在行内的时间方向相同的方向从待排重集合D_Bk′中查找与该交易记录的时间差最小的交易记录,将该行已入库交易记录列中的交易记录修改为查找到的交易记录,并更新该行对应的时间差的值,进入S56,否则,直接进入S56;
S56:判断时间差值表是否为空,如果是,进入S6;否则,返回S53。
进一步的,步骤S51中判断两组账单数据的交易时间是否有重叠具体包括为:
设定第一组账单数据的最早交易时间为T1,最晚交易时间为T2;设定第二组账单数据的最早交易时间为T3,最晚交易时间为T4;
根据两组账单数据中交易记录对应的交易时间和到账时间规则,计算出T1、T2、T3、T4对应的最大延迟时间,分别为T1_Delay、T2_Delay、T3_Delay、T4_Delay;
设定重叠时间范围中最小时间为TR_Min,最大时间为TR_Max,根据如下几种情况,计算交易时间是否有重叠:
(1)如果T2<T3或者T4<T1,则交易时间无重叠;
(2)如果T2≥T3或者T4≥T1,则交易时间有重叠,重叠时间的计算包括以下四种情况:
a)如果T2<T4且T1<T3,则TR_Min=T3-T3_Delay,TR_Max=T2+T2_Delay;
b)如果T2<T4且T1≥T3,则TR_Min=T1-T1_Delay,TR_Max=T2+T2_Delay;
c)如果T2≥T4且T1<T3,则TR_Min=T3-T3_Delay,TR_Max=T4+T4_Delay;
如果T2≥T4而且T1≥T3,则TR_Min=T1-T1_Delay,TR_Max=T4+T4_Delay。
一种账单数据排重终端设备,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例上述的方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现本发明实施例上述的方法的步骤。
本发明采用如上技术方案,并具有有益效果:
(1)通过对多账单数据做预处理,按交易对象账号和交易金额进行分组,方便数据并行处理,同时缩减了排重数据的范围。
(2)采用动态规划的算法、规则树和循序渐进的比对,既保障了计算效率,又确保了最终的排重结果为最优。
(3)上层分析应用在排重结果可以方便分析统计,得到精确的分析结果。
(4)可以对多账单数据进行比较精确的排重,包括跨行转账和同账号不同时段或者不同渠道调取的数据。省去了大量人工进行标注排重的时间。
(5)可以进一步延伸到时序类数据的排重中,同样应用于数据分析,情报研判等功能中。
附图说明
图1所示为本发明实施例一的流程图。
图2所示为该实施例中到账时间规则示意图。
图3所示为该实施例中到账时间规则的具体实例的示意图。
具体实施方式
为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。
现结合附图和具体实施方式对本发明进一步说明。
实施例一:
账单数据的排重操作都是在数据预处理阶段完成,从而方便业务上分析应用。每个账单数据分开处理,因此对每个账号的账单数据需要单独做预处理。
本发明实施例提供了一种账单数据排重方法,为了方便描述过程,以账号A和B的账单数据处理为例进行说明。假设账号B的账单数据已经按流程入库,接下来处理账号A的账单数据。参考图1,该方法具体包括以下步骤:
步骤1:按交易对象账号分组:由于只有具有相同交易对象账号之间的交易才需要进行排重,因此按交易对象账号对账号A的所有账单数据进行分组。
若账号A的交易对象账号分别是B、C、D……X,则将账号A与账号B之间的交易账单数据分为一组,设为D(AB)、将账号A与账号C之间的交易账单数据分为一组,设为D(AC)、……、将账号A与账号D之间的交易账单数据分为一组,设为D(AX),每一组中账号A均只有一个交易对象的账号。
步骤2:排重检测:筛选出账号A的与第N个交易对象账号之间交易的账单数据,设为D(AN),查询数据库中是否存在第N个交易对象账号与账号A之间交易的记录,如果存在,进入步骤3;否则,将账单数据D(AN)存入数据库内,重复步骤2,直到账号A的所有交易对象账号均查询完毕。
所述数据库为用于存储账单数据的数据库。该实施例中账单数据在数据库中的存储格式,主要字段及类型如表1所示:
表1
通过((accountA=A AND accountB=B)OR(accountA=B AND accountB=A))从数据库中查询第N个交易对象账号与账号A之间交易的记录。
步骤3:按金额分组:因为只有转账金额相同的交易才可能是重复数据,因此,将账号A的与第N个交易对象账号之间交易的账单数据D(AN)按交易金额进行分组,分组后得到P组交易数据:D_A1、D_A2、……、D_Ap,令变量M=1。同时,对步骤S2中检测的数据库中存在的第N个交易对象账号与账号A之间交易的已入库的账单数据D(NA)按金额进行分组,分组后得到m组交易数据:D_B1、D_B2……D_Bm。同组之间的交易金额一样。
步骤4:针对D(AN)的每一组账单数据,判断是否能够在D(NA)中查找出与该组账单数据的交易金额相同的账单数据,如果是,则进入步骤5的排重比对,否则,将D(AN)的该组账单数据存入数据库内,重复步骤4,直到D(AN)的所有账单数据均处理完毕。
比如:针对D(AN)的D_A1这组账单数据,则从已入库的账单数据D(NA)中的各组(即D_B1、D_B2……D_Bm)中查找交易金额相同的一组数据,如果查找到D_Bk,则进入步骤S5对两组数据D_A1和D_Bk进行排重比对;否则,将D_A1对应的账单数据存入数据库中,继续在D(NA)中查找与D(AN)的D_A2这组账单数据金额相同的组,直至D(AN)中的所有组均查找完毕。
步骤5:排重比对:对交易金额相同的两组账单数据进行排重比对,标注出两组账单数据中的重复数据。
比如:排重比对的两组账单数据分别为D_A1和D_Bk,假设D_A1中包括的交易记录为S1、S2、……、Sp,D_Bk中包括的交易记录为X1、X2、……、Xq,则两组账单数据的具体比对过程为:
S51:分别获取两组账单数据中的所有交易记录的最早交易时间和最晚交易时间,判断两组账单数据的交易时间是否有重叠,如果有,分别将交易时间重叠的账单数据作为待排重集合D_A1′和D_Bk′,进入S52,否则,D_A1中无重复数据,将账号A的该组账单数据D_A1中无重复数据,将D_A1存入数据库。
需要说明的是,所述交易时间通常为转账时间和到账时间中的一种,如果为转账方,则交易时间为转账时间,如果为到账方,则交易时间为到账时间。
该实施例中,交易时间是否有重叠的具体判定方法为:
设定D_A1中所有交易记录对应的最早交易时间为T1,最晚交易时间为T2,则(T1≤T2)。设定D_Bk中所有交易记录对应的最早交易时间T3和最晚交易时间T4,则(T3≤T4)。
根据两组账单数据中交易记录对应的交易时间和到账时间规则,计算出T1、T2、T3、T4时刻对应的最大延迟时间,分别为T1_Delay、T2_Delay、T3_Delay、T4_Delay。
银行发起转账后,不同的情况下的到账时间不一样,比如是否本地转账、转账金额的大小、是否工作日转账、是否同行转账等因素都会影响最终到账的最大延迟时间。为了方便计算,该实施例中根据不同的转账条件,建立到账时间规则,如图2和图3所示,方便计算每种情况下的最大延迟时间。
根据如下几种情况,计算参与排重记录的交易时间段TR_Min~TR_Max的取值。
1.如果T2<T3或者T4<T1,则[T1,T2]与[T3,T4]之间无交集,无须进行排重,直接把数据集D_A1的记录存入数据库,即完成了D_A1和D_Bk之间的排重。
2.如果T2≥T3或者T4≥T1,再细分如下四种情况:
(1)如果T2<T4而且T1<T3,则TR_Min=T3-T3_Delay,TR_Max=T2+T2_Delay。
(2)如果T2<T4而且T1≥T3,则TR_Min=T1-T1_Delay,TR_Max=T2+T2_Delay。
(3)如果T2≥T4而且T1<T3,则TR_Min=T3-T3_Delay,TR_Max=T4+T4_Delay。
(4)如果T2≥T4而且T1≥T3,则TR_Min=T1-T1_Delay,TR_Max=T4+T4_Delay。
最后,将不在TR_Min~TR_Max时间范围内的交易记录标记为不重复,将该不重复的交易记录存入数据库,从待排重集合D_A1、D_Bk中删除标注的记录。最终得到待排重集合D_A1′、D_Bk′。
S52:针对待排重集合D_A1′中的每一条交易记录,分别从待排重集合D_Bk′中根据其交易时间向前和向后分别查找与其交易时间的时间差最小的交易记录,并判断查找到的交易记录的时间差是否满足到账时间规则,如果满足将该交易记录与查找到的对应的交易记录作为一组填入时间差值表的同一行内,直到待排重集合D_A1′中的所有交易记录均查找完毕,进入S53。
其中,D_A1′中的每一条交易记录均对应一行,每一行中除包括D_A1′(待入库交易记录)和D_Bk′(已入库交易记录)中的交易记录之外,还包括时间方向和时间差,当待入库交易记录的交易时间>已入库交易记录的交易时间时,时间方向设为0;当待入库交易记录的交易时间<已入库交易记录的交易时间时,时间方向设为1。所述入库是指存入数据库。
比如,从待排重集合D_A1′读取一条交易记录A1,其交易时间为T_A1;
从待排重集合D_Bk′中查找交易时间大于且最接近T_A1的记录为B1;
从待排重集合D_Bk′中查找交易时间小于且最接近T_A1的记录为B2;
如果B1不为空,取交易时间为T_B1,交易时间差T_Diff1=T_B1-T_A1,根据到账时间规则计算的最大延迟时间为T_B1_Delay;
如果T_B1_Delay>T_Diff1,则设置B1为空;
如果B2不为空,取交易时间为T_B2,交易时间差T_Diff2=T_A1-T_B2,根据规则树计算的最大延迟时间为T_B2_Delay;
如果T_B2_Delay>T_Diff2,则设置B2为空;
如果B1和B2都为空,则标注该交易记录A1为不重复,从待排重数据集合D_A1′中删除该记录;
如果B1为空且B2不为空,则按表2所示格式插入该交易记录A1和B2到时间差值表中。
表2
如果B1不为空且B2为空,则按表3所示格式插入该交易记录A1和B2到时间差值表中。
表3
如果B1和B2都不为空,则按表4所示格式插入该交易记录A1和B2到时间差值表中。
表4
S53:将时间差值表中的各行按照时间差由小到大的顺序进行排序,结果如表5所示。
表5
S54:从排序后的时间差值表中任意取一行,如Si和Xk,将该行对应的交易记录Si和Xk标注为重复数据,从待排重集合D_A1′和D_Bk′中删除Si和Xk,并从时间差值表中删除该行,进入S55。
S55:如果时间差值表中的“已入库交易记录”列还包含有交易记录Xk,比如表6中的数据。
表6
按照交易记录Xk所在行内的时间方向相同的方向从待排重集合D_Bk′中查找与Xk的时间差最小的交易记录,如果查找到的交易记录为Xn,则将该行中的Xk修改为Xn,并更新该行对应的时间差的值,如表7所示,进入S56;否则,直接进入S56。
表7
S56:判断时间差值表是否为空,如果是,进入步骤6;否则,返回S53。
步骤6:将D(AN)中第M组账单数据中的重复数据存入与数据库中,与D(NA)中第K组账单数据中对应的重复数据进行合并,将D(AN)中第M组账单数据中重复数据之外的剩余数据存入数据库内,返回步骤4,直到D(AN)中的所有组账单数据均处理完毕。
步骤6中,将D(AN)与D(NA)中的重复数据合并是由于两者属于同一笔交易数据,但一方为转账数据,一方为收账数据,合并后为一个完整的交易数据,因此,将其在数据库中进行合并存储。该实施例中均存储为D(NA)中的数据。
本发明实施例一具有以下技术效果:
(1)通过对多账单数据做预处理,按交易对象账号和交易金额进行分组,方便数据并行处理,同时缩减了排重数据的范围。
(2)采用动态规划的算法、规则树和循序渐进的比对,既保障了计算效率,又确保了最终的排重结果为最优。
(3)上层分析应用在排重结果可以方便分析统计,得到精确的分析结果。
(4)可以对多账单数据进行比较精确的排重,包括跨行转账和同账号不同时段或者不同渠道调取的数据。省去了大量人工进行标注排重的时间。
(5)可以进一步延伸到时序类数据的排重中,同样应用于数据分析,情报研判等功能中。
实施例二:
本发明还提供一种账单数据排重终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例一的上述方法实施例中的步骤。
进一步地,作为一个可执行方案,所述账单数据排重终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述账单数据排重终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,上述账单数据排重终端设备的组成结构仅仅是账单数据排重终端设备的示例,并不构成对账单数据排重终端设备的限定,可以包括比上述更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述账单数据排重终端设备还可以包括输入输出设备、网络接入设备、总线等,本发明实施例对此不做限定。
进一步地,作为一个可执行方案,所称处理器可以是中央处理单元(CentralProcessing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述账单数据排重终端设备的控制中心,利用各种接口和线路连接整个账单数据排重终端设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述账单数据排重终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据手机的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述方法的步骤。
所述账单数据排重终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)以及软件分发介质等。
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。
Claims (5)
1.一种账单数据排重方法,其特征在于,包括以下步骤:
S1:按交易对象账号对账号A的所有账单数据进行分组,设定组数为S,变量N=1;
S2:筛选出账号A的与第N个交易对象账号之间交易的账单数据D(AN),查询数据库中是否存在第N个交易对象账号与账号A之间交易的记录,如果存在,进入S3,否则,将账单数据D(AN)存入数据库内,进入S7;
S3:将账号A的与第N个交易对象账号之间交易的账单数据D(AN)按交易金额进行分组,设定组数为P,变量M=1,同时,对步骤S2中检测的数据库中存在的账号A与第N个交易对象账号之间交易的账单数据D(NA)按金额进行分组;
S4:针对D(AN)的第M组账单数据,判断是否能够在D(NA)中查找出与该组账单数据的交易金额相同的账单数据,如果是,则进入S5,否则,将D(AN)的该组账单数据存入数据库内,直到D(AN)的所有账单数据均处理完毕,进入S7;
S5:设定查找到的为D(NA)中的第K组账单数据,对D(AN)中第M组账单数据和D(NA)中第K组账单数据进行排重比对,标注出D(AN)中第M组账单数据和D(NA)中第K组账单数据中的重复数据;
S6:将D(AN)中第M组账单数据中的重复数据存入与数据库中,与D(NA)中第K组账单数据中对应的重复数据进行合并,将D(AN)中第M组账单数据中重复数据之外的剩余数据存入数据库内,判断M=P是否成立,如果是,进入S7;否则,令M=M+1,返回S4;
S7:判断N=S是否成立,如果是,则账号A的所有账单数据均处理完毕,结束;否则,令N=N+1,返回S2。
2.根据权利要求1所述的账单数据排重方法,其特征在于:步骤S5具体包括以下步骤:
S51:分别获取D(AN)中第M组账单数据和D(NA)中第K组账单数据中的最早交易时间和最晚交易时间,判断两组账单数据的交易时间是否有重叠,如果有,分别将交易时间重叠的账单数据作为待排重集合D_AM′和D_Bk′,进入S52,否则,则D(AN)中第M组账单数据中无重复数据,进入S6;
S52:针对待排重集合D_AM′中的每一条交易记录,分别从待排重集合D_Bk′中根据其交易时间向前和向后分别查找与其交易时间的时间差最小的交易记录,并判断查找到的交易记录的时间差是否满足到账时间规则,如果满足,将该交易记录与查找到的对应的交易记录作为一组填入时间差值表的同一行内,直到待排重集合D_AM′中的所有交易记录均查找完毕,进入S53;
所述时间差值表包括四列,分别为待入库交易记录、已入库交易记录、时间方向和时间差;
S53:将时间差值表中的各行按照时间差由小到大的顺序进行排序;
S54:从排序后的时间差值表中任意取一行,将该行对应的待入库交易记录和已入库交易记录均标注为重复数据,从待排重集合D_AM′和D_Bk′中删除对应的交易记录,并从时间差值表中删除该行;
S55:判断时间差值表中的已入库交易记录列中是否还包含有步骤S54中删除的D_Bk′中的交易记录,如果是,按照该交易记录所在行内的时间方向相同的方向从待排重集合D_Bk′中查找与该交易记录的时间差最小的交易记录,将该行已入库交易记录列中的交易记录修改为查找到的交易记录,并更新该行对应的时间差的值,进入S56,否则,直接进入S56;
S56:判断时间差值表是否为空,如果是,进入S6;否则,返回S53。
3.根据权利要求2所述的账单数据排重方法,其特征在于:步骤S51中判断两组账单数据的交易时间是否有重叠具体包括为:
设定第一组账单数据的最早交易时间为T1,最晚交易时间为T2;设定第二组账单数据的最早交易时间为T3,最晚交易时间为T4;
根据两组账单数据中交易记录对应的交易时间和到账时间规则,计算出T1、T2、T3、T4对应的最大延迟时间,分别为T1_Delay、T2_Delay、T3_Delay、T4_Delay;
设定重叠时间范围中最小时间为TR_Min,最大时间为TR_Max,根据如下几种情况,计算交易时间是否有重叠:
(1)如果T2<T3或者T4<T1,则交易时间无重叠;
(2)如果T2≥T3或者T4≥T1,则交易时间有重叠,重叠时间的计算包括以下四种情况:
a)如果T2<T4且T1<T3,则TR_Min=T3-T3_Delay,TR_Max=T2+T2_Delay;
b)如果T2<T4且T1≥T3,则TR_Min=T1-T1_Delay,TR_Max=T2+T2_Delay;
c)如果T2≥T4且T1<T3,则TR_Min=T3-T3_Delay,TR_Max=T4+T4_Delay;
d)如果T2≥T4而且T1≥T3,则TR_Min=T1-T1_Delay,TR_Max=T4+T4_Delay。
4.一种账单数据排重终端设备,其特征在于:包括处理器、存储器以及存储在所述存储器中并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1~3中任一所述方法的步骤。
5.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1~3中任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910932674.8A CN110704470B (zh) | 2019-09-29 | 2019-09-29 | 一种账单数据排重方法、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910932674.8A CN110704470B (zh) | 2019-09-29 | 2019-09-29 | 一种账单数据排重方法、终端设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110704470A CN110704470A (zh) | 2020-01-17 |
CN110704470B true CN110704470B (zh) | 2022-02-15 |
Family
ID=69197108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910932674.8A Active CN110704470B (zh) | 2019-09-29 | 2019-09-29 | 一种账单数据排重方法、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110704470B (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8240554B2 (en) * | 2008-03-28 | 2012-08-14 | Keycorp | System and method of financial instrument processing with duplicate item detection |
CN103888547B (zh) * | 2014-04-16 | 2018-05-25 | 中国银行股份有限公司 | 一种账单处理方法和服务器 |
CN107944866B (zh) * | 2017-10-17 | 2021-08-31 | 厦门市美亚柏科信息股份有限公司 | 交易记录排重方法及计算机可读存储介质 |
CN109598575B (zh) * | 2018-10-25 | 2024-04-05 | 三六零科技集团有限公司 | 一种账单生成方法、装置、电子设备及介质 |
-
2019
- 2019-09-29 CN CN201910932674.8A patent/CN110704470B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110704470A (zh) | 2020-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6381601B1 (en) | Grouping and duplicate removal method in a database | |
US5394487A (en) | Forms recognition management system and method | |
US10489372B2 (en) | Data storage methods, query methods, and apparatuses thereof | |
CN102737327A (zh) | 一种划分客户群集的计算机实现的方法和系统 | |
US20070239663A1 (en) | Parallel processing of count distinct values | |
CN104298736A (zh) | 数据集合连接方法、装置及数据库系统 | |
CN110737917A (zh) | 基于隐私保护的数据共享装置、方法及可读存储介质 | |
CN103699441A (zh) | 基于任务粒度的MapReduce报表任务执行方法 | |
CN112364645A (zh) | 一种自动审核erp财务系统业务单据的方法及设备 | |
CN112434884A (zh) | 一种供应商分类画像的建立方法及装置 | |
CN106844320B (zh) | 一种财务报表整合方法和设备 | |
US7458001B2 (en) | Sequential pattern extracting apparatus | |
CN111967521A (zh) | 跨境活跃用户识别方法及装置 | |
CN105359172A (zh) | 计算企业存在拖欠的概率 | |
CN112053114B (zh) | 一种用于提高单批次订单装载量的订单组团方法和系统 | |
CN110704470B (zh) | 一种账单数据排重方法、终端设备及存储介质 | |
CN109978675B (zh) | 一种税务监控方法和装置 | |
CN116611915A (zh) | 一种基于统计推理的薪资预测方法及设备 | |
CN113625967B (zh) | 数据存储方法、数据查询方法及服务器 | |
CN109324963B (zh) | 自动测试收益结果的方法及终端设备 | |
US6182071B1 (en) | Sorting and summing record data including generated sum record with sort level key | |
CN114265887A (zh) | 一种维度数据处理方法、装置、存储介质及电子设备 | |
CN111291889A (zh) | 一种知识库的构建方法及装置 | |
CN111984637A (zh) | 数据建模中的缺失值处理方法和装置、设备及存储介质 | |
CN109739839A (zh) | 数据空值处理方法、装置及终端设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |