package com.iailab.module.bpm.framework.flowable.core.candidate; import com.iailab.module.bpm.framework.flowable.core.enums.BpmTaskCandidateStrategyEnum; import org.flowable.engine.delegate.DelegateExecution; import java.util.Set; /** * BPM 任务的候选人的策略接口 * * 例如说:分配审批人 * * @author iailab */ public interface BpmTaskCandidateStrategy { /** * 对应策略 * * @return 策略 */ BpmTaskCandidateStrategyEnum getStrategy(); /** * 校验参数 * * @param param 参数 */ void validateParam(String param); /** * 基于执行任务,获得任务的候选用户们 * * @param execution 执行任务 * @return 用户编号集合 */ Set calculateUsers(DelegateExecution execution, String param); /** * 是否一定要输入参数 * * @return 是否 */ default boolean isParamRequired() { return true; } }