Files
OnboardXAdmin/database/migrations/20260908_qiyuesuo_company_config.sql
T
2026-09-08 17:48:30 +08:00

57 lines
1.7 KiB
SQL

-- OnboardX 契约锁公司级业务分类与印章配置
-- 适用数据库:MySQL 8.0+
-- 可重复执行;仅增加字段,不覆盖任何公司已有配置。
SET NAMES utf8mb4;
DROP PROCEDURE IF EXISTS `ob_qys_company_add_column_if_missing`;
DELIMITER $$
CREATE PROCEDURE `ob_qys_company_add_column_if_missing`(
IN p_column_name VARCHAR(128),
IN p_column_definition VARCHAR(1000)
)
BEGIN
IF NOT EXISTS (
SELECT 1
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'ob_company'
AND COLUMN_NAME = p_column_name
) THEN
SET @ddl = CONCAT(
'ALTER TABLE `ob_company` ADD COLUMN `',
p_column_name, '` ', p_column_definition
);
PREPARE stmt FROM @ddl;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END IF;
END$$
DELIMITER ;
CALL `ob_qys_company_add_column_if_missing`(
'QiyuesuoCategoryId',
'VARCHAR(100) NULL COMMENT ''契约锁默认业务分类Id(按公司独立配置)'' AFTER `ContactPhone`'
);
CALL `ob_qys_company_add_column_if_missing`(
'QiyuesuoSealId',
'VARCHAR(100) NULL COMMENT ''契约锁企业印章Id(按公司独立配置)'' AFTER `QiyuesuoCategoryId`'
);
DROP PROCEDURE IF EXISTS `ob_qys_company_add_column_if_missing`;
SELECT
Id,
CompanyCode,
CompanyName,
LegalName,
QiyuesuoCategoryId,
QiyuesuoSealId,
CASE
WHEN NULLIF(TRIM(QiyuesuoCategoryId), '') IS NOT NULL
AND NULLIF(TRIM(QiyuesuoSealId), '') IS NOT NULL THEN '已配置'
ELSE '待配置'
END AS QiyuesuoConfigStatus
FROM ob_company
WHERE IsDelete = 0 OR IsDelete IS NULL
ORDER BY CompanyName;