package cn.iocoder.yudao.module.erp.enums;
import cn.iocoder.yudao.framework.common.core.ArrayValuable;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
/**
* ERP 采购订单审批状态枚举
*
*
改造说明:采购订单原先复用 {@link ErpAuditStatus} 并依赖 BPM(Flowable)流程审批,
* 现改为与「产品技术确认函」一致的轻量级单级/或签状态机,故独立定义本枚举,
* 避免与 {@link ErpAuditStatus} 中 CANCEL(30, 已作废) 的取值冲突。
*
*
取值与字典 erp_audit_status 对齐(0 草稿 / 10 审批中 / 20 审批通过 / 30 审批不通过),
* 因此列表页仍可沿用 CellDict 渲染,无需新增字典类型。
* APPROVE 保持为 20,与既有「已审核才能入库/退货」等判断完全兼容。
*
* @author 超级管理员
*/
@Getter
@AllArgsConstructor
public enum ErpPurchaseOrderStatusEnum implements ArrayValuable {
DRAFT(0, "未提交"),
PROCESS(10, "审批中"),
APPROVE(20, "审核通过"),
REJECT(30, "审核不通过"),
CANCEL(40, "已取消");
public static final Integer[] ARRAYS = Arrays.stream(values())
.map(ErpPurchaseOrderStatusEnum::getStatus).toArray(Integer[]::new);
public static ErpPurchaseOrderStatusEnum fromStatus(Integer status) {
if (status == null) {
return null;
}
return Arrays.stream(values()).filter(item -> item.getStatus().equals(status)).findFirst().orElse(null);
}
public static ErpPurchaseOrderStatusEnum fromName(String name) {
if (name == null) {
return null;
}
return Arrays.stream(values()).filter(item -> item.getName().equals(name)).findFirst().orElse(null);
}
/**
* 状态
*/
private final Integer status;
/**
* 状态名
*/
private final String name;
@Override
public Integer[] array() {
return ARRAYS;
}
}