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/service/impl/CloudWmsNotifyLogServiceImpl.java |    7 +++++--
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/CloudWmsNotifySchedule.java          |   13 ++++++-------
 2 files changed, 11 insertions(+), 9 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 471dd8a..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
@@ -109,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 && !isInfiniteRetry(effectiveMaxRetry) && 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);
@@ -131,9 +129,10 @@
         logRecord.setLastNotifyTime(now);
         logRecord.setRetryCount(nextRetry);
         // logRecord.setNotifyStatus(nextRetry >= effectiveMaxRetry ? cloudWmsNotifyLogService.getNotifyStatusFail() : cloudWmsNotifyLogService.getNotifyStatusPending());
-        logRecord.setNotifyStatus(!isInfiniteRetry(effectiveMaxRetry) && nextRetry >= effectiveMaxRetry
+        int status = !isInfiniteRetry(effectiveMaxRetry) && nextRetry >= effectiveMaxRetry
                 ? cloudWmsNotifyLogService.getNotifyStatusFail()
-                : cloudWmsNotifyLogService.getNotifyStatusPending());
+                : cloudWmsNotifyLogService.getNotifyStatusPending();
+        logRecord.setNotifyStatus(status);
         logRecord.setUpdateTime(now);
         cloudWmsNotifyLogService.updateById(logRecord);
         log.warn("浜戜粨涓婃姤澶辫触锛宨d={}锛宐izRef={}锛宎ttempt={}锛宯otifyStatus={}锛宔rror={}",
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CloudWmsNotifyLogServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CloudWmsNotifyLogServiceImpl.java
index 846a947..5f83bad 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CloudWmsNotifyLogServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CloudWmsNotifyLogServiceImpl.java
@@ -23,9 +23,11 @@
     @Override
     public List<CloudWmsNotifyLog> listPending(int limit, int maxRetry) {
         Page<CloudWmsNotifyLog> page = new Page<>(1, Math.max(1, limit));
-        // .lt(CloudWmsNotifyLog::getRetryCount, maxRetry)
         LambdaQueryWrapper<CloudWmsNotifyLog> wrapper = new LambdaQueryWrapper<CloudWmsNotifyLog>()
-                .eq(CloudWmsNotifyLog::getNotifyStatus, getNotifyStatusPending())
+                // 浠呮煡璇㈡暟鎹簱閰嶇疆鐘舵�侊細寰呴�氱煡 + 澶辫触锛堝彲閲嶈瘯锛�
+                .in(CloudWmsNotifyLog::getNotifyStatus, getNotifyStatusPending(), getNotifyStatusFail())
+                // 浠呮煡璇㈠彲閲嶈瘯鏁版嵁锛氭棤闄愰噸璇曘�佹湭閰嶇疆涓婇檺銆佹垨鏈揪鍒颁笂闄�
+                .apply("(max_retry_count IS NULL OR max_retry_count = -1 OR retry_count < max_retry_count)")
                 .orderByAsc(CloudWmsNotifyLog::getId);
         if (maxRetry >= 0) {
             wrapper.lt(CloudWmsNotifyLog::getRetryCount, maxRetry);
@@ -75,6 +77,7 @@
     public void fillFromConfig(CloudWmsNotifyLog log) {
         Integer maxRetry = getConfigInt(GlobalConfigCode.CLOUD_WMS_NOTIFY_MAX_RETRY);
         Integer interval = getConfigInt(GlobalConfigCode.CLOUD_WMS_NOTIFY_RETRY_INTERVAL_SECONDS);
+        log.setNotifyStatus(getNotifyStatusPending());
         log.setMaxRetryCount(maxRetry);
         log.setRetryIntervalSeconds(interval);
     }

--
Gitblit v1.9.1