| | |
| | | log.warn("ErpApi(云仓WMS) 未配置 host/base-url,跳过 9.1 入/出库结果上报,订单:{}", param.getOrderNo()); |
| | | return stubWithoutUpstream("云仓地址未配置,未实际上报"); |
| | | } |
| | | String err = validateDapBaseForInOut(param); |
| | | if (err != null) { |
| | | return resultMap(400, err, null); |
| | | } |
| | | boolean inbound = param.getInbound() == null || Boolean.TRUE.equals(param.getInbound()); |
| | | DapIlcwmsCompletionRequest req = new DapIlcwmsCompletionRequest() |
| | | .setData(Collections.singletonList(buildInOutLine(param, inbound))); |
| | |
| | | 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); |
| | |
| | | : 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; |