LegacyKpiCodeTargets.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. namespace Admin.NET.Plugin.AiDOP.SmartOps;
  2. /// <summary>S1~S4 代码默认目标,兼容期由解析器统一调用;模块层不得再自行 fallback。</summary>
  3. public static class LegacyKpiCodeTargets
  4. {
  5. public static bool TryGet(string metricCode, out decimal target)
  6. {
  7. target = metricCode switch
  8. {
  9. "S1_L1_001" or "S1_L2_001" or "S1_L2_004" or "S1_L2_010" => 3m,
  10. "S1_L1_004" => 60m,
  11. "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,
  12. "S1_L1_003" or "S1_L2_003" or "S1_L2_006" or "S1_L2_012" => 100m,
  13. "S1_L3_001" or "S1_L3_101" => 8m,
  14. "S1_L3_002" or "S1_L3_102" => 12m,
  15. "S1_L3_003" or "S1_L3_103" => 8m,
  16. "S1_L3_004" or "S1_L3_104" => 10m,
  17. "S1_L3_005" or "S1_L3_105" => 2m,
  18. "S1_L4_001" or "S1_L4_101" => 2m,
  19. "S1_L4_002" or "S1_L4_102" => 3m,
  20. "S1_L4_003" or "S1_L4_103" => 1m,
  21. "S1_L4_004" or "S1_L4_104" => 2m,
  22. "S2_L1_001" => 20m,
  23. "S2_L1_002" => 99m,
  24. "S2_L1_003" => 20m,
  25. "S2_L1_004" => 18m,
  26. "S2_L2_001" => 1.2m,
  27. "S2_L2_002" => 95m,
  28. "S2_L2_003" => 20m,
  29. "S2_L3_001" => 3m,
  30. "S2_L3_002" => 95m,
  31. "S2_L3_003" => 60m,
  32. "S2_L3_004" => 3m,
  33. "S2_L3_005" => 95m,
  34. "S2_L3_006" => 60m,
  35. "S3_L1_001" => 15m,
  36. "S3_L1_002" => 95m,
  37. "S3_L2_004" => 10.5m,
  38. "S3_L2_005" => 96.72m,
  39. "S3_L3_001" => 5m,
  40. "S3_L3_002" => 7m,
  41. "S3_L3_003" => 92m,
  42. "S3_L3_004" => 90m,
  43. "S3_L3_005" => 15m,
  44. "S3_L3_006" => 85m,
  45. "S4_L1_001" or "S4_L2_001" or "S4_L3_001" => 10.26m,
  46. "S4_L1_002" or "S4_L2_002" or "S4_L3_002" => 99m,
  47. "S4_L1_003" or "S4_L2_003" or "S4_L3_003" => 250m,
  48. "S4_L1_004" or "S4_L2_004" or "S4_L3_004" => 45m,
  49. _ => 0m
  50. };
  51. // S4_L1_002 mapping: original is S4_L1_002 or S4_L2_002 or S4_L3_002 => 99
  52. return target > 0;
  53. }
  54. public static decimal GetOrZero(string metricCode) => TryGet(metricCode, out var v) ? v : 0m;
  55. }