IWorkflow.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. namespace XF.Domain.Entities;
  2. public interface IWorkflow
  3. {
  4. string? WorkflowId { get; set; }
  5. /// <summary>
  6. /// 过期时间配置id
  7. /// </summary>
  8. string? ExpiredTimeConfigId { get; set; }
  9. /// <summary>
  10. /// 流经部门
  11. /// </summary>
  12. List<string> FlowedOrgIds { get; set; }
  13. /// <summary>
  14. /// 流经办理人
  15. /// </summary>
  16. List<string> FlowedUserIds { get; set; }
  17. #region 当前办理对象
  18. /// <summary>
  19. /// 办理人id
  20. /// </summary>
  21. public List<HandlerGroupItem> HandlerUsers { get; set; }
  22. /// <summary>
  23. /// 办理部门id
  24. /// </summary>
  25. public List<HandlerGroupItem> HandlerOrgs { get; set; }
  26. #endregion
  27. void Assign(EFlowAssignType type, string handler);
  28. void Assign(EFlowAssignType type, IEnumerable<string> handlers);
  29. /// <summary>
  30. /// 是否可查看
  31. /// </summary>
  32. /// <param name="userId"></param>
  33. /// <param name="orgId"></param>
  34. /// <returns></returns>
  35. bool CanView(string userId, string orgId);
  36. /// <summary>
  37. /// 是否能办理
  38. /// </summary>
  39. /// <param name="userId"></param>
  40. /// <param name="orgId"></param>
  41. /// <returns></returns>
  42. bool CanHandle(string userId, string orgId);
  43. /// <summary>
  44. /// 流程每次流转时更新待办对象及流经对象
  45. /// </summary>
  46. void Flowed(List<string> flowedUserIds, List<string> flowedOrgIds,
  47. List<HandlerGroupItem> handlerUsers, List<HandlerGroupItem> handlerOrgs);
  48. }
  49. public enum EFlowAssignType
  50. {
  51. /// <summary>
  52. /// 指派到部门
  53. /// </summary>
  54. Org = 0,
  55. /// <summary>
  56. /// 指派到用户
  57. /// </summary>
  58. User = 1,
  59. /// <summary>
  60. /// 指派到角色
  61. /// </summary>
  62. Role = 2,
  63. }
  64. /// <summary>
  65. /// 办理对象分组(以办理step分组,多人办理一个step为一组)
  66. /// </summary>
  67. public class HandlerGroupItem
  68. {
  69. public string GroupId { get; set; }
  70. public string Key { get; set; }
  71. public string Value { get; set; }
  72. }