refactor: 收票登记删除冗余金蝶同步字段并修正迁移脚本锚点

This commit is contained in:
刘泉佳
2026-09-23 10:30:17 +08:00
parent 171bc9ea2c
commit 125054359a
3 changed files with 36 additions and 6 deletions
@@ -67,8 +67,6 @@ CREATE TABLE IF NOT EXISTS `blade_invoice_receipt` (
`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,
@@ -77,8 +75,7 @@ CREATE TABLE IF NOT EXISTS `blade_invoice_receipt` (
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`)
KEY `idx_invoice_receipt_status` (`approval_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='收票登记';
CREATE TABLE IF NOT EXISTS `blade_invoice_receipt_settlement` (
@@ -0,0 +1,33 @@
-- 收票管理金蝶功能精简:删除 blade_invoice_receipt 冗余同步字段
-- kingdee_bill_no 金蝶单据号(冗余,等于票池镜像 serialNo,可经 kingdee_invoice_pool_id 关联查询)
-- kingdee_status 金蝶同步状态(冗余,手动同步功能已下线,推送状态 kingdee_push_status 为唯一状态源)
-- 金蝶状态展示口径:kingdee_push_status 为 pushed/assigned 显示「已同步」,否则显示「未同步」
-- 以下结构升级支持重复执行
-- ① blade_invoice_receipt.kingdee_bill_no
SET @ddl_sql = (
SELECT IF(COUNT(*) > 0,
'ALTER TABLE `blade_invoice_receipt` DROP COLUMN `kingdee_bill_no`',
'SELECT 1')
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'blade_invoice_receipt'
AND COLUMN_NAME = 'kingdee_bill_no'
);
PREPARE ddl_stmt FROM @ddl_sql;
EXECUTE ddl_stmt;
DEALLOCATE PREPARE ddl_stmt;
-- ② blade_invoice_receipt.kingdee_status(索引 idx_invoice_receipt_kingdee 随列自动删除)
SET @ddl_sql = (
SELECT IF(COUNT(*) > 0,
'ALTER TABLE `blade_invoice_receipt` DROP COLUMN `kingdee_status`',
'SELECT 1')
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'blade_invoice_receipt'
AND COLUMN_NAME = 'kingdee_status'
);
PREPARE ddl_stmt FROM @ddl_sql;
EXECUTE ddl_stmt;
DEALLOCATE PREPARE ddl_stmt;
@@ -40,7 +40,7 @@ DEALLOCATE PREPARE ddl_stmt;
-- ③ blade_invoice_receipt.kingdee_received_invoice_no
SET @ddl_sql = (
SELECT IF(COUNT(*) = 0,
'ALTER TABLE `blade_invoice_receipt` ADD COLUMN `kingdee_received_invoice_no` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT ''金蝶收票单单据编号(A303-2生成)'' AFTER `kingdee_bill_no`',
'ALTER TABLE `blade_invoice_receipt` ADD COLUMN `kingdee_received_invoice_no` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT ''金蝶收票单单据编号(A303-2生成)'' AFTER `current_processor`',
'SELECT 1')
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
@@ -54,7 +54,7 @@ DEALLOCATE PREPARE ddl_stmt;
-- ④ blade_invoice_receipt.kingdee_push_status
SET @ddl_sql = (
SELECT IF(COUNT(*) = 0,
'ALTER TABLE `blade_invoice_receipt` ADD COLUMN `kingdee_push_status` varchar(16) COLLATE utf8mb4_general_ci NOT NULL DEFAULT ''unsynced'' COMMENT ''收票单推送状态(unsynced未推送/pushed已保存/assigned已指定应付/failed推送失败)'' AFTER `kingdee_status`',
'ALTER TABLE `blade_invoice_receipt` ADD COLUMN `kingdee_push_status` varchar(16) COLLATE utf8mb4_general_ci NOT NULL DEFAULT ''unsynced'' COMMENT ''收票单推送状态(unsynced未推送/pushed已保存/assigned已指定应付/failed推送失败)'' AFTER `kingdee_received_invoice_no`',
'SELECT 1')
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()