diff --git a/doc/sql/transport/blade_invoice_application_sheet_kingdee_bill_no_20260924.sql b/doc/sql/transport/blade_invoice_application_sheet_kingdee_bill_no_20260924.sql new file mode 100644 index 00000000..ec7bf6f3 --- /dev/null +++ b/doc/sql/transport/blade_invoice_application_sheet_kingdee_bill_no_20260924.sql @@ -0,0 +1,50 @@ +-- ============================================================ +-- blade_invoice_application_sheet_kingdee_bill_no_20260924.sql +-- ============================================================ +-- 开票申请同步金蝶按发票张次拆分开票(A303-1 一张发票张次一张开票申请单) +-- blade_invoice_application_sheet.kingdee_bill_no 本张发票对应的金蝶开票申请单编号(A303-1 返回,A303-5 serialNo 查询入口) +-- blade_invoice_application.kingdee_bill_no 多张发票时逗号拼接全部金蝶单号,列加宽至 varchar(500) 防溢出 +-- blade_invoice_application_record.kingdee_bill_no 操作记录的同一字段同步加宽,避免多张单号拼接超长导致插入失败 +-- 以下结构升级支持重复执行 + +-- ① blade_invoice_application_sheet.kingdee_bill_no +SET @ddl_sql = ( + SELECT IF(COUNT(*) = 0, + 'ALTER TABLE `blade_invoice_application_sheet` ADD COLUMN `kingdee_bill_no` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT ''金蝶开票申请单编号(本张发票对应)'' AFTER `invoice_amount`', + 'SELECT 1') + FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() + AND TABLE_NAME = 'blade_invoice_application_sheet' + AND COLUMN_NAME = 'kingdee_bill_no' +); +PREPARE ddl_stmt FROM @ddl_sql; +EXECUTE ddl_stmt; +DEALLOCATE PREPARE ddl_stmt; + +-- ② blade_invoice_application.kingdee_bill_no 加宽 +SET @ddl_sql = ( + SELECT IF(CHARACTER_MAXIMUM_LENGTH < 500, + 'ALTER TABLE `blade_invoice_application` MODIFY COLUMN `kingdee_bill_no` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT ''金蝶开票申请单编号(多张发票逗号拼接)''', + 'SELECT 1') + FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() + AND TABLE_NAME = 'blade_invoice_application' + AND COLUMN_NAME = 'kingdee_bill_no' +); +PREPARE ddl_stmt FROM @ddl_sql; +EXECUTE ddl_stmt; +DEALLOCATE PREPARE ddl_stmt; + +-- ③ blade_invoice_application_record.kingdee_bill_no 加宽 +SET @ddl_sql = ( + SELECT IF(CHARACTER_MAXIMUM_LENGTH < 500, + 'ALTER TABLE `blade_invoice_application_record` MODIFY COLUMN `kingdee_bill_no` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT ''金蝶开票申请单编号(多张发票逗号拼接)''', + 'SELECT 1') + FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() + AND TABLE_NAME = 'blade_invoice_application_record' + AND COLUMN_NAME = 'kingdee_bill_no' +); +PREPARE ddl_stmt FROM @ddl_sql; +EXECUTE ddl_stmt; +DEALLOCATE PREPARE ddl_stmt; \ No newline at end of file