CN110197424A - 基于Redis的对账平台*** - Google Patents

基于Redis的对账平台*** Download PDF

Info

Publication number
CN110197424A
CN110197424A CN201910466756.8A CN201910466756A CN110197424A CN 110197424 A CN110197424 A CN 110197424A CN 201910466756 A CN201910466756 A CN 201910466756A CN 110197424 A CN110197424 A CN 110197424A
Authority
CN
China
Prior art keywords
reconciliation
file
module
redis
standard
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.)
Pending
Application number
CN201910466756.8A
Other languages
English (en)
Inventor
张东涛
邬敏炜
王伟
郑建丽
潘少赟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHANGHAI BANKS CO Ltd
Original Assignee
SHANGHAI BANKS CO Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SHANGHAI BANKS CO Ltd filed Critical SHANGHAI BANKS CO Ltd
Priority to CN201910466756.8A priority Critical patent/CN110197424A/zh
Publication of CN110197424A publication Critical patent/CN110197424A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/02Banking, e.g. interest calculation or account maintenance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/12Accounting

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Engineering & Computer Science (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种基于Redis的对账平台***,将合作方对账文件和银行数据库对账文件分别转换为标准对账文件写入Redis模块,基于Redis模块中的标准对账文件进行对账,并将差异写入差异文件模块,因此,本发明的基于Redis的对账平台***具有对账速度快、效率高的优点,适用于数量大、业务量大的对账情况;且基于配置信息完成对账流程,因此对业务类型无要求,能够极大的加快开发效率。

Description

基于Redis的对账平台***
技术领域
本发明属于互联网技术领域,具体涉及一种基于Redis的对账平台***。
背景技术
目前,对账一般为第三方的交易流水文件和银行方的数据库记录,比对,得到差异数据。
原有的对账模式和存在的问题:1、基于数据库SQL对账,将第三方的数据落库到和银行方记录表同一个数据库实例,然后用复杂的sql(使用not in,left join等)来对账,查找差异记录。存在的问题:对账数据量大时严重影响数据库性能;在数据量增大时对账时间也会变长,量越大,对账时间越不可接受;扩展麻烦。2、基于数据库逐条对账,基于银行方记录,逐条根据流水号查询对比第三方记录,查找差异记录。存在的问题:数据量大时,对数据库性能影响巨大;逐条对账性能差;扩展麻烦。3、在jvm内存中对账,解析文件到jvm内存,用Java的集合类,set,map等对比出差异记录。存在的问题:业务量大时不适用。
并且,原有对账都要根据业务类型等做个性化开发,例如:对于支付应用中,一般需要根据流水号对金额、***、状态、交易时间等字段;而在理财业务中,一般需要根据流水号对申购金额/认购金额、业务类型、状态等。
发明内容
本发明是为了解决上述问题而进行的,目的在于提供一种对账速速快、效率高,适用于业务量大、对账数据量大且适用于任何业务类型的基于Redis的对账平台***。
本发明提供了一种基于Redis的对账平台***,其特征在于,包括:
数据库,存储有银行的对账信息;
合作方文件转标准文件模块,用于将合作方的对账文件转换为第一标准对账文件;
数据库信息转标准文件模块,用于将所述数据库中的银行对账文件转换为第二标准对账文件;
任务调度模块,用于从所述合作方文件转标准文件模块调出需要进行对账的第一标准对账文件,从所述数据库信息转标准文件模块调出需要进行对账的第二标准对账文件;
Redis模块,读取所述任务调度模块调出的第一标准对账文件和第二标准对账文件;
对账模块,用于将所述Redis模块读取的第一标准对账文件和第二标准对账文件进行比对,找出差异;以及
差异文件模块,用于写入所述对账模块中得到的差异生成差异文件。
进一步,在本发明提供的基于Redis的对账平台***中,还可以具有这样的特征:其中,所述任务调度模块还包含执行器管理模块,所述执行器管理模块用于监测运行中的模块,实时查看任务执行进度。
进一步,在本发明提供的基于Redis的对账平台***中,还可以具有这样的特征:其中,所述第一标准对账文件和所述第二标准对账文件均为分隔符文件,第一行指明每列的列名。
进一步,在本发明提供的基于Redis的对账平台***中,还可以具有这样的特征:其中,所述对账模块的对账方法包括以下步骤:
步骤S1,根据通配符获取双方的标准对账文件;
步骤S2,确认获取的标准对账文件为标准格式,并且对账日期一致,若确认无误则进入步骤S3,若有误,则返回步骤S1;
步骤S3,移动获取的标准对账文件到工作目录;
步骤S4,根据步骤S3中移动到工作目录的标准对账文件的文件名称获取Redis的key名称,多个文件拼接字符串;
步骤S5,删除Redis模块中步骤S4处理前的标准对账文件;
步骤S6,循环步骤S4中处理后的标准对账文件,重新解析至Redis模块中;
步骤S7,对比leftgroup的id集合和rightgroup的id集合,获取leftgroup的id集合中比rightgroup的id集合中id多的记录leftidover。其中,leftgroup代表银行方的对账文件,rightgroup代表合作方的对账文件,id代表保存在Redis模块中的集合名称前缀;
步骤S8,反向对比,获取rightgroup的id集合中比leftgroup的id集合中id多的记录rightidover;
步骤S9,将leftgroup和rightgroup对比allshalval集合,获取差异集合leftallshalvaldiff,遍历集合leftallshalvaldiff,spilt分隔符,获取对应id的set集合leftallshalvaldiffid,将leftallshalvaldiffid和leftidover集合做差集,获取字段有差异的对应id集合fielddiff,其中,allshalval在Redis模块中数据结构:id+分隔符+参与对账字段的值的shal编码后的字符串的set集合;
步骤S10,处理leftidover集合,读取该集合的id,根据该id获取其在leftgroup中对应的字段值,然后将该字段值写到差异集合finaldiff中;
步骤11,处理rightidover集合,读取该集合的id,根据该id获取其在leftgroup中对应的字段值,然后将该字段值写到差异集合finaldiff中;
步骤12,处理fielddiff集合,根据fielddiff集合的id获取leftgroup和rightgroup中该id对应的所有字段作为待对账字段columnnames,对每个待对账字段,循环fielddiff集合,分别从leftgroup和rightgroup的map中获取该对账字段对应的字段值分别组成set,将两个set集合取差集,获取该对账字段中字段值有差异的id,循环待对账字段,获取字段有差异的id集合,根据字段有差异的id集合中的id和id对应的字段获取leftgroup和rightgroup中对应字段的字段值和扩展字段的值,保存到差异集合finaldiff中;
步骤13,读取finaldiff集合,将数据写入文件。
进一步,在本发明提供的基于Redis的对账平台***中,还可以具有这样的特征:其中,所述合作方文件转标准文件模块通过sftp协议主动获取合作方对账文件;或者
根据预先配置的路径和通配符获取合作方写入指定目录下的文件。
进一步,在本发明提供的基于Redis的对账平台***中,还可以具有这样的特征:所述任务调度模块按指定路径输出所述差异文件模块中的差异文件。
进一步,在本发明提供的基于Redis的对账平台***中,还可以具有这样的特征:所述数据库信息转标准文件模块通过配置数据源与数据库建立连接。
进一步,在本发明提供的基于Redis的对账平台***中,还可以具有这样的特征:所述任务调度模块与所述合作方文件转标准文件模块、所述数据库信息转标准文件模块、所述Redis模块之间通过RPC协议通信。
进一步,在本发明提供的基于Redis的对账平台***中,还可以具有这样的特征:所述对账模块通过配置的redis地址用Spring-data-redis与所述redis模块建立连接。
进一步,在本发明提供的基于Redis的对账平台***中,还可以具有这样的特征,基于Redis的对账平台***还包括:
运行异常模块,用于在***运行异常时,输出异常的类型;以及
异常解决模块,用于在***运行异常时,根据异常的类型和预先设计好的对应的异常问题解决方案解决该异常问题。
本发明的优点如下:
根据本发明所涉及的基于Redis的对账平台***,将合作方对账文件和银行数据库对账文件分别转换为标准对账文件写入Redis,基于Redis中的标准对账文件进行对账,并将差异写入差异文件模块,因此,支持多个标准对账文件和多个标准对账文件对账,对账速度快且效率高;任何业务类型的对账文件都能够基于配置信息完成对账,因此,对业务类型无要求,能够极大的加快开发效率,本发明的基于Redis的对账平台***具有对账速度快、效率高的优点,适用于数量大、业务量大的对账情况,且适用于任何业务类型,能够极大的加快开发效率。
附图说明
图1是本发明中基于Redis的对账平台***的结构框图;
图2是本发明中合作方文件转标准文件模块将合作方的对账文件转换为标准文件的过程图;
图3是本发明中数据库信息转标准文件模块将数据库中的银行的对账信息转换为标准对账文件的过程图;
图4是本发明中Redis模块读取标准对账文件的过程图;
图5是本发明中对账模块的对账流程图;
图6是本发明中差异文件的生成流程;
图7是获取的银行方的标准对账文件数据图;
图8是获取的合作方的标准对账文件数据图;
图9是本发明中执行器管理模块的执行器管理界面图;
图10是本发明中执行器管理模块的任务管理界面图;
图11是本发明中执行器管理模块的调度日志界面图
图12是本发明中执行器管理模块的执行日志控制台界面图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,以下实施例结合附图对本发明的基于Redis的对账平台***作具体阐述。
在描述之前,对本专利涉及的专业术语进行说明:
合作方:与银行有账务往来的企业。
对账:是对前一个清算周期的交易信息进行核对,以确认交易信息的一致性和正确性的过程。
对账文件:是根据***的交易信息生成的文本文件。
差异文件:指双方对账完成后未勾兑成功的交易信息。
如图1所示,基于Redis的对账平台***100包括:数据库10、合作方文件转标准文件模块20、数据库信息转标准文件模块30、任务调度模块40、Redis模块50、对账模块60、差异文件模块70。
数据库10存储有银行的对账信息。
合作方文件转标准文件模块20用于将合作方的对账文件转换为第一标准对账文件。合作方文件转标准文件模块20与外部应用连接,获取合作方的对账文件。具体地,合作方文件转标准文件模块20通过sftp协议主动获取合作方对账文件。或者,合作方文件转标准文件模块20根据预先配置的路径和通配符获取合作方写入指定目录下的文件。
数据库信息转标准文件模块30用于将数据库10中的银行对账文件转换为第二标准对账文件。具体地,数据库信息转标准文件模块30通过配置数据源与数据库10建立连接。
第一标准对账文件和第二标准对账文件均为相同格式的标准对账文件。在本实施例中,第一标准对账文件和第二标准对账文件均为分隔符文件,第一行指明每列的列名。具体地,标准对账文件名称规范为:业务标志+下划线+standard字符串+下划线+日期;标准对账文件中内容格式为:第一行为列名,@!@分隔,其它行为具体数据。
例如:
id@!@amout@!@status
rquid20190211135911000012@!@100.00@!@S
rquid20190211135911000011@!@100.00@!@S
具体地,如图2所示,合作方文件转标准文件模块20将合作方的对账文件转换为标准对账文件的过程为:首先,将合作方的对账文件根据文件名称(带通配符)、分隔符(或定长文件每列长度)、读取的列号、每列对应的字段名称读取数据,将每行的数据转换为Map<String,Object>。然后,根据配置的列名将Map数据转换为标准对账文件的行数据,即将Map<String,Object>转换为string,最后,写数据,得到标准对账文件。
具体地,如图3所示,数据库信息转标准文件模块将数据库中的银行的对账信息转换为标准对账文件的过程为:首先,根据配置的selectclause,fromclause,whereclause,wortkey,idcolumnname读取数据库,将每行的数据转换为Map<String,Object>。然后,根据配置的列名将Map数据转换为标准对账文件的行数据,即将Map<String,Object>转换为string,最后,写数据,得到标准对账文件。
任务调度模块40用于从合作方文件转标准文件模块20调出需要进行对账的第一标准对账文件,从数据库信息转标准文件模块30调出需要进行对账的第二标准对账文件,按指定路径输出差异文件模块60中的差异文件。在本实施例中,任务调度模块40与合作方文件转标准文件模块20、数据库信息转标准文件模块30、Redis模块50之间通过RPC协议通信。
Redis模块50用于读取任务调度模块40调出的第一标准文件和第二标准文件。如图4所示,Redis模块50读取标准文件的过程为:首先,根据配置的文件名称读取文件,将每行数据转换为Map<String,Object>,(文件的第一行为列名)。然后,将Map<String,Object>数据转换为Map<String,List<String>>数据结构后保存到Redis模块50,其中,Map<String,List<String>>中String为字段名称,List<String>为id+字段值拼接的字段串,每个字段对应值分别保存为set集合。
对账模块60用于将Redis模块读取的第一标准文件和第二标准文件进行比对,找出差异。
在本实施例中,如图5所示,对账模块60的对账流程为:
步骤S1-1,根据通配符获取双方的标准对账文件,最优的,获取最近预定时间(例如2分钟)内未修改的标准对账文件,防止获取的标准对账文件是文件未写完的标准对账文件。
步骤S1-2,确认对账文件为标准格式,并且对账日期一致。若确认无误则进入步骤S1-3,若有误,则返回步骤S1-1。
步骤S1-3,移动获取的标准对账文件到工作目录。
步骤S1-4,根据步骤S1-3中移动到工作目录的标准对账文件的文件名称获取Redis的key名称(路径的hash+文件名称),多个文件拼接字符串。
步骤S1-5,删除Redis旧数据,即删除Redis模块中步骤S1-4处理前的标准对账文件。
步骤S1-6,循环步骤S1-4中处理后的标准对账文件,解析至Redis模块中。
步骤S1-7,对比leftgroup的id集合和rightgroup的id集合,获取leftgroup的id集合中比rightgroup的id集合中id多的记录leftidover。其中,leftgroup代表银行方的对账文件,rightgroup代表合作方的对账文件,id代表保存在Redis模块中的集合名称前缀。具体地,用Redis的sdiff命令,对比leftgroup的id集合和rightgroup的id集合。
步骤S1-8,反向对比,获取rightgroup的id集合中比leftgroup的id集合中id多的记录rightidover。
步骤S1-9,将leftgroup和rightgroup对比allshalval集合,获取差异集合leftallshalvaldiff,遍历集合leftallshalvaldiff,spilt分隔符,获取对应id的set集合leftallshalvaldiffid,将leftallshalvaldiffid和leftidover集合做差集,获取字段有差异的对应id集合fielddiff,其中,allshalval在Redis模块中数据结构:id+分隔符+参与对账字段的值的shal编码后的字符串的set集合。
步骤S1-10,处理leftidover集合,读取该集合的id,根据该id获取其在leftgroup中对应的字段值,然后将该字段值写到差异集合finaldiff中。具体地,根据该id获取其在leftgroup中对应的字段值时是从leftgroup中allvalue的map集合中获取对应的字段值。其中,allvalue在Redis中数据结构:key为id,value为所有字段值的map集合。
步骤S1-11,处理rightidover,读取该集合的id,根据该id获取其在leftgroup中对应的字段值,然后将该字段值写到差异集合finaldiff中。具体地,根据该id获取其在rightgroup中对应的字段值时是从rightgroup中allvalue的map集合中获取对应的字段值。
步骤S1-12,处理fielddiff集合,根据fielddiff集合的id获取leftgroup和rightgroup中该id对应的所有字段作为待对账字段columnnames,对每个待对账字段,循环fielddiff集合,分别从leftgroup和rightgroup的map中获取该对账字段对应的字段值分别组成set,将两个set集合取差集,获取该对账字段中字段值有差异的id,循环待对账字段,获取字段有差异的id集合,根据字段有差异的id集合中的id和id对应的字段获取leftgroup和rightgroup中的对应的字段的值和扩展字段的值,保存到差异集合finaldiff中。
处理fielddiff集合,根据fielddiff集合的id获取leftgroup和rightgroup中该id对应的所有字段作为待对账字段columnnames,对每个待对账字段,循环fielddiff集合,分别从leftgroup和rightgroup的map中获取对应字段值分别组成set,将两个set集合取差集,获取该对账字段中字段值有差异的id,循环待对账字段,获取字段有差异的id集合(该集合中包含id和id对应的字段,id对应的字段表示该id中的这个字段在leftgroup和rightgroup中的字段值不同),根据字段有差异的id集合中的id和id对应的字段获取leftgroup和rightgroup中的对应字段的字段值和扩展字段的值(从leftgroup和rightgroup中获取的字段值即为差异字段的值),保存到差异集合finaldiff中。具体地,获取待对账字段是根据fielddiff集合的id从allvalue集合中获取leftgroup和rightgroup中所有记录值的map集合。例如:待对账字段为amount和status两个字段,将fielddiff集合中的所有id和amount字段结合,从leftgroup的map中获取fielddiff集合中的所有id对应的amount的字段值组成set,从rightgroup的map中获取fielddiff集合中的所有id对应的amount的字段值组成另一个set,将两个set做差集,即可知道fielddiff集合中哪些id的amount值不同。将fielddiff集合中的所有id和status字段结合,从leftgroup的map中获取fielddiff集合中的所有id对应的status的字段值组成set,从rightgroup的map中获取fielddiff集合中的所有id对应的status的字段值组成另一个set,将两个set做差集,即可知道fielddiff集合中哪些id的status值不同。根据id和该id对应的字段,从leftgroup和rightgroup中获取对应的差异字段值和扩展字段值。
步骤S1-13,读取finaldiff集合,将数据写入文件。具体地,用springbatch(批量操作)框架读取finaldiff集合。
在本实施例中,对账模块进行对账时,还将leftgroup的id集合和leftallshalvaldiffid的集合做差集,获取所有对账平记录id集合,并处理对账平记录id集合,遍历对账平记录id集合,获取leftgroup和rightgroup的allvalue集合中对应的map,获取对账字段值和扩展字段值,写到对账finalsame的set集中,然后读取finalsame集合,将数据写入文件,输出已对账且对账平的字段值,这些字段值包括对账的哪些字段,金额、状态,以及其它配置的字段等。方便有些应用需要对账平记录更新自己表状态为已对账,对账平。
例如:
如图7所示为获取的银行方的标准对账文件,如图8所示为获取的合作方的标准对账文件。
参数:
String leftFileNames=“C:\\\\user\\\\zhangdt\\\\Desktop\\\\recv\\\\prms-standard-*”;
String rightFileNames=C:\\\\user\\\\zhangdt\\\\Desktop\\\\recv\\\\trsdeflow-standard-*”;
String[]columnNames=new String[]{“amount”,“status”};StringoutputFilePath=“C:\\\\user\\\\zhangdt\\\\Desktop\\\\recv\\\\”;
String diffFileFrefix=“diffFile”;
String[]extColumnNames=new String[]{“left.transcode”,“right.dbid”};
leftFileNames:左侧待对账文件名称,即银行方待对账文件名称,多个文件逗号分隔。
rightFileNames:右侧待对账文件名称,即合作方待对账文件名称。
columnNames:待对账字段名称。
extColumnNames:需要写到差异文件或对账平文件的额外字段名称。
outputFilePath:输出文件路径。
diffFileFrefix:输出文件前缀。
上边参数表示:对两个文件中的amount和status字段,输出到outputFileFath目录,输出文件前缀为diffFile,且输出的差异文件记录和对账平文件记录需要有leftFile中的trancode字段和rightFile中的dbid字段。
输出差异文件命名:diffFile_diff_20190521
差异记录格式:
LeftGroupId(根据文件路径和文件名称生成),rightGroupId,差异字段名称,差异记录id,左值,右值,差异类型(字段差异/左id多/右id多)
对账平记录命名:
diffFile_same_20190521
对账平记录格式:
左GroupID,右GroupID,记录id,对账列对应值,扩展列对应值。
在本实施例中,对账模块60通过配置的redis地址用Spring-data-redis与redis模块50建立连接。
差异文件模块70用于写入对账模块60中得到的差异生成差异文件。如图6所示,差异文件的生成流程为:
步骤S2-1,根据leftgroupid(银行方的批次id)、rightgroupid(合作方的批次id)、columnname(待对账字段)获取redis的key名称。
步骤S2-2,根据redis的key读取redis中的差异集合。
步骤S2-3,将差异集合转string。
步骤S2-4,写文件。
步骤S2-5,遍历其它字段,重复步骤S2-1~S2-4,直至差异文件完成。
在本实施例中,任务调度模块40还包含执行器管理模块41,执行器管理模块41用于监测运行中的模块,查看任务执行进度。如图9所示,通过执行器管理模块41可以看到运行中的应用(在列表中的应用),发现未运行的应用(应用未在列表中)时,可及时检查相关问题。如图10、图11、图12所示,在任务管理的界面时,点击“日志”可以看到任务的实时日志,在调度日志界面可以看到调度的任务,使得运维任务可以在线查看根据日志信息排查相关问题。
在本实施例中,基于Redis的对账平台***100还包括:运行异常模块和异常解决模块。
运行异常模块,用于在***运行异常时,输出异常的类型。常见的异常类型如表1所示。表1中仅列出部分出错情况。
表1.
出错情形 ***输出
文件不存在 日志输出"文件不存在"
文件格式错误 日志输出"文件格式错误”
程序运行内部错误 日志输出"程序内部错误"及相关堆栈信息
异常解决模块用于在***运行异常时,根据异常的类型和预先设计好的对应的异常问题解决方案解决该异常问题。常见的异常类型对应的异常问题解决方案如表2所示。表2中仅列出部分异常情况对应的解决方案。
表2.
本***工作时,由任务调度模块40调度合作方文件转标准文件模块20和数据库信息转标准文件模块30中需要进行对账的文件,合作方文件转标准文件模块20将需要进行对账的文件转换为第一标准对账文件,数据库信息转标准文件模块30将需要对账的文件转换为第二标准对账文件,任务调度模块40将双方转换后的文件写入Redis模块50,对账模块60对Redis模块50中的第一标准对账文件和第二标准对账文件进行比对,找出差异,然后将差异写入差异文件模块70。
使用本发明的对账平台***,在测试两千万数据量,两个标准对账文件大小分别为25G的情形下,将对账文件处理为标准对账文件及写入redis需要耗时20分钟左右,对账只需要10s左右,写入200万的差异需要3分钟。
本发明的对账平台***是基于配置信息完成对账流程,因此,对业务类型无要求,任何业务类型进行对账时只需要知道对的字段名称即可,因此,具体开发软件时,能够极大的加快开发效率。
使用本发明的对账平台***,各个团队只需要在配置页面增加几条配置就可以拿到差异文件,可以直接作为差异报表,或者针对开发相关的处理逻辑。
上述实施方式为本发明的优选案例,并不用来限制本发明的保护范围。

Claims (10)

1.一种基于Redis的对账平台***,其特征在于,包括:
数据库,存储有银行的对账信息;
合作方文件转标准文件模块,用于将合作方的对账文件转换为第一标准对账文件;
数据库信息转标准文件模块,用于将所述数据库中的银行对账文件转换为第二标准对账文件;
任务调度模块,用于从所述合作方文件转标准文件模块调出需要进行对账的第一标准对账文件,从所述数据库信息转标准文件模块调出需要进行对账的第二标准对账文件;
Redis模块,读取所述任务调度模块调出的第一标准对账文件和第二标准对账文件;
对账模块,用于将所述Redis模块读取的第一标准对账文件和第二标准对账文件进行比对,找出差异;以及
差异文件模块,用于写入所述对账模块中得到的差异生成差异文件。
2.根据权利要求1所述的基于Redis的对账平台***,其特征在于:
所述任务调度模块还包含执行器管理模块,所述执行器管理模块用于监测运行中的模块,实时查看任务执行进度。
3.根据权利要求1所述的基于Redis的对账平台***,其特征在于:
所述第一标准对账文件和所述第二标准对账文件均为分隔符文件,第一行指明每列的列名。
4.根据权利要求3所述的基于Redis的对账平台***,其特征在于:
所述对账模块的对账方法包括以下步骤:
步骤S1,根据通配符获取双方的标准对账文件;
步骤S2,确认获取的标准对账文件为标准格式,并且对账日期一致,若确认无误则进入步骤S3,若有误,则返回步骤S1;
步骤S3,移动获取的标准对账文件到工作目录;
步骤S4,根据步骤S3中移动到工作目录的标准对账文件的文件名称获取Redis的key名称,多个文件拼接字符串;
步骤S5,删除Redis模块中步骤S4处理前的标准对账文件;
步骤S6,循环步骤S4中处理后的标准对账文件,重新解析至Redis模块中;
步骤S7,对比leftgroup的id集合和rightgroup的id集合,获取leftgroup的id集合中比rightgroup的id集合中id多的记录leftidover。其中,leftgroup代表银行方的对账文件,rightgroup代表合作方的对账文件,id代表保存在Redis模块中的集合名称前缀;
步骤S8,反向对比,获取rightgroup的id集合中比leftgroup的id集合中id多的记录rightidover;
步骤S9,将leftgroup和rightgroup对比allshalval集合,获取差异集合leftallshalvaldiff,遍历集合leftallshalvaldiff,spilt分隔符,获取对应id的set集合leftallshalvaldiffid,将leftallshalvaldiffid和leftidover集合做差集,获取字段有差异的对应id集合fielddiff,其中,allshalval在Redis模块中数据结构:id+分隔符+参与对账字段的值的shal编码后的字符串的set集合;
步骤S10,处理leftidover集合,读取该集合的id,根据该id获取其在leftgroup中对应的字段值,然后将该字段值写到差异集合finaldiff中;
步骤11,处理rightidover集合,读取该集合的id,根据该id获取其在leftgroup中对应的字段值,然后将该字段值写到差异集合finaldiff中;
步骤12,处理fielddiff集合,根据fielddiff集合的id获取leftgroup和rightgroup中该id对应的所有字段作为待对账字段columnnames,对每个待对账字段,循环fielddiff集合,分别从leftgroup和rightgroup的map中获取该对账字段对应的字段值分别组成set,将两个set集合取差集,获取该对账字段中字段值有差异的id,循环待对账字段,获取字段有差异的id集合,根据字段有差异的id集合中的id和id对应的字段获取leftgroup和rightgroup中对应字段的字段值和扩展字段的值,保存到差异集合finaldiff中;
步骤13,读取finaldiff集合,将数据写入文件。
5.根据权利要求1所述的基于Redis的对账平台***,其特征在于:
所述合作方文件转标准文件模块通过sftp协议主动获取合作方对账文件;或者
根据预先配置的路径和通配符获取合作方写入指定目录下的文件。
6.根据权利要求1所述的基于Redis的对账平台***,其特征在于:
所述任务调度模块按指定路径输出所述差异文件模块中的差异文件。
7.根据权利要求1所述的基于Redis的对账平台***,其特征在于:
所述数据库信息转标准文件模块通过配置数据源与数据库建立连接。
8.根据权利要求1所述的基于Redis的对账平台***,其特征在于:
所述任务调度模块与所述合作方文件转标准文件模块、所述数据库信息转标准文件模块、所述Redis模块之间通过RPC协议通信。
9.根据权利要求1所述的基于Redis的对账平台***,其特征在于:
所述对账模块通过配置的redis地址用Spring-data-redis与所述redis模块建立连接。
10.根据权利要求1所述的基于Redis的对账平台***,其特征在于,还包括:
运行异常模块,用于在***运行异常时,输出异常的类型;以及
异常解决模块,用于在***运行异常时,根据异常的类型和预先设计好的对应的异常问题解决方案解决该异常问题。
CN201910466756.8A 2019-05-31 2019-05-31 基于Redis的对账平台*** Pending CN110197424A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910466756.8A CN110197424A (zh) 2019-05-31 2019-05-31 基于Redis的对账平台***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910466756.8A CN110197424A (zh) 2019-05-31 2019-05-31 基于Redis的对账平台***

Publications (1)

Publication Number Publication Date
CN110197424A true CN110197424A (zh) 2019-09-03

Family

ID=67753603

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910466756.8A Pending CN110197424A (zh) 2019-05-31 2019-05-31 基于Redis的对账平台***

Country Status (1)

Country Link
CN (1) CN110197424A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111125117A (zh) * 2019-12-27 2020-05-08 中国银行股份有限公司 对账处理方法及装置
CN111143434A (zh) * 2019-12-19 2020-05-12 深圳壹账通智能科技有限公司 数据智能核对方法、装置、设备及存储介质
CN112286936A (zh) * 2020-11-03 2021-01-29 金蝶软件(中国)有限公司 一种对账方法、***及相关设备
CN113127413A (zh) * 2021-05-12 2021-07-16 北京红山信息科技研究院有限公司 一种运营商数据处理方法、装置、服务器及存储介质
CN113254457A (zh) * 2021-07-01 2021-08-13 中邮消费金融有限公司 一种对账方法、***及计算机可读存储介质
CN115292314A (zh) * 2022-07-28 2022-11-04 上海数禾信息科技有限公司 序列号生成方法、装置、计算机设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180330412A1 (en) * 2017-05-11 2018-11-15 Amadeus S.A.S. Systems and methods for processing and reconciling an invoice data file
CN109583901A (zh) * 2018-11-20 2019-04-05 北京农信互联科技集团有限公司 多业务***的统一账户管理方法及装置
CN109739934A (zh) * 2019-01-08 2019-05-10 厦门投融汇网络有限公司 差集对账方法、介质、计算机设备及***

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180330412A1 (en) * 2017-05-11 2018-11-15 Amadeus S.A.S. Systems and methods for processing and reconciling an invoice data file
CN109583901A (zh) * 2018-11-20 2019-04-05 北京农信互联科技集团有限公司 多业务***的统一账户管理方法及装置
CN109739934A (zh) * 2019-01-08 2019-05-10 厦门投融汇网络有限公司 差集对账方法、介质、计算机设备及***

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111143434A (zh) * 2019-12-19 2020-05-12 深圳壹账通智能科技有限公司 数据智能核对方法、装置、设备及存储介质
CN111125117A (zh) * 2019-12-27 2020-05-08 中国银行股份有限公司 对账处理方法及装置
CN112286936A (zh) * 2020-11-03 2021-01-29 金蝶软件(中国)有限公司 一种对账方法、***及相关设备
CN113127413A (zh) * 2021-05-12 2021-07-16 北京红山信息科技研究院有限公司 一种运营商数据处理方法、装置、服务器及存储介质
CN113127413B (zh) * 2021-05-12 2024-03-01 北京红山信息科技研究院有限公司 一种运营商数据处理方法、装置、服务器及存储介质
CN113254457A (zh) * 2021-07-01 2021-08-13 中邮消费金融有限公司 一种对账方法、***及计算机可读存储介质
CN113254457B (zh) * 2021-07-01 2021-11-12 中邮消费金融有限公司 一种对账方法、***及计算机可读存储介质
CN115292314A (zh) * 2022-07-28 2022-11-04 上海数禾信息科技有限公司 序列号生成方法、装置、计算机设备和存储介质
CN115292314B (zh) * 2022-07-28 2023-11-24 上海数禾信息科技有限公司 序列号生成方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
CN110197424A (zh) 基于Redis的对账平台***
US7792793B2 (en) Data export/import from multiple data source to a destination data repository using corresponding data exporters and an importer
CN109558575B (zh) 在线表格编辑方法、装置、计算机设备及存储介质
US10545981B2 (en) Virtual repository management
CN100565510C (zh) 数据访问层类生成器
CN105164674A (zh) 涉及多个数据库和执行引擎的查询
US20090204590A1 (en) System and method for an integrated enterprise search
CN103064933A (zh) 数据查询方法及***
US8364651B2 (en) Apparatus, system, and method for identifying redundancy and consolidation opportunities in databases and application systems
US20070239799A1 (en) Analyzing log files
CN107528872A (zh) 一种数据恢复方法、装置及云存储***
US9537977B2 (en) Referencing change(s) in data utilizing a network resource locator
US20060190452A1 (en) Sort digits as number collation in server
CN101320394A (zh) 一种支持多种文件类型的数据采集方法
CN113254457B (zh) 一种对账方法、***及计算机可读存储介质
CA2826047C (en) Inventory data access layer
US20060218060A1 (en) Accounting method and system
CN112734525A (zh) 一种多源数据处理方法、***、设备及可读存储介质
Martin Advanced database techniques
CN106599221A (zh) 一种数据处理方法及装置
JP2002541558A (ja) 汎用の知的財産データオブジェクトについてのデータ交換ルールおよびフォーマットを規定する知的財産のプロトコル、およびそれらに関するシステムと、方法と、プログラム製品
Wadman ‘Nothing is impossible,’says lab ace Nita Patel
CN101908014A (zh) 计算机软件***中实现安全审计与留痕的***结构及方法
Chen Proportion split sort
Anderson et al. Oracle Designer/2000 Handbook

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20190903

WD01 Invention patent application deemed withdrawn after publication