liu
23 小时以前 e347fd6e8b523b75e7eb28627ba3597cf9e40f6a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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<Long> validateApprovalEnabledAndGetApprovers(String bizType);
 
    /**
     * 校验指定用户是否为该业务类型的审批人
     *
     * 业务模块在「执行审核」时调用,非审批人将抛出业务异常。
     *
     * @param bizType 业务类型编码
     * @param userId  用户编号
     */
    void validateApprover(String bizType, Long userId);
 
    /**
     * 获得指定业务类型的审批人编号集合
     *
     * 用于列表页判断是否展示审核按钮,未配置时返回空集合。
     *
     * @param bizType 业务类型编码
     * @return 审批人用户编号集合
     */
    Set<Long> getApproverUserIds(String bizType);
 
    /**
     * 判断指定用户是否为该业务类型的审批人
     *
     * @param bizType 业务类型编码
     * @param userId  用户编号
     * @return 是否为审批人
     */
    default boolean isApprover(String bizType, Long userId) {
        return userId != null && getApproverUserIds(bizType).contains(userId);
    }
 
}