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