新增收付款模块

This commit is contained in:
2026-08-22 17:25:26 +08:00
parent 7683ad804a
commit 3e265fc71e
96 changed files with 8527 additions and 0 deletions
@@ -0,0 +1,113 @@
-- 首付款管理 / 汇票台账
CREATE TABLE IF NOT EXISTS `blade_bill_ledger` (
`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',
`bill_no` varchar(32) COLLATE utf8mb4_general_ci NOT NULL COMMENT '票据号码',
`issuer_id` bigint(20) NOT NULL COMMENT '出票单位客商ID',
`issuer_name` varchar(100) COLLATE utf8mb4_general_ci NOT NULL COMMENT '出票单位',
`receiver_id` bigint(20) DEFAULT NULL COMMENT '收票单位ID',
`receiver_name` varchar(100) COLLATE utf8mb4_general_ci NOT NULL COMMENT '收票单位',
`bill_type` varchar(30) COLLATE utf8mb4_general_ci NOT NULL COMMENT '汇票类型:issued开票、received收票',
`face_amount` decimal(18,2) NOT NULL COMMENT '票面金额',
`available_balance` decimal(18,2) NOT NULL COMMENT '可用余额',
`issue_date` date NOT NULL COMMENT '出票日期',
`maturity_date` date NOT NULL COMMENT '到期日期',
`available_dept_ids_json` longtext COLLATE utf8mb4_general_ci NOT NULL COMMENT '可用部门ID列表',
`available_dept_names` varchar(500) COLLATE utf8mb4_general_ci NOT NULL COMMENT '可用部门名称',
`fee_bearer_id` bigint(20) NOT NULL COMMENT '费用承担方客商ID',
`fee_bearer_name` varchar(100) COLLATE utf8mb4_general_ci NOT NULL COMMENT '费用承担方',
`confirmed_discount_rate` decimal(8,4) DEFAULT NULL COMMENT '双方确认贴现率(%)',
`issuing_bank` varchar(100) COLLATE utf8mb4_general_ci NOT NULL COMMENT '出票行',
`bank_discount_reference_rate` decimal(8,4) DEFAULT NULL COMMENT '银行贴现参考率(%)',
`estimated_discount_fee` decimal(18,2) NOT NULL DEFAULT '0.00' 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_ledger_no` (`tenant_id`,`bill_no`),
KEY `idx_bill_ledger_maturity` (`tenant_id`,`maturity_date`),
KEY `idx_bill_ledger_parties` (`tenant_id`,`issuer_name`,`receiver_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='汇票台账';
CREATE TABLE IF NOT EXISTS `blade_bill_ledger_usage` (
`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',
`bill_ledger_id` bigint(20) NOT NULL COMMENT '汇票台账ID',
`payment_application_id` bigint(20) NOT NULL COMMENT '付款申请ID',
`application_no` varchar(100) COLLATE utf8mb4_general_ci NOT NULL COMMENT '申请单号',
`used_amount` decimal(18,2) NOT NULL COMMENT '使用金额',
`use_dept_id` bigint(20) DEFAULT NULL COMMENT '使用部门ID',
`use_dept_name` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '使用部门',
`usage_status` varchar(30) COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'approved' COMMENT '状态:approved已使用、released已释放',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_bill_ledger_usage_payment` (`tenant_id`,`payment_application_id`),
KEY `idx_bill_ledger_usage_ledger` (`tenant_id`,`bill_ledger_id`,`usage_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='汇票使用记录';
-- 以下结构升级支持重复执行,兼容前一次已执行 DDL、仅菜单插入失败的场景
SET @ddl_sql = (
SELECT IF(COUNT(*) = 0,
'ALTER TABLE `blade_payment_application` ADD COLUMN `bill_ledger_id` bigint(20) DEFAULT NULL COMMENT ''汇票台账ID'' AFTER `payment_method`',
'SELECT 1')
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'blade_payment_application'
AND COLUMN_NAME = 'bill_ledger_id'
);
PREPARE ddl_stmt FROM @ddl_sql;
EXECUTE ddl_stmt;
DEALLOCATE PREPARE ddl_stmt;
SET @ddl_sql = (
SELECT IF(COUNT(*) = 0,
'ALTER TABLE `blade_payment_application` ADD COLUMN `bill_no` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT ''票据号码'' AFTER `bill_ledger_id`',
'SELECT 1')
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'blade_payment_application'
AND COLUMN_NAME = 'bill_no'
);
PREPARE ddl_stmt FROM @ddl_sql;
EXECUTE ddl_stmt;
DEALLOCATE PREPARE ddl_stmt;
SET @ddl_sql = (
SELECT IF(COUNT(*) = 0,
'ALTER TABLE `blade_payment_application` ADD KEY `idx_payment_application_bill_ledger` (`bill_ledger_id`)',
'SELECT 1')
FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'blade_payment_application'
AND INDEX_NAME = 'idx_payment_application_bill_ledger'
);
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),
(2090000000000001280,2090000000000001200,'bill_ledger','汇票台账','bill_ledger','/payment/bill-ledger','',6,1,0,1,NULL,'',0),
(2090000000000001281,2090000000000001280,'bill_ledger_view','查看','bill_ledger_view','','',1,2,0,1,NULL,'',0),
(2090000000000001282,2090000000000001280,'bill_ledger_add','新增','bill_ledger_add','','',2,2,0,1,NULL,'',0),
(2090000000000001283,2090000000000001280,'bill_ledger_edit','编辑','bill_ledger_edit','','',3,2,0,1,NULL,'',0),
(2090000000000001284,2090000000000001280,'bill_ledger_delete','删除','bill_ledger_delete','','',4,2,0,1,NULL,'',0)
ON DUPLICATE KEY UPDATE
`name`=VALUES(`name`),
`path`=VALUES(`path`),
`component`=VALUES(`component`),
`is_deleted`=0;
@@ -0,0 +1,79 @@
-- 首付款管理 / 汇票付款
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;
@@ -0,0 +1,187 @@
-- 首付款管理 / 开票管理
CREATE TABLE IF NOT EXISTS `blade_invoice_application` (
`id` bigint(20) NOT NULL,
`tenant_id` varchar(12) 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',
`application_no` varchar(100) NOT NULL,
`project_id` bigint(20) DEFAULT NULL,
`project_name` varchar(100) DEFAULT NULL,
`dept_id` bigint(20) DEFAULT NULL,
`dept_name` varchar(100) DEFAULT NULL,
`issuer_name` varchar(200) DEFAULT NULL,
`receiver_customer_id` bigint(20) DEFAULT NULL,
`receiver_name` varchar(200) DEFAULT NULL,
`invoice_type` varchar(30) NOT NULL,
`available_invoice_amount` decimal(18,2) NOT NULL DEFAULT '0.00',
`invoice_amount` decimal(18,2) NOT NULL DEFAULT '0.00',
`application_date` date DEFAULT NULL,
`applicant_name` varchar(100) DEFAULT NULL,
`undertaking_dept_id` bigint(20) DEFAULT NULL,
`undertaking_dept_name` varchar(100) DEFAULT NULL,
`department_emails` varchar(320) DEFAULT NULL,
`receiver_invoice_info_id` bigint(20) DEFAULT NULL,
`taxpayer_no` varchar(20) DEFAULT NULL,
`bank_name` varchar(100) DEFAULT NULL,
`bank_account` varchar(50) DEFAULT NULL,
`registered_address` varchar(200) DEFAULT NULL,
`contact_name` varchar(50) DEFAULT NULL,
`contact_phone` varchar(11) DEFAULT NULL,
`email` varchar(100) DEFAULT NULL,
`approval_status` varchar(30) NOT NULL DEFAULT 'draft',
`current_node` varchar(100) DEFAULT NULL,
`current_processor` varchar(200) DEFAULT NULL,
`kingdee_bill_no` varchar(100) DEFAULT NULL,
`kingdee_status` varchar(30) NOT NULL DEFAULT 'unsynced',
`synced_time` datetime DEFAULT NULL,
`attachments_json` longtext,
`remark` varchar(200) DEFAULT NULL,
`void_reason` varchar(200) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_invoice_application_no` (`tenant_id`,`application_no`),
KEY `idx_invoice_application_project` (`project_id`),
KEY `idx_invoice_application_status` (`approval_status`),
KEY `idx_invoice_application_kingdee` (`kingdee_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='开票申请';
CREATE TABLE IF NOT EXISTS `blade_invoice_application_settlement` (
`id` bigint(20) NOT NULL,
`tenant_id` varchar(12) 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',
`invoice_application_id` bigint(20) NOT NULL,
`formal_settlement_id` bigint(20) NOT NULL,
`formal_settlement_no` varchar(100) NOT NULL,
`settlement_amount` decimal(18,2) NOT NULL DEFAULT '0.00',
`available_invoice_amount` decimal(18,2) NOT NULL DEFAULT '0.00',
`allocated_invoice_amount` decimal(18,2) NOT NULL DEFAULT '0.00',
PRIMARY KEY (`id`),
KEY `idx_invoice_application_settlement` (`invoice_application_id`,`formal_settlement_id`),
KEY `idx_invoice_settlement_formal` (`formal_settlement_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='开票申请关联结算单';
CREATE TABLE IF NOT EXISTS `blade_invoice_application_sheet` (
`id` bigint(20) NOT NULL,
`tenant_id` varchar(12) 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',
`invoice_application_id` bigint(20) NOT NULL,
`sheet_no` int(11) NOT NULL,
`invoice_amount` decimal(18,2) NOT NULL DEFAULT '0.00',
PRIMARY KEY (`id`),
KEY `idx_invoice_application_sheet` (`invoice_application_id`,`sheet_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='开票申请发票张次';
CREATE TABLE IF NOT EXISTS `blade_invoice_application_line` (
`id` bigint(20) NOT NULL,
`tenant_id` varchar(12) 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',
`invoice_application_id` bigint(20) NOT NULL,
`invoice_sheet_id` bigint(20) NOT NULL,
`line_no` int(11) NOT NULL,
`goods_category` varchar(100) NOT NULL,
`goods_name` varchar(100) NOT NULL,
`unit` varchar(30) DEFAULT NULL,
`quantity` decimal(18,4) DEFAULT NULL,
`unit_price_no_tax` decimal(18,4) DEFAULT NULL,
`amount_with_tax` decimal(18,2) NOT NULL DEFAULT '0.00',
`tax_rate` decimal(8,4) NOT NULL DEFAULT '0.0000',
`tax_amount` decimal(18,2) NOT NULL DEFAULT '0.00',
`remark` varchar(200) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_invoice_sheet_line` (`invoice_sheet_id`,`line_no`),
KEY `idx_invoice_line_application` (`invoice_application_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='开票申请商品行';
CREATE TABLE IF NOT EXISTS `blade_invoice_application_detail` (
`id` bigint(20) NOT NULL,
`tenant_id` varchar(12) 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',
`invoice_application_id` bigint(20) NOT NULL,
`formal_settlement_id` bigint(20) NOT NULL,
`formal_settlement_detail_id` bigint(20) NOT NULL,
`line_no` int(11) NOT NULL,
`document_no` varchar(100) DEFAULT NULL,
`waybill_no` varchar(100) DEFAULT NULL,
`vehicle_no` varchar(100) DEFAULT NULL,
`departure_address` varchar(500) DEFAULT NULL,
`arrival_address` varchar(500) DEFAULT NULL,
`actual_departure_time` datetime DEFAULT NULL,
`actual_completion_time` datetime DEFAULT NULL,
`transport_type` varchar(100) DEFAULT NULL,
`cargo_name` varchar(200) DEFAULT NULL,
`cargo_type` varchar(100) DEFAULT NULL,
`transport_quantity` decimal(18,4) DEFAULT NULL,
`quantity_unit` varchar(30) DEFAULT NULL,
`mileage` decimal(18,2) DEFAULT NULL,
`batch_no` varchar(100) DEFAULT NULL,
`freight_amount` decimal(18,2) DEFAULT NULL,
`fee_items_json` longtext,
`settlement_amount_tax` decimal(18,2) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_invoice_application_detail` (`invoice_application_id`,`formal_settlement_detail_id`),
KEY `idx_invoice_detail_settlement` (`formal_settlement_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='开票申请结算明细快照';
CREATE TABLE IF NOT EXISTS `blade_invoice_application_record` (
`id` bigint(20) NOT NULL,
`tenant_id` varchar(12) 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',
`invoice_application_id` bigint(20) NOT NULL,
`action_type` varchar(30) NOT NULL,
`action_name` varchar(50) NOT NULL,
`from_status` varchar(30) DEFAULT NULL,
`to_status` varchar(30) DEFAULT NULL,
`operator_name` varchar(100) DEFAULT NULL,
`reason` varchar(200) DEFAULT NULL,
`kingdee_bill_no` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_invoice_record_application` (`invoice_application_id`,`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='开票申请操作记录';
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),
(2090000000000001220,2090000000000001200,'invoice_application','开票管理','invoice_application','/payment/invoice-application','',2,1,0,1,NULL,'',0),
(2090000000000001221,2090000000000001220,'invoice_application_view','查看','invoice_application_view','','',1,2,0,1,NULL,'',0),
(2090000000000001222,2090000000000001220,'invoice_application_add','新增','invoice_application_add','','',2,2,0,1,NULL,'',0),
(2090000000000001223,2090000000000001220,'invoice_application_edit','编辑','invoice_application_edit','','',3,2,0,1,NULL,'',0),
(2090000000000001224,2090000000000001220,'invoice_application_delete','删除','invoice_application_delete','','',4,2,0,1,NULL,'',0),
(2090000000000001225,2090000000000001220,'invoice_application_submit','提交审批','invoice_application_submit','','',5,2,0,1,NULL,'',0),
(2090000000000001226,2090000000000001220,'invoice_application_approve','审批','invoice_application_approve','','',6,2,0,1,NULL,'',0),
(2090000000000001227,2090000000000001220,'invoice_application_sync','同步金蝶','invoice_application_sync','','',7,2,0,1,NULL,'',0),
(2090000000000001228,2090000000000001220,'invoice_application_export','导出','invoice_application_export','','',8,2,0,1,NULL,'',0),
(2090000000000001229,2090000000000001220,'invoice_application_void','作废','invoice_application_void','','',9,2,0,1,NULL,'',0)
ON DUPLICATE KEY UPDATE `name`=VALUES(`name`),`path`=VALUES(`path`),`component`=VALUES(`component`),`is_deleted`=0;
@@ -0,0 +1,145 @@
-- 首付款管理 / 收票管理
CREATE TABLE IF NOT EXISTS `blade_kingdee_invoice_pool` (
`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',
`invoice_no` varchar(32) COLLATE utf8mb4_general_ci NOT NULL,
`invoice_date` date DEFAULT NULL,
`invoice_type` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL,
`tax_rate` decimal(8,4) NOT NULL DEFAULT '0.0000',
`invoice_amount` decimal(18,2) NOT NULL DEFAULT '0.00',
`tax_amount` decimal(18,2) NOT NULL DEFAULT '0.00',
`receiver_name` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
`issuer_name` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
`bank_name` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
`bank_account` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
`issuing_bank` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
`phone` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL,
`customer_emails` varchar(200) COLLATE utf8mb4_general_ci DEFAULT NULL,
`department_emails` varchar(200) COLLATE utf8mb4_general_ci DEFAULT NULL,
`kingdee_bill_no` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
`kingdee_status` varchar(30) COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'unsynced',
`attachments_json` longtext COLLATE utf8mb4_general_ci,
`source_updated_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_kingdee_invoice_pool_no` (`tenant_id`,`invoice_no`),
KEY `idx_kingdee_invoice_pool_date` (`invoice_date`),
KEY `idx_kingdee_invoice_pool_status` (`kingdee_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='金蝶进项发票票据池镜像';
CREATE TABLE IF NOT EXISTS `blade_invoice_receipt` (
`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',
`kingdee_invoice_pool_id` bigint(20) NOT NULL,
`invoice_no` varchar(32) COLLATE utf8mb4_general_ci NOT NULL,
`invoice_date` date DEFAULT NULL,
`invoice_type` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL,
`tax_rate` decimal(8,4) NOT NULL DEFAULT '0.0000',
`invoice_amount` decimal(18,2) NOT NULL DEFAULT '0.00',
`tax_amount` decimal(18,2) NOT NULL DEFAULT '0.00',
`receiver_name` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
`issuer_name` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
`project_id` bigint(20) DEFAULT NULL,
`project_name` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
`dept_id` bigint(20) DEFAULT NULL,
`dept_name` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
`payer_name` varchar(200) COLLATE utf8mb4_general_ci DEFAULT NULL,
`payee_name` varchar(200) COLLATE utf8mb4_general_ci DEFAULT NULL,
`bank_name` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
`bank_account` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
`issuing_bank` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
`phone` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL,
`customer_emails` varchar(200) COLLATE utf8mb4_general_ci DEFAULT NULL,
`department_emails` varchar(200) COLLATE utf8mb4_general_ci DEFAULT NULL,
`approval_status` varchar(30) COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'draft',
`current_node` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
`current_processor` varchar(200) COLLATE utf8mb4_general_ci DEFAULT NULL,
`kingdee_bill_no` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
`kingdee_status` varchar(30) COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'unsynced',
`attachments_json` longtext COLLATE utf8mb4_general_ci,
`remark` varchar(200) COLLATE utf8mb4_general_ci DEFAULT NULL,
`void_reason` varchar(200) COLLATE utf8mb4_general_ci DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_invoice_receipt_pool` (`kingdee_invoice_pool_id`),
KEY `idx_invoice_receipt_no` (`tenant_id`,`invoice_no`),
KEY `idx_invoice_receipt_project` (`project_id`),
KEY `idx_invoice_receipt_date` (`invoice_date`),
KEY `idx_invoice_receipt_status` (`approval_status`),
KEY `idx_invoice_receipt_kingdee` (`kingdee_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='收票登记';
CREATE TABLE IF NOT EXISTS `blade_invoice_receipt_settlement` (
`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',
`invoice_receipt_id` bigint(20) NOT NULL,
`formal_settlement_id` bigint(20) NOT NULL,
`formal_settlement_no` varchar(100) COLLATE utf8mb4_general_ci NOT NULL,
`settlement_amount` decimal(18,2) NOT NULL DEFAULT '0.00',
`received_invoice_amount` decimal(18,2) NOT NULL DEFAULT '0.00',
`allocated_invoice_amount` decimal(18,2) NOT NULL DEFAULT '0.00',
PRIMARY KEY (`id`),
KEY `idx_invoice_receipt_settlement` (`invoice_receipt_id`,`formal_settlement_id`),
KEY `idx_invoice_receipt_formal` (`formal_settlement_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='收票登记结算单分摊';
CREATE TABLE IF NOT EXISTS `blade_invoice_receipt_record` (
`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',
`invoice_receipt_id` bigint(20) NOT NULL,
`action_type` varchar(30) COLLATE utf8mb4_general_ci NOT NULL,
`action_name` varchar(50) COLLATE utf8mb4_general_ci NOT NULL,
`from_status` varchar(30) COLLATE utf8mb4_general_ci DEFAULT NULL,
`to_status` varchar(30) COLLATE utf8mb4_general_ci DEFAULT NULL,
`operator_name` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
`reason` varchar(200) COLLATE utf8mb4_general_ci DEFAULT NULL,
`kingdee_bill_no` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_invoice_receipt_record` (`invoice_receipt_id`,`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='收票登记操作记录';
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),
(2090000000000001240,2090000000000001200,'invoice_receipt','收票管理','invoice_receipt','/payment/invoice-receipt','',3,1,0,1,NULL,'',0),
(2090000000000001241,2090000000000001240,'invoice_receipt_view','查看','invoice_receipt_view','','',1,2,0,1,NULL,'',0),
(2090000000000001242,2090000000000001240,'invoice_receipt_add','新增','invoice_receipt_add','','',2,2,0,1,NULL,'',0),
(2090000000000001243,2090000000000001240,'invoice_receipt_edit','编辑','invoice_receipt_edit','','',3,2,0,1,NULL,'',0),
(2090000000000001244,2090000000000001240,'invoice_receipt_delete','删除','invoice_receipt_delete','','',4,2,0,1,NULL,'',0),
(2090000000000001245,2090000000000001240,'invoice_receipt_submit','提交审批','invoice_receipt_submit','','',5,2,0,1,NULL,'',0),
(2090000000000001246,2090000000000001240,'invoice_receipt_approve','审批','invoice_receipt_approve','','',6,2,0,1,NULL,'',0),
(2090000000000001247,2090000000000001240,'invoice_receipt_sync','同步金蝶','invoice_receipt_sync','','',7,2,0,1,NULL,'',0),
(2090000000000001248,2090000000000001240,'invoice_receipt_export','导出','invoice_receipt_export','','',8,2,0,1,NULL,'',0),
(2090000000000001249,2090000000000001240,'invoice_receipt_void','作废','invoice_receipt_void','','',9,2,0,1,NULL,'',0)
ON DUPLICATE KEY UPDATE
`name`=VALUES(`name`),
`path`=VALUES(`path`),
`component`=VALUES(`component`),
`is_deleted`=0;
@@ -0,0 +1,46 @@
-- 首付款管理 / 付款管理
CREATE TABLE IF NOT EXISTS `blade_payment_application` (
`id` bigint(20) NOT NULL, `tenant_id` varchar(12) 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) NOT NULL, `payment_type` varchar(30) NOT NULL, `settlement_id` bigint(20) DEFAULT NULL, `settlement_no` varchar(100) DEFAULT NULL,
`pre_settlement_id` bigint(20) DEFAULT NULL, `pre_settlement_no` varchar(100) DEFAULT NULL, `project_id` bigint(20) DEFAULT NULL, `project_name` varchar(100) DEFAULT NULL,
`dept_id` bigint(20) DEFAULT NULL, `dept_name` varchar(100) DEFAULT NULL, `contract_id` bigint(20) DEFAULT NULL, `contract_no` varchar(100) DEFAULT NULL,
`contract_name` varchar(100) DEFAULT NULL, `payer_name` varchar(200) DEFAULT NULL, `payee_name` varchar(200) DEFAULT NULL,
`settlement_amount` decimal(18,2) DEFAULT NULL, `payable_amount` decimal(18,2) DEFAULT NULL, `bill_type` varchar(30) DEFAULT NULL,
`payment_ratio` decimal(8,2) DEFAULT NULL, `applied_amount` decimal(18,2) NOT NULL DEFAULT '0.00', `payment_method` varchar(30) NOT NULL,
`receipt_account_id` bigint(20) DEFAULT NULL, `receipt_account_name` varchar(200) DEFAULT NULL, `bank_name` varchar(200) DEFAULT NULL, `bank_account` varchar(100) DEFAULT NULL,
`applicant_name` varchar(100) DEFAULT NULL, `apply_date` date DEFAULT NULL, `invoice_status` varchar(30) DEFAULT 'unmatched', `matched_invoice_amount` decimal(18,2) DEFAULT '0.00', `paid_amount` decimal(18,2) DEFAULT '0.00',
`approval_status` varchar(30) NOT NULL DEFAULT 'draft', `current_node` varchar(100) DEFAULT NULL, `current_processor` varchar(200) DEFAULT NULL,
`kingdee_bill_no` varchar(100) DEFAULT NULL, `kingdee_status` varchar(30) NOT NULL DEFAULT 'unsynced', `attachments_json` longtext, `remark` varchar(200) DEFAULT NULL,
PRIMARY KEY (`id`), UNIQUE KEY `uk_payment_application_no` (`tenant_id`,`payment_no`), KEY `idx_payment_application_settlement` (`settlement_id`), KEY `idx_payment_application_apply_date` (`apply_date`), KEY `idx_payment_application_status` (`approval_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='付款申请';
CREATE TABLE IF NOT EXISTS `blade_payment_application_invoice` (
`id` bigint(20) NOT NULL, `tenant_id` varchar(12) 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_application_id` bigint(20) NOT NULL, `line_no` int(11) NOT NULL, `settlement_no` varchar(100) DEFAULT NULL, `invoice_no` varchar(100) DEFAULT NULL, `invoice_date` date DEFAULT NULL,
`invoice_type` varchar(30) DEFAULT NULL, `tax_rate` decimal(8,4) DEFAULT NULL, `invoice_amount` decimal(18,2) DEFAULT NULL, `matched_amount` decimal(18,2) DEFAULT NULL, `attachment_json` longtext,
PRIMARY KEY (`id`), KEY `idx_payment_invoice_application` (`payment_application_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='付款申请发票明细';
CREATE TABLE IF NOT EXISTS `blade_payment_application_record` (
`id` bigint(20) NOT NULL, `tenant_id` varchar(12) 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_application_id` bigint(20) NOT NULL, `paid_amount` decimal(18,2) NOT NULL DEFAULT '0.00', `paid_date` date DEFAULT NULL, `payment_no` varchar(100) DEFAULT NULL, `voucher_json` longtext, `kingdee_bill_no` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`), KEY `idx_payment_record_application` (`payment_application_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='付款申请付款记录';
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),
(2090000000000001201,2090000000000001200,'payment_application','付款管理','payment_application','/payment/payment-application','',1,1,0,1,NULL,'',0),
(2090000000000001202,2090000000000001201,'payment_application_view','查看','payment_application_view','','',1,2,0,1,NULL,'',0),
(2090000000000001203,2090000000000001201,'payment_application_add','新增','payment_application_add','','',2,2,0,1,NULL,'',0),
(2090000000000001204,2090000000000001201,'payment_application_edit','编辑','payment_application_edit','','',3,2,0,1,NULL,'',0),
(2090000000000001205,2090000000000001201,'payment_application_delete','删除','payment_application_delete','','',4,2,0,1,NULL,'',0),
(2090000000000001206,2090000000000001201,'payment_application_submit','提交审批','payment_application_submit','','',5,2,0,1,NULL,'',0),
(2090000000000001207,2090000000000001201,'payment_application_approve','审批','payment_application_approve','','',6,2,0,1,NULL,'',0),
(2090000000000001208,2090000000000001201,'payment_application_sync','同步金蝶','payment_application_sync','','',7,2,0,1,NULL,'',0),
(2090000000000001209,2090000000000001201,'payment_application_export','导出','payment_application_export','','',8,2,0,1,NULL,'',0),
(2090000000000001210,2090000000000001201,'payment_application_void','作废','payment_application_void','','',9,2,0,1,NULL,'',0)
ON DUPLICATE KEY UPDATE `name`=VALUES(`name`),`path`=VALUES(`path`),`component`=VALUES(`component`),`is_deleted`=0;
@@ -0,0 +1,114 @@
-- 首付款管理 / 收款流水
CREATE TABLE IF NOT EXISTS `blade_kingdee_receipt_flow` (
`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',
`receipt_notice_no` varchar(100) COLLATE utf8mb4_general_ci NOT NULL,
`payer_name` varchar(200) COLLATE utf8mb4_general_ci NOT NULL,
`receipt_amount` decimal(18,2) NOT NULL DEFAULT '0.00',
`counterparty_name` varchar(200) COLLATE utf8mb4_general_ci NOT NULL,
`counterparty_account` varchar(100) COLLATE utf8mb4_general_ci NOT NULL,
`counterparty_bank` varchar(200) COLLATE utf8mb4_general_ci NOT NULL,
`summary` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL,
`transaction_time` datetime NOT NULL,
`detail_serial_no` varchar(100) COLLATE utf8mb4_general_ci NOT NULL,
`claimed_amount` decimal(18,2) NOT NULL DEFAULT '0.00',
`claim_status` varchar(30) COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'unclaimed',
`source_updated_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_receipt_flow_serial` (`tenant_id`,`detail_serial_no`),
KEY `idx_receipt_flow_notice` (`tenant_id`,`receipt_notice_no`),
KEY `idx_receipt_flow_transaction` (`tenant_id`,`transaction_time`),
KEY `idx_receipt_flow_status` (`tenant_id`,`claim_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='金蝶收款流水镜像';
CREATE TABLE IF NOT EXISTS `blade_receipt_claim` (
`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',
`receipt_flow_id` bigint(20) NOT NULL,
`claim_amount` decimal(18,2) NOT NULL DEFAULT '0.00',
`claimer_id` bigint(20) DEFAULT NULL,
`claimer_name` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
`claimer_dept_id` bigint(20) DEFAULT NULL,
`claimer_dept_name` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
`claim_date` date DEFAULT NULL,
`attachments_json` longtext COLLATE utf8mb4_general_ci,
`remark` varchar(200) COLLATE utf8mb4_general_ci DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_receipt_claim_flow` (`receipt_flow_id`),
KEY `idx_receipt_claim_date` (`tenant_id`,`claim_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='收款流水认领主单';
CREATE TABLE IF NOT EXISTS `blade_receipt_claim_settlement` (
`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',
`receipt_claim_id` bigint(20) NOT NULL,
`receipt_flow_id` bigint(20) NOT NULL,
`formal_settlement_id` bigint(20) NOT NULL,
`formal_settlement_no` varchar(100) COLLATE utf8mb4_general_ci NOT NULL,
`settlement_amount` decimal(18,2) NOT NULL DEFAULT '0.00',
`claimed_receipt_amount` decimal(18,2) NOT NULL DEFAULT '0.00',
`allocated_receipt_amount` decimal(18,2) NOT NULL DEFAULT '0.00',
PRIMARY KEY (`id`),
KEY `idx_receipt_claim_settlement` (`receipt_claim_id`,`formal_settlement_id`),
KEY `idx_receipt_claim_formal` (`formal_settlement_id`,`status`),
KEY `idx_receipt_claim_flow_settlement` (`receipt_flow_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='收款认领结算单分摊';
CREATE TABLE IF NOT EXISTS `blade_receipt_flow_record` (
`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',
`receipt_flow_id` bigint(20) DEFAULT NULL,
`receipt_claim_id` bigint(20) DEFAULT NULL,
`action_type` varchar(30) COLLATE utf8mb4_general_ci NOT NULL,
`action_name` varchar(50) COLLATE utf8mb4_general_ci NOT NULL,
`from_status` varchar(30) COLLATE utf8mb4_general_ci DEFAULT NULL,
`to_status` varchar(30) COLLATE utf8mb4_general_ci DEFAULT NULL,
`operation_amount` decimal(18,2) NOT NULL DEFAULT '0.00',
`operator_name` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
`content` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_receipt_flow_record_flow` (`receipt_flow_id`,`create_time`),
KEY `idx_receipt_flow_record_claim` (`receipt_claim_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='收款流水同步及认领操作记录';
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),
(2090000000000001260,2090000000000001200,'receipt_flow','收款流水','receipt_flow','/payment/receipt-flow','',4,1,0,1,NULL,'',0),
(2090000000000001261,2090000000000001260,'receipt_flow_view','查看','receipt_flow_view','','',1,2,0,1,NULL,'',0),
(2090000000000001262,2090000000000001260,'receipt_flow_claim','认领','receipt_flow_claim','','',2,2,0,1,NULL,'',0),
(2090000000000001263,2090000000000001260,'receipt_flow_sync','手动同步流水','receipt_flow_sync','','',3,2,0,1,NULL,'',0)
ON DUPLICATE KEY UPDATE
`name`=VALUES(`name`),
`path`=VALUES(`path`),
`component`=VALUES(`component`),
`is_deleted`=0;
@@ -0,0 +1,107 @@
-- 首付款管理 / 认领记录
-- 以下结构升级支持重复执行,兼容前一次已执行 DDL、仅菜单插入失败的场景
SET @ddl_sql = (
SELECT IF(COUNT(*) = 0,
'ALTER TABLE `blade_receipt_claim` ADD COLUMN `claim_status` varchar(30) COLLATE utf8mb4_general_ci NOT NULL DEFAULT ''claimed'' COMMENT ''认领状态:claimed已认领、voided已作废'' AFTER `remark`',
'SELECT 1')
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'blade_receipt_claim' AND COLUMN_NAME = 'claim_status'
);
PREPARE ddl_stmt FROM @ddl_sql;
EXECUTE ddl_stmt;
DEALLOCATE PREPARE ddl_stmt;
SET @ddl_sql = (
SELECT IF(COUNT(*) = 0,
'ALTER TABLE `blade_receipt_claim` ADD COLUMN `kingdee_bill_no` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT ''金蝶认领冲单号'' AFTER `claim_status`',
'SELECT 1')
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'blade_receipt_claim' AND COLUMN_NAME = 'kingdee_bill_no'
);
PREPARE ddl_stmt FROM @ddl_sql;
EXECUTE ddl_stmt;
DEALLOCATE PREPARE ddl_stmt;
SET @ddl_sql = (
SELECT IF(COUNT(*) = 0,
'ALTER TABLE `blade_receipt_claim` ADD COLUMN `kingdee_bill_status` varchar(30) COLLATE utf8mb4_general_ci NOT NULL DEFAULT ''none'' COMMENT ''金蝶单据状态'' AFTER `kingdee_bill_no`',
'SELECT 1')
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'blade_receipt_claim' AND COLUMN_NAME = 'kingdee_bill_status'
);
PREPARE ddl_stmt FROM @ddl_sql;
EXECUTE ddl_stmt;
DEALLOCATE PREPARE ddl_stmt;
SET @ddl_sql = (
SELECT IF(COUNT(*) = 0,
'ALTER TABLE `blade_receipt_claim` ADD COLUMN `voided_by` bigint(20) DEFAULT NULL COMMENT ''作废人'' AFTER `kingdee_bill_status`',
'SELECT 1')
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'blade_receipt_claim' AND COLUMN_NAME = 'voided_by'
);
PREPARE ddl_stmt FROM @ddl_sql;
EXECUTE ddl_stmt;
DEALLOCATE PREPARE ddl_stmt;
SET @ddl_sql = (
SELECT IF(COUNT(*) = 0,
'ALTER TABLE `blade_receipt_claim` ADD COLUMN `voided_by_name` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT ''作废人姓名'' AFTER `voided_by`',
'SELECT 1')
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'blade_receipt_claim' AND COLUMN_NAME = 'voided_by_name'
);
PREPARE ddl_stmt FROM @ddl_sql;
EXECUTE ddl_stmt;
DEALLOCATE PREPARE ddl_stmt;
SET @ddl_sql = (
SELECT IF(COUNT(*) = 0,
'ALTER TABLE `blade_receipt_claim` ADD COLUMN `voided_time` datetime DEFAULT NULL COMMENT ''作废时间'' AFTER `voided_by_name`',
'SELECT 1')
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'blade_receipt_claim' AND COLUMN_NAME = 'voided_time'
);
PREPARE ddl_stmt FROM @ddl_sql;
EXECUTE ddl_stmt;
DEALLOCATE PREPARE ddl_stmt;
SET @ddl_sql = (
SELECT IF(COUNT(*) = 0,
'ALTER TABLE `blade_receipt_claim` ADD KEY `idx_receipt_claim_owner_status` (`tenant_id`,`claimer_id`,`claim_status`,`claim_date`)',
'SELECT 1')
FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'blade_receipt_claim' AND INDEX_NAME = 'idx_receipt_claim_owner_status'
);
PREPARE ddl_stmt FROM @ddl_sql;
EXECUTE ddl_stmt;
DEALLOCATE PREPARE ddl_stmt;
SET @ddl_sql = (
SELECT IF(COUNT(*) = 0,
'ALTER TABLE `blade_receipt_claim` ADD KEY `idx_receipt_claim_kingdee_status` (`tenant_id`,`kingdee_bill_status`)',
'SELECT 1')
FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'blade_receipt_claim' AND INDEX_NAME = 'idx_receipt_claim_kingdee_status'
);
PREPARE ddl_stmt FROM @ddl_sql;
EXECUTE ddl_stmt;
DEALLOCATE PREPARE ddl_stmt;
UPDATE `blade_receipt_claim`
SET `claim_status` = 'claimed',
`kingdee_bill_status` = 'none'
WHERE `claim_status` IS NULL OR `claim_status` = '';
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),
(2090000000000001270,2090000000000001200,'receipt_claim_record','认领记录','receipt_claim_record','/payment/receipt-claim-record','',5,1,0,1,NULL,'',0),
(2090000000000001271,2090000000000001270,'receipt_claim_record_view','查看','receipt_claim_record_view','','',1,2,0,1,NULL,'',0),
(2090000000000001272,2090000000000001270,'receipt_claim_record_void','作废','receipt_claim_record_void','','',2,2,0,1,NULL,'',0)
ON DUPLICATE KEY UPDATE
`name`=VALUES(`name`),
`path`=VALUES(`path`),
`component`=VALUES(`component`),
`is_deleted`=0;