From 55d694aaae4e421b5e55cd941500e08f85cb5d4d Mon Sep 17 00:00:00 2001 From: 云 <2163098428@qq.com> Date: 星期四, 27 八月 2026 18:21:33 +0800 Subject: [PATCH] feat(sales): 添加框架合同订单功能并优化销售台账管理 --- sql/migration_framework_contract.sql | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 51 insertions(+), 0 deletions(-) diff --git a/sql/migration_framework_contract.sql b/sql/migration_framework_contract.sql new file mode 100644 index 0000000..0a7a328 --- /dev/null +++ b/sql/migration_framework_contract.sql @@ -0,0 +1,51 @@ +-- 妗嗘灦鍚堝悓涓庢鏋惰鍗曞叧绯伙紙骞傜瓑锛氬凡瀛樺湪鐨勫垪/瀛楁璺宠繃锛屽彲瀹夊叏閲嶅鎵ц锛� + +-- sales_ledger.contract_type / parent_contract_id +SET @c1 = (SELECT COUNT(*) FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'sales_ledger' AND COLUMN_NAME = 'contract_type'); +SET @ddl1 = IF(@c1 = 0, + 'ALTER TABLE `sales_ledger` ADD COLUMN `contract_type` tinyint NOT NULL DEFAULT 1 COMMENT ''鍚堝悓绫诲瀷锛�1鏅�氶攢鍞悎鍚岋紝2妗嗘灦鍚堝悓锛�3妗嗘灦璁㈠崟'' AFTER `sales_contract_no`', + 'SELECT 1'); +PREPARE stmt1 FROM @ddl1; +EXECUTE stmt1; +DEALLOCATE PREPARE stmt1; + +SET @c2 = (SELECT COUNT(*) FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'sales_ledger' AND COLUMN_NAME = 'parent_contract_id'); +SET @ddl2 = IF(@c2 = 0, + 'ALTER TABLE `sales_ledger` ADD COLUMN `parent_contract_id` bigint NULL COMMENT ''鐖舵鏋跺悎鍚孖D'' AFTER `contract_type`', + 'SELECT 1'); +PREPARE stmt2 FROM @ddl2; +EXECUTE stmt2; +DEALLOCATE PREPARE stmt2; + +-- sales_ledger_product.quantity 鍏佽涓虹┖ +SET @c3 = (SELECT COUNT(*) FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'sales_ledger_product' AND COLUMN_NAME = 'quantity' + AND IS_NULLABLE = 'NO'); +SET @ddl3 = IF(@c3 = 1, + 'ALTER TABLE `sales_ledger_product` MODIFY COLUMN `quantity` decimal(18, 2) NULL COMMENT ''鏁伴噺锛屾鏋跺悎鍚屽拰妗嗘灦璁㈠崟涓嶈褰曟暟閲忥紝瀹為檯鍙戣揣鏁伴噺璁板綍鍦ㄥ彂璐ф槑缁�''', + 'SELECT 1'); +PREPARE stmt3 FROM @ddl3; +EXECUTE stmt3; +DEALLOCATE PREPARE stmt3; + +-- sales_ledger_product.parent_product_id +SET @c4 = (SELECT COUNT(*) FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'sales_ledger_product' AND COLUMN_NAME = 'parent_product_id'); +SET @ddl4 = IF(@c4 = 0, + 'ALTER TABLE `sales_ledger_product` ADD COLUMN `parent_product_id` bigint NULL COMMENT ''鐖舵鏋跺悎鍚屼骇鍝両D'' AFTER `sales_ledger_id`', + 'SELECT 1'); +PREPARE stmt4 FROM @ddl4; +EXECUTE stmt4; +DEALLOCATE PREPARE stmt4; + +-- sales_ledger_product.delivery_date +SET @c5 = (SELECT COUNT(*) FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'sales_ledger_product' AND COLUMN_NAME = 'delivery_date'); +SET @ddl5 = IF(@c5 = 0, + 'ALTER TABLE `sales_ledger_product` ADD COLUMN `delivery_date` date NULL COMMENT ''妗嗘灦璁㈠崟浜よ揣鏃ユ湡'' AFTER `parent_product_id`', + 'SELECT 1'); +PREPARE stmt5 FROM @ddl5; +EXECUTE stmt5; +DEALLOCATE PREPARE stmt5; -- Gitblit v1.9.3