houzhongyi
2024-07-11 e7c1260db32209a078a962aaa0ad5492c35774fb
提交 | 用户 | 时间
e7c126 1 package com.iailab.module.bpm.enums.task;
H 2
3 import com.iailab.framework.common.util.object.ObjectUtils;
4 import lombok.AllArgsConstructor;
5 import lombok.Getter;
6
7 /**
8  * 流程任务 Task 的状态枚举
9  *
10  * @author jason
11  */
12 @Getter
13 @AllArgsConstructor
14 public enum BpmTaskStatusEnum {
15
16     RUNNING(1, "审批中"),
17     APPROVE(2, "审批通过"),
18     REJECT(3, "审批不通过"),
19     CANCEL(4, "已取消"),
20
21     RETURN(5, "已退回"),
22     DELEGATE(6, "委派中"),
23
24     /**
25      * 使用场景:
26      * 1. 任务被向后【加签】时,它在审批通过后,会变成 APPROVING 这个状态,然后等到【加签】出来的任务都被审批后,才会变成 APPROVE 审批通过
27      */
28     APPROVING(7, "审批通过中"),
29     /**
30      * 使用场景:
31      * 1. 任务被向前【加签】时,它会变成 WAIT 状态,需要等待【加签】出来的任务被审批后,它才能继续变为 RUNNING 继续审批
32      * 2. 任务被向后【加签】时,【加签】出来的任务处于 WAIT 状态,它们需要等待该任务被审批后,它们才能继续变为 RUNNING 继续审批
33      */
34     WAIT(0, "待审批");
35
36     /**
37      * 状态
38      * <p>
39      * 如果新增时,注意 {@link #isEndStatus(Integer)} 是否需要变更
40      */
41     private final Integer status;
42     /**
43      * 名字
44      */
45     private final String name;
46
47     /**
48      * 判断该状态是否已经处于 End 最终状态
49      * <p>
50      * 主要用于一些状态更新的逻辑,如果已经是最终状态,就不再进行更新
51      *
52      * @param status 状态
53      * @return 是否
54      */
55     public static boolean isEndStatus(Integer status) {
56         return ObjectUtils.equalsAny(status,
57                 APPROVE.getStatus(), REJECT.getStatus(), CANCEL.getStatus(),
58                 RETURN.getStatus(), APPROVING.getStatus());
59     }
60
61 }