S8StatusRules.cs 943 B

1234567891011121314151617181920212223242526272829
  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", "PENDING_VERIFICATION"),
  15. ("PENDING_VERIFICATION", "CLOSED"),
  16. ("PENDING_VERIFICATION", "IN_PROGRESS"),
  17. ("IN_PROGRESS", "ESCALATED"),
  18. ("IN_PROGRESS", "REJECTED"),
  19. ("ESCALATED", "ASSIGNED"),
  20. ("ESCALATED", "IN_PROGRESS"),
  21. ("REJECTED", "NEW"),
  22. };
  23. public static bool IsAllowedTransition(string from, string to) =>
  24. Edges.Contains((from, to));
  25. public static bool IsTerminal(string status) => status == "CLOSED";
  26. }