1
6 天以前 db06b944e7886832d20b8e3ae62b2cb70bcba30f
rsf-open-api/src/main/java/com/vincent/rsf/openApi/utils/ParamsMapUtils.java
@@ -110,6 +110,43 @@
    }
    /**
     * 反向字段映射转换(target → source)
     * 用于上报场景:WMS回传字段名还原为ERP字段名
     *
     * @param appId 应用ID
     * @param funcId 功能ID
     * @param params 经过正向映射的参数
     * @return 反向映射后的参数
     */
    public static JSONObject reverseApiMaps(String appId, String funcId, JSONObject params) {
        if (params == null || params.isEmpty()) {
            return params;
        }
        List<ApiMap> maps = ATTRIBUTE_MAPS.stream()
                .filter(map -> map.getAppId().equals(appId) && map.getFuncId().equals(funcId))
                .toList();
        if (maps.isEmpty()) {
            log.debug("未找到映射配置 - appId:{}, funcId:{}", appId, funcId);
            return params;
        }
        // 反向映射:targetAttribute → sourceAttribute
        Map<String, String> reverseRules = new HashMap<>();
        for (ApiMap map : maps) {
            String sourceAttribute = map.getSourceAttribute();
            String targetAttribute = map.getTargetAttribute();
            if (!StringUtils.isBlank(sourceAttribute) && !StringUtils.isBlank(targetAttribute)) {
                reverseRules.put(targetAttribute, sourceAttribute);
            }
        }
        JSONObject result = replaceKeysRecursive(params, reverseRules);
        return result;
    }
    /**
     * 递归替换JSON所有层级的属性名称
     * 支持嵌套对象和数组的深度遍历
     *