namespace Admin.NET.Plugin.AiDOP.SmartOps; /// S1~S4 代码默认目标,兼容期由解析器统一调用;模块层不得再自行 fallback。 public static class LegacyKpiCodeTargets { public static bool TryGet(string metricCode, out decimal target) { target = metricCode switch { "S1_L1_001" or "S1_L2_001" or "S1_L2_004" or "S1_L2_010" => 3m, "S1_L1_004" => 60m, "S1_L1_002" or "S1_L2_002" or "S1_L2_005" or "S1_L2_011" or "S1_L2_013" or "S1_L2_014" or "S1_L2_015" => 95m, "S1_L1_003" or "S1_L2_003" or "S1_L2_006" or "S1_L2_012" => 100m, "S1_L3_001" or "S1_L3_101" => 8m, "S1_L3_002" or "S1_L3_102" => 12m, "S1_L3_003" or "S1_L3_103" => 8m, "S1_L3_004" or "S1_L3_104" => 10m, "S1_L3_005" or "S1_L3_105" => 2m, "S1_L4_001" or "S1_L4_101" => 2m, "S1_L4_002" or "S1_L4_102" => 3m, "S1_L4_003" or "S1_L4_103" => 1m, "S1_L4_004" or "S1_L4_104" => 2m, "S2_L1_001" => 20m, "S2_L1_002" => 99m, "S2_L1_003" => 20m, "S2_L1_004" => 18m, "S2_L2_001" => 1.2m, "S2_L2_002" => 95m, "S2_L2_003" => 20m, "S2_L3_001" => 3m, "S2_L3_002" => 95m, "S2_L3_003" => 60m, "S2_L3_004" => 3m, "S2_L3_005" => 95m, "S2_L3_006" => 60m, "S3_L1_001" => 15m, "S3_L1_002" => 95m, "S3_L2_004" => 10.5m, "S3_L2_005" => 96.72m, "S3_L3_001" => 5m, "S3_L3_002" => 7m, "S3_L3_003" => 92m, "S3_L3_004" => 90m, "S3_L3_005" => 15m, "S3_L3_006" => 85m, "S4_L1_001" or "S4_L2_001" or "S4_L3_001" => 10.26m, "S4_L1_002" or "S4_L2_002" or "S4_L3_002" => 99m, "S4_L1_003" or "S4_L2_003" or "S4_L3_003" => 250m, "S4_L1_004" or "S4_L2_004" or "S4_L3_004" => 45m, _ => 0m }; // S4_L1_002 mapping: original is S4_L1_002 or S4_L2_002 or S4_L3_002 => 99 return target > 0; } public static decimal GetOrZero(string metricCode) => TryGet(metricCode, out var v) ? v : 0m; }