-- 首付款管理 / 汇票付款 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;