Files
tms-erp-api/doc/sql/transport/blade_bill_payment_20260822.sql
T
2026-08-22 17:25:26 +08:00

80 lines
4.4 KiB
SQL

-- 首付款管理 / 汇票付款
CREATE TABLE IF NOT EXISTS `blade_bill_payment` (
`id` bigint(20) NOT NULL,
`tenant_id` varchar(12) COLLATE utf8mb4_general_ci NOT NULL DEFAULT '000000',
`create_user` bigint(20) DEFAULT NULL,
`create_dept` bigint(20) DEFAULT NULL,
`create_time` datetime DEFAULT NULL,
`update_user` bigint(20) DEFAULT NULL,
`update_time` datetime DEFAULT NULL,
`status` int(11) DEFAULT '1',
`is_deleted` int(11) DEFAULT '0',
`payment_no` varchar(100) COLLATE utf8mb4_general_ci NOT NULL COMMENT '单据号',
`bill_ledger_id` bigint(20) NOT NULL COMMENT '汇票台账ID',
`bill_no` varchar(32) COLLATE utf8mb4_general_ci NOT NULL COMMENT '票据号码',
`face_amount` decimal(18,2) NOT NULL COMMENT '票面金额',
`available_balance` decimal(18,2) NOT NULL COMMENT '可用余额快照',
`used_amount` decimal(18,2) NOT NULL COMMENT '本次使用金额',
`dept_id` bigint(20) NOT NULL COMMENT '使用部门ID',
`dept_name` varchar(100) COLLATE utf8mb4_general_ci NOT NULL COMMENT '使用部门',
`payment_date` date NOT NULL COMMENT '付款日期',
`approval_status` varchar(30) COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'draft' COMMENT '单据状态',
`current_node` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '当前节点',
`current_processor` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '当前处理人',
`attachments_json` longtext COLLATE utf8mb4_general_ci COMMENT '附件JSON',
`remark` varchar(200) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_bill_payment_no` (`tenant_id`,`payment_no`),
KEY `idx_bill_payment_ledger` (`tenant_id`,`bill_ledger_id`),
KEY `idx_bill_payment_date` (`tenant_id`,`payment_date`),
KEY `idx_bill_payment_status` (`tenant_id`,`approval_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='汇票付款';
-- 统一汇票台账使用记录:兼容付款申请与独立汇票付款单据
ALTER TABLE `blade_bill_ledger_usage`
MODIFY COLUMN `payment_application_id` bigint(20) DEFAULT NULL COMMENT '付款申请ID';
SET @ddl_sql = (
SELECT IF(COUNT(*) = 0,
'ALTER TABLE `blade_bill_ledger_usage` ADD COLUMN `bill_payment_id` bigint(20) DEFAULT NULL COMMENT ''汇票付款ID'' AFTER `payment_application_id`',
'SELECT 1')
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'blade_bill_ledger_usage'
AND COLUMN_NAME = 'bill_payment_id'
);
PREPARE ddl_stmt FROM @ddl_sql;
EXECUTE ddl_stmt;
DEALLOCATE PREPARE ddl_stmt;
SET @ddl_sql = (
SELECT IF(COUNT(*) = 0,
'ALTER TABLE `blade_bill_ledger_usage` ADD UNIQUE KEY `uk_bill_ledger_usage_bill_payment` (`tenant_id`,`bill_payment_id`)',
'SELECT 1')
FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'blade_bill_ledger_usage'
AND INDEX_NAME = 'uk_bill_ledger_usage_bill_payment'
);
PREPARE ddl_stmt FROM @ddl_sql;
EXECUTE ddl_stmt;
DEALLOCATE PREPARE ddl_stmt;
INSERT INTO `blade_menu`
(`id`,`parent_id`,`code`,`name`,`alias`,`path`,`source`,`sort`,`category`,`action`,`is_open`,`component`,`remark`,`is_deleted`)
VALUES
(2090000000000001200,0,'first_payment_management','首付款管理','first_payment_management','/payment','iconfont icon-caidanguanli',6,1,0,1,NULL,'',0),
(2090000000000001290,2090000000000001200,'bill_payment','汇票付款','bill_payment','/payment/bill-payment','',7,1,0,1,NULL,'',0),
(2090000000000001291,2090000000000001290,'bill_payment_view','查看','bill_payment_view','','',1,2,0,1,NULL,'',0),
(2090000000000001292,2090000000000001290,'bill_payment_add','新增','bill_payment_add','','',2,2,0,1,NULL,'',0),
(2090000000000001293,2090000000000001290,'bill_payment_edit','编辑','bill_payment_edit','','',3,2,0,1,NULL,'',0),
(2090000000000001294,2090000000000001290,'bill_payment_delete','删除','bill_payment_delete','','',4,2,0,1,NULL,'',0),
(2090000000000001295,2090000000000001290,'bill_payment_submit','提交审批','bill_payment_submit','','',5,2,0,1,NULL,'',0),
(2090000000000001296,2090000000000001290,'bill_payment_approve','审批','bill_payment_approve','','',6,2,0,1,NULL,'',0),
(2090000000000001297,2090000000000001290,'bill_payment_void','作废','bill_payment_void','','',7,2,0,1,NULL,'',0)
ON DUPLICATE KEY UPDATE
`name`=VALUES(`name`),
`path`=VALUES(`path`),
`component`=VALUES(`component`),
`is_deleted`=0;