-- 签署材料版本的公司盖章/骑缝章开关及任务、电子签快照。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;