支持模板预览/字段字典、产品绑定 LabelTemplateId、订单 Pending→Ready 生成 PDF,以及 order/print、批量与仓内 printUrl。 Co-authored-by: Cursor <cursoragent@cursor.com>
88 lines
3.4 KiB
SQL
88 lines
3.4 KiB
SQL
-- 已有库增量:订单面单 PDF 字段 + 销售产品 LabelTemplateId
|
||
-- 对应:docs/面单标签模板与PDF生成方案.md §4.2 / §4.3
|
||
-- 可重复执行
|
||
|
||
-- ========== t_order ==========
|
||
SET @col_exists := (
|
||
SELECT COUNT(1) FROM information_schema.COLUMNS
|
||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 't_order' AND COLUMN_NAME = 'LabelUrl'
|
||
);
|
||
SET @sql := IF(
|
||
@col_exists = 0,
|
||
'ALTER TABLE `t_order` ADD COLUMN `LabelUrl` VARCHAR(500) NULL COMMENT ''面单PDF相对路径'' AFTER `IsRemote`',
|
||
'SELECT ''t_order.LabelUrl already exists'' AS info'
|
||
);
|
||
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||
|
||
SET @col_exists := (
|
||
SELECT COUNT(1) FROM information_schema.COLUMNS
|
||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 't_order' AND COLUMN_NAME = 'LabelTemplateId'
|
||
);
|
||
SET @sql := IF(
|
||
@col_exists = 0,
|
||
'ALTER TABLE `t_order` ADD COLUMN `LabelTemplateId` INT NULL COMMENT ''面单模板Id'' AFTER `LabelUrl`',
|
||
'SELECT ''t_order.LabelTemplateId already exists'' AS info'
|
||
);
|
||
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||
|
||
SET @col_exists := (
|
||
SELECT COUNT(1) FROM information_schema.COLUMNS
|
||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 't_order' AND COLUMN_NAME = 'LabelGenerateStatus'
|
||
);
|
||
SET @sql := IF(
|
||
@col_exists = 0,
|
||
'ALTER TABLE `t_order` ADD COLUMN `LabelGenerateStatus` VARCHAR(32) NULL COMMENT ''Pending/Ready/Failed'' AFTER `LabelTemplateId`',
|
||
'SELECT ''t_order.LabelGenerateStatus already exists'' AS info'
|
||
);
|
||
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||
|
||
SET @col_exists := (
|
||
SELECT COUNT(1) FROM information_schema.COLUMNS
|
||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 't_order' AND COLUMN_NAME = 'LabelGenerateError'
|
||
);
|
||
SET @sql := IF(
|
||
@col_exists = 0,
|
||
'ALTER TABLE `t_order` ADD COLUMN `LabelGenerateError` VARCHAR(500) NULL COMMENT ''面单生成失败原因'' AFTER `LabelGenerateStatus`',
|
||
'SELECT ''t_order.LabelGenerateError already exists'' AS info'
|
||
);
|
||
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||
|
||
SET @idx_exists := (
|
||
SELECT COUNT(1) FROM information_schema.STATISTICS
|
||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 't_order' AND INDEX_NAME = 'idx_ord_label_status'
|
||
);
|
||
SET @sql := IF(
|
||
@idx_exists = 0,
|
||
'ALTER TABLE `t_order` ADD KEY `idx_ord_label_status` (`LabelGenerateStatus`)',
|
||
'SELECT ''idx_ord_label_status already exists'' AS info'
|
||
);
|
||
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||
|
||
-- ========== t_sales_product ==========
|
||
SET @col_exists := (
|
||
SELECT COUNT(1) FROM information_schema.COLUMNS
|
||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 't_sales_product' AND COLUMN_NAME = 'LabelTemplateId'
|
||
);
|
||
SET @sql := IF(
|
||
@col_exists = 0,
|
||
'ALTER TABLE `t_sales_product` ADD COLUMN `LabelTemplateId` INT NULL COMMENT ''客户面单模板Id'' AFTER `CustomerWaybill`',
|
||
'SELECT ''t_sales_product.LabelTemplateId already exists'' AS info'
|
||
);
|
||
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||
|
||
-- ========== 全局默认模板配置种子(AppKey 填模板 Id,Enabled=0 默认关闭)==========
|
||
INSERT INTO `t_system_other_config`
|
||
(`ConfigCode`, `ConfigName`, `Enabled`, `AppKey`, `TimeoutSeconds`, `Remark`, `CreateTime`)
|
||
SELECT
|
||
'label_default_template',
|
||
'全局默认面单模板',
|
||
0,
|
||
NULL,
|
||
30,
|
||
'AppKey=标签模板Id;启用后产品未绑模板时回落此 Id',
|
||
NOW()
|
||
FROM DUAL
|
||
WHERE NOT EXISTS (
|
||
SELECT 1 FROM `t_system_other_config` WHERE `ConfigCode` = 'label_default_template'
|
||
);
|