Package com.codingapi.flow.domain
Class SubProcessRecord
java.lang.Object
com.codingapi.flow.domain.SubProcessRecord
子流程节点的一次执行记录(聚合根)。
一个子流程节点(SUB_PROCESS)每次执行时创建一条记录,内部实例列表 instances
记录本次创建的全部子流程实例。当全部实例结束且结果脚本确认通过时置为 SubProcessRecord.State.PASSED
并恢复主流程;全部实例结束但结果未通过时置为 SubProcessRecord.State.ERROR 并跳转异常节点。
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class子流程实例。static enum子流程实例状态。static enum子流程节点执行的聚合状态。 -
Constructor Summary
ConstructorsConstructorDescriptionSubProcessRecord(long id, String groupId, String parentProcessId, long parentRecordId, long parentWorkRuntimeId, String nodeId, int totalCount, List<SubProcessRecord.Instance> instances, SubProcessRecord.State state, long createTime, long finishTime) 全字段构造(持久化转换使用)。SubProcessRecord(long id, String groupId, String parentProcessId, long parentRecordId, long parentWorkRuntimeId, String nodeId, int totalCount, List<SubProcessRecord.Instance> instances, SubProcessRecord.State state, long createTime, long finishTime, boolean superseded) 全字段构造(含已取代标记)。SubProcessRecord(String groupId, FlowRecord parentRecord, String nodeId, List<SubProcessRecord.Instance> instances) 创建子流程执行记录,初始状态为等待子流程结果。 -
Method Summary
Modifier and TypeMethodDescriptionbooleancomplete(FlowRecord finalRecord) 完成一个子流程实例。booleancontainsChildProcess(String processId) 判断本次执行是否包含指定子流程。voiderror()标记本次执行异常:全部实例结束但结果未通过时跳转异常节点。查找全部已结束实例的最终记录id。boolean是否全部子流程实例已结束(正常结束或终止)。booleanisError()是否已异常(结果未通过,已跳转异常节点)。booleanisPassed()是否已通过(结果脚本确认通过,主流程已恢复)。boolean是否已被重置取代。boolean是否仍处于等待子流程结果状态。voidpass()标记本次执行通过:结果脚本确认后恢复主流程。snapshot()生成本记录的不可变快照(供事件携带,避免异步消费时被后续状态变更污染)。void标记本次执行已被重置取代。
-
Constructor Details
-
SubProcessRecord
public SubProcessRecord(long id, String groupId, String parentProcessId, long parentRecordId, long parentWorkRuntimeId, String nodeId, int totalCount, List<SubProcessRecord.Instance> instances, SubProcessRecord.State state, long createTime, long finishTime) 全字段构造(持久化转换使用)。- Parameters:
id- 记录idgroupId- 本次子流程执行的分组idparentProcessId- 父流程(主流程)的流程idparentRecordId- 父流程中子流程节点的执行记录idparentWorkRuntimeId- 父流程(主流程)的运行实例idnodeId- 父流程中子流程节点的节点idtotalCount- 本次创建的子流程实例总数instances- 本次创建的全部子流程实例state- 本次子流程执行的聚合状态createTime- 创建时间(毫秒时间戳)finishTime- 结束时间(毫秒时间戳),未结束时为 0
-
SubProcessRecord
public SubProcessRecord(long id, String groupId, String parentProcessId, long parentRecordId, long parentWorkRuntimeId, String nodeId, int totalCount, List<SubProcessRecord.Instance> instances, SubProcessRecord.State state, long createTime, long finishTime, boolean superseded) 全字段构造(含已取代标记)。- Parameters:
superseded- 是否已被重置取代
-
SubProcessRecord
public SubProcessRecord(String groupId, FlowRecord parentRecord, String nodeId, List<SubProcessRecord.Instance> instances) 创建子流程执行记录,初始状态为等待子流程结果。- Parameters:
groupId- 本次子流程执行的分组idparentRecord- 父流程中子流程节点的执行记录nodeId- 父流程中子流程节点的节点idinstances- 本次创建的子流程实例
-
-
Method Details
-
supersede
public void supersede()标记本次执行已被重置取代。聚合状态保持不变(保留审计语义),仅置位已取代标记。
-
isSuperseded
public boolean isSuperseded()是否已被重置取代。 -
snapshot
生成本记录的不可变快照(供事件携带,避免异步消费时被后续状态变更污染)。- Returns:
- 字段相同的副本,实例列表不可变
-
containsChildProcess
判断本次执行是否包含指定子流程。- Parameters:
processId- 子流程的流程id- Returns:
- 包含返回 true;否则返回 false
-
complete
完成一个子流程实例。将指定子流程实例标记为最终状态(正常结束或终止),并记录结束时间。
- Parameters:
finalRecord- 子流程的最终执行记录- Returns:
- 实例存在且处于运行中并完成时返回 true;否则返回 false
-
isAllFinished
public boolean isAllFinished()是否全部子流程实例已结束(正常结束或终止)。 -
isWaiting
public boolean isWaiting()是否仍处于等待子流程结果状态。 -
isPassed
public boolean isPassed()是否已通过(结果脚本确认通过,主流程已恢复)。 -
isError
public boolean isError()是否已异常(结果未通过,已跳转异常节点)。 -
pass
public void pass()标记本次执行通过:结果脚本确认后恢复主流程。 -
error
public void error()标记本次执行异常:全部实例结束但结果未通过时跳转异常节点。 -
findFinishedRecordIds
查找全部已结束实例的最终记录id。- Returns:
- 已结束实例的最终记录id列表
-