Files
ccdi/assets/对接流水分析/ccdi_bank_statement.md

112 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 银行流水中间表 `ccdi_bank_statement`
## 去重相关字段
- `project_id`:业务项目主键,导入时由后端写入,迁移后要求 `NOT NULL`
- `LE_ACCOUNT_NO`:企业银行账号,作为去重键之一;入库前服务层会先执行 `trim`,迁移后要求 `NOT NULL DEFAULT ''`
- `ACCOUNTING_DATE_ID`:账期日期 ID作为去重键之一迁移后要求 `NOT NULL`
- 去重唯一键:`(project_id, LE_ACCOUNT_NO, ACCOUNTING_DATE_ID, AMOUNT_DR, AMOUNT_CR)`
- 唯一键语义:同一项目、同一账号、同一账期、同一借贷金额的流水只保留一条;重复导入时应通过 no-op upsert 跳过,不改写已有记录。
## 迁移后的关键结构
```sql
CREATE TABLE `ccdi_bank_statement` (
`bank_statement_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
`project_id` bigint(20) NOT NULL COMMENT '关联项目ID',
`LE_ID` int(10) unsigned DEFAULT '0' COMMENT '企业ID',
`ACCOUNT_ID` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '账号ID',
`LE_ACCOUNT_NAME` varchar(240) DEFAULT 'NONE' COMMENT '企业账号名称',
`LE_ACCOUNT_NO` varchar(240) NOT NULL DEFAULT '' COMMENT '企业银行账号',
`ACCOUNTING_DATE_ID` int(11) NOT NULL COMMENT '账号日期ID',
`ACCOUNTING_DATE` varchar(10) DEFAULT '0000-00-00' COMMENT '账号日期',
`TRX_DATE` varchar(20) NOT NULL COMMENT '交易日期',
`CURRENCY` varchar(10) DEFAULT NULL COMMENT '币种',
`AMOUNT_DR` decimal(19,2) NOT NULL DEFAULT '0.00' COMMENT '付款金额',
`AMOUNT_CR` decimal(19,2) NOT NULL DEFAULT '0.00' COMMENT '收款金额',
`AMOUNT_BALANCE` decimal(19,2) NOT NULL COMMENT '余额',
`CASH_TYPE` varchar(500) DEFAULT NULL COMMENT '交易类型',
`CUSTOMER_LE_ID` int(11) DEFAULT '-1' COMMENT '对手方企业ID',
`CUSTOMER_ACCOUNT_NAME` varchar(240) DEFAULT NULL COMMENT '对手方企业名称',
`CUSTOMER_ACCOUNT_NO` varchar(240) DEFAULT NULL COMMENT '对手方账号',
`customer_bank` varchar(300) DEFAULT NULL COMMENT '对手方银行',
`customer_reference` varchar(500) DEFAULT NULL COMMENT '对手方备注',
`USER_MEMO` varchar(1000) DEFAULT NULL COMMENT '用户交易摘要',
`BANK_COMMENTS` varchar(240) DEFAULT NULL COMMENT '银行交易摘要',
`BANK_TRX_NUMBER` varchar(240) DEFAULT NULL COMMENT '银行交易号',
`BANK` varchar(250) NOT NULL DEFAULT '' COMMENT '所属银行缩写',
`TRX_FLAG` varchar(2) DEFAULT '0' COMMENT '交易标志位',
`TRX_TYPE` int(11) NOT NULL DEFAULT '0' COMMENT '分类ID',
`EXCEPTION_TYPE` varchar(50) NOT NULL DEFAULT '' COMMENT '异常类型',
`internal_flag` tinyint(1) DEFAULT '0' COMMENT '"是否为内部交易1 是 0 否"',
`batch_id` int(11) NOT NULL DEFAULT '0' COMMENT '上传logId对应upload_log',
`batch_sequence` int(11) NOT NULL COMMENT '每次上传在文件中的line',
`CREATE_DATE` datetime DEFAULT NULL COMMENT '创建时间',
`created_by` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '创建者',
`meta_json` text COMMENT '"meta json"',
`no_balance` tinyint(1) DEFAULT '0' COMMENT '是否包含余额',
`begin_balance` tinyint(1) DEFAULT '0' COMMENT '初始余额',
`end_balance` tinyint(1) DEFAULT '0' COMMENT '结束余额',
`group_id` int(11) DEFAULT '0' COMMENT '项目id',
`override_bs_id` bigint(20) DEFAULT '0' COMMENT '=0表示该数据未覆盖主表>0表示覆盖主表<0表示被主表覆盖',
`payment_method` varchar(500) DEFAULT NULL COMMENT '微信、支付宝流水字段,交易方式',
`cret_no` varchar(20) DEFAULT NULL COMMENT '身份证号',
PRIMARY KEY (`bank_statement_id`),
KEY `idx_batch_id_account` (`batch_id`, `LE_ACCOUNT_NO`, `ACCOUNTING_DATE_ID`),
KEY `GROUP_ID` (`group_id`),
KEY `c4c_bank_statement_stg_batch_id_IDX` (`batch_id`, `LE_ACCOUNT_NO`) USING BTREE,
KEY `idx_project_id` (`project_id`),
UNIQUE KEY `uk_bank_statement_dedup` (
`project_id`,
`LE_ACCOUNT_NO`,
`ACCOUNTING_DATE_ID`,
`AMOUNT_DR`,
`AMOUNT_CR`
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='银行流水的中间处理表';
```
## 字段映射
| 序号 | ccdi_bank_statement | 流水分析返回字段 |
| --- | --- | --- |
| 1 | bank_statement_id | bankStatementId |
| 2 | project_id | 后端按业务写入 |
| 3 | LE_ID | leId |
| 4 | ACCOUNT_ID | accountId |
| 5 | LE_ACCOUNT_NAME | leName |
| 6 | LE_ACCOUNT_NO | accountMaskNo |
| 7 | ACCOUNTING_DATE_ID | accountingDateId |
| 8 | ACCOUNTING_DATE | accountingDate |
| 9 | TRX_DATE | trxDate |
| 10 | CURRENCY | currency |
| 11 | AMOUNT_DR | drAmount |
| 12 | AMOUNT_CR | crAmount |
| 13 | AMOUNT_BALANCE | balanceAmount |
| 14 | CASH_TYPE | cashType |
| 15 | CUSTOMER_LE_ID | customerId |
| 16 | CUSTOMER_ACCOUNT_NAME | customerName |
| 17 | CUSTOMER_ACCOUNT_NO | customerAccountMaskNo |
| 18 | customer_bank | customerBank |
| 19 | customer_reference | customerReference |
| 20 | USER_MEMO | userMemo |
| 21 | BANK_COMMENTS | bankComments |
| 22 | BANK_TRX_NUMBER | bankTrxNumber |
| 23 | BANK | bank |
| 24 | TRX_FLAG | transFlag |
| 25 | TRX_TYPE | transTypeId |
| 26 | EXCEPTION_TYPE | exceptionType |
| 27 | internal_flag | internalFlag |
| 28 | batch_id | batchId |
| 29 | batch_sequence | uploadSequnceNumber |
| 30 | CREATE_DATE | createDate |
| 31 | created_by | createdBy |
| 32 | meta_json | 固定写入 `null` |
| 33 | no_balance | noBalance |
| 34 | begin_balance | beginBalance |
| 35 | end_balance | endBalance |
| 36 | group_id | groupId |
| 37 | override_bs_id | overrideBsId |
| 38 | payment_method | paymentMethod |
| 39 | cret_no | cretNo |