| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- using System.Diagnostics;
- using Admin.NET.Core;
- using SqlSugar;
- namespace Admin.NET.Plugin.AiDOP.Infrastructure;
- /// <summary>
- /// 一次性迁移:将历史 TenantId=1 的 AiDOP 业务数据更新为框架默认租户。
- /// 幂等——若已无 TenantId=1 的行则不做任何事。
- /// </summary>
- public static class AidopTenantMigration
- {
- private static readonly string[] Tables =
- {
- "ado_smart_ops_kpi_master",
- "ado_smart_ops_layout_item",
- "ado_smart_ops_home_module",
- "ado_s9_kpi_value_l1_day",
- "ado_s9_kpi_value_l2_day",
- "ado_s9_kpi_value_l3_day"
- };
- public static void MigrateOldTenantId(ISqlSugarClient db)
- {
- var target = SqlSugarConst.DefaultTenantId;
- if (target == 1) return;
- foreach (var tbl in Tables)
- {
- try
- {
- db.Ado.ExecuteCommand(
- $"UPDATE `{tbl}` SET `TenantId` = @target WHERE `TenantId` = 1",
- new { target });
- }
- catch (Exception ex)
- {
- Trace.TraceWarning($"AidopTenantMigration [{tbl}]: {ex.Message}");
- }
- }
- DropOldUniqueIndex(db);
- BackfillThresholds(db);
- }
- private static void BackfillThresholds(ISqlSugarClient db)
- {
- try
- {
- db.Ado.ExecuteCommand(
- "UPDATE ado_smart_ops_kpi_master SET YellowThreshold=95, RedThreshold=80 " +
- "WHERE YellowThreshold IS NULL AND Direction='higher_is_better'");
- db.Ado.ExecuteCommand(
- "UPDATE ado_smart_ops_kpi_master SET YellowThreshold=110, RedThreshold=120 " +
- "WHERE YellowThreshold IS NULL AND Direction='lower_is_better'");
- }
- catch (Exception ex)
- {
- Trace.TraceWarning($"AidopTenantMigration backfill thresholds: {ex.Message}");
- }
- }
- private static void DropOldUniqueIndex(ISqlSugarClient db)
- {
- try
- {
- var rows = db.Ado.SqlQuery<dynamic>(
- "SHOW INDEX FROM ado_smart_ops_kpi_master WHERE Key_name = 'uk_kpi_master_code'");
- if (rows != null && rows.Count > 0)
- db.Ado.ExecuteCommand("ALTER TABLE ado_smart_ops_kpi_master DROP INDEX uk_kpi_master_code");
- }
- catch (Exception ex)
- {
- Trace.TraceWarning($"AidopTenantMigration drop old index: {ex.Message}");
- }
- }
- }
|