Files
BMS/bms-back/sql/customer+supplier/customerye.sql
T
2026-09-14 11:51:54 +08:00

91 lines
5.7 KiB
SQL
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.
DROP TABLE IF EXISTS `customer_account`;
CREATE TABLE `customer_account` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`customer_id` BIGINT(20) NOT NULL COMMENT '客户ID',
`currency` CHAR(3) NOT NULL DEFAULT 'CNY' COMMENT '币种,如 CNY/USD',
`balance` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '账户余额',
`frozen_balance` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '冻结余额',
`total_credit` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '总额度',
`extra_credit` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '额外额度',
`used_credit` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '已用额度',
`tax` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '税金',
`version` INT(11) NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
`create_by` VARCHAR(64) DEFAULT '' COMMENT '创建者',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` VARCHAR(64) DEFAULT '' COMMENT '更新者',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`del_flag` CHAR(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_customer_currency` (`customer_id`, `currency`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='客户余额表';
DROP TABLE IF EXISTS `customer_receipt`;
CREATE TABLE `customer_receipt` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`receipt_no` VARCHAR(64) NOT NULL COMMENT '收款单号',
`customer_id` BIGINT(20) NOT NULL COMMENT '客户ID',
`account_id` BIGINT(20) DEFAULT NULL COMMENT '客户账户ID',
`receipt_type` VARCHAR(32) NOT NULL DEFAULT 'PREPAY' COMMENT '收款类型:PREPAY预充值/REPAY还款核销/MIXED混合',
`amount` DECIMAL(18,2) NOT NULL COMMENT '收款金额',
`allocated_amount` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '已核销金额',
`unallocated_amount` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '待核销金额',
`currency` CHAR(3) NOT NULL DEFAULT 'CNY' COMMENT '币种,如 CNY/USD',
`pay_method` VARCHAR(32) DEFAULT NULL COMMENT '收款方式:BANK_TRANSFER/ALIPAY/WECHAT/CASH/OTHER',
`bank_transaction_no` VARCHAR(64) DEFAULT NULL COMMENT '银行流水号/支付平台流水号',
`received_at` DATETIME NOT NULL COMMENT '收款日期',
`status` VARCHAR(16) NOT NULL DEFAULT 'PENDING' COMMENT '状态:PENDING待确认/CONFIRMED已确认/CANCELLED已取消',
`confirmed_at` DATETIME DEFAULT NULL COMMENT '确认时间',
`confirmed_by` BIGINT(20) DEFAULT NULL COMMENT '确认人',
`invoice_status` VARCHAR(16) NOT NULL DEFAULT 'NONE' COMMENT '开票状态:NONE未开/PART部分/ALL全部',
`version` INT(11) NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
`create_by` VARCHAR(64) DEFAULT '' COMMENT '创建者',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` VARCHAR(64) DEFAULT '' COMMENT '更新者',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`del_flag` CHAR(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_receipt_no` (`receipt_no`),
KEY `idx_customer_time` (`customer_id`, `received_at`),
KEY `idx_account` (`account_id`),
KEY `idx_status` (`status`),
KEY `idx_bank_transaction_no` (`bank_transaction_no`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='客户收款表';
CREATE TABLE `customer_balance_flow` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`flow_no` VARCHAR(64) NOT NULL COMMENT '流水号',
`customer_id` BIGINT(20) NOT NULL COMMENT '客户ID',
`account_id` BIGINT(20) NOT NULL COMMENT '客户账户ID',
`currency` CHAR(3) NOT NULL DEFAULT 'CNY' COMMENT '币种',
`biz_type` VARCHAR(32) NOT NULL COMMENT '业务类型:RECEIPT收款/BILL_PAY账单支付/REFUND退款/ADJUST手工调整/FREEZE冻结/UNFREEZE解冻',
`biz_id` BIGINT(20) DEFAULT NULL COMMENT '关联业务ID,如收款单ID、账单ID',
`biz_no` VARCHAR(64) DEFAULT NULL COMMENT '关联业务单号',
`direction` TINYINT(1) NOT NULL COMMENT '变动方向:1增加,-1减少',
`amount` DECIMAL(18,2) NOT NULL COMMENT '变动金额',
`before_balance` DECIMAL(18,2) NOT NULL COMMENT '变动前余额',
`after_balance` DECIMAL(18,2) NOT NULL COMMENT '变动后余额',
`before_frozen_balance` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '变动前冻结余额',
`after_frozen_balance` DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '变动后冻结余额',
`operator_id` BIGINT(20) DEFAULT NULL COMMENT '操作人',
`create_by` VARCHAR(64) DEFAULT '' COMMENT '创建者',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` VARCHAR(64) DEFAULT '' COMMENT '更新者',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`del_flag` CHAR(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_flow_no` (`flow_no`),
KEY `idx_customer_time` (`customer_id`, `create_time`),
KEY `idx_account_time` (`account_id`, `create_time`),
KEY `idx_biz` (`biz_type`, `biz_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='余额流水表';
-- 收款单附件复用客户附件表:attachment_type='3'(其他),biz_id 关联 customer_receipt.id
ALTER TABLE `bms_customer_attachment`
ADD COLUMN `biz_id` BIGINT(20) DEFAULT NULL COMMENT '关联业务ID(如收款单ID,attachment_type=3时使用)' AFTER `attachment_type`,
ADD KEY `idx_biz_id` (`biz_id`);