Package com.codingapi.flow.service.impl
Class FlowSubProcessResetService
java.lang.Object
com.codingapi.flow.service.impl.FlowSubProcessResetService
子流程数据重置服务(独立接口,不属于常规审批动作)。
重置以「已完成的子流程聚合记录」为目标:由选中的子流程实例流程id定位其所属聚合组, 旧聚合组标记为已取代(保留审计),新聚合组由继承实例(未选中,沿用原结果)与 重建实例(选中,基于旧实例数据从头重新发起的全新子流程)组成;当前记录作废, 主流程退回子流程节点重新等待,新聚合组完成后经既有结果判定恢复主流程。
可重置性由子流程节点的 SubProcessStrategy#isResettable() 配置控制,默认关闭;
同时要求当前操作记录位于该子流程触发锚点的真实下游记录链上(条件/并行分支中
不在该子流程之后的节点不可重置)。重建沿用子流程节点配置的创建脚本提交策略,
不迁移、不跳过任何历史数据,历史聚合组与旧实例记录保持有效可查。
-
Constructor Summary
ConstructorsConstructorDescriptionFlowSubProcessResetService(FlowSubProcessResetRequest request, IRepositoryHolder repositoryHolder) -
Method Summary
Modifier and TypeMethodDescriptionstatic booleancanReset(FlowRecord record, IRepositoryHolder repositoryHolder) 判断指定记录当前是否可以执行子流程重置(供详情数据计算重置标识)。voidreset()执行子流程数据重置。
-
Constructor Details
-
FlowSubProcessResetService
public FlowSubProcessResetService(FlowSubProcessResetRequest request, IRepositoryHolder repositoryHolder)
-
-
Method Details
-
reset
public void reset()执行子流程数据重置。 -
canReset
判断指定记录当前是否可以执行子流程重置(供详情数据计算重置标识)。满足全部条件时返回 true:记录为待办、所属流程存在未取代且已放行、全部实例已结束的 聚合组,该子流程节点配置了重置能力,且记录位于锁定合并节点(锚点之后首个产生业务 记录的节点,并行/包容分支扇出时按记录产生顺序取第一个分支节点)。
- Parameters:
record- 当前记录repositoryHolder- 仓储持有者- Returns:
- 可重置返回 true
-