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