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;
|
}
|
}
|