package cn.iocoder.yudao.module.system.api.approval; import java.util.Set; /** * 通用审批配置 API 接口 * * 供各业务模块(ERP / CRM / HRM / MES / 售后)在提交审批、执行审核时调用, * 替代原先依赖 BPM(Flowable)流程定义的方式。 * * @author 超级管理员 */ public interface ApprovalConfigApi { /** * 校验业务类型已启用审批且配置了有效审批人,并返回审批人编号集合 * * 业务模块在「提交审核」时调用。校验失败时抛出业务异常: * 未配置审批 / 未启用审批 / 未配置审批人。 * * @param bizType 业务类型编码 * @return 审批人用户编号集合 */ Set validateApprovalEnabledAndGetApprovers(String bizType); /** * 校验指定用户是否为该业务类型的审批人 * * 业务模块在「执行审核」时调用,非审批人将抛出业务异常。 * * @param bizType 业务类型编码 * @param userId 用户编号 */ void validateApprover(String bizType, Long userId); /** * 获得指定业务类型的审批人编号集合 * * 用于列表页判断是否展示审核按钮,未配置时返回空集合。 * * @param bizType 业务类型编码 * @return 审批人用户编号集合 */ Set getApproverUserIds(String bizType); /** * 判断指定用户是否为该业务类型的审批人 * * @param bizType 业务类型编码 * @param userId 用户编号 * @return 是否为审批人 */ default boolean isApprover(String bizType, Long userId) { return userId != null && getApproverUserIds(bizType).contains(userId); } }