Files
OnboardXAdmin/database/migrations/20261015_contract_version_seal_switches.sql

76 lines
3.3 KiB
SQL

-- 签署材料版本的公司盖章/骑缝章开关及任务、电子签快照。MySQL 8.0+
-- 上线顺序:先在目标数据库执行本文件,再部署后端及后台前端。
-- 可重复执行;只新增可空列,不回填或覆盖历史业务数据。
-- NULL 表示历史规则:公司盖章需要,骑缝章沿用 QiyuesuoSetting.EnableAcrossPageSeal。
-- 新上传版本显式保存 true/false;任务及电子签文档分别保存快照。
SET NAMES utf8mb4;
DROP PROCEDURE IF EXISTS ob_upgrade_contract_version_seal_switches;
DELIMITER $$
CREATE PROCEDURE ob_upgrade_contract_version_seal_switches()
BEGIN
IF NOT EXISTS (
SELECT 1 FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'ob_contract_template_version'
AND COLUMN_NAME = 'CompanySealEnabled'
) THEN
ALTER TABLE `ob_contract_template_version`
ADD COLUMN `CompanySealEnabled` TINYINT(1) NULL DEFAULT NULL
COMMENT '公司盖章开关;NULL沿用历史需要盖章';
END IF;
IF NOT EXISTS (
SELECT 1 FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'ob_contract_template_version'
AND COLUMN_NAME = 'AcrossPageSealEnabled'
) THEN
ALTER TABLE `ob_contract_template_version`
ADD COLUMN `AcrossPageSealEnabled` TINYINT(1) NULL DEFAULT NULL
COMMENT '骑缝章开关;NULL沿用历史系统配置';
END IF;
IF NOT EXISTS (
SELECT 1 FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'ob_task_contract'
AND COLUMN_NAME = 'CompanySealEnabled'
) THEN
ALTER TABLE `ob_task_contract`
ADD COLUMN `CompanySealEnabled` TINYINT(1) NULL DEFAULT NULL
COMMENT '公司盖章开关;NULL沿用历史需要盖章';
END IF;
IF NOT EXISTS (
SELECT 1 FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'ob_task_contract'
AND COLUMN_NAME = 'AcrossPageSealEnabled'
) THEN
ALTER TABLE `ob_task_contract`
ADD COLUMN `AcrossPageSealEnabled` TINYINT(1) NULL DEFAULT NULL
COMMENT '骑缝章开关;NULL沿用历史系统配置';
END IF;
IF NOT EXISTS (
SELECT 1 FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'ob_electronic_sign_document'
AND COLUMN_NAME = 'CompanySealEnabled'
) THEN
ALTER TABLE `ob_electronic_sign_document`
ADD COLUMN `CompanySealEnabled` TINYINT(1) NULL DEFAULT NULL
COMMENT '公司盖章开关;NULL沿用历史需要盖章';
END IF;
IF NOT EXISTS (
SELECT 1 FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'ob_electronic_sign_document'
AND COLUMN_NAME = 'AcrossPageSealEnabled'
) THEN
ALTER TABLE `ob_electronic_sign_document`
ADD COLUMN `AcrossPageSealEnabled` TINYINT(1) NULL DEFAULT NULL
COMMENT '骑缝章开关;NULL沿用历史系统配置';
END IF;
END$$
DELIMITER ;
CALL ob_upgrade_contract_version_seal_switches();
DROP PROCEDURE IF EXISTS ob_upgrade_contract_version_seal_switches;