S8StatusRules.cs 1.0 KB

1234567891011121314151617181920212223242526272829303132
  1. namespace Admin.NET.Plugin.AiDOP.Infrastructure.S8;
  2. /// <summary>
  3. /// 异常状态合法流转(与 S8 方案文档 3.5 节一致)。
  4. /// </summary>
  5. public static class S8StatusRules
  6. {
  7. private static readonly HashSet<(string From, string To)> Edges = new()
  8. {
  9. ("NEW", "ASSIGNED"),
  10. ("NEW", "REJECTED"),
  11. ("ASSIGNED", "IN_PROGRESS"),
  12. ("ASSIGNED", "ESCALATED"),
  13. ("ASSIGNED", "REJECTED"),
  14. ("IN_PROGRESS", "RESOLVED"),
  15. ("IN_PROGRESS", "PENDING_VERIFICATION"),
  16. ("PENDING_VERIFICATION", "RESOLVED"),
  17. ("PENDING_VERIFICATION", "IN_PROGRESS"),
  18. ("IN_PROGRESS", "ESCALATED"),
  19. ("IN_PROGRESS", "REJECTED"),
  20. ("RESOLVED", "CLOSED"),
  21. ("RESOLVED", "IN_PROGRESS"),
  22. ("ESCALATED", "ASSIGNED"),
  23. ("ESCALATED", "IN_PROGRESS"),
  24. ("REJECTED", "NEW"),
  25. };
  26. public static bool IsAllowedTransition(string from, string to) =>
  27. Edges.Contains((from, to));
  28. public static bool IsTerminal(string status) => status == "CLOSED";
  29. }