| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- -- =============================================================================
- -- 数字员工双模式 + 千人千面 为 租户32 指定配置部署
- -- 目标库: ylrz_saas_tenant_1 (company_id = 32)
- -- 全局说明: ylrz_saas (tenant_sys_menu)
- --
- -- 执行方式(DataGrip / Navicat):
- -- 1) 选择租户库,执行「PART A」全部
- -- 2) 选择切换到 ylrz_saas,执行「PART B」
- -- 3) 重启 fs-saas-company / fs-saas-admin
- --
- -- 依赖 Flyway:
- -- V20260615_01__lobster_execution_mode.sql
- -- V20260615_02__lobster_execution_config_menu.sql
- -- V20260615_03__lobster_template_execution_policy.sql
- -- =============================================================================
- -- ===================== PART A: 租户库 ylrz_saas_tenant_1 =====================
- -- USE ylrz_saas_tenant_1;
- -- A1) 租户级别执行配置表
- CREATE TABLE IF NOT EXISTS `lobster_execution_config`
- (
- `id` bigint NOT NULL AUTO_INCREMENT,
- `company_id` bigint NOT NULL COMMENT 'tenant company id',
- `default_execution_mode` varchar(16) NOT NULL DEFAULT 'HYBRID' COMMENT 'PROMPT/INSTANCE/HYBRID',
- `enable_content_personalization` tinyint NOT NULL DEFAULT 1,
- `enable_flow_personalization` tinyint NOT NULL DEFAULT 1,
- `strict_fixed_workflow` tinyint NOT NULL DEFAULT 0,
- `auto_start_instance_on_tag` tinyint NOT NULL DEFAULT 0,
- `create_by` varchar(64) DEFAULT NULL,
- `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
- `update_by` varchar(64) DEFAULT NULL,
- `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_company_id` (`company_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='lobster execution policy';
- -- A2) 模板表 execution_mode
- SET @col_exists := (SELECT COUNT(*) FROM information_schema.COLUMNS
- WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'company_workflow_lobster' AND COLUMN_NAME = 'execution_mode');
- SET @ddl := IF(@col_exists = 0,
- 'ALTER TABLE company_workflow_lobster ADD COLUMN execution_mode varchar(16) DEFAULT NULL COMMENT ''PROMPT/INSTANCE/HYBRID'' AFTER canvas_data',
- 'SELECT 1');
- PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;
- -- A3) 任务表 external_contact_id
- SET @col_exists := (SELECT COUNT(*) FROM information_schema.COLUMNS
- WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'company_workflow_lobster_task' AND COLUMN_NAME = 'external_contact_id');
- SET @ddl := IF(@col_exists = 0,
- 'ALTER TABLE company_workflow_lobster_task ADD COLUMN external_contact_id bigint DEFAULT NULL COMMENT ''qw_external_contact.id'' AFTER binding_id',
- 'SELECT 1');
- PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;
- -- A4) 模板级千人千面(null = 继承租户 lobster_execution_config)
- SET @col_exists := (SELECT COUNT(*) FROM information_schema.COLUMNS
- WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'company_workflow_lobster' AND COLUMN_NAME = 'enable_content_personalization');
- SET @ddl := IF(@col_exists = 0,
- 'ALTER TABLE company_workflow_lobster ADD COLUMN enable_content_personalization tinyint DEFAULT NULL COMMENT ''null=inherit tenant'' AFTER execution_mode',
- 'SELECT 1');
- PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;
- SET @col_exists := (SELECT COUNT(*) FROM information_schema.COLUMNS
- WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'company_workflow_lobster' AND COLUMN_NAME = 'enable_flow_personalization');
- SET @ddl := IF(@col_exists = 0,
- 'ALTER TABLE company_workflow_lobster ADD COLUMN enable_flow_personalization tinyint DEFAULT NULL COMMENT ''null=inherit tenant'' AFTER enable_content_personalization',
- 'SELECT 1');
- PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;
- SET @col_exists := (SELECT COUNT(*) FROM information_schema.COLUMNS
- WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'company_workflow_lobster' AND COLUMN_NAME = 'strict_fixed_workflow');
- SET @ddl := IF(@col_exists = 0,
- 'ALTER TABLE company_workflow_lobster ADD COLUMN strict_fixed_workflow tinyint DEFAULT NULL COMMENT ''null=inherit tenant'' AFTER enable_flow_personalization',
- 'SELECT 1');
- PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;
- SET @col_exists := (SELECT COUNT(*) FROM information_schema.COLUMNS
- WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'company_workflow_lobster' AND COLUMN_NAME = 'auto_start_instance_on_tag');
- SET @ddl := IF(@col_exists = 0,
- 'ALTER TABLE company_workflow_lobster ADD COLUMN auto_start_instance_on_tag tinyint DEFAULT NULL COMMENT ''null=inherit tenant'' AFTER strict_fixed_workflow',
- 'SELECT 1');
- PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;
- -- A5) 租户菜单新增执行配置菜单 (29947)
- INSERT IGNORE INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, menu_type, icon, visible, status, is_frame, is_cache, perms, create_by, create_time, remark)
- VALUES (29947, '执行配置', 29900, 22, 'execution-config', 'lobster/execution-config/index', 'C', 'el-icon-setting', '0', '0', 0, 0, 'workflow:lobster:edit', 'admin', NOW(), 'Prompt/Instance/Hybrid switches');
- INSERT IGNORE INTO company_menu
- (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, company_id, remark)
- SELECT menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, NULL, remark
- FROM sys_menu WHERE menu_id = 29947;
- -- A6) 预选租户32 默认执行配置(可按需修改后执行)
- -- INSERT INTO lobster_execution_config
- -- (company_id, default_execution_mode, enable_content_personalization, enable_flow_personalization, strict_fixed_workflow, auto_start_instance_on_tag, create_by, create_time)
- -- VALUES (32, 'HYBRID', 1, 1, 0, 0, 'manual_deploy', NOW())
- -- ON DUPLICATE KEY UPDATE update_time = NOW();
- -- 验证
- SELECT 'lobster_execution_config' AS tbl, COUNT(*) AS cnt FROM lobster_execution_config;
- SELECT menu_id, menu_name, path FROM sys_menu WHERE menu_id = 29947;
- SHOW COLUMNS FROM company_workflow_lobster LIKE 'enable_%';
- SHOW COLUMNS FROM company_workflow_lobster_task LIKE 'external_contact_id';
- -- ===================== PART B: 全局库 ylrz_saas =====================
- -- USE ylrz_saas;
- INSERT IGNORE INTO tenant_sys_menu (menu_id, menu_name, parent_id, order_num, path, component, menu_type, icon, visible, status, is_frame, is_cache, perms, create_by, create_time, remark)
- VALUES
- (29947, '执行配置', 29900, 22, 'execution-config', 'lobster/execution-config/index', 'C', 'el-icon-setting', '0', '0', 0, 0, 'workflow:lobster:edit', 'admin', NOW(), 'Prompt/Instance/Hybrid switches');
- INSERT IGNORE INTO tenant_company_menu
- (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, company_id, remark)
- SELECT menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, NULL, remark
- FROM tenant_sys_menu
- WHERE menu_id = 29947;
- SELECT menu_id, menu_name, path FROM tenant_sys_menu WHERE menu_id = 29947;
|