package cn.iocoder.yudao.module.wms.enums.inventory; import cn.iocoder.yudao.framework.common.core.ArrayValuable; import lombok.AllArgsConstructor; import lombok.Getter; import java.util.Arrays; /** * WMS 库存业务类型枚举 * * 用于区分库存操作的业务来源 * * @author 芋道源码 */ @Getter @AllArgsConstructor public enum WmsInventoryBizTypeEnum implements ArrayValuable { // ========== 入库类型 [100, 150) ========== PURCHASE_RECEIPT(100, "ERP 采购入库"), PRODUCE_RECEIPT(101, "MES 生产入库"), RETURN_RECEIPT(102, "退货入库"), OTHER_RECEIPT(103, "其他入库"), OTHER(104, "其他"), // ========== 出库类型 [150, 200) ========== SALE_SHIPMENT(150, "ERP 销售出库"), PRODUCE_MATERIAL(151, "MES 生产领料"), RETURN_SHIPMENT(152, "退货出库"), OTHER_SHIPMENT(153, "其他出库"), ; public static final Integer[] ARRAYS = Arrays.stream(values()) .map(WmsInventoryBizTypeEnum::getType).toArray(Integer[]::new); /** * 类型 */ private final Integer type; /** * 名称 */ private final String name; @Override public Integer[] array() { return ARRAYS; } /** * 判断是否为入库类型 */ public static boolean isReceiptType(Integer type) { return type != null && type >= 100 && type < 150; } /** * 判断是否为出库类型 */ public static boolean isShipmentType(Integer type) { return type != null && type >= 150 && type < 200; } }