清分系统对账

在这里插入图片描述

流程1的问题:

1、通道一天的数据会有多少,有二三十万条交易数据吗?
2、如果数据过大都存到一个Map里面去,机器不得挂了

步骤1总结:

1、通过channelNo获取通道T的数据,因为通道是一天一个文件给过来。在转成Map,map的key = channelOrderNo+channelNo+amt value = 通道一行数据。
2、通过T查询本地交易数据,主要是拿状态是:未对账+对账不平的数据。
3、找出【共有】的数据,找出【本地多】的,找出【通道多】的。
4、通道的数据有个日期T,本地交易数据都有一个wokeDate,如果是wokeDate一样的,当做当日对账处理,如果不是一样,就当做次日对账处理。
5、当日对账处理,更新本地数据的状态:遍历本地所有数据,判断是属于【共有】的里面,还是【本地多】的,如果是共有的,更新成【之前的状态】【当日对账平】,如果是本地多的就更新成 【之前的状态】【当日本地交易多】
6、次日对账处理,更新本地数据状态,遍历所有本地数据,如果属于【共有】的更新成【之前的状态】【次日对账平】,如果是本地多的就更新成 【之前的状态】【次日本地交易多】,然后更新本地交易的对账数据状态。
7、这种次日多的和当日多的,后面会有特殊处理。
8、遍历通道测的数据,如果workDate一样,判断是属于【共有】的里面,还是【通道多】的,如果是共有的,更新成【之前的状态】【当日对账平】,如果是通道测多的,更新成 【之前的状态】【当日通道侧多】
9、遍历通道测的数据,如果workDate不一样,判断是共有还是通道多的,更新成【之前的状态】【次日对账平】和【之前的状态】【次日通道侧多】,然后通道对账数据的对账状态。

在这里插入图片描述

流程2的问题:

步骤2总结:

1、获取通道T日,短交易的【交易数据】,获取通道T-1的短交易数据,转成Map
2、获取本地T日,长交易的【本地交易数据】,获取本地T-1日,长交易的【本地交易数据】转成Map
3、找出【共有】的,本地多的,通道多的,注意只要是一方多的,都是未对平的数据。
4、先遍历本地多的数据,如果wokedate一样,判断是在【共有】还是【本地多的】里面,如果是共有里面,转成【之前的状态】【本日对账平】,否则【之前的状态】【当日本地交易多】
4、遍历本地多的数据,如果wokedate不一样,判断是在【共有】还是【本地多的】里面,如果是共有里面,转成【之前的状态】【次日对账平】,否则【之前的状态】【次日本地交易多】
5、再把本地交易数据更新掉去。
6、在遍历通道多的数据,规则也是一样。判断wokeDate是否一样,更新通道数据的状态。

在这里插入图片描述

流程3的问题:

流程3的总结:

1、获取通道T日和T+1的数据,为对平的数据,主要是通道多的数据,
2、通过通道的数据,根据通道订单号+通道No+金额查询本地订单表的数据,

3、如果本地交易找到了,那就更新订单的状态,此时还没有更新到数据,只是更新数据在内存中的状态。
4、既然找到了本地数据,那么同时也要把通道订单表的数据状态更新下。这里也只是更新内存中的
5、这里也包括处理公缴的本地交易订单。

6、如果本地交易没有找到,从交易的文件表里面找
7、如果文件表找到了,更新数据状态,并且把这条交易文件数据保存到,本地交易数据里面去。
8、如果交易文件也没有找到,那么这条通道数据就是是多的。需要补本地交易数据

在这里插入图片描述

流程4:未知转失败问题

怎么知道未知转失败?一般是本地有,通道那边没有,都视为未知转失败。

流程4:未知转失败总结

1、获取本地交易T-1日的数据:未对账+订单状态处理中+付款类型
2、判断是:T日确认失败+T-1日确认失败,更具workDate判断,更新本地交易的对账状态,如果是退货类的,那还要补发一个MQ给付款中心。

在这里插入图片描述

流程5:未知转失败问题

流程5:未知转失败总结

1、取本地交易的【长交易】数据,时间为T日,然后区分本地这笔交易是收款还是付款,生成一条对账异常数据
2、取本地交易的【长交易销账】数据,时间为T日,然后区分本地这笔交易是收款还是付款,生成一条对账异常数据
3、【时差挂账转对账挂账】,如果是时差挂账,这种就搁置,不处理,因为有可能过几天数据又来了。
4、把上面出现差异的数据,保存到【本地对账差异】表里面去

5、取通道的数据,【短交易】
6、取通道的【通道短交易-核销】数据, 保存到【通道对账差异】数据库。

在这里插入图片描述
1、发送对账结果给到交易
2、通知对象是一个集合

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/172545.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

首届教师案例教学竞赛一等奖作品上线至和鲸社区,快来学习!

细心的朋友可能已经发现,近期和鲸社区的频道页上线了一个新专区——“优秀参赛作品专区”。 图.和鲸社区频道页 迄今为止,和鲸参与/支持了 500 多场专业数据科学竞赛,包括面向气象、金融、医学、海洋等不同领域的,面向从业者、科学…

.net 8 发布了,试下微软最近强推的MAUI

先看下实现的效果&#xff1a; 下面发下XAML文件&#xff1a; <?xml version"1.0" encoding"utf-8" ?> <ContentPage xmlns"http://schemas.microsoft.com/dotnet/2021/maui"xmlns:x"http://schemas.microsoft.com/winfx/2009/…

案例027:基于微信小程序的校园二手平台的设计与实现

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

基于springboot实现智慧党建系统项目【项目源码】

基于springboot实现智慧党建系统演示 Java技术 Java是由Sun公司推出的一门跨平台的面向对象的程序设计语言。因为Java 技术具有卓越的通用性、高效性、健壮的安全性和平台移植性的特点&#xff0c;而且Java是开源的&#xff0c;拥有全世界最大的开发者专业社群&#xff0c;所以…

C++ libcxxabi中dynamic_cast 实现

摘要&#xff1a;最近在看一个崩溃的过程中详细看了一遍cxxabi的定义&#xff0c;就想着看一些llvm中cxxabi的一些实现。本文描述了cxxabi中dynamic_cast的实现以及原理。   关键字&#xff1a;cxxabi,dynamic_cast 1 简介 C中&#xff0c;dynamic_cast用于有虚函数的继承链…

【go入门】表单

4.1 处理表单的输入 先来看一个表单递交的例子&#xff0c;我们有如下的表单内容&#xff0c;命名成文件login.gtpl(放入当前新建项目的目录里面) <html> <head> <title></title> </head> <body> <form action"/login" meth…

【Java】循环语句练习

文章目录 1. 计算5的阶乘2. 计算 1! 2! 3! 4! 5!3. 数字9 出现的次数4. 判定素数5. 求1-100之间的素数6. 求2个整数的最大公约数7. 计算分数的值8. 模拟登陆9. 输出乘法口诀表10. 求出0&#xff5e;999之间的所有“水仙花数”并输出11. 猜数字游戏&#x1f648; 1. 计算5的…

Linux系统编程 day05 进程控制

Linux系统编程 day05 进程控制 1. 进程相关概念2. 创建进程3. exec函数族4. 进程回收 1. 进程相关概念 程序就是编译好的二进制文件&#xff0c;在磁盘上&#xff0c;占用磁盘空间。程序是一个静态的概念。进程即使启动了的程序&#xff0c;进程会占用系统资源&#xff0c;如内…

FO-like Transformation

参考文献&#xff1a; [RS91] Rackoff C, Simon D R. Non-interactive zero-knowledge proof of knowledge and chosen ciphertext attack[C]//Annual international cryptology conference. Berlin, Heidelberg: Springer Berlin Heidelberg, 1991: 433-444.[BR93] Bellare M…

软件介绍01- koodo Reader支持所有电脑平台!

1 软件简介 Koodo Reader软件是一款阅读器&#xff0c;可以阅读各种格式的文档。用来代替kindle。界面简洁&#xff0c;好看&#xff0c;阅读功能强大&#xff0c;而且可以多设备同步。 因为开源&#xff0c;所以免费。而且支持所有电脑平台&#xff01; 支持格式&#xff1a…

Android修行手册-ViewPager定制页面切换以及实现原理剖析

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分…

kafka的设计原理

文章目录 1 Kafka简介2 Kafka的架构2.1 Kafka 一些重要概念2.2 工作流程2.3 副本原理2.4 分区和主题的关系2.5 生产者2.5.1 分区可以水平扩展2.5.2 分区策略 2.6 消费者2.6.1 消费方式2.6.2 分区分配策略 2.7 数据可靠性保证2.7.1 副本数据同步策略2.7.2 ACK 应答机制2.7.3 可靠…

Java抽象类和接口(1)

&#x1f435;本篇文章将对抽象类和接口相关知识进行讲解 一、抽象类 先来看下面的代码&#xff1a; class Shape {public void draw() {System.out.println("画");} } class Cycle extends Shape {public void draw() {System.out.println("圆形");} } …

开发知识点-ArkTS-鸿蒙开发-Typescript

Typescript IED IED https://developer.harmonyos.com/cn/develop/deveco-studio/#download

打开CMD的六种方法,CMD快捷键,CMD命令大全及详解

目录 前言1. winR快捷键2、通过文本文档创建&#xff1b;3、通过C盘中的cmd.exe文件打开&#xff1b;4、创建快捷方式&#xff1b;5、通过PowerShell打开&#xff1b;6、通过文件夹导航栏打开&#xff1b; 前言 自己的电脑win键失灵了&#xff0c;想通过winR来调出cmd&#xff…

【Linux基础】Linux常见指令总结及周边小知识

前言 Linux系统编程的学习我们将要开始了&#xff0c;学习它我们不得不谈谈它的版本发布是怎样的&#xff0c;谈它的版本发布就不得不说说unix。下面是unix发展史是我在百度百科了解的 Unix发展史 UNIX系统是一个分时系统。最早的UNIX系统于1970年问世。此前&#xff0c;只有…

Doris单机部署——2.0.1.1版本

目录 一、前期准备工作 1.设置系统最大文件打开句柄数 2.时钟同步 3.关闭每台机器的交换分区 4.下载安装包 二、单节点部署安装Doris (一)安装fe 1.解压改名 2.修改配置文件 3.创建元数据目录 4.启动fe 5.访问fe的webUI (二)安装be 1.进入be目录下&#xff0c;修…

Leetcode—35.搜索插入位置【简单】

2023每日刷题&#xff08;四十&#xff09; Leetcode—35.搜索插入位置 实现代码 int lower_bound(int* arr, int numsSize, int tar) {int left 0, right numsSize;int mid;// 左闭右开[left, right)while(left < right) {mid left (right - left) / 2;if(arr[mid] &…

Cadence Vmanager vsif文件编写指南(持续更新...)

目录 1.NTF格式介绍 1.1.1 {属性&#xff1a;值}定义 1.1.2类别 1.1.3语法 2.vsif文件中有效的container 2.1 session {…} 1.NTF格式介绍 Cadence的Vmanager工具采用vsif类型的文件作为regression的输入文件&#xff0c;采用vplanx/csv类型的文件作为vplan的输入文件&am…

BC77 简单计算器(牛客)

#include <stdio.h> int main() {double a, b, d;//用来接收浮点数char c;//用来接受符号scanf("%lf %c %lf", &a, &c, &b);if (c || c - || c * || c /)//判断输入的运算符号不包括在&#xff08;、-、*、/&#xff09;范围内{switch (c)//根…