对账主流程
2021-03-27 17:05:30 0 举报
登录查看完整内容
对账主流程
作者其他创作
大纲/内容
放入需要入库异常账单列表中
回收-分发器 聚合器reclaimAllOrgans
对平-补分发distributeRemainingResult
放入异常列表中
CheckBillTaskTrigger
获取对平队列
获取对账结果集合checkBillMerchantDtoMap
判断我方单交易日期和交易金额和第三方是否相等
对账生产者线程
NO
异步开启四个聚合线程
CheckBillTaskRunner
以时间维度,即间隔6小时分配一个线程,查询数据库,捞取支付订单,并创建启动对应的分发池线程
支付订单线程池
放入到异常列表中
开始对账:CheckBillWorker
初始化聚合池
对账结果统计入库
聚合线程通道加支付类型和商户的维度做数据统计
YES
商户日结-批量插入数据库
获取异常列表
判断是否为我方少的订单,第三方多的地方
查询数据库:加载昨日全部未对账的对账任务
通道去生成受理机构对账单
我方多,三方少的订单
模拟一条订单:参与商户日结
从对账队列中捞取任务
对账善后处理afterWork
退款订单线程池
挂销账出日结 并入库checkBillExceptionToResultAndDB
abroad-acc-task-war
对账消费者线程
以第三方账单为准:产生销账
初始化分发池
JDBC并发对账,产生挂账concurrentCheckBill
并发对账中捞取我方订单有多种方式:目前收单使用的方式是以时间间隔为查询条件,分多次查询:例如:以某一个交易时间00:00:00开始,每次加6小时查询一次方法2:也可以使用分页查询的方式,每次查询5000条数据
根据异常账单类型判断
CheckBillTaskLoader
获取第三方对账单
以第三方订单号:查询我方订单库
该对账线程会创建两个线程次:非别是1:支付订单查询数据库线程池 2:退款订单查询数据库线程次
分发池监听对平队列,判断是否存在对平数据
我方少,第三方多的订单
聚合池的功能是聚合分发池的数据,统计商户日结
放入异常列表
以我方数据为准:逐笔对账
挂销账处理checkBillExceptionsHandle
加载applicationContext-task.xml
每从队列中捞取到一个任务,线程池都会为其分配一个执行线程:即真正的对账线程
将查询到每一个对账任务放在对账队列中:taskQueue
主线程
创建分发线程,分发数据
能否在第三方账单匹配该订单
加入对平队列
分发线程将对平数据放入聚合池对应的线程中
分发池将对平数据放入聚合池对应的线程中
判断是否可以在我方订单库中匹配该订单
将该订单加入对平队列
根据异常列表中的对账单异常类型进行判断
初始化输出线程池,并提交执行initExporterList
公有云传输账单
产生挂账单:并放入异常列表中
查询数据库,捞取退款订单,并创建启动对应的分发池现场
放入分发线程对平队列
匹配金额是否相等
对账消费者线程:创建一个指定线程数的线程池
分发池主要做功能是将对平的对账单数据分发到聚合池
过滤我方有,第三方账单也有的订单
清空第三方账单
异常单入库,具体插入的表为差错表
拉取聚合线程执行的结果:即:商户日结数据
判断是否为金额不相等类型
对账线程
商户日结金额处理
0 条评论
回复 删除
下一页