| | |
| | | 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<>()); |
| | | } |
| | |
| | | } |
| | | 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() |
| | |
| | | } |
| | | 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); |
| | |
| | | } |
| | | if (!isCloudWmsConfigured()) { |
| | | log.warn("ErpApi(云仓WMS) 未配置 host/base-url,跳过 9.2 库存调整上报,物料:{}", param.getMatNr()); |
| | | return stubSuccess("云仓地址未配置,未实际上报"); |
| | | return stubWithoutUpstream("云仓地址未配置,未实际上报"); |
| | | } |
| | | Integer changeType = param.getChangeType(); |
| | | if (changeType == null) { |
| | |
| | | : 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; |
| | |
| | | .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; |
| | | } |
| | |
| | | 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) { |