cl
10 小时以前 0e85601e2f80b6cb580c0fad9be9518f58c5882c
云仓模拟视图数据sql
3个文件已添加
17496 ■■■■■ 已修改文件
rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/CusItemSyncMode.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
version/db/cus_item_sync_seed.sql 17443 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
version/db/sys_config_cus_item_sync_mode.sql 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/CusItemSyncMode.java
New file
@@ -0,0 +1,47 @@
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;
    }
}
version/db/cus_item_sync_seed.sql
New file
Diff too large
version/db/sys_config_cus_item_sync_mode.sql
New file
@@ -0,0 +1,6 @@
-- 云仓入出库通知单与 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));