anxin-ruoyi/sql/digital_credit_service.sql

874 lines
47 KiB
SQL
Raw Permalink 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.

-- 数字债权服务系统数据库表结构
-- 创建数据库
CREATE DATABASE IF NOT EXISTS `anxin_digital_credit` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
USE `anxin_digital_credit`;
-- ===========================
-- 核心业务表 (ruoyi-credit模块)
-- ===========================
-- 1. 服务合同表
DROP TABLE IF EXISTS `dc_service_contract`;
CREATE TABLE `dc_service_contract` (
`contract_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '合同ID',
`contract_number` varchar(100) NOT NULL COMMENT '合同编号',
`security_company_id` bigint(20) NOT NULL COMMENT '安保公司ID',
`client_company_id` bigint(20) NOT NULL COMMENT '甲方单位ID',
`service_content` text COMMENT '服务内容(加密)',
`contract_amount` varchar(500) COMMENT '合同金额(加密)',
`start_date` datetime NOT NULL COMMENT '服务开始日期',
`end_date` datetime NOT NULL COMMENT '服务结束日期',
`payment_due_date` datetime NOT NULL COMMENT '付款到期日',
`contract_status` varchar(50) NOT NULL DEFAULT 'DRAFT' COMMENT '合同状态',
`blockchain_hash` varchar(255) COMMENT '区块链哈希',
`data_hash` varchar(255) COMMENT '敏感数据哈希',
`encryption_key_id` varchar(100) COMMENT '加密密钥ID',
`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 '备注',
PRIMARY KEY (`contract_id`),
UNIQUE KEY `uk_contract_number` (`contract_number`),
KEY `idx_security_company` (`security_company_id`),
KEY `idx_client_company` (`client_company_id`),
KEY `idx_contract_status` (`contract_status`),
KEY `idx_payment_due_date` (`payment_due_date`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='服务合同表';
-- 2. 数字债权凭证表
DROP TABLE IF EXISTS `dc_digital_credit`;
CREATE TABLE `dc_digital_credit` (
`credit_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '债权ID',
`credit_number` varchar(100) NOT NULL COMMENT '债权编号',
`contract_id` bigint(20) NOT NULL COMMENT '关联合同ID',
`credit_amount` varchar(500) COMMENT '债权金额(加密)',
`issue_date` datetime NOT NULL COMMENT '发行日期',
`maturity_date` datetime NOT NULL COMMENT '到期日期',
`credit_status` varchar(50) NOT NULL DEFAULT 'ACTIVE' COMMENT '债权状态',
`blockchain_hash` varchar(255) COMMENT '区块链哈希',
`digital_signature` text COMMENT '数字签名(加密)',
`encryption_key_id` varchar(100) COMMENT '加密密钥ID',
`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 '备注',
PRIMARY KEY (`credit_id`),
UNIQUE KEY `uk_credit_number` (`credit_number`),
KEY `idx_contract_id` (`contract_id`),
KEY `idx_credit_status` (`credit_status`),
KEY `idx_maturity_date` (`maturity_date`),
CONSTRAINT `fk_credit_contract` FOREIGN KEY (`contract_id`) REFERENCES `dc_service_contract` (`contract_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='数字债权凭证表';
-- 3. 融资申请表
DROP TABLE IF EXISTS `dc_financing_application`;
CREATE TABLE `dc_financing_application` (
`application_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '申请ID',
`application_number` varchar(100) NOT NULL COMMENT '申请编号',
`credit_id` bigint(20) NOT NULL COMMENT '债权ID',
`financial_institution_id` bigint(20) NOT NULL COMMENT '金融机构ID',
`request_amount` varchar(500) COMMENT '申请金额(加密)',
`approved_amount` varchar(500) COMMENT '批准金额(加密)',
`interest_rate` varchar(200) COMMENT '利率(加密)',
`application_status` varchar(50) NOT NULL DEFAULT 'PENDING' COMMENT '申请状态',
`application_date` datetime NOT NULL COMMENT '申请日期',
`approval_date` datetime COMMENT '审批日期',
`approval_comments` text COMMENT '审批意见(加密)',
`encryption_key_id` varchar(100) COMMENT '加密密钥ID',
`access_log` varchar(255) COMMENT '访问日志ID',
`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 '备注',
PRIMARY KEY (`application_id`),
UNIQUE KEY `uk_application_number` (`application_number`),
KEY `idx_credit_id` (`credit_id`),
KEY `idx_financial_institution` (`financial_institution_id`),
KEY `idx_application_status` (`application_status`),
CONSTRAINT `fk_financing_credit` FOREIGN KEY (`credit_id`) REFERENCES `dc_digital_credit` (`credit_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='融资申请表';
-- 4. 公司信息表
DROP TABLE IF EXISTS `dc_company_info`;
CREATE TABLE `dc_company_info` (
`company_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '公司ID',
`company_name` varchar(200) NOT NULL COMMENT '公司名称',
`company_type` varchar(50) NOT NULL COMMENT '公司类型',
`registration_number` varchar(100) COMMENT '注册号',
`legal_representative` varchar(100) COMMENT '法定代表人',
`contact_person` varchar(100) COMMENT '联系人',
`contact_phone` varchar(50) COMMENT '联系电话',
`contact_email` varchar(100) COMMENT '联系邮箱',
`address` varchar(500) COMMENT '地址',
`status` char(1) NOT NULL DEFAULT '0' COMMENT '状态0正常 1停用',
`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 '备注',
PRIMARY KEY (`company_id`),
KEY `idx_company_name` (`company_name`),
KEY `idx_company_type` (`company_type`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='公司信息表';
-- 5. 合同附件表
DROP TABLE IF EXISTS `dc_contract_attachment`;
CREATE TABLE `dc_contract_attachment` (
`attachment_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '附件ID',
`contract_id` bigint(20) NOT NULL COMMENT '合同ID',
`file_name` varchar(200) NOT NULL COMMENT '文件名',
`file_path` varchar(500) NOT NULL COMMENT '文件路径',
`file_size` bigint(20) NOT NULL COMMENT '文件大小',
`file_type` varchar(50) NOT NULL COMMENT '文件类型',
`file_hash` varchar(255) COMMENT '文件哈希',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`attachment_id`),
KEY `idx_contract_id` (`contract_id`),
CONSTRAINT `fk_attachment_contract` FOREIGN KEY (`contract_id`) REFERENCES `dc_service_contract` (`contract_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='合同附件表';
-- ===========================
-- 支付结算表 (ruoyi-payment模块)
-- ===========================
-- 6. 资金监管账户表
DROP TABLE IF EXISTS `dc_escrow_account`;
CREATE TABLE `dc_escrow_account` (
`account_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '账户ID',
`account_number` varchar(100) NOT NULL COMMENT '账户号码',
`application_id` bigint(20) NOT NULL COMMENT '关联融资申请ID',
`total_amount` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '总金额',
`available_amount` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '可用金额',
`frozen_amount` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '冻结金额',
`account_status` varchar(50) NOT NULL DEFAULT 'ACTIVE' 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 '备注',
PRIMARY KEY (`account_id`),
UNIQUE KEY `uk_account_number` (`account_number`),
KEY `idx_application_id` (`application_id`),
KEY `idx_account_status` (`account_status`),
CONSTRAINT `fk_escrow_application` FOREIGN KEY (`application_id`) REFERENCES `dc_financing_application` (`application_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='资金监管账户表';
-- 7. 资金流转记录表
DROP TABLE IF EXISTS `dc_fund_transfer`;
CREATE TABLE `dc_fund_transfer` (
`transfer_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '流转ID',
`transfer_number` varchar(100) NOT NULL COMMENT '流转编号',
`from_account_id` bigint(20) COMMENT '转出账户ID',
`to_account_id` bigint(20) COMMENT '转入账户ID',
`transfer_amount` decimal(15,2) NOT NULL COMMENT '转账金额',
`transfer_type` varchar(50) NOT NULL COMMENT '转账类型',
`transfer_status` varchar(50) NOT NULL DEFAULT 'PENDING' COMMENT '转账状态',
`description` varchar(500) COMMENT '描述',
`transfer_time` datetime NOT NULL COMMENT '转账时间',
`blockchain_tx_hash` varchar(255) 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 '更新时间',
PRIMARY KEY (`transfer_id`),
UNIQUE KEY `uk_transfer_number` (`transfer_number`),
KEY `idx_from_account` (`from_account_id`),
KEY `idx_to_account` (`to_account_id`),
KEY `idx_transfer_status` (`transfer_status`),
KEY `idx_transfer_time` (`transfer_time`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='资金流转记录表';
-- 8. 支付记录表
DROP TABLE IF EXISTS `dc_payment_record`;
CREATE TABLE `dc_payment_record` (
`payment_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '支付ID',
`payment_number` varchar(100) NOT NULL COMMENT '支付编号',
`contract_id` bigint(20) NOT NULL COMMENT '合同ID',
`payer_id` bigint(20) NOT NULL COMMENT '付款方ID',
`payee_id` bigint(20) NOT NULL COMMENT '收款方ID',
`payment_amount` decimal(15,2) NOT NULL COMMENT '支付金额',
`payment_method` varchar(50) NOT NULL COMMENT '支付方式',
`payment_status` varchar(50) NOT NULL DEFAULT 'PENDING' COMMENT '支付状态',
`payment_time` datetime COMMENT '支付时间',
`confirmation_time` datetime 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 '更新时间',
PRIMARY KEY (`payment_id`),
UNIQUE KEY `uk_payment_number` (`payment_number`),
KEY `idx_contract_id` (`contract_id`),
KEY `idx_payment_status` (`payment_status`),
CONSTRAINT `fk_payment_contract` FOREIGN KEY (`contract_id`) REFERENCES `dc_service_contract` (`contract_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='支付记录表';
-- 9. 账户余额表
DROP TABLE IF EXISTS `dc_account_balance`;
CREATE TABLE `dc_account_balance` (
`balance_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '余额ID',
`account_id` bigint(20) NOT NULL COMMENT '账户ID',
`balance_date` date NOT NULL COMMENT '余额日期',
`opening_balance` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '期初余额',
`closing_balance` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '期末余额',
`total_income` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '总收入',
`total_expense` decimal(15,2) NOT NULL DEFAULT 0.00 COMMENT '总支出',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`balance_id`),
UNIQUE KEY `uk_account_date` (`account_id`, `balance_date`),
KEY `idx_balance_date` (`balance_date`),
CONSTRAINT `fk_balance_account` FOREIGN KEY (`account_id`) REFERENCES `dc_escrow_account` (`account_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='账户余额表';
-- 10. 交易日志表
DROP TABLE IF EXISTS `dc_transaction_log`;
CREATE TABLE `dc_transaction_log` (
`log_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '日志ID',
`transaction_id` varchar(100) NOT NULL COMMENT '交易ID',
`transaction_type` varchar(50) NOT NULL COMMENT '交易类型',
`account_id` bigint(20) COMMENT '账户ID',
`amount` decimal(15,2) NOT NULL COMMENT '金额',
`balance_before` decimal(15,2) NOT NULL COMMENT '交易前余额',
`balance_after` decimal(15,2) NOT NULL COMMENT '交易后余额',
`transaction_time` datetime NOT NULL COMMENT '交易时间',
`description` varchar(500) COMMENT '描述',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`log_id`),
KEY `idx_transaction_id` (`transaction_id`),
KEY `idx_account_id` (`account_id`),
KEY `idx_transaction_time` (`transaction_time`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='交易日志表';
-- ===========================
-- 区块链集成表 (ruoyi-blockchain模块)
-- ===========================
-- 11. 区块链交易表
DROP TABLE IF EXISTS `dc_blockchain_transaction`;
CREATE TABLE `dc_blockchain_transaction` (
`tx_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '交易ID',
`tx_hash` varchar(255) NOT NULL COMMENT '交易哈希',
`block_number` bigint(20) COMMENT '区块号',
`block_hash` varchar(255) COMMENT '区块哈希',
`from_address` varchar(255) COMMENT '发送地址',
`to_address` varchar(255) COMMENT '接收地址',
`contract_address` varchar(255) COMMENT '合约地址',
`gas_used` bigint(20) COMMENT '消耗Gas',
`gas_price` bigint(20) COMMENT 'Gas价格',
`tx_status` varchar(50) NOT NULL DEFAULT 'PENDING' COMMENT '交易状态',
`business_type` varchar(50) NOT NULL COMMENT '业务类型',
`business_id` bigint(20) NOT NULL COMMENT '业务ID',
`data_hash` varchar(255) NOT NULL COMMENT '数据哈希',
`tx_time` datetime NOT NULL COMMENT '交易时间',
`confirmation_time` datetime COMMENT '确认时间',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`tx_id`),
UNIQUE KEY `uk_tx_hash` (`tx_hash`),
KEY `idx_business` (`business_type`, `business_id`),
KEY `idx_tx_status` (`tx_status`),
KEY `idx_tx_time` (`tx_time`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='区块链交易表';
-- 12. 智能合约表
DROP TABLE IF EXISTS `dc_smart_contract`;
CREATE TABLE `dc_smart_contract` (
`contract_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '合约ID',
`contract_name` varchar(100) NOT NULL COMMENT '合约名称',
`contract_address` varchar(255) NOT NULL COMMENT '合约地址',
`contract_abi` text COMMENT '合约ABI',
`contract_bytecode` text COMMENT '合约字节码',
`deploy_tx_hash` varchar(255) COMMENT '部署交易哈希',
`deploy_block_number` bigint(20) COMMENT '部署区块号',
`contract_version` varchar(50) NOT NULL COMMENT '合约版本',
`contract_status` varchar(50) NOT NULL DEFAULT 'ACTIVE' 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 '备注',
PRIMARY KEY (`contract_id`),
UNIQUE KEY `uk_contract_address` (`contract_address`),
KEY `idx_contract_name` (`contract_name`),
KEY `idx_contract_status` (`contract_status`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='智能合约表';
-- 13. 链上事件表
DROP TABLE IF EXISTS `dc_chain_event`;
CREATE TABLE `dc_chain_event` (
`event_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '事件ID',
`tx_hash` varchar(255) NOT NULL COMMENT '交易哈希',
`block_number` bigint(20) NOT NULL COMMENT '区块号',
`log_index` int(11) NOT NULL COMMENT '日志索引',
`contract_address` varchar(255) NOT NULL COMMENT '合约地址',
`event_name` varchar(100) NOT NULL COMMENT '事件名称',
`event_signature` varchar(255) NOT NULL COMMENT '事件签名',
`event_data` text COMMENT '事件数据',
`topics` text COMMENT '事件主题',
`event_time` datetime NOT NULL COMMENT '事件时间',
`processed` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否已处理',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`event_id`),
UNIQUE KEY `uk_event_unique` (`tx_hash`, `log_index`),
KEY `idx_contract_address` (`contract_address`),
KEY `idx_event_name` (`event_name`),
KEY `idx_processed` (`processed`),
KEY `idx_event_time` (`event_time`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='链上事件表';
-- 14. 哈希映射表
DROP TABLE IF EXISTS `dc_hash_mapping`;
CREATE TABLE `dc_hash_mapping` (
`mapping_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '映射ID',
`business_type` varchar(50) NOT NULL COMMENT '业务类型',
`business_id` bigint(20) NOT NULL COMMENT '业务ID',
`data_hash` varchar(255) NOT NULL COMMENT '数据哈希',
`blockchain_hash` varchar(255) COMMENT '区块链哈希',
`hash_algorithm` varchar(50) NOT NULL DEFAULT 'SHA256' COMMENT '哈希算法',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`mapping_id`),
UNIQUE KEY `uk_business_hash` (`business_type`, `business_id`),
KEY `idx_data_hash` (`data_hash`),
KEY `idx_blockchain_hash` (`blockchain_hash`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='哈希映射表';
-- ===========================
-- 安全管理表 (ruoyi-security模块)
-- ===========================
-- 15. 审计日志表
DROP TABLE IF EXISTS `dc_audit_log`;
CREATE TABLE `dc_audit_log` (
`log_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '日志ID',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`user_name` varchar(50) NOT NULL COMMENT '用户名',
`operation_type` varchar(50) NOT NULL COMMENT '操作类型',
`resource_type` varchar(50) NOT NULL COMMENT '资源类型',
`resource_id` varchar(100) COMMENT '资源ID',
`operation_desc` varchar(500) COMMENT '操作描述',
`request_method` varchar(10) COMMENT '请求方法',
`request_url` varchar(500) COMMENT '请求URL',
`request_ip` varchar(50) COMMENT '请求IP',
`user_agent` varchar(500) COMMENT '用户代理',
`operation_result` varchar(50) NOT NULL COMMENT '操作结果',
`error_message` text COMMENT '错误信息',
`operation_time` datetime NOT NULL COMMENT '操作时间',
`cost_time` bigint(20) COMMENT '耗时(毫秒)',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`log_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_operation_type` (`operation_type`),
KEY `idx_resource_type` (`resource_type`),
KEY `idx_operation_time` (`operation_time`),
KEY `idx_request_ip` (`request_ip`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='审计日志表';
-- 16. 安全事件表
DROP TABLE IF EXISTS `dc_security_event`;
CREATE TABLE `dc_security_event` (
`event_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '事件ID',
`event_type` varchar(50) NOT NULL COMMENT '事件类型',
`event_level` varchar(20) NOT NULL COMMENT '事件级别',
`event_source` varchar(100) NOT NULL COMMENT '事件源',
`event_title` varchar(200) NOT NULL COMMENT '事件标题',
`event_desc` text COMMENT '事件描述',
`user_id` bigint(20) COMMENT '用户ID',
`user_name` varchar(50) COMMENT '用户名',
`source_ip` varchar(50) COMMENT '源IP',
`target_resource` varchar(200) COMMENT '目标资源',
`event_data` text COMMENT '事件数据',
`event_status` varchar(50) NOT NULL DEFAULT 'OPEN' COMMENT '事件状态',
`handled_by` varchar(50) COMMENT '处理人',
`handled_time` datetime COMMENT '处理时间',
`event_time` datetime NOT NULL COMMENT '事件时间',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`event_id`),
KEY `idx_event_type` (`event_type`),
KEY `idx_event_level` (`event_level`),
KEY `idx_event_status` (`event_status`),
KEY `idx_event_time` (`event_time`),
KEY `idx_source_ip` (`source_ip`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='安全事件表';
-- 17. 加密密钥表
DROP TABLE IF EXISTS `dc_encryption_key`;
CREATE TABLE `dc_encryption_key` (
`key_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '密钥ID',
`key_name` varchar(100) NOT NULL COMMENT '密钥名称',
`key_alias` varchar(100) NOT NULL COMMENT '密钥别名',
`key_type` varchar(50) NOT NULL COMMENT '密钥类型',
`algorithm` varchar(50) NOT NULL COMMENT '加密算法',
`key_length` int(11) NOT NULL COMMENT '密钥长度',
`key_data` text COMMENT '密钥数据(加密存储)',
`key_status` varchar(50) NOT NULL DEFAULT 'ACTIVE' COMMENT '密钥状态',
`expire_time` datetime COMMENT '过期时间',
`rotation_time` datetime COMMENT '轮换时间',
`usage_count` bigint(20) 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 '更新时间',
PRIMARY KEY (`key_id`),
UNIQUE KEY `uk_key_alias` (`key_alias`),
KEY `idx_key_type` (`key_type`),
KEY `idx_key_status` (`key_status`),
KEY `idx_expire_time` (`expire_time`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='加密密钥表';
-- 18. 多因素认证令牌表
DROP TABLE IF EXISTS `dc_mfa_token`;
CREATE TABLE `dc_mfa_token` (
`token_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '令牌ID',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`token_type` varchar(50) NOT NULL COMMENT '令牌类型',
`token_value` varchar(200) NOT NULL COMMENT '令牌值',
`secret_key` varchar(200) COMMENT '密钥',
`token_status` varchar(50) NOT NULL DEFAULT 'ACTIVE' COMMENT '令牌状态',
`expire_time` datetime NOT NULL COMMENT '过期时间',
`used_time` datetime COMMENT '使用时间',
`verify_count` int(11) NOT NULL DEFAULT 0 COMMENT '验证次数',
`max_verify_count` int(11) NOT NULL DEFAULT 3 COMMENT '最大验证次数',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`token_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_token_type` (`token_type`),
KEY `idx_token_status` (`token_status`),
KEY `idx_expire_time` (`expire_time`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='多因素认证令牌表';
-- 19. 访问控制表
DROP TABLE IF EXISTS `dc_access_control`;
CREATE TABLE `dc_access_control` (
`control_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '控制ID',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`resource_type` varchar(50) NOT NULL COMMENT '资源类型',
`resource_id` varchar(100) COMMENT '资源ID',
`permission_type` varchar(50) NOT NULL COMMENT '权限类型',
`access_level` varchar(50) NOT NULL COMMENT '访问级别',
`field_permissions` text COMMENT '字段权限配置',
`ip_whitelist` text COMMENT 'IP白名单',
`time_restrictions` text COMMENT '时间限制',
`access_status` varchar(50) NOT NULL DEFAULT 'ACTIVE' COMMENT '访问状态',
`effective_time` datetime COMMENT '生效时间',
`expire_time` datetime 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 '更新时间',
PRIMARY KEY (`control_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_resource` (`resource_type`, `resource_id`),
KEY `idx_access_status` (`access_status`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='访问控制表';
-- ===========================
-- 通知服务表 (ruoyi-notification模块)
-- ===========================
-- 20. 通知日志表
DROP TABLE IF EXISTS `dc_notification_log`;
CREATE TABLE `dc_notification_log` (
`log_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '日志ID',
`notification_id` varchar(100) NOT NULL COMMENT '通知ID',
`template_id` bigint(20) COMMENT '模板ID',
`recipient_type` varchar(50) NOT NULL COMMENT '接收者类型',
`recipient_id` varchar(100) NOT NULL COMMENT '接收者ID',
`recipient_address` varchar(200) NOT NULL COMMENT '接收地址',
`notification_type` varchar(50) NOT NULL COMMENT '通知类型',
`notification_channel` varchar(50) NOT NULL COMMENT '通知渠道',
`subject` varchar(200) COMMENT '主题',
`content` text NOT NULL COMMENT '内容',
`priority` varchar(20) NOT NULL DEFAULT 'NORMAL' COMMENT '优先级',
`send_status` varchar(50) NOT NULL DEFAULT 'PENDING' COMMENT '发送状态',
`send_time` datetime COMMENT '发送时间',
`delivery_time` datetime COMMENT '投递时间',
`retry_count` int(11) NOT NULL DEFAULT 0 COMMENT '重试次数',
`max_retry_count` int(11) NOT NULL DEFAULT 3 COMMENT '最大重试次数',
`error_message` text COMMENT '错误信息',
`business_type` varchar(50) COMMENT '业务类型',
`business_id` varchar(100) COMMENT '业务ID',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`log_id`),
UNIQUE KEY `uk_notification_id` (`notification_id`),
KEY `idx_recipient` (`recipient_type`, `recipient_id`),
KEY `idx_send_status` (`send_status`),
KEY `idx_notification_type` (`notification_type`),
KEY `idx_send_time` (`send_time`),
KEY `idx_business` (`business_type`, `business_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='通知日志表';
-- 21. 消息模板表
DROP TABLE IF EXISTS `dc_message_template`;
CREATE TABLE `dc_message_template` (
`template_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '模板ID',
`template_name` varchar(100) NOT NULL COMMENT '模板名称',
`template_code` varchar(100) NOT NULL COMMENT '模板编码',
`template_type` varchar(50) NOT NULL COMMENT '模板类型',
`notification_channel` varchar(50) NOT NULL COMMENT '通知渠道',
`subject_template` varchar(200) COMMENT '主题模板',
`content_template` text NOT NULL COMMENT '内容模板',
`template_variables` text COMMENT '模板变量',
`template_status` varchar(50) NOT NULL DEFAULT 'ACTIVE' 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 '备注',
PRIMARY KEY (`template_id`),
UNIQUE KEY `uk_template_code` (`template_code`),
KEY `idx_template_type` (`template_type`),
KEY `idx_notification_channel` (`notification_channel`),
KEY `idx_template_status` (`template_status`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='消息模板表';
-- 22. 定时任务表
DROP TABLE IF EXISTS `dc_scheduled_task`;
CREATE TABLE `dc_scheduled_task` (
`task_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务ID',
`task_name` varchar(100) NOT NULL COMMENT '任务名称',
`task_group` varchar(50) NOT NULL COMMENT '任务组',
`task_type` varchar(50) NOT NULL COMMENT '任务类型',
`cron_expression` varchar(100) COMMENT 'Cron表达式',
`trigger_time` datetime COMMENT '触发时间',
`task_class` varchar(200) COMMENT '任务类',
`task_method` varchar(100) COMMENT '任务方法',
`task_params` text COMMENT '任务参数',
`task_status` varchar(50) NOT NULL DEFAULT 'ACTIVE' COMMENT '任务状态',
`last_run_time` datetime COMMENT '上次运行时间',
`next_run_time` datetime COMMENT '下次运行时间',
`run_count` bigint(20) NOT NULL DEFAULT 0 COMMENT '运行次数',
`success_count` bigint(20) NOT NULL DEFAULT 0 COMMENT '成功次数',
`fail_count` bigint(20) 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 '备注',
PRIMARY KEY (`task_id`),
UNIQUE KEY `uk_task_name_group` (`task_name`, `task_group`),
KEY `idx_task_type` (`task_type`),
KEY `idx_task_status` (`task_status`),
KEY `idx_next_run_time` (`next_run_time`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='定时任务表';
-- 23. 投递状态表
DROP TABLE IF EXISTS `dc_delivery_status`;
CREATE TABLE `dc_delivery_status` (
`status_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '状态ID',
`notification_id` varchar(100) NOT NULL COMMENT '通知ID',
`delivery_channel` varchar(50) NOT NULL COMMENT '投递渠道',
`delivery_status` varchar(50) NOT NULL COMMENT '投递状态',
`delivery_time` datetime COMMENT '投递时间',
`read_time` datetime COMMENT '阅读时间',
`response_time` datetime COMMENT '响应时间',
`delivery_result` text COMMENT '投递结果',
`error_code` varchar(50) COMMENT '错误码',
`error_message` text COMMENT '错误信息',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`status_id`),
KEY `idx_notification_id` (`notification_id`),
KEY `idx_delivery_channel` (`delivery_channel`),
KEY `idx_delivery_status` (`delivery_status`),
KEY `idx_delivery_time` (`delivery_time`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='投递状态表';
-- ===========================
-- 报表分析表 (ruoyi-analytics模块)
-- ===========================
-- 24. 报表配置表
DROP TABLE IF EXISTS `dc_report_config`;
CREATE TABLE `dc_report_config` (
`config_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '配置ID',
`report_name` varchar(100) NOT NULL COMMENT '报表名称',
`report_code` varchar(100) NOT NULL COMMENT '报表编码',
`report_type` varchar(50) NOT NULL COMMENT '报表类型',
`data_source` varchar(100) NOT NULL COMMENT '数据源',
`query_sql` text COMMENT '查询SQL',
`report_template` text COMMENT '报表模板',
`output_format` varchar(50) NOT NULL DEFAULT 'EXCEL' COMMENT '输出格式',
`schedule_type` varchar(50) COMMENT '调度类型',
`cron_expression` varchar(100) COMMENT 'Cron表达式',
`report_status` varchar(50) NOT NULL DEFAULT 'ACTIVE' 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 '备注',
PRIMARY KEY (`config_id`),
UNIQUE KEY `uk_report_code` (`report_code`),
KEY `idx_report_type` (`report_type`),
KEY `idx_report_status` (`report_status`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='报表配置表';
-- 25. 报表实例表
DROP TABLE IF EXISTS `dc_report_instance`;
CREATE TABLE `dc_report_instance` (
`instance_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '实例ID',
`config_id` bigint(20) NOT NULL COMMENT '配置ID',
`report_name` varchar(100) NOT NULL COMMENT '报表名称',
`report_params` text COMMENT '报表参数',
`generate_status` varchar(50) NOT NULL DEFAULT 'PENDING' COMMENT '生成状态',
`file_path` varchar(500) COMMENT '文件路径',
`file_size` bigint(20) COMMENT '文件大小',
`record_count` bigint(20) COMMENT '记录数量',
`start_time` datetime COMMENT '开始时间',
`end_time` datetime COMMENT '结束时间',
`cost_time` bigint(20) COMMENT '耗时(毫秒)',
`error_message` text COMMENT '错误信息',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`instance_id`),
KEY `idx_config_id` (`config_id`),
KEY `idx_generate_status` (`generate_status`),
KEY `idx_create_time` (`create_time`),
CONSTRAINT `fk_instance_config` FOREIGN KEY (`config_id`) REFERENCES `dc_report_config` (`config_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='报表实例表';
-- 26. 仪表板组件表
DROP TABLE IF EXISTS `dc_dashboard_widget`;
CREATE TABLE `dc_dashboard_widget` (
`widget_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '组件ID',
`widget_name` varchar(100) NOT NULL COMMENT '组件名称',
`widget_type` varchar(50) NOT NULL COMMENT '组件类型',
`widget_title` varchar(200) NOT NULL COMMENT '组件标题',
`data_source` varchar(100) NOT NULL COMMENT '数据源',
`query_config` text COMMENT '查询配置',
`chart_config` text COMMENT '图表配置',
`refresh_interval` int(11) NOT NULL DEFAULT 300 COMMENT '刷新间隔(秒)',
`widget_order` int(11) NOT NULL DEFAULT 0 COMMENT '显示顺序',
`widget_status` varchar(50) NOT NULL DEFAULT 'ACTIVE' 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 '备注',
PRIMARY KEY (`widget_id`),
KEY `idx_widget_type` (`widget_type`),
KEY `idx_widget_status` (`widget_status`),
KEY `idx_widget_order` (`widget_order`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='仪表板组件表';
-- 27. 统计缓存表
DROP TABLE IF EXISTS `dc_statistics_cache`;
CREATE TABLE `dc_statistics_cache` (
`cache_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '缓存ID',
`cache_key` varchar(200) NOT NULL COMMENT '缓存键',
`cache_type` varchar(50) NOT NULL COMMENT '缓存类型',
`cache_data` text NOT NULL COMMENT '缓存数据',
`data_version` varchar(50) COMMENT '数据版本',
`expire_time` datetime NOT NULL COMMENT '过期时间',
`hit_count` bigint(20) NOT NULL DEFAULT 0 COMMENT '命中次数',
`last_hit_time` datetime COMMENT '最后命中时间',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`cache_id`),
UNIQUE KEY `uk_cache_key` (`cache_key`),
KEY `idx_cache_type` (`cache_type`),
KEY `idx_expire_time` (`expire_time`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='统计缓存表';
-- ===========================
-- 工作流管理表 (ruoyi-workflow模块)
-- ===========================
-- 28. 工作流定义表
DROP TABLE IF EXISTS `dc_workflow_definition`;
CREATE TABLE `dc_workflow_definition` (
`definition_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '定义ID',
`workflow_key` varchar(100) NOT NULL COMMENT '工作流键',
`workflow_name` varchar(100) NOT NULL COMMENT '工作流名称',
`workflow_version` int(11) NOT NULL DEFAULT 1 COMMENT '版本号',
`workflow_category` varchar(50) COMMENT '工作流分类',
`process_definition` text NOT NULL COMMENT '流程定义',
`deployment_id` varchar(100) COMMENT '部署ID',
`workflow_status` varchar(50) NOT NULL DEFAULT 'ACTIVE' 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 '备注',
PRIMARY KEY (`definition_id`),
UNIQUE KEY `uk_workflow_key_version` (`workflow_key`, `workflow_version`),
KEY `idx_workflow_category` (`workflow_category`),
KEY `idx_workflow_status` (`workflow_status`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='工作流定义表';
-- 29. 工作流实例表
DROP TABLE IF EXISTS `dc_workflow_instance`;
CREATE TABLE `dc_workflow_instance` (
`instance_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '实例ID',
`process_instance_id` varchar(100) NOT NULL COMMENT '流程实例ID',
`definition_id` bigint(20) NOT NULL COMMENT '定义ID',
`workflow_key` varchar(100) NOT NULL COMMENT '工作流键',
`business_key` varchar(100) COMMENT '业务键',
`business_type` varchar(50) COMMENT '业务类型',
`business_id` varchar(100) COMMENT '业务ID',
`instance_name` varchar(200) COMMENT '实例名称',
`current_activity` varchar(100) COMMENT '当前活动',
`instance_status` varchar(50) NOT NULL DEFAULT 'RUNNING' COMMENT '实例状态',
`start_time` datetime NOT NULL COMMENT '开始时间',
`end_time` datetime COMMENT '结束时间',
`duration` bigint(20) COMMENT '持续时间(毫秒)',
`start_user_id` bigint(20) COMMENT '启动用户ID',
`start_user_name` varchar(50) COMMENT '启动用户名',
`variables` text COMMENT '流程变量',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`instance_id`),
UNIQUE KEY `uk_process_instance_id` (`process_instance_id`),
KEY `idx_definition_id` (`definition_id`),
KEY `idx_business_key` (`business_key`),
KEY `idx_instance_status` (`instance_status`),
KEY `idx_start_time` (`start_time`),
CONSTRAINT `fk_instance_definition` FOREIGN KEY (`definition_id`) REFERENCES `dc_workflow_definition` (`definition_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='工作流实例表';
-- 30. 工作流任务表
DROP TABLE IF EXISTS `dc_workflow_task`;
CREATE TABLE `dc_workflow_task` (
`task_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务ID',
`task_def_key` varchar(100) NOT NULL COMMENT '任务定义键',
`task_name` varchar(200) NOT NULL COMMENT '任务名称',
`instance_id` bigint(20) NOT NULL COMMENT '实例ID',
`process_instance_id` varchar(100) NOT NULL COMMENT '流程实例ID',
`execution_id` varchar(100) COMMENT '执行ID',
`assignee` varchar(50) COMMENT '办理人',
`candidate_users` varchar(500) COMMENT '候选用户',
`candidate_groups` varchar(500) COMMENT '候选组',
`task_status` varchar(50) NOT NULL DEFAULT 'CREATED' COMMENT '任务状态',
`priority` int(11) NOT NULL DEFAULT 50 COMMENT '优先级',
`due_date` datetime COMMENT '到期时间',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`claim_time` datetime COMMENT '签收时间',
`complete_time` datetime COMMENT '完成时间',
`duration` bigint(20) COMMENT '持续时间(毫秒)',
`form_key` varchar(200) COMMENT '表单键',
`task_variables` text COMMENT '任务变量',
`comments` text COMMENT '任务备注',
PRIMARY KEY (`task_id`),
KEY `idx_instance_id` (`instance_id`),
KEY `idx_process_instance_id` (`process_instance_id`),
KEY `idx_assignee` (`assignee`),
KEY `idx_task_status` (`task_status`),
KEY `idx_due_date` (`due_date`),
CONSTRAINT `fk_task_instance` FOREIGN KEY (`instance_id`) REFERENCES `dc_workflow_instance` (`instance_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='工作流任务表';
-- 31. 审批记录表
DROP TABLE IF EXISTS `dc_approval_record`;
CREATE TABLE `dc_approval_record` (
`record_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '记录ID',
`task_id` bigint(20) NOT NULL COMMENT '任务ID',
`instance_id` bigint(20) NOT NULL COMMENT '实例ID',
`approver_id` bigint(20) NOT NULL COMMENT '审批人ID',
`approver_name` varchar(50) NOT NULL COMMENT '审批人姓名',
`approval_action` varchar(50) NOT NULL COMMENT '审批动作',
`approval_result` varchar(50) NOT NULL COMMENT '审批结果',
`approval_comments` text COMMENT '审批意见',
`approval_time` datetime NOT NULL COMMENT '审批时间',
`next_assignee` varchar(50) COMMENT '下一办理人',
`attachment_ids` varchar(500) COMMENT '附件ID列表',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`record_id`),
KEY `idx_task_id` (`task_id`),
KEY `idx_instance_id` (`instance_id`),
KEY `idx_approver_id` (`approver_id`),
KEY `idx_approval_time` (`approval_time`),
CONSTRAINT `fk_approval_task` FOREIGN KEY (`task_id`) REFERENCES `dc_workflow_task` (`task_id`),
CONSTRAINT `fk_approval_instance` FOREIGN KEY (`instance_id`) REFERENCES `dc_workflow_instance` (`instance_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='审批记录表';
-- ===========================
-- 集成适配表 (ruoyi-integration模块)
-- ===========================
-- 32. 外部系统表
DROP TABLE IF EXISTS `dc_external_system`;
CREATE TABLE `dc_external_system` (
`system_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '系统ID',
`system_name` varchar(100) NOT NULL COMMENT '系统名称',
`system_code` varchar(100) NOT NULL COMMENT '系统编码',
`system_type` varchar(50) NOT NULL COMMENT '系统类型',
`system_url` varchar(500) COMMENT '系统URL',
`api_version` varchar(50) COMMENT 'API版本',
`auth_type` varchar(50) COMMENT '认证类型',
`auth_config` text COMMENT '认证配置',
`connection_config` text COMMENT '连接配置',
`system_status` varchar(50) NOT NULL DEFAULT 'ACTIVE' COMMENT '系统状态',
`health_check_url` varchar(500) COMMENT '健康检查URL',
`last_health_check` datetime 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 '备注',
PRIMARY KEY (`system_id`),
UNIQUE KEY `uk_system_code` (`system_code`),
KEY `idx_system_type` (`system_type`),
KEY `idx_system_status` (`system_status`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='外部系统表';
-- ===========================
-- 系统监控表 (ruoyi-monitor模块)
-- ===========================
-- 33. 系统监控表
DROP TABLE IF EXISTS `dc_system_monitor`;
CREATE TABLE `dc_system_monitor` (
`monitor_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '监控ID',
`monitor_time` datetime NOT NULL COMMENT '监控时间',
`cpu_usage` decimal(5,2) COMMENT 'CPU使用率',
`memory_usage` decimal(5,2) COMMENT '内存使用率',
`disk_usage` decimal(5,2) COMMENT '磁盘使用率',
`network_in` bigint(20) COMMENT '网络入流量',
`network_out` bigint(20) COMMENT '网络出流量',
`active_connections` int(11) COMMENT '活跃连接数',
`thread_count` int(11) COMMENT '线程数',
`heap_memory_used` bigint(20) COMMENT '堆内存使用量',
`heap_memory_max` bigint(20) COMMENT '堆内存最大值',
`gc_count` bigint(20) COMMENT 'GC次数',
`gc_time` bigint(20) COMMENT 'GC时间',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`monitor_id`),
KEY `idx_monitor_time` (`monitor_time`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='系统监控表';
-- ===========================
-- 索引优化
-- ===========================
-- 为经常查询的字段添加复合索引
CREATE INDEX `idx_contract_company_status` ON `dc_service_contract` (`security_company_id`, `client_company_id`, `contract_status`);
CREATE INDEX `idx_credit_contract_status` ON `dc_digital_credit` (`contract_id`, `credit_status`);
CREATE INDEX `idx_financing_credit_status` ON `dc_financing_application` (`credit_id`, `application_status`);
CREATE INDEX `idx_payment_contract_status` ON `dc_payment_record` (`contract_id`, `payment_status`);
CREATE INDEX `idx_audit_user_time` ON `dc_audit_log` (`user_id`, `operation_time`);
CREATE INDEX `idx_notification_recipient_status` ON `dc_notification_log` (`recipient_type`, `recipient_id`, `send_status`);
-- ===========================
-- 初始化数据
-- ===========================
-- 插入系统配置数据
INSERT INTO `dc_company_info` (`company_id`, `company_name`, `company_type`, `registration_number`, `legal_representative`, `contact_person`, `contact_phone`, `contact_email`, `address`, `status`, `create_by`, `remark`) VALUES
(1, '安信数字债权服务平台', 'PLATFORM', 'REG001', '张三', '李四', '13800138000', 'admin@anxin.com', '北京市朝阳区', '0', 'admin', '平台运营方'),
(2, '示例安保公司', 'SECURITY', 'REG002', '王五', '赵六', '13800138001', 'security@example.com', '上海市浦东新区', '0', 'admin', '示例安保服务提供商'),
(3, '示例客户公司', 'CLIENT', 'REG003', '孙七', '周八', '13800138002', 'client@example.com', '广州市天河区', '0', 'admin', '示例客户单位'),
(4, '示例金融机构', 'FINANCIAL', 'REG004', '吴九', '郑十', '13800138003', 'finance@example.com', '深圳市南山区', '0', 'admin', '示例金融服务机构');
-- 插入消息模板数据
INSERT INTO `dc_message_template` (`template_name`, `template_code`, `template_type`, `notification_channel`, `subject_template`, `content_template`, `template_variables`, `template_status`, `create_by`, `remark`) VALUES
('合同确认通知', 'CONTRACT_CONFIRM', 'BUSINESS', 'EMAIL', '合同确认通知 - ${contractNumber}', '尊敬的${recipientName},您的合同${contractNumber}已确认,请及时查看。', 'contractNumber,recipientName', 'ACTIVE', 'admin', '合同确认业务通知模板'),
('付款提醒通知', 'PAYMENT_REMINDER', 'BUSINESS', 'SMS', '付款提醒', '您的合同${contractNumber}将于${dueDate}到期,请及时付款。', 'contractNumber,dueDate', 'ACTIVE', 'admin', '付款提醒业务通知模板'),
('融资审批通知', 'FINANCING_APPROVAL', 'BUSINESS', 'EMAIL', '融资审批结果通知', '您的融资申请${applicationNumber}审批结果:${result},详情请登录系统查看。', 'applicationNumber,result', 'ACTIVE', 'admin', '融资审批结果通知模板');
-- 插入加密密钥数据(示例,实际部署时需要生成真实密钥)
INSERT INTO `dc_encryption_key` (`key_name`, `key_alias`, `key_type`, `algorithm`, `key_length`, `key_status`, `create_by`, `remark`) VALUES
('主密钥', 'MASTER_KEY_001', 'MASTER', 'AES-256-GCM', 256, 'ACTIVE', 'admin', '系统主加密密钥'),
('数据加密密钥', 'DATA_KEY_001', 'DATA', 'AES-256-GCM', 256, 'ACTIVE', 'admin', '敏感数据加密密钥');
-- 提交事务
COMMIT;