lobster_execution_tenant32_deploy.sql 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. -- =============================================================================
  2. -- 数字员工双模式 + 千人千面 为 租户32 指定配置部署
  3. -- 目标库: ylrz_saas_tenant_1 (company_id = 32)
  4. -- 全局说明: ylrz_saas (tenant_sys_menu)
  5. --
  6. -- 执行方式(DataGrip / Navicat):
  7. -- 1) 选择租户库,执行「PART A」全部
  8. -- 2) 选择切换到 ylrz_saas,执行「PART B」
  9. -- 3) 重启 fs-saas-company / fs-saas-admin
  10. --
  11. -- 依赖 Flyway:
  12. -- V20260615_01__lobster_execution_mode.sql
  13. -- V20260615_02__lobster_execution_config_menu.sql
  14. -- V20260615_03__lobster_template_execution_policy.sql
  15. -- =============================================================================
  16. -- ===================== PART A: 租户库 ylrz_saas_tenant_1 =====================
  17. -- USE ylrz_saas_tenant_1;
  18. -- A1) 租户级别执行配置表
  19. CREATE TABLE IF NOT EXISTS `lobster_execution_config`
  20. (
  21. `id` bigint NOT NULL AUTO_INCREMENT,
  22. `company_id` bigint NOT NULL COMMENT 'tenant company id',
  23. `default_execution_mode` varchar(16) NOT NULL DEFAULT 'HYBRID' COMMENT 'PROMPT/INSTANCE/HYBRID',
  24. `enable_content_personalization` tinyint NOT NULL DEFAULT 1,
  25. `enable_flow_personalization` tinyint NOT NULL DEFAULT 1,
  26. `strict_fixed_workflow` tinyint NOT NULL DEFAULT 0,
  27. `auto_start_instance_on_tag` tinyint NOT NULL DEFAULT 0,
  28. `create_by` varchar(64) DEFAULT NULL,
  29. `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
  30. `update_by` varchar(64) DEFAULT NULL,
  31. `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  32. PRIMARY KEY (`id`),
  33. UNIQUE KEY `uk_company_id` (`company_id`)
  34. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='lobster execution policy';
  35. -- A2) 模板表 execution_mode
  36. SET @col_exists := (SELECT COUNT(*) FROM information_schema.COLUMNS
  37. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'company_workflow_lobster' AND COLUMN_NAME = 'execution_mode');
  38. SET @ddl := IF(@col_exists = 0,
  39. 'ALTER TABLE company_workflow_lobster ADD COLUMN execution_mode varchar(16) DEFAULT NULL COMMENT ''PROMPT/INSTANCE/HYBRID'' AFTER canvas_data',
  40. 'SELECT 1');
  41. PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  42. -- A3) 任务表 external_contact_id
  43. SET @col_exists := (SELECT COUNT(*) FROM information_schema.COLUMNS
  44. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'company_workflow_lobster_task' AND COLUMN_NAME = 'external_contact_id');
  45. SET @ddl := IF(@col_exists = 0,
  46. 'ALTER TABLE company_workflow_lobster_task ADD COLUMN external_contact_id bigint DEFAULT NULL COMMENT ''qw_external_contact.id'' AFTER binding_id',
  47. 'SELECT 1');
  48. PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  49. -- A4) 模板级千人千面(null = 继承租户 lobster_execution_config)
  50. SET @col_exists := (SELECT COUNT(*) FROM information_schema.COLUMNS
  51. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'company_workflow_lobster' AND COLUMN_NAME = 'enable_content_personalization');
  52. SET @ddl := IF(@col_exists = 0,
  53. 'ALTER TABLE company_workflow_lobster ADD COLUMN enable_content_personalization tinyint DEFAULT NULL COMMENT ''null=inherit tenant'' AFTER execution_mode',
  54. 'SELECT 1');
  55. PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  56. SET @col_exists := (SELECT COUNT(*) FROM information_schema.COLUMNS
  57. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'company_workflow_lobster' AND COLUMN_NAME = 'enable_flow_personalization');
  58. SET @ddl := IF(@col_exists = 0,
  59. 'ALTER TABLE company_workflow_lobster ADD COLUMN enable_flow_personalization tinyint DEFAULT NULL COMMENT ''null=inherit tenant'' AFTER enable_content_personalization',
  60. 'SELECT 1');
  61. PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  62. SET @col_exists := (SELECT COUNT(*) FROM information_schema.COLUMNS
  63. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'company_workflow_lobster' AND COLUMN_NAME = 'strict_fixed_workflow');
  64. SET @ddl := IF(@col_exists = 0,
  65. 'ALTER TABLE company_workflow_lobster ADD COLUMN strict_fixed_workflow tinyint DEFAULT NULL COMMENT ''null=inherit tenant'' AFTER enable_flow_personalization',
  66. 'SELECT 1');
  67. PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  68. SET @col_exists := (SELECT COUNT(*) FROM information_schema.COLUMNS
  69. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'company_workflow_lobster' AND COLUMN_NAME = 'auto_start_instance_on_tag');
  70. SET @ddl := IF(@col_exists = 0,
  71. 'ALTER TABLE company_workflow_lobster ADD COLUMN auto_start_instance_on_tag tinyint DEFAULT NULL COMMENT ''null=inherit tenant'' AFTER strict_fixed_workflow',
  72. 'SELECT 1');
  73. PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;
  74. -- A5) 租户菜单新增执行配置菜单 (29947)
  75. 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)
  76. 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');
  77. INSERT IGNORE INTO company_menu
  78. (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)
  79. 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
  80. FROM sys_menu WHERE menu_id = 29947;
  81. -- A6) 预选租户32 默认执行配置(可按需修改后执行)
  82. -- INSERT INTO lobster_execution_config
  83. -- (company_id, default_execution_mode, enable_content_personalization, enable_flow_personalization, strict_fixed_workflow, auto_start_instance_on_tag, create_by, create_time)
  84. -- VALUES (32, 'HYBRID', 1, 1, 0, 0, 'manual_deploy', NOW())
  85. -- ON DUPLICATE KEY UPDATE update_time = NOW();
  86. -- 验证
  87. SELECT 'lobster_execution_config' AS tbl, COUNT(*) AS cnt FROM lobster_execution_config;
  88. SELECT menu_id, menu_name, path FROM sys_menu WHERE menu_id = 29947;
  89. SHOW COLUMNS FROM company_workflow_lobster LIKE 'enable_%';
  90. SHOW COLUMNS FROM company_workflow_lobster_task LIKE 'external_contact_id';
  91. -- ===================== PART B: 全局库 ylrz_saas =====================
  92. -- USE ylrz_saas;
  93. 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)
  94. VALUES
  95. (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');
  96. INSERT IGNORE INTO tenant_company_menu
  97. (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)
  98. 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
  99. FROM tenant_sys_menu
  100. WHERE menu_id = 29947;
  101. SELECT menu_id, menu_name, path FROM tenant_sys_menu WHERE menu_id = 29947;