CN117350880B - 基于雪花算法的全链路对账方法、装置、设备及介质 - Google Patents
基于雪花算法的全链路对账方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117350880B CN117350880B CN202311659348.7A CN202311659348A CN117350880B CN 117350880 B CN117350880 B CN 117350880B CN 202311659348 A CN202311659348 A CN 202311659348A CN 117350880 B CN117350880 B CN 117350880B
- Authority
- CN
- China
- Prior art keywords
- reconciliation
- bill
- data
- target
- account
- 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
- 238000000034 method Methods 0.000 title claims abstract description 103
- 241000533950 Leucojum Species 0.000 title claims abstract description 55
- 230000008569 process Effects 0.000 claims abstract description 60
- 230000002159 abnormal effect Effects 0.000 claims abstract description 39
- 238000012545 processing Methods 0.000 claims abstract description 26
- 230000000149 penetrating effect Effects 0.000 claims abstract description 18
- 230000035515 penetration Effects 0.000 claims description 44
- 238000004458 analytical method Methods 0.000 claims description 36
- 230000008439 repair process Effects 0.000 claims description 23
- 238000003860 storage Methods 0.000 claims description 17
- 230000002146 bilateral effect Effects 0.000 claims description 15
- 230000006870 function Effects 0.000 claims description 15
- 238000012795 verification Methods 0.000 claims description 14
- 238000009825 accumulation Methods 0.000 claims description 13
- 238000006243 chemical reaction Methods 0.000 claims description 13
- 230000003993 interaction Effects 0.000 claims description 9
- 238000012546 transfer Methods 0.000 claims description 7
- 238000004140 cleaning Methods 0.000 claims description 5
- 238000012216 screening Methods 0.000 claims description 5
- 230000007246 mechanism Effects 0.000 claims description 3
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 18
- 238000010586 diagram Methods 0.000 description 5
- 230000006872 improvement Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 230000002457 bidirectional effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000005520 cutting process Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 201000010099 disease Diseases 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000003739 neck Anatomy 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007474 system interaction Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- 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
-
- 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
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- 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/02—Banking, e.g. interest calculation or account maintenance
-
- 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/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种基于雪花算法的全链路对账方法、装置、设备及介质,包括:响应于跨境业务对账请求并从业务端获取账单源数据;对获取到的账单源数据进行解析转换成目标账单数据;调用对账规则引擎获取对应的对账规则选取对应的对账算法,对目标账单数据执行全链路对账任务得到对账结果;将对账不平的数据传输至对应的异常处理系统进行异常数据的核对处理;基于优化后的雪花算法生成唯一目标ID对对账结果进行对应账单关联,根据所述对账结果中对应的唯一目标ID自动穿透信息流与资金流的全链路数据,根据所述唯一目标ID追溯对应账单在资金流与信息流之间流转的全过程以达到完整的对账闭环,提高全链路跨境业务的对账工作效率及数据准确性。
Description
技术领域
本发明涉及对账技术领域,尤其涉及一种基于雪花算法的全链路对账方法、装置、设备及介质。
背景技术
在跨境支付行业面临着很多问题,境外银行无统一标准,交易链路过长,交易时效难以把控,并且各个公司有自身特有的众多业务场景,各业务场景流程各不相同,例如一些大型公司还会把业务按照子公司或者大部门管理,每一个业务形态是完全不同的,例如:境外收款业务、境外收单业务、境外信贷业务、境外外汇业务等;用户的信息流业务数据到最后的资金流数据,整个链路会涉及跨国资金流转。此间的流转链路跨度极大,在整个链路的执行过程中,会涉及到各个环节订单的拆分与合并,资金通过不同银行渠道的转入转出,导致最终的业务数据和资金数据无法形成一个闭环链路。
综上所述,目前对账时境外业务产生的数据流跨度大,业务数据和资金数据经过不同渠道的转入转出,难以在对账过程中形成完整的闭环链路;同时境外银行无统一标准执行从用户信息流到资金流这个超长交易链路的对账,且难以应对超长链路中对账差异,目前尚未提出有效的解决方案。
发明内容
本发明的目的是提供一种基于雪花算法的全链路对账方法、装置、设备及介质,解决上述在复杂跨境业务对账系统中存在的问题,基于统一对账中心,将各种特殊场景下业务通过抽象、聚合、分析等方式形成统一服务平台,基于改进后的雪花算法搭建分布式ID生成服务,解决高并发场景下数据准确性与时效;根据规律配置个性化规则引擎,实现银行账单及时获取、标记与校验;根据模型自动实现双向核对,针对各银行复杂的产品逻辑,支持多元化数据关联与匹配;根据对账结果自动穿透信息流与资金流全链路,唯一ID记录订单流转全过程,使得业务余额与账务余额任意时点可实现完全匹配,差异部分清晰可确认,极大简化数据核算流程,提高工作效率与数据准确性。
本发明提供了一种基于雪花算法的全链路对账方法,包括:
响应于跨境业务对账请求并从业务端获取账单源数据;
基于统一对账中心对获取到的账单源数据进行解析转换成目标账单数据;
调用对账规则引擎获取对应的对账规则以匹配跨境支付端不同的数据准入条件,执行所述对账规则后选取对应的对账算法,并对所述目标账单数据执行全链路对账任务得到对账结果,所述对账任务包括资金对账、单据对账和流水对账;
判断执行全链路对账任务过程中所述对账结果是否为平账,将对账不平的数据传输至对应的异常处理系统进行异常数据的核对处理直至对账结果为平账,所述平账是指同一时刻从业务系统获取的余额与从财务系统获取余额相同;
基于优化后的雪花算法生成唯一目标ID对所述对账结果进行对应账单关联,根据所述对账结果中对应的唯一目标ID自动穿透信息流与资金流的全链路数据,并根据所述唯一目标ID追溯对应账单在资金流与信息流之间流转的全过程以达到完整的对账闭环。
作为优选地,所述调用对账规则引擎之前包括:
对所述账单源数据对应的信息流进行对账配置并对配置操作进行检查,检查方式为判断配置参数是否通过验证;
在参数验证通过后判断对账是否对重,在对账对重的情况下对前一次对账对平时产生的差异池数据进行复原操作再进行删除操作,同时对前一次对账数据进行删除操作后以目标对账单的形式写入Redis中;
在参数验证未通过时直接以目标对账单的形式写入Redis中;
判断账单数据写入Redis过程中数据库是否发生异常,在未发生异常时对所述目标对账单进行核对操作,从Redis缓存中读取以所述目标对账单形式生成的账单源数据后,进入下一步对账规则引擎调用操作;
其中,所述账单源数据以Cousor游标方式读取Redis缓存数据,所述Cousor游标方式包括:触发从包含多条缓存数据记录的结果集中每次提取一条缓存数据记录的机制,在用户访问所述结果集中任意一行缓存数据时,将游标放置到目标行后,在目标行或从目标位置的行块上执行操作,该结果集中指向目标缓存记录的游标位置组成的一个临时文件。
作为优选地,所述响应于跨境业务对账请求之前包括:
建立对账业务系统与财务系统之间的数据交互路径,根据所述数据交互路径生成统一对账中心并进行归口管理,同时基于优化后的雪花算法搭建分布式ID生成服务生成高并发下环境下的多个目标ID;
在当前进程处于账单解析状态时,基于搭建的ID生成服务生成第一目标ID,并根据所述第一目标ID对所述对账数据进行标记并记录该对账数据在账单解析状态下的流转过程;
在当前进程处于对账执行状态时,基于搭建的ID生成服务生成第二目标ID,并根据所述第二目标ID对所述对账数据进行标记并记录该对账数据在对账执行状态下的流转过程;
在当前进程处于数据穿透状态时,根据第一目标ID进行跨对账维度的账单关联以匹配跨层级的数据关系,并生成从信息流向资金流走向的穿透信息,根据所述穿透信息及时确保发现异常并提示。
作为优选地,所述基于优化后的雪花算法生成唯一目标ID包括:
获取当前状态下的第一时间戳,并对所述第一时间戳进行除法运算得到秒级的第二时间戳;
获取上一次生成ID的第三时间戳,并判断所述第三时间戳与所述第二时间戳是否相同;
当所述第二时间戳与所述第三时间戳不相同的情况下,若所述第二时间戳小于所述第三时间戳,则系统时钟回退,将第二时间戳设置为第三时间戳;
在所述第二时间戳与所述第三时间戳相同的情况下,则在同一秒内生成ID,序列号通过自增生成并赋值给变量s,并通过变量s与序列号进行与运算判断序列号是否到达最大阈值,在到达最大阈值时当前线程进入休眠状态直至进入下一秒,所述变量s用于存储序列号;
通过预设的移位运算和函数调用来组合生成混合编码,所述混合编码的方式为将所述第二时间戳进行左移预设位以获取时间戳部分,通过函数调用获取工作节点标识部分,将序列号s进行按位或操作,得到最终的混合编码,返回生成的分布式ID;
其中,所述优化后的雪花算法由1位标识位、31位时间戳位、15位工作机器id以及17位序列号构成。
作为优选地,所述基于统一对账中心对获取到的账单源数据进行解析转换成目标账单数据包括:
根据业务通知或预设时间触发数据获取操作并生成对账采集任务并执行相应的下载任务;
读取配置生成的下载任务,定时执行下载任务,判断是否下载到目标账单文件;
若下载到所述目标账单文件,则读取所述目标账单文件的未解析记录,对所述目标账单文件触发解析操作,根据预设的文件类型选取对应的解析模板对所述目标账单文件中的数据进行解析落库并进行数据清洗转换为目标对账单并按对账维度生成转换记录;
若未下载到所述目标账单文件,则判断当前下载次数是否达到最大尝试次数,在未达到最大尝试次数时,继续重试下载任务,在达到最大尝试次数时,判断该下载任务是否已有下载文件,若已有下载文件则标记成功,未有下载文件则进行失败告警;
其中,所述目标账单文件包括银行账单和非银行账单。
作为优选地,所述调用对账规则引擎获取对应的对账规则包括:
在一对一的对账规则模式下,提取第一对账方的一笔目标账单数据与第二对账方的一笔目标账单数据,按照预设维度并根据预设金额累计算法对金额进行双边金额累加,在双边对账的情况下,对第一对账方的累加后的金额与第二对账方的累加后的金额进行匹配并判断是否为平账,所述预设维度至少包括账号、主对账ID;
在一对一的对账规则模式下,提取第一对账方的一笔目标账单数据与第二对账方的一笔目标账单数据,根据字段匹配算法设定目标字段后,将第一对账方的目标字段与第二对账方的目标字段进行匹配并判断是否为平账;
在一对多或者多对一的对账规则模式下,提取第一对账方的一笔目标账单数据与第二对账方的多笔目标账单数据或者提取第一对账方的多笔目标账单数据与第二对账方的一笔目标账单数据,根据预设金额累计算法进行一边金额累加,在一边对账的情况下,将主对账ID属性相同的多笔主/从账单累加后的金额与对应的从/主账单中的一笔金额进行匹配并判断是否为平账;
其中,所述目标账单数据包括网关对账单、银行对账单、单据对账单和流水对账单。
作为优选地,所述执行所述对账规则后选取对应的对账算法包括:
若所述对账任务为执行入境交易且配置为一对多的对账规则时,选取差异对账算法进行第一对账操作,所述第一对账操作方式为确认该规则下核对的目标字段后,获取主账单和从账单并执行loop循环操作,将从账单相同目标字段下的金额进行金额累计得出累计后金额,在累计后对主从账单中同一笔数据进行匹配,匹配成功则该笔对账为平账,否则不平账结束操作;
若所述对账任务为执行入境交易且配置为一对一的对账规则时,选取标准对账单算法进行第二对账操作,所述第二对账操作方式为获取主账单和从账单并执行loop循环操作,按照目标字段进行预设顺序排列后,对从账单中的目标对段下的数据进行匹配,若匹配到该顺序下的最终字段下的数据则结束操作即对平;
若所述对账任务为执行转账交易且配置为一对一的对账规则时,选取数据匹配算法进行第三对账操作,所述第三对账操作方式为获取主账单和从账单并执行loop循环操作,将主账单和从账单根据预设条件进行数据筛选,并按照各自的目标字段与金额拼接后对主从账单中同一笔数据进行匹配,匹配成功则该笔对账为平账,否则不平账结束操作;
其中,所述目标字段包括银行、金额、币种及主对账ID中的一种或多种组合。
作为优选地,所述将对账不平的数据传输至对应的异常处理系统进行异常数据的核对处理直至对账结果为平账包括:
启动正常对账模式,将主账单与从账单进行对比,输出的对比结果显示从账单不平时,判断该从账单是否为单边账;
若该从账单不是单边账的情况下,判断该从账单与主账单的金额是否不相同,在金额不相同时,登记主/从单边账差错记录,定时触发获取该差错记录进行全局差错记录匹配,并传输至统一对账中心执行统一对账引擎;
若该从账单是单边账的情况下,登记从单边账差错,将差错数据传输至pending系统确认是否为在途资金数据,同时传输至差错处理中心进行异常数据核对操作,判断该差错数据是否需要进行销账操作,若需要进行销账操作则执行销账直至平账;若不需要进行销账操作则将差错数据传输至差错池对账;
若上述方式均执行仍存在所述差错数据,则对所述差错数据执行修复操作,所述修复操作方式为对所述差错数据中的多笔数据按照预设修复字段进行拆分操作或合并操作后重新对账直至平账。
本发明还提供了一种基于雪花算法的全链路对账装置,包括:
采集模块,用于响应于跨境业务对账请求并从业务端获取账单源数据;
解析模块,用于基于统一对账中心对获取到的账单源数据进行解析转换成目标账单数据;
对账模块,用于调用对账规则引擎获取对应的对账规则以匹配跨境支付端不同的数据准入条件,执行所述对账规则后选取对应的对账算法,并对所述目标账单数据执行全链路对账任务得到对账结果,所述对账任务包括资金对账、单据对账和流水对账;
判断模块,用于判断执行全链路对账任务过程中所述对账结果是否为平账,将对账不平的数据传输至对应的异常处理系统进行异常数据的核对处理直至对账结果为平账,所述平账是指同一时刻从业务系统获取的余额与从财务系统获取余额相同;
穿透模块,用于基于优化后的雪花算法生成唯一目标ID对所述对账结果进行对应账单关联,根据所述对账结果中对应的唯一目标ID自动穿透信息流与资金流的全链路数据,并根据所述唯一目标ID追溯对应账单在资金流与信息流之间流转的全过程以达到完整的对账闭环。
本发明提供了一种电子设备,包括:
存储器,所述存储器用于存储处理程序;
处理器,所述处理器执行所述处理程序时实现如本发明实施例所述的基于雪花算法的全链路对账方法。
本发明提供了一种可读存储介质,其特征在于,所述可读存储介质上存储有处理程序,所述处理程序被处理器执行时实现如本发明实施例所述的基于雪花算法的全链路对账方法。
针对现有技术,本发明具有如下的有益效果:
本发明所提供的一种基于雪花算法的全链路对账方法,基于优化的雪花算法搭建分布式ID生成服务,通过唯一ID贯穿信息流与资金流全链路,在分布式环境高并发场景下通过雪花算法二次改进支持每秒钟生成13万个id,解决高并发场景下数据准确性与时效;
本发明整合跨境银行间不同的文件格式,根据规律配置个性化规则引擎,实现银行账单及时获取、标记与校验;记录对账关联号,根据模型自动实现双向核对,针对各银行复杂的产品逻辑,支持多元化数据关联与匹配;根据对账结果自动穿透信息流与资金流全链路,唯一ID记录订单流转全过程,使得业务余额与账务余额任意时点可实现完全匹配,差异部分清晰可确认,极大简化数据核算流程,提高工作效率与数据准确性。结合财务和业务发展的需求,在满足双方的基础上,建立一套规范化的流程和标准进行归口管理,并将线下的对账处理流程通过技术实现线上化;同时融合业务流程以及财务需求建立一套对账模型,通过资金流、信息流、用户余额的核对,达成完整的对账闭环,确保业务系统与财务系统数据的一致性、完整性和准确性。
本发明通过调用统一的对账规则引擎获取对应的对账规则以匹配跨境支付端不同的数据准入条件,执行所述对账规则后选取对应的对账算法,提高对账效率与数据准确性。
本发明通过该穿透逻辑通过解决多层级数据关联、数据不一致性和异常情况处理等重难点,实现了跨层级数据的准确关联和穿透,具备了较高的技术突破点。这种穿透逻辑为清结算和财务操作提供了可靠的数据支持,提高了对账准确性和效率。
附图说明
图1为本发明实施例中所述基于雪花算法的全链路对账方法的步骤示意图;
图2为本发明实施例中统一对账中心在清结算业务下的整体架构原理图;
图3为本发明实施例中步骤S1的流程示例图;
图4为本发明实施例账单解析的业务流程示例图;
图5为本发明实施例中步骤S4中进行异常数据的核对处理流程示例图;
图6-图7为本发明实施例中骤S4中具体的业务流程示例图;
图8为本发明实施例中改进后雪花算法示例图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一种实施例”表示“至少一种实施例”;术语“另一实施例”表示“至少一种另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本申请公开中提及的“一次”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本申请公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
在跨境支付行业面临着很多问题,境外银行无统一标准,交易链路过长,交易时效难以把控,并且各个公司有自身特有的众多业务场景,各业务场景流程各不相同,例如一些大型公司还会把业务按照子公司或者大部门管理,每一个业务形态是完全不同的,例如:境外收款业务、境外收单业务、境外信贷业务、境外外汇业务等;用户的信息流业务数据到最后的资金流数据,整个链路会涉及跨国资金流转,此间的流转链路跨度极大,在整个链路的执行过程中,会涉及到各个环节订单的拆分与合并,资金通过不同银行渠道的转入转出,导致最终的业务数据和资金数据无法形成一个闭环链路,存在发生资金风险财务人员无法准确定位出资金漏洞的环节;那么由它们各自部门进行核对资金、交易、账务等数据,那么在运营过程中将面临出现对数据差异处理或其他操作问题导致没有集团统一的口径及没有统一的系统统筹等问题,另一个是全靠财务人员在对业务交易对账,需要自行分析流程,然后手工与银行流水进行核对,随着业务增长的这种模式已经无法满足的业务发展与时效性;在系统的建设过程中还要面临系统跨境业务上的各个部门大体量存在高并发和对账时效的问题。
针对上述跨境业务存在的问题,本发明提供了一种基于雪花算法的全链路对账方法,适用于统一对账中心系统。
如图1所示,具体的全链路对账步骤如下:
S1:响应于跨境业务对账请求并从业务端获取账单源数据;该账单源数据可以通过接收业务数据,在交易单流转到状态时由业务方推送,数据来自数据部门ETL后集中推送;也可以获取支付通道,如银行或三方支付的对账单,其获取方式主要有API查询或推送,ftp下载,邮件等。
S2:基于统一对账中心对获取到的账单源数据进行解析转换成目标账单数据,从而满足不同跨境业务所需数据,最终解析得到目标账单数据同时满足业务系统与财务系统之间交互需求;本实施例解析转换过程采用账单采集系统执行,是为了将各个业务系统的数据进行采集获取,用于对账时双边账单匹配的数据源头,适用于数据准入和合法一致性要求严格的跨境业务。
S3:调用对账规则引擎获取对应的对账规则以匹配跨境支付端不同的数据准入条件,执行所述对账规则后选取对应的对账算法,并对所述目标账单数据执行全链路对账任务得到对账结果,所述对账任务包括资金对账、单据对账和流水对账;
S4:判断执行全链路对账任务过程中所述对账结果是否为平账,将对账不平的数据传输至对应的异常处理系统进行异常数据的核对处理直至对账结果为平账,所述平账是指同一时刻从业务系统获取的余额与从财务系统获取余额相同;
S5:基于优化后的雪花算法生成唯一目标ID对所述对账结果进行对应账单关联,根据所述对账结果中对应的唯一目标ID自动穿透信息流与资金流的全链路数据,并根据所述唯一目标ID追溯对应账单在资金流与信息流之间流转的全过程以达到完整的对账闭环。
本实施所提供的全链路对账解决在复杂跨境业务对账系统疑难杂症问题,如:境外银行无统一标准、交易链路过长、交易时区不通存在跨期等,还有不同跨境业务等对账难题,建设一个统一对账中心,能够把各种特殊场景下业务通过抽象、聚合、分析等方式形成统一的方法论与方案,搭建分布式ID生成服务,解决高并发场景下数据准确性与时效;整合跨境银行间不同的文件格式,根据规律配置个性化规则引擎,实现银行账单及时获取、标记与校验;记录对账关联号,根据模型自动实现双向核对,针对各银行复杂的产品逻辑,支持多元化数据关联与匹配;根据对账结果自动穿透信息流与资金流全链路,唯一ID记录订单流转全过程,使得业务余额与账务余额任意时点可实现完全匹配,差异部分清晰可确认,极大简化数据核算流程,提高工作效率与数据准确性。结合财务和业务发展的需求,在满足双方的基础上,建立一套规范化的流程和标准进行归口管理,并将线下的对账处理流程通过技术实现线上化。清结算平台融合业务流程以及财务需求建立一套对账模型,通过资金流、信息流、用户余额的核对,达成完整的对账闭环,确保业务系统与财务系统数据的一致性、完整性和准确性。
参见图2所示,本实施例中基于统一对账中心业务流程如下:1.本实施例数据原则是,由业务系统提供,对账中心接收再进行下一步对账流程;首先统一对账中心数据传输规范,从定义数据内容、格式到交互形式,以及数据不符回退等要求;通过不同业务场景或模型再分析、聚合、抽象,定义了一套从业务逻辑核心流程与统一对账系统必填与可拓展的标准;2.定义好后,统一对账中心将采集或获取各个业务系统账单数据,由各个业务系统将数据推送至对账系统要求的SFTP中,通过账单解析系统进行处理;3.账单解析系统将业务要核对的账单进行解析完成,由对账中心核心系统进去获取账单,将经过对账引擎,其中包括对账规则、对账匹配算法,如:最优匹配算法、普通数据匹配算法、异常匹配算法等、对账模型训练、对账核心等;对账中心是全链路对账,其中包括外部资金对账,内部单据对账、流水对账、以及最终客资账户余额对账等;4.因跨境业务对账不像国内对账那么容易对平,会存在如:交易链路长、跨期日切、换汇金额转换等,如果对账完成后出现不平将核对数据推送至差错中心系统;5.差错中心系统进行挂账、销账、日切等异常数据核对处理,如果在一定规则下差错中心无法处理则将差错数据推送至修复中心系统处理;并且将差错数据推送至Pending系统进行财务维度登记;6.使用修复中心系统,因为有些场景数据实际是能够对上,比如付款或结算是多笔单银行进行一笔处理,那么就无法直接对上通过修复中心进行拆分和合并;修复中心支持对数据进行1对1,1对多,多对一的拆分;7.进入到Pending系统表明这些差错数据在当前时点是没有业务认领等,将按照财务准则进行在途资金的计算累加,如:按照资金、业务等;8.通过我们穿透系统将全链路的数据通过一个分布式的唯一ID贯穿起来,使用雪花算法生成器生成唯一ID;9.最后将从源头的银行流水的字段信息穿透到业务流水数据中,将按银行流水的交易完成日期累加,进行客资账户余额对账;10.最终按照财务口径进行汇总输出财务系统。
上述过程所涉及的数据流中,资金对账包括银行流水VS网关订单的核对和银行对账单VS网关对账单;单据对账包括网关订单VS交易单据的核对和网关对账单VS单据对账单;流水对账包括交易单据VS账户流水核对和单据对账单VS流水对账单。其中,本领域技术人员可以理解,数据流的含义如下:1.网关对账单:公司与银行或支付渠道交互的那一侧的内部网关订单,用于资金对账公司一侧的数据源,抽象对账所需的账单。2.银行对账单:银行或支付渠道提供的外部账单,即跨境标准叫法是053日终账单,用于资金对账支付渠道一侧的数据源,抽象对账所需的账单。3.单据对账单:各个业务系统内部交易或者与网关订单交互的那一侧的交易单据,用于单据对账的数据源,抽象对账所需的账单。4.流水对账单:各个业务系统内部账户间流水与交易单据那一侧核对的,用于流水对账的数据源,抽象对账所需的账单。5.资金对账:网关对账单与银行对账单之间核对,通过对账引擎进行对账,对账规则为1对1。6.单据对账:网关对账单与单据对账单核对,通过对账引擎进行对账,对账规则多样化,通过规则引擎配置,支持1对1,1对多,多对1等。7.流水对账:单据对账单与流水对账单核对,通过对账引擎进行对账,对账规则多样化,通过规则引擎配置,支持1对1,1对多等。
首先进行账单解析的过程可以是自动化的也可支持手动,因为跨境业务的数据准入条件是不统一,即跨境业务对复杂性与特殊性难点,为了克服其复杂性与特殊性难点,所以账单采集系统将各个业务场景抽象定义,按照如下业务场景:
序号 | 业务部门 | 类型 | 生产文件根目录 | 业务类型 | 文件前缀 |
1 | A | 资金系统 | bill/bank | 银行流水 | BANK_FLOW |
2 | B | 订单系统 | bill/order | 出金订单 | PAYOUT_ORDER |
3 | C | 订单系统 | bill/order | 入金订单 | INBOUND_ORDER |
3 | D | 交易系统 | bill/inbound | 入金单据 | TRADE_INBOUND |
4 | E | 交易系统 | bill/inbound | 出金单据 | TRADE _PAYOUT |
5 | F | 账户 | bill/inbound | 账户流水 | ACCOUNT_FLOW |
为了整合跨境银行间不同的文件格式,所述步骤S1中基于统一对账中心对获取到的账单源数据进行解析转换成目标账单数据具体步骤包括:
根据业务通知或预设时间触发数据获取操作并生成对账采集任务并执行相应的下载任务;读取配置生成的下载任务,定时执行下载任务,判断是否下载到目标账单文件;若下载到所述目标账单文件,则读取所述目标账单文件的未解析记录,对所述目标账单文件触发解析操作,根据预设的文件类型选取对应的解析模板对所述目标账单文件中的数据进行解析落库并进行数据清洗转换为目标对账单并按对账维度生成转换记录;若未下载到所述目标账单文件,则判断当前下载次数是否达到最大尝试次数,在未达到最大尝试次数时,继续重试下载任务,在达到最大尝试次数时,判断该下载任务是否已有下载文件,若已有下载文件则标记成功,未有下载文件则进行失败告警;其中,所述目标账单文件包括银行账单和非银行账单,参见图3所示。
本领域技术人员可以理解,本实施例进行账单解析的业务流程如下,参见图4所示:1、触发:a.DP通知可以拉取账单;b.按跟DP约定的时间规则;2、生成数据采集任务;3、执行数据采集任务;4、解析落库;5、数据清洗:转为对账单,为后续对账模块取用提供数据,实现银行账单及时获取、标记与校验。本实施例中,每日定时解析,解析银行账单时,执行分类打标,同时,落入原始账单数据,执行转换,落入对账单数据中;解析非银行账单时,落入原始账单,执行转换,落入对账单数据中。其中,数据产出方(DP)指:PP业务线,入金银行,出金银行和渠道,运营人员上传;数据通道:HTTP推送/查询,FTP上传下载,消息队列MQ,离线文件上传,数据库DB。
本实施例获取数据源对账单数据,如:网关对账单、银行对账单、单据对账单、流水对账单,为了克服数据高并发的瓶颈将单次核对数据于Redis缓存读取,具体步骤包括:对所述账单源数据对应的信息流进行对账配置并对配置操作进行检查,检查方式为判断配置参数是否通过验证;在参数验证通过后判断对账是否对重,在对账对重的情况下对前一次对账对平时产生的差异池数据进行复原操作再进行删除操作,同时对前一次对账数据进行删除操作后以目标对账单的形式写入Redis中;在参数验证未通过时直接以目标对账单的形式写入Redis中;判断账单数据写入Redis过程中数据库是否发生异常,在未发生异常时对所述目标对账单进行核对操作,从Redis缓存中读取以所述目标对账单形式生成的账单源数据后,进入下一步对账规则引擎调用操作;其中,所述账单源数据以Cousor游标方式读取Redis缓存数据,所述Cousor游标方式包括:触发从包含多条缓存数据记录的结果集中每次提取一条缓存数据记录的机制,在用户访问所述结果集中任意一行缓存数据时,将游标放置到目标行后,在目标行或从目标位置的行块上执行操作,该结果集中指向目标缓存记录的游标位置组成的一个临时文件。数据库游标作用是在数据库中充当指针,上述生成的临时文件,提供了在查询结果集中向前或向后浏览数据、处理结果集中数据的能力。有了游标,有利于用户访问结果集中任意一行数据,在将游标放置到某行之后,可以在该行或从该位置的行块上执行操作。
本申请的多种实施例中,所述步骤S3中调用对账规则引擎获取对应的对账规则具体包括如下步骤:
在一对一的对账规则模式下,提取第一对账方的一笔目标账单数据与第二对账方的一笔目标账单数据,按照预设维度并根据预设金额累计算法对金额进行双边金额累加,在双边对账的情况下,对第一对账方的累加后的金额与第二对账方的累加后的金额进行匹配并判断是否为平账,所述预设维度至少包括账号、主对账ID;
在一对一的对账规则模式下,提取第一对账方的一笔目标账单数据与第二对账方的一笔目标账单数据,根据字段匹配算法设定目标字段后,将第一对账方的目标字段与第二对账方的目标字段进行匹配并判断是否为平账;
在一对多或者多对一的对账规则模式下,提取第一对账方的一笔目标账单数据与第二对账方的多笔目标账单数据或者提取第一对账方的多笔目标账单数据与第二对账方的一笔目标账单数据,根据预设金额累计算法进行一边金额累加,在一边对账的情况下,将主对账ID属性相同的多笔主/从账单累加后的金额与对应的从/主账单中的一笔金额进行匹配并判断是否为平账。
本领域技术人员可以理解,本实施例采用的规则引擎,即匹配跨境支付端不同的数据准入条件,可以通过动态设置灵活的对账规则,标准的有如下:
a)1对1,账号、金额累计法:双边账单进行账号维度将金额累加后,双边1对1核对累积金额;
b)1对1,字段匹配法,设定指定字段后,双边账单1对1的核对字段全部匹配;
c)1对多,主对账ID、金额累计法,将从边主对账ID一致的金额累加后变一笔后再进行匹配;
d)多对一,主对账ID、金额累计法,将主边主对账ID一致的金额累加后变一笔后再进行匹配,这边的双边账单指的是网关对账单与银行对账单、网关对账单与单据对账单、单据对账单与流水对账单中包含两侧数据的账单,即上述包含二个对账方的账单数据。
本申请的多种实施例中,为了实现根据模型自动实现双向核对,针对各银行复杂的产品逻辑,支持多元化数据关联与匹配,所述步骤S3中执行所述对账规则后选取对应的对账算法包括:
若所述对账任务为执行入境交易且配置为一对多的对账规则时,选取差异对账算法进行第一对账操作,所述第一对账操作方式为确认该规则下核对的目标字段后,获取主账单和从账单并执行loop循环操作,将从账单相同目标字段下的金额进行金额累计得出累计后金额,在累计后对主从账单中同一笔数据进行匹配,匹配成功则该笔对账为平账,否则不平账结束操作;可以理解为,执行差异对账算法:对账任务为入金交易分析配置为一对多对账规则,核对银行+金额+币种,获取主从账单Loop从账单,将从账单相同银行和币种下进行SUM金额得出累计后金额,组装出累计后对应银行+金额+币种,最终双边账单进行匹配如能匹配则该笔对账为平账,否则不平账结束。
若所述对账任务为执行入境交易且配置为一对一的对账规则时,选取标准对账单算法进行第二对账操作,所述第二对账操作方式为获取主账单和从账单并执行loop循环操作,按照目标字段进行预设顺序排列后,对从账单中的目标对段下的数据进行核对,若匹配到该顺序下的最终字段下的数据则结束操作即对平;可以理解为,执行标准对账单算法:该算法适用于大部分场景,对账任务为入金交易分析配置为一对一对账规则,核对主对账ID+金额+币种,获取主从账单,由主账单Loop从账单,按照如上3个字段倒序排列后再与从账单相关字段核对,如果匹配到从账单第一笔则结束标示对平,否则继续直至遍历全部集合结束。
若所述对账任务为执行转账交易且配置为一对一的对账规则时,选取数据匹配算法进行第三对账操作,所述第三对账操作方式为获取主账单和从账单并执行loop循环操作,将主账单和从账单根据预设条件进行数据筛选,并按照各自的目标字段与金额拼接后对主从账单中同一笔数据进行匹配,匹配成功则该笔对账为平账,否则不平账结束操作;可以理解为,执行数据匹配算法:该算法适用于大部分范围的基础默认场景可用于通用逻辑处理,对账任务为转账交易分析配置为一对一对账规则,核对主对账ID+金额,获取主从账单,由主账单Loop从账单,将双边账单通过预设的规则和条件进行筛选,把双边账单按各自的主对账ID与金额拼接进行匹配,如能匹配则该笔对账为平账,否则不平账结束。其中,所述目标字段包括银行、金额、币种及主对账ID中的一种或多种组合。
上述loop循环操作具体包括:将所述第一笔主账单数据与所述第一笔从账单数据进行对比并根据比对结果判断是否成功匹配到该笔数据,循环从所述从账单中获取第二笔从账单数据直至能够匹配成功则该笔对账为平账,否则输出不平账结果。
本实施例针对上述信息流进行的对账操作过程原理具体如下:
1、由于跨境业务特殊性与复杂性对账场景各不相同,抽象了一层对账规则引擎中心,将各个系统交互与类型进行分组与设置,统称为对账任务。
2、对账任务配置模块:对账任务由几块组成,双边核对账单,对账类型,对账业务类型等。
3.通过触发对账任务执行,交由对账引擎处理;
4.对账引擎:首先获取数据源对账单数据,如:网关对账单、银行对账单、单据对账单、流水对账单,为了提升高并发的瓶颈将单次核对数据读取的Redis缓存中,主边使用Cousor游标方式读取DB数据中查询Loop方式得到的Redis缓存数据,准备好数据调用对账规则引擎获取对应规则,使用自研对账算法。
5.具体对账算法如下:
a)HASH算法;
b)差异对账法:通过获取到对账规则后,进行差异对账算法核对,如对账规则获取为1对1,核对主对账ID+金额+币种,那么取双边账单数据,有主边Loop从边,按照这三个字段倒序排列后再到从边逐一核对字段值,如果匹配到从边第一条则结束即对平,否则继续直至遍历全部集合;
c)标准化对账算法:有一些场景字段信息相差不大可以通过,获取对账规则,通过格式化核对,确保字段一致后核对;
d)数据匹配算法:根据设定的规则和条件,筛选出满足条件的匹配项;
e)异常检测算法:通过历史数据建议异常模型以及规则引擎,根据业务需求和经验,设定一系列规则和条件来筛选出异常交易或账单,例如异常金额、异常时间间隔等;
6.对账任务配置模块:一边-一笔数据,
7.规则引擎,通过动态设置灵活的对账规则,标准的有如下:
a)1对1,账号、金额累计法:双边进行账号维度将金额累加后,双边1对1核对累积金额;
b)1对1,字段匹配法,设定指定字段后,双边1对1的核对字段全部匹配;
c)1对多,主对账ID、金额累计法,将从边主对账ID一致的金额累加后主变一笔进行匹配;
d)多对一,主对账ID、金额累计法,同上只是主从换一下;
8.生产对账结果,通过雪花算法生成高并发下的分布式唯一ID;
9.差错中心模块:目的是将正常无法对平的数据由单独差错模块承载与处理,主要是进行挂账、销账、日切等异常数据核对处理。i.资金层:因本系统对接N多渠道,有境外银行、三方支付机构、国内银行等,每家银行没有统一的标准,会发生多种修复手段处理,如:一对一、一对多、多对一;ii.1对1:银行与业务系统交互时因存在部分字段不一致,网关与银行对账不平发现主对账ID、金额不一致。iii.多对一:银行侧主动会把本系统代发的几笔合并成一笔结算;iv.一对多:银行侧主动将一笔大额进行拆分结算。v.单据层:因业务系统间交互没有统一或者支付操作不当,如:退款人工调额、手工输入的单号不对等。vi.1对多、多对一不存在,信息流对账时会自动合并无需修复。
针对上述问题对差错数据处理、修复具体的实现步骤包括:
启动正常对账模式,将主账单与从账单进行对比,输出的对比结果显示从账单不平时,判断该从账单是否为单边账;若该从账单不是单边账的情况下,判断该从账单与主账单的金额是否不相同,在金额不相同时,登记主/从单边账差错记录,定时触发获取该差错记录进行全局差错记录匹配,并传输至统一对账中心执行统一对账引擎;若该从账单是单边账的情况下,登记从单边账差错,将差错数据传输至pending系统确认是否为在途资金数据,同时传输至差错处理中心进行异常数据核对操作,判断该差错数据是否需要进行销账操作,若需要进行销账操则执行销账直至平账;若不需要进行销账操作则将差错数据传输至差错池对账;若上述方式均执行仍存在所述差错数据,则对所述差错数据执行修复操作,所述修复操作方式为对所述差错数据中的多笔数据按照预设修复字段进行拆分操作或合并操作后重新对账直至平账,参见图5所示。本实施例中,对于一笔交易而言,记账可能存在如下情况:情况1:发卡行扣款(入账),但收单行未入账;情况2:发卡行扣款(入账),收单行入账;情况3:发卡行未扣款,收单行入账;情况4:发卡行未扣款,收单行未入账。上述情况1、情况3可以成为单边账,即只有单边入账,情况2可以称为双边账,即双边都入账。
可以理解为,差异的业务流程下:i.对平原因:日切平账、销账;ii.销账类型:线下出款核销入账、重复出款、关联销账等。本实施例执行修复操作时通过修复中心模块实现,将唯一ID不一致的账单数据,修复成相同唯一ID的账单数据。因为有些场景数据实际是能够对上,比如付款或结算是多笔单银行进行一笔处理,那么就无法直接对上;清结算对账会有全链路的对账,其中以收款线对账模型为例有资金层对账、单据层对账、流水层对账,在业务实际对账过程中会存在较多系统无法直接对平的情况,人工/自动介入修复后才可对平,故建设修复中心模块,主要用于各类账单对账所需字段的修改以及合并、拆分账单;在修复中心俗称一对一、一对多、多对一,修复涉及字段:金额、主对账ID、渠道、大账号、币种、对账子类型、对手部门、财务BU,具体的导入修复流程参见图6 ,删除/导入修复流程参见图7所示。
本申请的多种实施例中,在清结算对账系统中存在高并发的场景,生成对应数据库表时需要生成唯一ID,这就需要用到ID生成器,雪花算法(Snowflake)应运而生,它是一种生成唯一ID的算法,主要应用于分布式系统中。它可以在不依赖于数据库等其他存储设施的情况下,生成全局唯一的ID。现有的雪花算法由1位是符号位、41位是时间戳、10位是机器标识和12位是计数序列号构成,其缺陷如下:1.使用时长问题,时间计算是从1970年开始的,只能使用69年;2.占用更多的空间,使用更多的位数表示时间戳会占用更多的存储空间。3.时钟回拨问题:如果系统时钟发生回拨,会导致产生重复的ID或无效的ID;由于时间戳较长,可能需要更高的时钟分辨率来保证不重复生成相同的ID。如果时钟分辨率不足,可能导致ID冲突的风险增加。4.高并发下的性能问题,会出现瓶生成量越大就颈越慢;5.易导致单点故障;6.扩展性受限,无规则与业务含义,一定意义上只是一个id,如果业务上需要有含义的分布式ID就不可取了。
基于以上Twitter的原生雪花算法进行二次改进,参见图8所示:
1位是符号位,也就是最高位,始终是0,没有任何意义,因为要是唯一计算机二进制补码中就是负数,0才是正数。
31位是时间戳,改为具体到秒,31位的二进制可以使用69年,因为时间理论上永恒递增,所以根据这个排序是可以的。
15位是机器标识,可以全部用作机器ID,我们机房采用IP/31网段,完全满足32768台机器的标识。
17位是计数序列号,也就是同一台机器上同一时间,理论上还可以同时生成不同的ID,17位的序列号能够区分出131071个ID。
为了实现在分布式环境高并发场景下通过雪花算法二次改进支持每秒钟生成13万个id,所述基于优化后的雪花算法生成唯一目标ID的具体方案包括:
获取当前状态下的第一时间戳,并对所述第一时间戳进行除法运算得到秒级的第二时间戳;
获取上一次生成ID的第三时间戳,并判断所述第三时间戳与所述第二时间戳是否相同;
当所述第二时间戳与所述第三时间戳不相同的情况下,若所述第二时间戳小于所述第三时间戳,则系统时钟回退,将第二时间戳设置为第三时间戳;
在所述第二时间戳与所述第三时间戳相同的情况下,则在同一秒内生成ID,序列号通过自增生成并赋值给变量s,并通过变量s与序列号进行与运算判断序列号是否到达最大阈值,在到达最大阈值时当前线程进入休眠状态直至进入下一秒,所述变量s用于存储序列号;
通过预设的移位运算和函数调用来组合生成混合编码,所述混合编码的方式为将所述第二时间戳进行左移预设位以获取时间戳部分,通过函数调用获取工作节点标识部分,将序列号s进行按位或操作,得到最终的混合编码,返回生成的分布式ID。
本实施例中的具体实施代码如下:
private static final long SEQUENCE_MASK_V2 = ~(-1L << 16);
private static final long DIRECT = 1452649500L;
private static final AtomicLong LAST_TIME_V2 = new AtomicLong(-1L);
private static final LongAdder SEQUENCE_V2 = new LongAdder();
public static long getInnerMixId() {
long now = System.currentTimeMillis();
long timestamp = now / 1000;
final long lastTimestamp = LAST_TIME_V2.get();
if (timestamp < lastTimestamp) {
timestamp = lastTimestamp;
}
long s;
if (timestamp == lastTimestamp) {
SEQUENCE_V2.increment();
s = SEQUENCE_V2.longValue();
if ((s & SEQUENCE_MASK_V2) == 0) {
long hold = (timestamp + 1) * 1000 -System.currentTimeMillis();
try {
if (hold > 0) {
TimeUnit.MILLISECONDS.sleep(hold);
}
} catch (InterruptedException ignored) {
}
return getMixId();
}
} else {
s = 0;
LAST_TIME_V2.set(timestamp);
SEQUENCE_V2.reset();
}
return ((timestamp - DIRECT) << 32) | getWorkIdV2() | s;
}
上述ID生成原理的核心说明如下:
1.首先调用getInnerMixId()方法来获取生成分布是ID。2.获取当前时间戳now,并将其除以1000得到秒级的时间戳timestamp。3.获取LAST_TIME_V2的值,即上一次生成ID的时间戳。4.如果timestamp小于lastTimestamp,说明时间回退了,将timestamp设置为lastTimestamp。5.定义变量s,用于存储序列号。6.如果timestamp等于lastTimestamp,表示在同一秒内生成ID,增加序列号SEQUENCE_V2的值,并将其赋给s。如果s与SEQUENCE_MASK_V2相与的结果为0,表示序列号已达到最大值,需要等待下一秒再生成。此时会计算需要等待的时间hold,然后通过TimeUnit.MILLISECONDS.sleep(hold)进行线程休眠,直到进入下一秒。7.如果timestamp不等于lastTimestamp,说明进入了新的一秒,重置序列号SEQUENCE_V2的值为0。8.最后,使用位运算和方法调用来组合生成混合编码:将(timestamp-DIRECT)<<32,即左移32位,获取时间戳部分;使用getWorkIdV2()方法获取工作节点标识部分;将序列号s进行按位或操作,得到最终的混合编码。9.返回生成的分布式ID,其中LAST_TIME_V2:上一次获取ID的时间戳;SEQUENCE_V2:同一时间戳下并发请求时的序号定义,默认值为0;SEQUENCE_MASK_V2:最大并发数量上限DIRECT:默认使用雪花算法的时间戳(秒)初始化值,用于延长雪花算法最长使用周期。
综上,采用上述改进后的雪花算法生成唯一目标ID的优点在于:1.高并发生成ID:通过对工作节点(workId)和序列号(seq)进行适当的分配和管理,该改进方案能够在1秒生成13万个唯一ID。这使得它非常适合高并发场景下的ID生成需求。2.精确时间戳:使用31位的时间戳,相较于雪花算法的41位时间戳,可以提供更长的时间范围,低要求的时钟分辨率,时间戳位数较少,可以在更低的时钟分辨率下工作,减少了对高性能时钟的依赖。这样可以支持更长时间内的ID生成,并且避免了时间重叠的潜在问题。3.细项标识位:引入一个标识位用于对账细项,有助于区分不同类型的业务或数据,方便后续的数据处理和分析。4.可扩展性:该改进方案采用15位的工作节点(workId),为系统提供了最多32768个工作节点的扩展性。这意味着可以轻松地增加或调整工作节点的数量,以满足业务的扩展需求。5.较少的空间占用:相比于41位时间戳,31位时间戳所需的存储空间较小,意味着解决对账高并发场景下海量数据存储大难题。6.简单而高效:相比于其他复杂的ID生成算法,这个改进方案相对简单且易于理解。同时,由于采用了雪花算法的基础,依然能够保持高效的ID生成性能。7.单点故障问题,我们雪花算法实现有两种方式,一种是提供工具类、还有一种是作为分布式ID服务;工具类方式由业务系统集成可以避免90%以上的单点故障。
本申请的多种实施例中,所述响应于跨境业务对账请求之前包括:
建立对账业务系统与财务系统之间的数据交互路径,根据所述数据交互路径生成统一对账中心并进行归口管理,同时基于优化后的雪花算法搭建分布式ID生成服务生成高并发下环境下的多个目标ID;
在当前进程处于账单解析状态时,基于搭建的ID生成服务生成第一目标ID,并根据所述第一目标ID对所述对账数据进行标记并记录该对账数据在账单解析状态下的流转过程;
在当前进程处于对账执行状态时,基于搭建的ID生成服务生成第二目标ID,并根据所述第二目标ID对所述对账数据进行标记并记录该对账数据在对账执行状态下的流转过程;
在当前进程处于数据穿透状态时,根据第一目标ID进行跨对账维度的账单关联以匹配跨层级的数据关系,并生成从信息流向资金流走向的穿透信息,根据所述穿透信息及时确保发现异常并提示,有利于应对跨境支付复杂、没有统一标准下对从用户信息流至资金流有完整的闭环确保任何业务和系统间发生错误都能通过对账系统发现,并且对全链路出现差异处理操作。
本实施例中穿透实现的难点在于:1.多层级数据关联:对于不同业务线的各个层级数据进行关联和分析,涉及到多个数据源和维度的匹配,需要解决不同数据格式、标识字段等问题。2.数据不一致性:银行实际资金账期与客户流水日期可能存在日切和风控等问题,导致数据的时间不一致。如何准确地将账期和流水信息进行关联,并处理不一致情况,是一个重要的难点。3.异常情况处理:在穿透过程中,可能会出现一方有数据而另一方无数据的情况,或者流水或流水单据缺失的情况。如何处理这些异常情况,确保穿透的准确性和完整性,是一个挑战。
针对上述缺陷,本实施例提供的穿透功能,旨在对不同业务线的各个环节的对账数据进行串联,从而形成清晰的业务数据信息流和资金流的走向图像。
针对银行实际资金账期与客户流水日期不一致的问题,例如日切、风控等情况,本发明的穿透技术可以将每笔明细交易数据与银行的账期进行层层关联,包括中间环节的处理状态和待处理事项(Pending),可以准确确定每笔交易的实际账期和资金流向。此外,为了支持清结算OP和财务OP的计算,穿透功能被视作前置必不可少的条件。通过提供必要的铺垫,穿透功能确保了清结算和财务操作的顺利进行。
本发明提供了一种穿透方法,用于实现对不同业务线的各个层级数据进行关联和分析,以揭示清晰的业务数据信息流和资金流走向,具体的穿透逻辑如下:
在银行渠道类穿透逻辑中,通过对银行/渠道账单、网关订单、单据信息和流水信息进行穿透分析,实现了跨对账维度的账单关联。该穿透逻辑在资金层方面,确保资金对账明细已平账的前提下,根据双边数据情况将穿透信息带入业务对账单,并同步打上相应的资金Pending信息。在单据层方面,基于资金明细已平账且资金层已穿透的条件下,将业务订单中的穿透信息携带到流水单据中。而在流水层方面,对流水单据与流水对账单进行平账时,实现了将流水单据中的穿透信息穿透到流水对账单中的功能。
在通道类穿透逻辑中,通过对通道账单、交易订单、交易凭证和客户流水进行穿透分析,实现了跨对账维度的账单关联。该穿透逻辑在通道明细已平账的前提下,根据双边数据情况将穿透信息带入交易订单对账单,并同步打上相应的通道明细Pending信息。在单据层方面,基于通道明细已平账且资金层已穿透的条件下,将交易订单中的穿透信息携带到交易凭证中。而在流水层方面,对流水单据与流水对账单进行平账时,实现了将流水单据中的穿透信息穿透到流水对账单中的功能。
此外,在转账类穿透逻辑中,通过对转出(转入)单据和业务线流水的穿透分析,实现了跨对账维度的账单关联。该穿透逻辑在各个层级对账都已平账的前提下,根据业务属性确定主账单方向,并将双边业务单据的穿透信息根据时间顺序进行穿透。在流水层方面,确保所有单据层已平账且已穿透的条件下,将流水单据中的穿透信息穿透到流水对账单中。
上述实施例实现穿透的突破点在于:1.跨对账维度的账单关联:通过原始账单ID(唯一)进行跨对账维度的账单关联,实现了不同层级数据的精确匹配和关联,提供了全面的业务数据信息流和资金流走向。2.精确的穿透信息传递:针对不同层级的数据关系,将穿透信息准确地传递到各个层级的对账单中,确保了数据的一致性和准确性。3.Pending信息同步:在穿透过程中,对应的资金和通道明细Pending信息会同步打上对应的穿透信息,使得在途资金和交易状态等信息能够准确展示,上述Pending信息指的是银行侧资金已发生,因日切或者风控审核等等原因业务线还未给客户账户进行加款或者减款的在途资金信息。4.异常情况处理策略:针对异常情况,如无数据、缺失数据等,提供了相应的处理逻辑和补充措施,确保穿透过程的稳定性和完整性。
综上所述,该穿透逻辑通过解决多层级数据关联、数据不一致性和异常情况处理等重难点,实现了跨层级数据的准确关联和穿透,具备了较高的技术突破点。这种穿透逻辑为清结算和财务操作提供了可靠的数据支持,提高了对账准确性和效率。
综上所述,本发明提供的穿透逻辑通过精确的数据关联和匹配,为不同业务线的对账提供了高效的解决方案,有效揭示了业务数据信息流和资金流走向。这种穿透逻辑在清结算和财务操作等领域具有重要的应用价值。
实施例二
基于相同的发明构思,本发明提供了一种基于雪花算法的全链路对账装置,包括:
采集模块,用于响应于跨境业务对账请求并从业务端获取账单源数据;
解析模块,用于基于统一对账中心对获取到的账单源数据进行解析转换成目标账单数据;
对账模块,用于调用对账规则引擎获取对应的对账规则以匹配跨境支付端不同的数据准入条件,执行所述对账规则后选取对应的对账算法,并对所述目标账单数据执行全链路对账任务得到对账结果,所述对账任务包括资金对账、单据对账和流水对账;
判断模块,用于判断执行全链路对账任务过程中所述对账结果是否为平账,将对账不平的数据传输至对应的异常处理系统进行异常数据的核对处理直至对账结果为平账,所述平账是指同一时刻从业务系统获取的余额与从财务系统获取余额相同;
穿透模块,用于基于优化后的雪花算法生成唯一目标ID对所述对账结果进行对应账单关联,根据所述对账结果中对应的唯一目标ID自动穿透信息流与资金流的全链路数据,并根据所述唯一目标ID追溯对应账单在资金流与信息流之间流转的全过程以达到完整的对账闭环。
上述采集模块、解析模块、对账模块、判断模块及穿透模块的原理内容及实现方法,均如实施例一中所述,在此不再赘述。
实施例三
在本申请的一些实施例中,还提供了一种电子设备。该种电子设备中包含存储器和处理器,其中存储器用于对处理程序进行存储,处理器则根据指令对处理程序进行执行。当处理器对处理程序进行执行时,使得前述实施例中的基于雪花算法的全链路对账方法得以实现。
在本申请的一些实施例中,还提供了一种可读存储介质,该可读存储介质可以为非易失性可读存储介质,也可以为易失性可读存储介质。该可读存储介质中存储有指令,当该指令在计算机上运行时,使得包含该种可读存储介质的电子设备执行前述的基于雪花算法的全链路对账方法。
可以理解的是,对于前述所提及的基于雪花算法的全链路对账方法,如果均以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-onlymemory,ROM)、随机存取存储器(Randomaccessmemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请所公开的技术方案所涉及的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如C语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (6)
1.一种基于雪花算法的全链路对账方法,其特征在于,包括:
响应于跨境业务对账请求并从业务端获取账单源数据;
基于统一对账中心对获取到的账单源数据进行解析转换成目标账单数据;
调用对账规则引擎获取对应的对账规则以匹配跨境支付端不同的数据准入条件,执行所述对账规则后选取对应的对账算法,并对所述目标账单数据执行全链路对账任务得到对账结果,所述对账任务包括资金对账、单据对账和流水对账;
判断执行全链路对账任务过程中所述对账结果是否为平账,将对账不平的数据传输至对应的异常处理系统进行异常数据的核对处理直至对账结果为平账,所述平账是指同一时刻从业务系统获取的余额与从财务系统获取余额相同;
基于优化后的雪花算法生成唯一目标ID对所述对账结果进行对应账单关联,根据所述对账结果中对应的唯一目标ID自动穿透信息流与资金流的全链路数据,并根据所述唯一目标ID追溯对应账单在资金流与信息流之间流转的全过程以达到完整的对账闭环;
所述基于优化后的雪花算法生成唯一目标ID包括:获取当前状态下的第一时间戳,并对所述第一时间戳进行除法运算得到秒级的第二时间戳;获取上一次生成ID的第三时间戳,并判断所述第三时间戳与所述第二时间戳是否相同;当所述第二时间戳与所述第三时间戳不相同的情况下,若所述第二时间戳小于所述第三时间戳,则系统时钟回退,将第二时间戳设置为第三时间戳;在所述第二时间戳与所述第三时间戳相同的情况下,则在同一秒内生成ID,序列号通过自增生成并赋值给变量s,并通过变量s与序列号进行与运算判断序列号是否到达最大阈值,在到达最大阈值时当前线程进入休眠状态直至进入下一秒,所述变量s用于存储序列号;通过预设的移位运算和函数调用来组合生成混合编码,所述混合编码的方式为将所述第二时间戳进行左移预设位以获取时间戳部分,通过函数调用获取工作节点标识部分,将序列号s进行按位或操作,得到最终的混合编码,返回生成的分布式ID;其中,所述优化后的雪花算法由1位标识位、31位时间戳位、15位工作机器id以及17位序列号构成;
所述基于统一对账中心对获取到的账单源数据进行解析转换成目标账单数据包括:根据业务通知或预设时间触发数据获取操作并生成对账采集任务并执行相应的下载任务;读取配置生成的下载任务,定时执行下载任务,判断是否下载到目标账单文件;若下载到所述目标账单文件,则读取所述目标账单文件的未解析记录,对所述目标账单文件触发解析操作,根据预设的文件类型选取对应的解析模板对所述目标账单文件中的数据进行解析落库并进行数据清洗转换为目标对账单并按对账维度生成转换记录;若未下载到所述目标账单文件,则判断当前下载次数是否达到最大尝试次数,在未达到最大尝试次数时,继续重试下载任务,在达到最大尝试次数时,判断该下载任务是否已有下载文件,若已有下载文件则标记成功,未有下载文件则进行失败告警;其中,所述目标账单文件包括银行账单和非银行账单;
所述调用对账规则引擎获取对应的对账规则包括:在一对一的对账规则模式下,提取第一对账方的一笔目标账单数据与第二对账方的一笔目标账单数据,按照预设维度并根据预设金额累计算法对金额进行双边金额累加,在双边对账的情况下,对第一对账方的累加后的金额与第二对账方的累加后的金额进行匹配并判断是否为平账,所述预设维度至少包括账号、主对账ID;在一对一的对账规则模式下,提取第一对账方的一笔目标账单数据与第二对账方的一笔目标账单数据,根据字段匹配算法设定目标字段后,将第一对账方的目标字段与第二对账方的目标字段进行匹配并判断是否为平账;在一对多或者多对一的对账规则模式下,提取第一对账方的一笔目标账单数据与第二对账方的多笔目标账单数据或者提取第一对账方的多笔目标账单数据与第二对账方的一笔目标账单数据,根据预设金额累计算法进行一边金额累加,在一边对账的情况下,将主对账ID属性相同的多笔主/从账单累加后的金额与对应的从/主账单中的一笔金额进行匹配并判断是否为平账;其中,所述目标账单数据包括网关对账单、银行对账单、单据对账单和流水对账单;
所述执行所述对账规则后选取对应的对账算法包括:若所述对账任务为执行入境交易且配置为一对多的对账规则时,选取差异对账算法进行第一对账操作,所述第一对账操作方式为确认该规则下核对的目标字段后,获取主账单和从账单并执行loop循环操作,将从账单相同目标字段下的金额进行金额累计得出累计后金额,在累计后对主从账单中同一笔数据进行匹配,匹配成功则该笔对账为平账,否则不平账结束操作;若所述对账任务为执行入境交易且配置为一对一的对账规则时,选取标准对账单算法进行第二对账操作,所述第二对账操作方式为获取主账单和从账单并执行loop循环操作,按照目标字段进行预设顺序排列后,对从账单中的目标对段下的数据进行匹配,若匹配到该顺序下的最终字段下的数据则结束操作即对平;若所述对账任务为执行转账交易且配置为一对一的对账规则时,选取数据匹配算法进行第三对账操作,所述第三对账操作方式为获取主账单和从账单并执行loop循环操作,将主账单和从账单根据预设条件进行数据筛选,并按照各自的目标字段与金额拼接后对主从账单中同一笔数据进行匹配,匹配成功则该笔对账为平账,否则不平账结束操作;其中,所述目标字段包括银行、金额、币种及主对账ID中的一种或多种组合;
所述将对账不平的数据传输至对应的异常处理系统进行异常数据的核对处理直至对账结果为平账包括:启动正常对账模式,将主账单与从账单进行对比,输出的对比结果显示从账单不平时,判断该从账单是否为单边账;若该从账单不是单边账的情况下,判断该从账单与主账单的金额是否不相同,在金额不相同时,登记主/从单边账差错记录,定时触发获取该差错记录进行全局差错记录匹配,并传输至统一对账中心执行统一对账引擎;若该从账单是单边账的情况下,登记从单边账差错,将差错数据传输至pending系统确认是否为在途资金数据,同时传输至差错处理中心进行异常数据核对操作,判断该差错数据是否需要进行销账操作,若需要进行销账操作则执行销账直至平账;若不需要进行销账操作则将差错数据传输至差错池对账;若上述方式均执行仍存在所述差错数据,则对所述差错数据执行修复操作,所述修复操作方式为对所述差错数据中的多笔数据按照预设修复字段进行拆分操作或合并操作后重新对账直至平账。
2.如权利要求1所述的基于雪花算法的全链路对账方法,其特征在于,所述调用对账规则引擎之前包括:
对所述账单源数据对应的信息流进行对账配置并对配置操作进行检查,检查方式为判断配置参数是否通过验证;
在参数验证通过后判断对账是否对重,在对账对重的情况下对前一次对账对平时产生的差异池数据进行复原操作再进行删除操作,同时对前一次对账数据进行删除操作后以目标对账单的形式写入Redis中;
在参数验证未通过时直接以目标对账单的形式写入Redis中;
判断账单数据写入Redis过程中数据库是否发生异常,在未发生异常时对所述目标对账单进行核对操作,从Redis缓存中读取以所述目标对账单形式生成的账单源数据后,进入下一步对账规则引擎调用操作;
其中,所述账单源数据以Cousor游标方式读取Redis缓存数据,所述Cousor游标方式包括:触发从包含多条缓存数据记录的结果集中每次提取一条缓存数据记录的机制,在用户访问所述结果集中任意一行缓存数据时,将游标放置到目标行后,在目标行或从目标位置的行块上执行操作,该结果集中指向目标缓存记录的游标位置组成的一个临时文件。
3.如权利要求1所述的基于雪花算法的全链路对账方法,其特征在于,所述响应于跨境业务对账请求之前包括:
建立对账业务系统与财务系统之间的数据交互路径,根据所述数据交互路径生成统一对账中心并进行归口管理,同时基于优化后的雪花算法搭建分布式ID生成服务生成高并发下环境下的多个目标ID;
在当前进程处于账单解析状态时,基于搭建的ID生成服务生成第一目标ID,并根据所述第一目标ID对所述对账数据进行标记并记录该对账数据在账单解析状态下的流转过程;
在当前进程处于对账执行状态时,基于搭建的ID生成服务生成第二目标ID,并根据所述第二目标ID对所述对账数据进行标记并记录该对账数据在对账执行状态下的流转过程;
在当前进程处于数据穿透状态时,根据第一目标ID进行跨对账维度的账单关联以匹配跨层级的数据关系,并生成从信息流向资金流走向的穿透信息,根据所述穿透信息及时确保发现异常并提示。
4.一种基于雪花算法的全链路对账装置,其特征在于,包括:
采集模块,用于响应于跨境业务对账请求并从业务端获取账单源数据;
解析模块,用于基于统一对账中心对获取到的账单源数据进行解析转换成目标账单数据;
对账模块,用于调用对账规则引擎获取对应的对账规则以匹配跨境支付端不同的数据准入条件,执行所述对账规则后选取对应的对账算法,并对所述目标账单数据执行全链路对账任务得到对账结果,所述对账任务包括资金对账、单据对账和流水对账;
判断模块,用于判断执行全链路对账任务过程中所述对账结果是否为平账,将对账不平的数据传输至对应的异常处理系统进行异常数据的核对处理直至对账结果为平账,所述平账是指同一时刻从业务系统获取的余额与从财务系统获取余额相同;
穿透模块,用于基于优化后的雪花算法生成唯一目标ID对所述对账结果进行对应账单关联,根据所述对账结果中对应的唯一目标ID自动穿透信息流与资金流的全链路数据,并根据所述唯一目标ID追溯对应账单在资金流与信息流之间流转的全过程以达到完整的对账闭环;
所述基于优化后的雪花算法生成唯一目标ID包括:获取当前状态下的第一时间戳,并对所述第一时间戳进行除法运算得到秒级的第二时间戳;获取上一次生成ID的第三时间戳,并判断所述第三时间戳与所述第二时间戳是否相同;当所述第二时间戳与所述第三时间戳不相同的情况下,若所述第二时间戳小于所述第三时间戳,则系统时钟回退,将第二时间戳设置为第三时间戳;在所述第二时间戳与所述第三时间戳相同的情况下,则在同一秒内生成ID,序列号通过自增生成并赋值给变量s,并通过变量s与序列号进行与运算判断序列号是否到达最大阈值,在到达最大阈值时当前线程进入休眠状态直至进入下一秒,所述变量s用于存储序列号;通过预设的移位运算和函数调用来组合生成混合编码,所述混合编码的方式为将所述第二时间戳进行左移预设位以获取时间戳部分,通过函数调用获取工作节点标识部分,将序列号s进行按位或操作,得到最终的混合编码,返回生成的分布式ID;其中,所述优化后的雪花算法由1位标识位、31位时间戳位、15位工作机器id以及17位序列号构成;
所述基于统一对账中心对获取到的账单源数据进行解析转换成目标账单数据包括:根据业务通知或预设时间触发数据获取操作并生成对账采集任务并执行相应的下载任务;读取配置生成的下载任务,定时执行下载任务,判断是否下载到目标账单文件;若下载到所述目标账单文件,则读取所述目标账单文件的未解析记录,对所述目标账单文件触发解析操作,根据预设的文件类型选取对应的解析模板对所述目标账单文件中的数据进行解析落库并进行数据清洗转换为目标对账单并按对账维度生成转换记录;若未下载到所述目标账单文件,则判断当前下载次数是否达到最大尝试次数,在未达到最大尝试次数时,继续重试下载任务,在达到最大尝试次数时,判断该下载任务是否已有下载文件,若已有下载文件则标记成功,未有下载文件则进行失败告警;其中,所述目标账单文件包括银行账单和非银行账单;
所述调用对账规则引擎获取对应的对账规则包括:在一对一的对账规则模式下,提取第一对账方的一笔目标账单数据与第二对账方的一笔目标账单数据,按照预设维度并根据预设金额累计算法对金额进行双边金额累加,在双边对账的情况下,对第一对账方的累加后的金额与第二对账方的累加后的金额进行匹配并判断是否为平账,所述预设维度至少包括账号、主对账ID;在一对一的对账规则模式下,提取第一对账方的一笔目标账单数据与第二对账方的一笔目标账单数据,根据字段匹配算法设定目标字段后,将第一对账方的目标字段与第二对账方的目标字段进行匹配并判断是否为平账;在一对多或者多对一的对账规则模式下,提取第一对账方的一笔目标账单数据与第二对账方的多笔目标账单数据或者提取第一对账方的多笔目标账单数据与第二对账方的一笔目标账单数据,根据预设金额累计算法进行一边金额累加,在一边对账的情况下,将主对账ID属性相同的多笔主/从账单累加后的金额与对应的从/主账单中的一笔金额进行匹配并判断是否为平账;其中,所述目标账单数据包括网关对账单、银行对账单、单据对账单和流水对账单;
所述执行所述对账规则后选取对应的对账算法包括:若所述对账任务为执行入境交易且配置为一对多的对账规则时,选取差异对账算法进行第一对账操作,所述第一对账操作方式为确认该规则下核对的目标字段后,获取主账单和从账单并执行loop循环操作,将从账单相同目标字段下的金额进行金额累计得出累计后金额,在累计后对主从账单中同一笔数据进行匹配,匹配成功则该笔对账为平账,否则不平账结束操作;若所述对账任务为执行入境交易且配置为一对一的对账规则时,选取标准对账单算法进行第二对账操作,所述第二对账操作方式为获取主账单和从账单并执行loop循环操作,按照目标字段进行预设顺序排列后,对从账单中的目标对段下的数据进行匹配,若匹配到该顺序下的最终字段下的数据则结束操作即对平;若所述对账任务为执行转账交易且配置为一对一的对账规则时,选取数据匹配算法进行第三对账操作,所述第三对账操作方式为获取主账单和从账单并执行loop循环操作,将主账单和从账单根据预设条件进行数据筛选,并按照各自的目标字段与金额拼接后对主从账单中同一笔数据进行匹配,匹配成功则该笔对账为平账,否则不平账结束操作;其中,所述目标字段包括银行、金额、币种及主对账ID中的一种或多种组合;
所述将对账不平的数据传输至对应的异常处理系统进行异常数据的核对处理直至对账结果为平账包括:启动正常对账模式,将主账单与从账单进行对比,输出的对比结果显示从账单不平时,判断该从账单是否为单边账;若该从账单不是单边账的情况下,判断该从账单与主账单的金额是否不相同,在金额不相同时,登记主/从单边账差错记录,定时触发获取该差错记录进行全局差错记录匹配,并传输至统一对账中心执行统一对账引擎;若该从账单是单边账的情况下,登记从单边账差错,将差错数据传输至pending系统确认是否为在途资金数据,同时传输至差错处理中心进行异常数据核对操作,判断该差错数据是否需要进行销账操作,若需要进行销账操作则执行销账直至平账;若不需要进行销账操作则将差错数据传输至差错池对账;若上述方式均执行仍存在所述差错数据,则对所述差错数据执行修复操作,所述修复操作方式为对所述差错数据中的多笔数据按照预设修复字段进行拆分操作或合并操作后重新对账直至平账。
5.一种电子设备,其特征在于,包括:
存储器,所述存储器用于存储处理程序;
处理器,所述处理器执行所述处理程序时实现如权利要求1至3中任意一项所述的基于雪花算法的全链路对账方法。
6.一种可读存储介质,其特征在于,所述可读存储介质上存储有处理程序,所述处理程序被处理器执行时实现如权利要求1至3中任意一项所述的基于雪花算法的全链路对账方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311659348.7A CN117350880B (zh) | 2023-12-06 | 2023-12-06 | 基于雪花算法的全链路对账方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311659348.7A CN117350880B (zh) | 2023-12-06 | 2023-12-06 | 基于雪花算法的全链路对账方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117350880A CN117350880A (zh) | 2024-01-05 |
CN117350880B true CN117350880B (zh) | 2024-02-23 |
Family
ID=89367132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311659348.7A Active CN117350880B (zh) | 2023-12-06 | 2023-12-06 | 基于雪花算法的全链路对账方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117350880B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117974128B (zh) * | 2024-03-29 | 2024-07-19 | 成都智元汇信息技术股份有限公司 | 一种基于地铁主动补登的对账方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105405007A (zh) * | 2015-11-19 | 2016-03-16 | 成都连银信息技术有限公司 | 支持多种支付通道的统一账务处理系统 |
CN109493201A (zh) * | 2018-09-18 | 2019-03-19 | 深圳壹账通智能科技有限公司 | 对账方法、装置、计算机设备和存储介质 |
CN110147281A (zh) * | 2019-05-15 | 2019-08-20 | 上海淇毓信息科技有限公司 | 优化雪花算法在金融业务中应用的方法、装置、电子设备 |
CN113011879A (zh) * | 2021-03-22 | 2021-06-22 | 中国联合网络通信集团有限公司 | 关联交易数据处理方法、装置及服务器 |
CN113205402A (zh) * | 2021-05-29 | 2021-08-03 | 长沙市到家悠享家政服务有限公司 | 对账方法、装置、电子设备及计算机可读介质 |
CN114155102A (zh) * | 2021-11-30 | 2022-03-08 | 中企云链(北京)金融信息服务有限公司 | 一种分布式记账方法 |
CN114298804A (zh) * | 2021-12-15 | 2022-04-08 | 上海品顺信息科技有限公司 | 一种智能对账方法、系统及计算机可读存储介质 |
CN114493873A (zh) * | 2022-01-25 | 2022-05-13 | 中国农业银行股份有限公司 | 交易处理方法、装置、设备及存储介质 |
CN114971609A (zh) * | 2022-06-15 | 2022-08-30 | 深圳供电局有限公司 | 一种直联账户的对账系统及方法 |
CN115858368A (zh) * | 2022-12-13 | 2023-03-28 | 杭州乒乓智能技术有限公司 | 面向跨境支付的数据生成方法、系统、设备及存储介质 |
CN116167860A (zh) * | 2023-03-08 | 2023-05-26 | 上海百胜软件股份有限公司 | 对账处理方法、装置、电子设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210133350A1 (en) * | 2019-11-06 | 2021-05-06 | TrustLogix, Inc. | Systems and Methods for Automated Securing of Sensitive Personal Data in Data Pipelines |
WO2022216724A1 (en) * | 2021-04-05 | 2022-10-13 | Everyware Worldwide Inc. | Payment system and method |
-
2023
- 2023-12-06 CN CN202311659348.7A patent/CN117350880B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105405007A (zh) * | 2015-11-19 | 2016-03-16 | 成都连银信息技术有限公司 | 支持多种支付通道的统一账务处理系统 |
CN109493201A (zh) * | 2018-09-18 | 2019-03-19 | 深圳壹账通智能科技有限公司 | 对账方法、装置、计算机设备和存储介质 |
CN110147281A (zh) * | 2019-05-15 | 2019-08-20 | 上海淇毓信息科技有限公司 | 优化雪花算法在金融业务中应用的方法、装置、电子设备 |
CN113011879A (zh) * | 2021-03-22 | 2021-06-22 | 中国联合网络通信集团有限公司 | 关联交易数据处理方法、装置及服务器 |
CN113205402A (zh) * | 2021-05-29 | 2021-08-03 | 长沙市到家悠享家政服务有限公司 | 对账方法、装置、电子设备及计算机可读介质 |
CN114155102A (zh) * | 2021-11-30 | 2022-03-08 | 中企云链(北京)金融信息服务有限公司 | 一种分布式记账方法 |
CN114298804A (zh) * | 2021-12-15 | 2022-04-08 | 上海品顺信息科技有限公司 | 一种智能对账方法、系统及计算机可读存储介质 |
CN114493873A (zh) * | 2022-01-25 | 2022-05-13 | 中国农业银行股份有限公司 | 交易处理方法、装置、设备及存储介质 |
CN114971609A (zh) * | 2022-06-15 | 2022-08-30 | 深圳供电局有限公司 | 一种直联账户的对账系统及方法 |
CN115858368A (zh) * | 2022-12-13 | 2023-03-28 | 杭州乒乓智能技术有限公司 | 面向跨境支付的数据生成方法、系统、设备及存储介质 |
CN116167860A (zh) * | 2023-03-08 | 2023-05-26 | 上海百胜软件股份有限公司 | 对账处理方法、装置、电子设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
Efficient Tag Grouping via Collision Reconciliation and Data CompressionEfficient Tag Grouping via Collision Reconciliation and Data Compression;Wang X et al;TRANSACTIONS ON MOBILE COMPUTING;第20卷(第5期);第1817-1831页 * |
基于DAG的分布式账本共识机制研究;高政风 等;软件学报;第31卷(第04期);第1124-1142页 * |
基于Go实现的分布式主键系统研究;秦攀科 等;无线互联科技(第15期);第51-55页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117350880A (zh) | 2024-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10540375B2 (en) | Systems and methods for self-pairing databases | |
US20170293503A1 (en) | System for transforming large scale electronic processing using application block chain and multi-structured data stores | |
US8825547B2 (en) | Apparatus, method, and computer program product for data cleansing and/or biller scrubbing | |
CN101710410A (zh) | 一种核对账务数据的方法和系统 | |
CN117350880B (zh) | 基于雪花算法的全链路对账方法、装置、设备及介质 | |
CN103903081B (zh) | 利用erp系统中的涉税单据数据生成涉税凭证的方法和系统 | |
CN109472678A (zh) | 一种基于区块链的会计账本管理方法、电子装置及可读存储介质 | |
CN106056373A (zh) | 一种基于区块链的可分割的数字资产转账方法 | |
CN107689009A (zh) | 年金数据处理方法、装置、服务器和存储介质 | |
US20060020545A1 (en) | Payroll system | |
US20240142271A1 (en) | Enhanced meter management solution | |
CN109785021A (zh) | 一种发电企业与电力企业间电费结算发票系统 | |
CN110427389B (zh) | 一种用于区块链数字货币的数据处理和查询方法 | |
CN110415097B (zh) | 一种汇票拆分、合并系统及实现汇票交易的方法 | |
CN112214536B (zh) | 一种企业账目数据实时导入管理系统 | |
CN113657846A (zh) | 一种财务共享模式下企业资金管理方法及系统 | |
US11875416B2 (en) | Systems and methods for immutable historic records from cloud storage systems | |
CN117094764A (zh) | 银行积分处理方法及装置 | |
CN107292602A (zh) | 一种避免利息损失的转账方法及系统 | |
CN112561674B (zh) | 客运收入结算方法、装置、存储介质及电子设备 | |
CN113159789A (zh) | 一种跨行转账退汇记账方法和装置 | |
CN100507906C (zh) | 多用途数据的无冗余提供设备及方法 | |
CN110276601A (zh) | 电子商业汇票全生命周期监管系统及方法 | |
US20230022438A1 (en) | Connected Accounting System and User Interfaces | |
TW200411457A (en) | Notes receivable management system and method |
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 |