From 8f9e9aadb79db1ad349e4988a2e302b02c3b962b Mon Sep 17 00:00:00 2001
From: cl <1442464845@qq.com>
Date: 星期四, 30 四月 2026 16:00:34 +0800
Subject: [PATCH] #上报 过滤
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/CloudWmsNotifySchedule.java | 39 +++++++++++++++++++++++++++++++--------
1 files changed, 31 insertions(+), 8 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/CloudWmsNotifySchedule.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/CloudWmsNotifySchedule.java
index 1cd040a..56defcf 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/CloudWmsNotifySchedule.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/CloudWmsNotifySchedule.java
@@ -32,7 +32,8 @@
@Scheduled(cron = "0/30 * * * * ?")
public void syncCloudWmsNotify() {
- List<CloudWmsNotifyLog> pending = cloudWmsNotifyLogService.listPending(BATCH_LIMIT, 999);
+ // List<CloudWmsNotifyLog> pending = cloudWmsNotifyLogService.listPending(BATCH_LIMIT, 999);
+ List<CloudWmsNotifyLog> pending = cloudWmsNotifyLogService.listPending(BATCH_LIMIT, -1);
if (pending.isEmpty()) {
return;
}
@@ -42,14 +43,23 @@
Integer maxRetry = logRecord.getMaxRetryCount();
Integer intervalSeconds = logRecord.getRetryIntervalSeconds();
if (maxRetry == null || intervalSeconds == null || intervalSeconds <= 0) {
+ log.warn("浜戜粨涓婃姤寰呭姙璺宠繃锛氶噸璇曞弬鏁扮己澶憋紝id={}锛宐izRef={}锛宮axRetry={}锛宨ntervalSeconds={}",
+ logRecord.getId(), logRecord.getBizRef(), maxRetry, intervalSeconds);
continue;
}
- if (logRecord.getRetryCount() != null && logRecord.getRetryCount() >= maxRetry) {
+ // if (logRecord.getRetryCount() != null && logRecord.getRetryCount() >= maxRetry) {
+ if (!isInfiniteRetry(maxRetry)
+ && logRecord.getRetryCount() != null
+ && logRecord.getRetryCount() >= maxRetry) {
+ log.info("浜戜粨涓婃姤寰呭姙璺宠繃锛氶噸璇曟鏁板凡杈句笂闄愶紝id={}锛宐izRef={}锛宺etryCount={}锛宮axRetry={}",
+ logRecord.getId(), logRecord.getBizRef(), logRecord.getRetryCount(), maxRetry);
continue;
}
if (logRecord.getLastNotifyTime() != null) {
long elapsed = (nowMs - logRecord.getLastNotifyTime().getTime()) / 1000;
if (elapsed < intervalSeconds) {
+ log.info("浜戜粨涓婃姤寰呭姙璺宠繃锛氭湭鍒伴噸璇曢棿闅旓紝id={}锛宐izRef={}锛宔lapsed={}s锛宨nterval={}s",
+ logRecord.getId(), logRecord.getBizRef(), elapsed, intervalSeconds);
continue;
}
}
@@ -66,6 +76,8 @@
Date now = new Date();
int nextRetry = (logRecord.getRetryCount() == null ? 0 : logRecord.getRetryCount()) + 1;
int effectiveMaxRetry = logRecord.getMaxRetryCount();
+ log.info("浜戜粨涓婃姤寮�濮嬶紝id={}锛宐izRef={}锛宺eportType={}锛宎ttempt={}锛宺equestBody={}",
+ logRecord.getId(), logRecord.getBizRef(), reportType, nextRetry, requestBody);
try {
if (cloudWmsNotifyLogService.getReportTypeInOutResult().equals(reportType)) {
@@ -97,11 +109,9 @@
responseJson = String.valueOf(res);
}
Object codeObj = res != null ? res.get("code") : null;
- boolean success = Integer.valueOf(200).equals(codeObj);
- int status = success ? cloudWmsNotifyLogService.getNotifyStatusSuccess() : cloudWmsNotifyLogService.getNotifyStatusPending();
- if (!success && nextRetry >= effectiveMaxRetry) {
- status = cloudWmsNotifyLogService.getNotifyStatusFail();
- }
+ Object statusObj = res != null ? res.get("status") : null;
+ boolean success = Integer.valueOf(200).equals(codeObj) || Integer.valueOf(200).equals(statusObj);
+ int status = success ? cloudWmsNotifyLogService.getNotifyStatusSuccess() : cloudWmsNotifyLogService.getNotifyStatusFail();
logRecord.setLastRequestBody(requestBody);
logRecord.setLastResponseBody(responseJson);
logRecord.setLastNotifyTime(now);
@@ -109,6 +119,8 @@
logRecord.setNotifyStatus(status);
logRecord.setUpdateTime(now);
cloudWmsNotifyLogService.updateById(logRecord);
+ log.info("浜戜粨涓婃姤缁撴潫锛宨d={}锛宐izRef={}锛宎ttempt={}锛宯otifyStatus={}锛宺esponseBody={}",
+ logRecord.getId(), logRecord.getBizRef(), nextRetry, status, responseJson);
}
private void setFailResult(CloudWmsNotifyLog logRecord, String requestBody, String errorMsg, int nextRetry, Date now, int effectiveMaxRetry) {
@@ -116,8 +128,19 @@
logRecord.setLastResponseBody(errorMsg);
logRecord.setLastNotifyTime(now);
logRecord.setRetryCount(nextRetry);
- logRecord.setNotifyStatus(nextRetry >= effectiveMaxRetry ? cloudWmsNotifyLogService.getNotifyStatusFail() : cloudWmsNotifyLogService.getNotifyStatusPending());
+ // logRecord.setNotifyStatus(nextRetry >= effectiveMaxRetry ? cloudWmsNotifyLogService.getNotifyStatusFail() : cloudWmsNotifyLogService.getNotifyStatusPending());
+ int status = !isInfiniteRetry(effectiveMaxRetry) && nextRetry >= effectiveMaxRetry
+ ? cloudWmsNotifyLogService.getNotifyStatusFail()
+ : cloudWmsNotifyLogService.getNotifyStatusPending();
+ logRecord.setNotifyStatus(status);
logRecord.setUpdateTime(now);
cloudWmsNotifyLogService.updateById(logRecord);
+ log.warn("浜戜粨涓婃姤澶辫触锛宨d={}锛宐izRef={}锛宎ttempt={}锛宯otifyStatus={}锛宔rror={}",
+ logRecord.getId(), logRecord.getBizRef(), nextRetry, logRecord.getNotifyStatus(), errorMsg);
+ }
+
+ /** maxRetry = -1 琛ㄧず鏃犻檺閲嶅彂 */
+ private boolean isInfiniteRetry(Integer maxRetry) {
+ return maxRetry != null && maxRetry == -1;
}
}
--
Gitblit v1.9.1