package com.vincent.rsf.server.manager.enums; import org.apache.commons.lang3.StringUtils; /** * 云仓单据与 cus_item_sync_view 的物料策略(对应 sys_config.flag=CUS_ITEM_SYNC_MODE 的 val) */ public enum CusItemSyncMode { /** 不强制:视图能查到则对物料表新增/更新;查不到再查物料表,存在则放行 */ NONE("none"), /** 强制:明细物料均须在视图中存在,查到则对物料表新增/更新 */ FORCE_VIEW("force_view"); private final String code; CusItemSyncMode(String code) { this.code = code; } public String getCode() { return code; } public static CusItemSyncMode fromConfig(String val) { if (StringUtils.isBlank(val)) { return NONE; } String v = val.trim().toLowerCase(); if ("true".equals(v) || "1".equals(v)) { return FORCE_VIEW; } if ("false".equals(v) || "0".equals(v)) { return NONE; } // 历史值,与「不强制」行为一致 if ("fallback_matnr".equals(v)) { return NONE; } for (CusItemSyncMode m : values()) { if (m.code.equals(v)) { return m; } } return NONE; } }