From 2a34b52125d5fc356d65ee1e8912845dd601d4e3 Mon Sep 17 00:00:00 2001
From: cl <1442464845@qq.com>
Date: 星期五, 01 五月 2026 12:52:02 +0800
Subject: [PATCH] 多加入参数和修改规则
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CloudWmsFeedbackResendServiceImpl.java | 72 ++++++++++++++++++++++++++++++-----
1 files changed, 61 insertions(+), 11 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CloudWmsFeedbackResendServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CloudWmsFeedbackResendServiceImpl.java
index 5e266bb..61e4618 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CloudWmsFeedbackResendServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CloudWmsFeedbackResendServiceImpl.java
@@ -1,8 +1,10 @@
package com.vincent.rsf.server.manager.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.vincent.rsf.framework.common.R;
+import com.vincent.rsf.server.api.controller.erp.params.InOutResultBatchPayload;
import com.vincent.rsf.server.api.controller.erp.params.InOutResultReportParam;
import com.vincent.rsf.server.manager.entity.AsnOrderLog;
import com.vincent.rsf.server.manager.entity.CloudWmsNotifyLog;
@@ -59,20 +61,32 @@
if (StringUtils.isBlank(row.getRequestBody())) {
continue;
}
- InOutResultReportParam p;
try {
- p = objectMapper.readValue(row.getRequestBody(), InOutResultReportParam.class);
+ JsonNode root = objectMapper.readTree(row.getRequestBody());
+ if (root.has("lines") && root.get("lines").isArray() && root.get("lines").size() > 0) {
+ InOutResultBatchPayload batch = objectMapper.readValue(row.getRequestBody(), InOutResultBatchPayload.class);
+ if (batch.getLines() == null || batch.getLines().isEmpty()) {
+ continue;
+ }
+ InOutResultReportParam first = batch.getLines().get(0);
+ if (!code.equals(first.getOrderNo()) || !matchOrderType(orderLog.getType(), first.getInbound())) {
+ continue;
+ }
+ latestByLine.putIfAbsent("batch_" + row.getId(), row);
+ continue;
+ }
+ InOutResultReportParam p = objectMapper.readValue(row.getRequestBody(), InOutResultReportParam.class);
+ if (p == null || !code.equals(p.getOrderNo())) {
+ continue;
+ }
+ if (!matchOrderType(orderLog.getType(), p.getInbound())) {
+ continue;
+ }
+ String sig = lineSignature(p);
+ latestByLine.putIfAbsent(sig, row);
} catch (Exception e) {
continue;
}
- if (p == null || !code.equals(p.getOrderNo())) {
- continue;
- }
- if (!matchOrderType(orderLog.getType(), p.getInbound())) {
- continue;
- }
- String sig = lineSignature(p);
- latestByLine.putIfAbsent(sig, row);
}
if (latestByLine.isEmpty()) {
return R.error("鏈壘鍒拌鍗曞彿瀵瑰簲鐨勪簯浠撳叆鍑哄簱涓婃姤璁板綍锛屾棤娉曢噸鍙�");
@@ -87,7 +101,16 @@
.setRetryCount(0)
.setBizRef("manualResend,asnOrderLogId=" + asnOrderLogId + ",fromNotifyLogId=" + src.getId() + ",orderNo=" + code)
.setCreateTime(now)
- .setUpdateTime(now);
+ .setUpdateTime(now)
+ .setSendHold(0)
+ .setSending(0);
+ if (StringUtils.isNotBlank(src.getSourceOrderNo())) {
+ copy.setSourceOrderNo(src.getSourceOrderNo())
+ .setInboundFlag(src.getInboundFlag())
+ .setWareHouseCode(src.getWareHouseCode());
+ } else {
+ fillInOutRoutingFromBody(copy, src.getRequestBody());
+ }
cloudWmsNotifyLogService.fillFromConfig(copy);
if (cloudWmsNotifyLogService.save(copy)) {
n++;
@@ -96,6 +119,33 @@
return R.ok("宸插姞鍏ヤ簯浠撻噸鍙戦槦鍒� " + n + " 鏉★紝灏嗙敱瀹氭椂浠诲姟鍙戦��").add(n);
}
+ private void fillInOutRoutingFromBody(CloudWmsNotifyLog copy, String body) {
+ if (StringUtils.isBlank(body)) {
+ return;
+ }
+ try {
+ JsonNode root = objectMapper.readTree(body);
+ if (root.has("lines") && root.get("lines").isArray() && root.get("lines").size() > 0) {
+ InOutResultReportParam first = objectMapper.treeToValue(root.get("lines").get(0), InOutResultReportParam.class);
+ if (first != null) {
+ boolean inb = first.getInbound() == null || Boolean.TRUE.equals(first.getInbound());
+ copy.setSourceOrderNo(first.getOrderNo())
+ .setInboundFlag(inb ? 1 : 0)
+ .setWareHouseCode(first.getWareHouseId());
+ }
+ return;
+ }
+ InOutResultReportParam p = objectMapper.readValue(body, InOutResultReportParam.class);
+ if (p != null) {
+ boolean inb = p.getInbound() == null || Boolean.TRUE.equals(p.getInbound());
+ copy.setSourceOrderNo(p.getOrderNo())
+ .setInboundFlag(inb ? 1 : 0)
+ .setWareHouseCode(p.getWareHouseId());
+ }
+ } catch (Exception ignored) {
+ }
+ }
+
private static boolean matchOrderType(String asnType, Boolean inbound) {
if (StringUtils.isBlank(asnType)) {
return true;
--
Gitblit v1.9.1