fundplatform/doc/sql/fund_receipt_init.sql
zhangjf e93488d3d8 feat(sql): 更新数据库初始化脚本
-完善各模块表结构定义
- 优化索引和约束配置
- 更新初始化数据
-统一SQL脚本格式
2026-03-02 07:30:29 +08:00

103 lines
5.4 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.

-- =============================================
-- 资金服务平台 - 收款管理数据库初始化脚本
-- Database: fund_receipt
-- Version: 2.0
-- Created: 2026-02-22
-- Updated: 2026-03-02 (主键类型改为VARCHAR雪花ID)
-- =============================================
CREATE DATABASE IF NOT EXISTS fund_receipt DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE fund_receipt;
-- =============================================
-- 1. 应收款表 (receivable)
-- =============================================
CREATE TABLE IF NOT EXISTS receivable (
id VARCHAR(32) NOT NULL COMMENT '主键ID雪花算法',
tenant_id VARCHAR(32) NOT NULL COMMENT '租户ID',
receivable_code VARCHAR(64) NOT NULL COMMENT '应收款编号',
requirement_id VARCHAR(32) COMMENT '需求ID',
project_id VARCHAR(32) NOT NULL COMMENT '项目ID',
customer_id VARCHAR(32) NOT NULL COMMENT '客户ID',
receivable_amount DECIMAL(18,2) NOT NULL COMMENT '应收款金额',
received_amount DECIMAL(18,2) DEFAULT 0.00 COMMENT '已收款金额',
unpaid_amount DECIMAL(18,2) DEFAULT 0.00 COMMENT '未收款金额',
receivable_date DATE NOT NULL COMMENT '应收款日期',
payment_due_date DATE COMMENT '付款截止日期',
payment_method VARCHAR(32) COMMENT '付款方式: transfer-转账, cash-现金, check-支票, other-其他',
bank_account VARCHAR(128) COMMENT '收款账户',
status VARCHAR(32) NOT NULL DEFAULT 'pending' COMMENT '状态: pending-待收款, partial-部分收款, received-已收款, overdue-逾期',
overdue_days INT DEFAULT 0 COMMENT '逾期天数',
confirm_status INT DEFAULT 0 COMMENT '确认状态: 0-待确认, 1-已确认',
confirm_time DATETIME COMMENT '确认时间',
confirm_by VARCHAR(32) COMMENT '确认人ID',
remark VARCHAR(500) COMMENT '备注',
created_by VARCHAR(32) COMMENT '创建人',
created_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_by VARCHAR(32) COMMENT '更新人',
updated_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
deleted TINYINT NOT NULL DEFAULT 0 COMMENT '删除标记: 0-未删除, 1-已删除',
PRIMARY KEY (id),
UNIQUE KEY uk_tenant_code (tenant_id, receivable_code, deleted),
KEY idx_tenant_id (tenant_id),
KEY idx_requirement_id (requirement_id),
KEY idx_project_id (project_id),
KEY idx_customer_id (customer_id),
KEY idx_receivable_date (receivable_date),
KEY idx_status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='应收款表';
-- =============================================
-- 2. 收款记录表 (fund_receipt)
-- =============================================
CREATE TABLE IF NOT EXISTS fund_receipt (
id VARCHAR(32) NOT NULL COMMENT '主键ID雪花算法',
tenant_id VARCHAR(32) NOT NULL COMMENT '租户ID',
receipt_no VARCHAR(64) NOT NULL COMMENT '收款单号',
title VARCHAR(200) COMMENT '收款标题',
amount DECIMAL(18,2) NOT NULL COMMENT '收款金额',
currency VARCHAR(16) DEFAULT 'CNY' COMMENT '币种',
receipt_type INT COMMENT '收款类型: 1-项目收款, 2-服务费, 3-利息收入, 4-其他',
payer_name VARCHAR(128) COMMENT '付款单位',
payer_bank VARCHAR(128) COMMENT '付款银行',
payer_account VARCHAR(64) COMMENT '付款账号',
receipt_date DATETIME COMMENT '收款日期',
purpose VARCHAR(500) COMMENT '用途说明',
project_id VARCHAR(32) COMMENT '项目ID',
customer_id VARCHAR(32) COMMENT '客户ID',
receivable_id VARCHAR(32) COMMENT '应收款ID',
receipt_status INT DEFAULT 0 COMMENT '收款状态: 0-待确认, 1-已确认, 2-已核销',
confirm_time DATETIME COMMENT '确认时间',
confirm_by VARCHAR(32) COMMENT '确认人ID',
write_off_time DATETIME COMMENT '核销时间',
write_off_by VARCHAR(32) COMMENT '核销人ID',
voucher VARCHAR(255) COMMENT '收款凭证',
invoice_no VARCHAR(64) COMMENT '发票号',
attachments VARCHAR(1000) COMMENT '附件URL',
remark VARCHAR(500) COMMENT '备注',
created_by VARCHAR(32) COMMENT '创建人',
created_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_by VARCHAR(32) COMMENT '更新人',
updated_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
deleted TINYINT NOT NULL DEFAULT 0 COMMENT '删除标记: 0-未删除, 1-已删除',
PRIMARY KEY (id),
UNIQUE KEY uk_tenant_no (tenant_id, receipt_no, deleted),
KEY idx_tenant_id (tenant_id),
KEY idx_receivable_id (receivable_id),
KEY idx_project_id (project_id),
KEY idx_customer_id (customer_id),
KEY idx_receipt_date (receipt_date)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='收款记录表';
-- =============================================
-- 初始化测试数据(租户ID=1)
-- =============================================
INSERT INTO receivable (id, tenant_id, receivable_code, project_id, customer_id, receivable_amount, received_amount, unpaid_amount, receivable_date, payment_due_date, status, created_by, created_time)
VALUES ('1', '1', 'REC20260101001', '1', '1', 50000.00, 0.00, 50000.00, '2026-01-15', '2026-02-15', 'pending', '1', NOW())
ON DUPLICATE KEY UPDATE receivable_code=receivable_code;
-- =============================================
-- 脚本执行完成
-- =============================================