cl
2026-04-16 6576a240f36adb22a2ade354946babc0b18f0466
rsf-open-api/src/main/java/com/vincent/rsf/openApi/tv/TvRcsStationPollService.java
@@ -47,10 +47,7 @@
        String stationId = pollProperties.getTaskNoStationId();
        if (StringUtils.hasText(pollProperties.getTaskNoPollUrl())) {
            try {
                String url = pollProperties.getTaskNoPollUrl();
                log.info("RCS站点轮询请求 GET /cv/station/getTaskNo url={}", url);
                String raw = restTemplate.getForObject(url, String.class);
                log.info("RCS站点轮询响应 GET /cv/station/getTaskNo body={}", trimForLog(raw));
                String raw = pollTaskNoRaw();
                String taskNo = applyTaskNoResponse(raw, stationId);
                enrichSnapshotFromWms(stationId, taskNo);
            } catch (RestClientException e) {
@@ -124,9 +121,7 @@
    private String pollErrorRaw() throws Exception {
        String url = pollProperties.getErrorPollUrl();
        if (pollProperties.isErrorPollUsePost()) {
            ObjectNode body = objectMapper.createObjectNode();
            body.put("staNo", pollProperties.getErrorStationId());
            String reqBody = objectMapper.writeValueAsString(body);
            String reqBody = objectMapper.writeValueAsString(createStationBody(pollProperties.getErrorStationId()));
            HttpHeaders headers = new HttpHeaders();
            headers.setContentType(MediaType.APPLICATION_JSON);
            HttpEntity<String> entity = new HttpEntity<>(reqBody, headers);
@@ -143,6 +138,37 @@
        return raw;
    }
    private String pollTaskNoRaw() throws Exception {
        String url = pollProperties.getTaskNoPollUrl();
        if (pollProperties.isTaskNoPollUsePost()) {
            String reqBody = objectMapper.writeValueAsString(createStationBody(pollProperties.getTaskNoStationId()));
            HttpHeaders headers = new HttpHeaders();
            headers.setContentType(MediaType.APPLICATION_JSON);
            HttpEntity<String> entity = new HttpEntity<>(reqBody, headers);
            // log.info("RCS站点轮询请求 GET /cv/station/getTaskNo url={}", url);
            log.info("RCS站点轮询请求 POST /cv/station/getTaskNo url={} body={}", url, trimForLog(reqBody));
            ResponseEntity<String> resp = restTemplate.exchange(
                    url, HttpMethod.POST, entity, String.class);
            String respBody = resp.getBody();
            // log.info("RCS站点轮询响应 GET /cv/station/getTaskNo body={}", trimForLog(raw));
            log.info("RCS站点轮询响应 POST /cv/station/getTaskNo body={}", trimForLog(respBody));
            return respBody;
        }
        log.info("RCS站点轮询请求 GET /cv/station/getTaskNo url={}", url);
        String raw = restTemplate.getForObject(url, String.class);
        log.info("RCS站点轮询响应 GET /cv/station/getTaskNo body={}", trimForLog(raw));
        return raw;
    }
    private ObjectNode createStationBody(String stationId) {
        ObjectNode body = objectMapper.createObjectNode();
        if (StringUtils.hasText(stationId)) {
            body.put("stationId", stationId);
            body.put("staNo", stationId);
        }
        return body;
    }
    /** 写入 tvRcs 任务号 Hash;返回解析出的 taskNo(用于 WMS 合并) */
    private String applyTaskNoResponse(String raw, String staNo) {
        if (!StringUtils.hasText(staNo)) {