| New file |
| | |
| | | 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; |
| | | } |
| | | } |
| New file |
| | |
| | | -- 云仓入出库通知单与 cus_item_sync_view 的物料策略(在系统配置中维护 flag=CUS_ITEM_SYNC_MODE) |
| | | -- val:none(或 false/0)= 不强制;force_view(或 true/1)= 强制校验视图 |
| | | INSERT INTO `sys_config` (`uuid`, `name`, `flag`, `type`, `val`, `content`, `status`, `deleted`, `tenant_id`, `create_by`, `create_time`, `update_by`, `update_time`, `memo`) |
| | | SELECT UPPER(UUID()), '云仓单据物料视图策略', 'CUS_ITEM_SYNC_MODE', 3, 'none', |
| | | 'none=不强制(视图无则查物料表);force_view=强制须在视图', 1, 0, 1, NULL, NOW(), NULL, NOW(), '见 CusItemSyncMode' |
| | | WHERE NOT EXISTS (SELECT 1 FROM `sys_config` WHERE `flag` = 'CUS_ITEM_SYNC_MODE' AND (`deleted` = 0 OR `deleted` IS NULL)); |