工作流

WFIEngine.cs 3.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using WorkFlowApi.Utility.WorkFlowEngine.Scheme;
  7. using WorkFlowApi.Utility.WorkFlowEngine.Scheme.Config;
  8. using WorkFlowApi.Utility.WorkFlowEngine.Scheme.Line;
  9. using WorkFlowApi.Utility.WorkFlowEngine.Scheme.Node;
  10. namespace WorkFlowApi.Utility.WorkFlowEngine
  11. {
  12. /// <summary>
  13. /// 工作流引擎
  14. /// </summary>
  15. public interface WFIEngine
  16. {
  17. #region 流程模板操作方法
  18. /// <summary>
  19. /// 获取流程模板
  20. /// </summary>
  21. /// <returns></returns>
  22. string GetScheme();
  23. /// <summary>
  24. /// 获取流程模板
  25. /// </summary>
  26. /// <returns></returns>
  27. WFScheme GetSchemeObj();
  28. /// <summary>
  29. /// 获取开始节点
  30. /// </summary>
  31. /// <returns>节点信息</returns>
  32. WFNodeInfo GetStartNode();
  33. /// <summary>
  34. /// 获取节点
  35. /// </summary>
  36. /// <param name="nodeId">流程处理节点ID</param>
  37. /// <returns>节点信息</returns>
  38. WFNodeInfo GetNode(string nodeId);
  39. /// <summary>
  40. /// 获取两节点间的线条
  41. /// </summary>
  42. /// <param name="fromNodeId">开始节点</param>
  43. /// <param name="toNodeId">结束节点</param>
  44. /// <param name="list">线条列表</param>
  45. /// <param name="nodes"></param>
  46. bool GetLines(string fromNodeId, string toNodeId, List<WFLineInfo> list, Dictionary<string, string> nodes = null);
  47. /// <summary>
  48. /// 获取下一节点
  49. /// </summary>
  50. /// <param name="nodeId">当前节点Id</param>
  51. /// <param name="code">节点操作码 agree 同意 disagree 不同意 lrtimeout 超时</param>
  52. /// <param name="lineList"></param>
  53. /// <returns>节点信息列表</returns>
  54. List<WFNodeInfo> GetNextNodes(string nodeId, string code, List<WFLineInfo> lineList);
  55. string GetButonList(string nodeId, List<WFLineInfo> lineList);
  56. /// <summary>
  57. /// 获取上一节点列表
  58. /// </summary>
  59. /// <param name="nodeId">当前节点Id</param>
  60. /// <returns></returns>
  61. List<string> GetPreNodes(string nodeId);
  62. /// <summary>
  63. /// 判断两节点是否连接
  64. /// </summary>
  65. /// <param name="formNodeId">开始节点</param>
  66. /// <param name="toNodeId">结束节点</param>
  67. /// <returns></returns>
  68. bool IsToNode(string formNodeId, string toNodeId);
  69. #endregion
  70. #region 流程运行操作方法
  71. /// <summary>
  72. /// 获取配置参数信息
  73. /// </summary>
  74. /// <returns></returns>
  75. WFEngineParamConfig GetConfig();
  76. /// <summary>
  77. /// 获取接下来的任务节点信息
  78. /// </summary>
  79. /// <param name="beginNode">起始节点</param>
  80. /// <param name="code">节点操作码 agree 同意 disagree 不同意 lrtimeout 超时</param>
  81. /// <param name="isGetAuditors">是否获取下一节点审核人</param>
  82. /// <param name="lineList">经过的线段需要执行操作的</param>
  83. /// <returns></returns>
  84. List<WFNodeInfo> GetNextTaskNode(WFNodeInfo beginNode, string code, bool isGetAuditors, List<WFLineInfo> lineList,string branchnodeCode = "");
  85. #endregion
  86. }
  87. }