package cn.iocoder.yudao.module.finance.enums; import cn.iocoder.yudao.framework.common.core.ArrayValuable; import lombok.Getter; import lombok.RequiredArgsConstructor; import java.util.Arrays; import java.util.Objects; /** * 凭证状态枚举 * * 状态流转:unposted(未过账)-> posted(已过账);unposted(未过账)-> cancelled(已作废) * * @author 超级管理员 */ @RequiredArgsConstructor @Getter public enum FinVoucherStatusEnum implements ArrayValuable { UNPOSTED(0, "未过账"), POSTED(10, "已过账"), CANCELLED(20, "已作废"); public static final Integer[] ARRAYS = Arrays.stream(values()).map(FinVoucherStatusEnum::getStatus).toArray(Integer[]::new); /** * 状态 */ private final Integer status; /** * 状态名 */ private final String name; @Override public Integer[] array() { return ARRAYS; } public static FinVoucherStatusEnum valueOf(Integer status) { return Arrays.stream(values()).filter(item -> Objects.equals(item.getStatus(), status)) .findFirst().orElse(null); } public static String getName(Integer status) { FinVoucherStatusEnum statusEnum = valueOf(status); return statusEnum == null ? String.valueOf(status) : statusEnum.getName(); } }