From fe35b39f2c3486886784ff79054240ff98a163ca Mon Sep 17 00:00:00 2001 From: weicw1996 Date: Thu, 15 Oct 2026 20:50:18 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20=E8=A1=A5=E6=94=B6=E7=A5=A8=E7=99=BB?= =?UTF-8?q?=E8=AE=B0=E9=87=91=E8=9D=B6=E5=8D=95=E6=8D=AE=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E8=BF=81=E7=A7=BB=E8=84=9A=E6=9C=AC=EF=BC=8C=E5=AD=98=E9=87=8F?= =?UTF-8?q?=E5=BA=93=E7=BC=BA=20kingdee=5Fbill=5Fno=E3=80=81kingdee=5Fstat?= =?UTF-8?q?us=20=E4=B8=A4=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...nvoice_receipt_kingdee_fields_20261015.sql | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 doc/sql/transport/blade_invoice_receipt_kingdee_fields_20261015.sql diff --git a/doc/sql/transport/blade_invoice_receipt_kingdee_fields_20261015.sql b/doc/sql/transport/blade_invoice_receipt_kingdee_fields_20261015.sql new file mode 100644 index 00000000..a38feff0 --- /dev/null +++ b/doc/sql/transport/blade_invoice_receipt_kingdee_fields_20261015.sql @@ -0,0 +1,42 @@ +-- 收票登记:补金蝶单据字段 +-- 已有环境里的 blade_invoice_receipt 由更早一版的建表语句创建,缺 kingdee_bill_no / +-- kingdee_status;建表语句用的是 CREATE TABLE IF NOT EXISTS,对已存在的表是空操作, +-- 所以只跑建表脚本补不上这两列,必须走 ALTER。 +-- 以下语句可重复执行。 +SET @ddl_sql = ( + SELECT IF(COUNT(*) = 0, + 'ALTER TABLE `blade_invoice_receipt` ADD COLUMN `kingdee_bill_no` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT ''金蝶单据编号'' AFTER `current_processor`', + '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; + +-- 存量行取默认值 unsynced;收票记录只有 synced / failed / unsynced 三种取值 +SET @ddl_sql = ( + SELECT IF(COUNT(*) = 0, + 'ALTER TABLE `blade_invoice_receipt` ADD COLUMN `kingdee_status` varchar(30) COLLATE utf8mb4_general_ci NOT NULL DEFAULT ''unsynced'' COMMENT ''金蝶同步状态:unsynced未同步、synced已同步、failed同步失败'' AFTER `kingdee_bill_no`', + '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; + +SET @ddl_sql = ( + SELECT IF(COUNT(*) = 0, + 'ALTER TABLE `blade_invoice_receipt` ADD KEY `idx_invoice_receipt_kingdee` (`kingdee_status`)', + 'SELECT 1') + FROM information_schema.STATISTICS + WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'blade_invoice_receipt' AND INDEX_NAME = 'idx_invoice_receipt_kingdee' +); +PREPARE ddl_stmt FROM @ddl_sql; +EXECUTE ddl_stmt; +DEALLOCATE PREPARE ddl_stmt; + +-- 旧列 kingdee_received_invoice_no / kingdee_received_invoice_id / kingdee_push_status / +-- kingdee_push_msg / kingdee_push_time 在代码里已无任何引用,且取值集合与新模型对不上 +-- (旧值 pushed / assigned 在新模型里不存在),故不搬运数据,保持原样不动。