package com.iailab.module.bpm.enums.task; import com.iailab.framework.common.util.object.ObjectUtils; import lombok.AllArgsConstructor; import lombok.Getter; /** * æµç¨‹ä»»åŠ¡ Task 的状æ€æžšä¸¾ * * @author jason */ @Getter @AllArgsConstructor public enum BpmTaskStatusEnum { RUNNING(1, "审批ä¸"), APPROVE(2, "审批通过"), REJECT(3, "审批ä¸é€šè¿‡"), CANCEL(4, "å·²å–消"), RETURN(5, "已退回"), DELEGATE(6, "委派ä¸"), /** * 使用场景: * 1. 任务被å‘åŽã€åŠ ç¾ã€‘时,它在审批通过åŽï¼Œä¼šå˜æˆ APPROVING 这个状æ€ï¼Œç„¶åŽç‰åˆ°ã€åŠ ç¾ã€‘出æ¥çš„任务都被审批åŽï¼Œæ‰ä¼šå˜æˆ APPROVE 审批通过 */ APPROVING(7, "审批通过ä¸"), /** * 使用场景: * 1. 任务被å‘å‰ã€åŠ ç¾ã€‘时,它会å˜æˆ WAIT 状æ€ï¼Œéœ€è¦ç‰å¾…ã€åŠ ç¾ã€‘出æ¥çš„任务被审批åŽï¼Œå®ƒæ‰èƒ½ç»§ç»å˜ä¸º RUNNING 继ç»å®¡æ‰¹ * 2. 任务被å‘åŽã€åŠ ç¾ã€‘时,ã€åŠ ç¾ã€‘出æ¥çš„任务处于 WAIT 状æ€ï¼Œå®ƒä»¬éœ€è¦ç‰å¾…该任务被审批åŽï¼Œå®ƒä»¬æ‰èƒ½ç»§ç»å˜ä¸º RUNNING 继ç»å®¡æ‰¹ */ WAIT(0, "待审批"); /** * çŠ¶æ€ * <p> * å¦‚æžœæ–°å¢žæ—¶ï¼Œæ³¨æ„ {@link #isEndStatus(Integer)} 是å¦éœ€è¦å˜æ›´ */ private final Integer status; /** * åå— */ private final String name; /** * 判æ–该状æ€æ˜¯å¦å·²ç»å¤„于 End æœ€ç»ˆçŠ¶æ€ * <p> * 主è¦ç”¨äºŽä¸€äº›çŠ¶æ€æ›´æ–°çš„逻辑,如果已ç»æ˜¯æœ€ç»ˆçŠ¶æ€ï¼Œå°±ä¸å†è¿›è¡Œæ›´æ–° * * @param status çŠ¶æ€ * @return æ˜¯å¦ */ public static boolean isEndStatus(Integer status) { return ObjectUtils.equalsAny(status, APPROVE.getStatus(), REJECT.getStatus(), CANCEL.getStatus(), RETURN.getStatus(), APPROVING.getStatus()); } }