cl
6 天以前 e23efd75ca74df6b35a0c03b8e8fc0712c9d4544
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/CloudWmsReportServiceImpl.java
@@ -44,7 +44,7 @@
    public Map<String, Object> syncMatnrsToCloud(Object body) {
        if (!isCloudWmsConfigured()) {
            log.warn("ErpApi(云仓WMS) 未配置 host/base-url,跳过物料基础信息同步");
            return stubSuccess("云仓地址未配置,未实际同步");
            return stubWithoutUpstream("云仓地址未配置,未实际同步");
        }
        return cloudWmsErpFeignClient.syncMatnrs(body != null ? body : new HashMap<>());
    }
@@ -56,11 +56,7 @@
        }
        if (!isCloudWmsConfigured()) {
            log.warn("ErpApi(云仓WMS) 未配置 host/base-url,跳过 9.1 入/出库结果上报,订单:{}", param.getOrderNo());
            return stubSuccess("云仓地址未配置,未实际上报");
        }
        String err = validateDapBaseForInOut(param);
        if (err != null) {
            return resultMap(400, err, null);
            return stubWithoutUpstream("云仓地址未配置,未实际上报");
        }
        boolean inbound = param.getInbound() == null || Boolean.TRUE.equals(param.getInbound());
        DapIlcwmsCompletionRequest req = new DapIlcwmsCompletionRequest()
@@ -79,15 +75,11 @@
        }
        if (!isCloudWmsConfigured()) {
            log.warn("ErpApi(云仓WMS) 未配置 host/base-url,跳过 9.1 入出库合并上报");
            return stubSuccess("云仓地址未配置,未实际上报");
            return stubWithoutUpstream("云仓地址未配置,未实际上报");
        }
        InOutResultReportParam first = lines.get(0);
        boolean inbound = first.getInbound() == null || Boolean.TRUE.equals(first.getInbound());
        for (InOutResultReportParam param : lines) {
            String err = validateDapBaseForInOut(param);
            if (err != null) {
                return resultMap(400, err, null);
            }
            boolean rowIn = param.getInbound() == null || Boolean.TRUE.equals(param.getInbound());
            if (rowIn != inbound) {
                return resultMap(400, "合并上报须同为入库或同为出库", null);
@@ -112,7 +104,7 @@
        }
        if (!isCloudWmsConfigured()) {
            log.warn("ErpApi(云仓WMS) 未配置 host/base-url,跳过 9.2 库存调整上报,物料:{}", param.getMatNr());
            return stubSuccess("云仓地址未配置,未实际上报");
            return stubWithoutUpstream("云仓地址未配置,未实际上报");
        }
        Integer changeType = param.getChangeType();
        if (changeType == null) {
@@ -141,19 +133,12 @@
                : DapIlcwmsResponseNormalizer.toNotifyFormatFlexible(raw);
    }
    private String validateDapBaseForInOut(InOutResultReportParam param) {
        if (param != null && StringUtils.isBlank(param.getUnitNo())) {
            return "unitNo 不能为空";
        }
        return null;
    }
    private DapIlcwmsCompletionLine buildInOutLine(InOutResultReportParam param, boolean inbound) {
        CloudMatnrParts matnrParts = parseCloudMatnr(param.getMatNr());
        String docType = StringUtils.isNotBlank(param.getWkType())
                ? param.getWkType()
                : (inbound ? "IN" : "OUT");
        String unitNo = StringUtils.trimToEmpty(param.getUnitNo());
        String unitNo = StringUtils.isNotBlank(param.getUnitNo()) ? param.getUnitNo().trim() : "PCS";
        String orgNoLine = StringUtils.isNotBlank(param.getOrgNo()) ? param.getOrgNo().trim() : DEFAULT_CLOUD_ORG_NO;
        String docWh = StringUtils.trimToNull(param.getDocWarehouseNo());
        String inWhLine = StringUtils.isNotBlank(param.getInWarehouseNo()) ? param.getInWarehouseNo().trim() : DEFAULT_CLOUD_WH_NO;
@@ -171,9 +156,11 @@
                .setCombinationLotNo(matnrParts.getCombinationLotNo())
                .setBarcode(matnrParts.getBarcode());
        if (inbound) {
            line.setInWarehouseNo(inWhLine).setInCellNo(param.getLocId());
            line.setInWarehouseNo(inWhLine).setInCellNo(inWhLine);
            // line.setInWarehouseNo(inWhLine).setInCellNo(param.getLocId());
        } else {
            line.setOutWarehouseNo(outWhLine).setOutCellNo(param.getLocId());
            line.setOutWarehouseNo(outWhLine).setOutCellNo(outWhLine);
            // line.setOutWarehouseNo(outWhLine).setOutCellNo(param.getLocId());
        }
        return line;
    }
@@ -307,10 +294,11 @@
        return baseUrl != null && !baseUrl.trim().isEmpty();
    }
    private Map<String, Object> stubSuccess(String msg) {
    /** 未走云仓 HTTP,code 非 200,避免调度误判成功 */
    private Map<String, Object> stubWithoutUpstream(String msg) {
        Map<String, Object> data = new HashMap<>();
        data.put("result", "SUCCESS");
        return resultMap(200, msg, data);
        data.put("result", "SKIPPED");
        return resultMap(503, msg, data);
    }
    private Map<String, Object> resultMap(int code, String msg, Map<String, Object> data) {