From 9d18c1d0644555973de883f0fc888e6ab601fbaa Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期四, 19 三月 2026 12:46:25 +0800
Subject: [PATCH] #

---
 /dev/null                                                                     |   57 ----------------------------
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java |    7 +--
 zy-acs-common/src/main/java/com/zy/acs/common/utils/News.java                 |   35 ++++++++++++++---
 3 files changed, 31 insertions(+), 68 deletions(-)

diff --git a/zy-acs-common/src/main/java/com/zy/acs/common/circulrgv/Main.java b/zy-acs-common/src/main/java/com/zy/acs/common/circulrgv/Main.java
deleted file mode 100644
index fcff829..0000000
--- a/zy-acs-common/src/main/java/com/zy/acs/common/circulrgv/Main.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package com.zy.acs.common.circulrgv;
-
-import java.util.ArrayList;
-import java.util.List;
-
-
-/**
- * Created by vincent on 2023/9/21
- */
-public class Main {
-
-    public static void main(String[] args) {
-        String input = "AAAAXYXYAAXZAAXYAAAAXYA"; // 浣犵殑杈撳叆瀛楃涓�
-        List<Character> myList = new ArrayList<>();
-        for (char c : input.toCharArray()) {
-            myList.add(c);
-        }
-        for (Character character : myList) {
-            System.out.print(character);
-        }   System.out.println();
-
-
-        // 閲嶆柊鎺掑垪鍒楄〃
-        List<Integer> removeIdx = new ArrayList<>();
-        int lastYIdx = -1;
-        for (int i = 0; i<myList.size(); i++) {
-            char curr = myList.get(i);
-            if (curr == 'X') {
-                if (lastYIdx == -1) {
-                    continue;
-                } else {
-                    myList.add(lastYIdx + 1, curr);
-                    i += 1;
-                    removeIdx.add(i);
-                }
-            }
-            if (curr == 'Y' || curr == 'Z') {
-                lastYIdx = i;
-            }
-        }
-
-        List<Character> exlist = new ArrayList<>();
-        for (int i = 0; i < myList.size(); i++) {
-            char c = myList.get(i);
-            if (!removeIdx.contains(i)) {
-                exlist.add(c);
-            }
-        }
-
-        System.out.println(removeIdx);
-        for (Character character : exlist) {
-            System.out.print(character);
-        }   System.out.println();
-
-    }
-
-}
diff --git a/zy-acs-common/src/main/java/com/zy/acs/common/utils/News.java b/zy-acs-common/src/main/java/com/zy/acs/common/utils/News.java
index 5729f35..2309524 100644
--- a/zy-acs-common/src/main/java/com/zy/acs/common/utils/News.java
+++ b/zy-acs-common/src/main/java/com/zy/acs/common/utils/News.java
@@ -2,6 +2,8 @@
 
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.slf4j.helpers.FormattingTuple;
 import org.slf4j.helpers.MessageFormatter;
 
@@ -11,6 +13,8 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.Optional;
 
 /**
  * news stories for vincent
@@ -22,6 +26,9 @@
     private static final int DEFAULT_CAPACITY = 1024;
     private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
     private static final NewsQueue<NewsDomain> NEWS_QUEUE = new NewsQueue<>(DEFAULT_CAPACITY);
+    private static final String NEWS_FQCN = News.class.getName();
+    private static final StackWalker STACK_WALKER = StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE);
+    private static final ConcurrentHashMap<Class<?>, Logger> LOGGER_CACHE = new ConcurrentHashMap<>();
 
     public static void main(String[] args) {
         News.info("info{}", 1);
@@ -31,18 +38,15 @@
     }
 
     public static void info(String format, Object... arguments) {
-        log.info(format, arguments);
-        offer(NewsLevel.INFO, format, arguments);
+        logWithCaller(NewsLevel.INFO, format, arguments);
     }
 
     public static void warn(String format, Object... arguments) {
-        log.warn(format, arguments);
-        offer(NewsLevel.WARN, format, arguments);
+        logWithCaller(NewsLevel.WARN, format, arguments);
     }
 
     public static void error(String format, Object... arguments) {
-        log.error(format, arguments);
-        offer(NewsLevel.ERROR, format, arguments);
+        logWithCaller(NewsLevel.ERROR, format, arguments);
     }
 
     public static String printStr() {
@@ -83,6 +87,25 @@
                 LocalDateTime.now().format(DATE_FORMATTER)));
     }
 
+    private static void logWithCaller(NewsLevel level, String format, Object... arguments) {
+        Logger targetLogger = resolveCallerLogger();
+        switch (level) {
+            case ERROR -> targetLogger.error(format, arguments);
+            case WARN -> targetLogger.warn(format, arguments);
+            default -> targetLogger.info(format, arguments);
+        }
+        offer(level, format, arguments);
+    }
+
+    private static Logger resolveCallerLogger() {
+        Optional<Class<?>> callerClassOptional = STACK_WALKER
+                .walk(stream -> stream.dropWhile(frame -> frame.getClassName().equals(NEWS_FQCN))
+                        .findFirst()
+                        .map(StackWalker.StackFrame::getDeclaringClass));
+        Class<?> callerClass = callerClassOptional.orElse(News.class);
+        return LOGGER_CACHE.computeIfAbsent(callerClass, LoggerFactory::getLogger);
+    }
+
     private static String escapeJson(String value) {
         if (value == null) {
             return "";
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
index d4acffc..2b89679 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
@@ -8,10 +8,7 @@
 import com.zy.acs.common.domain.protocol.*;
 import com.zy.acs.common.domain.protocol.action.*;
 import com.zy.acs.common.enums.*;
-import com.zy.acs.common.utils.Base62;
-import com.zy.acs.common.utils.GsonUtils;
-import com.zy.acs.common.utils.RedisSupport;
-import com.zy.acs.common.utils.Utils;
+import com.zy.acs.common.utils.*;
 import com.zy.acs.framework.common.Cools;
 import com.zy.acs.framework.common.SnowflakeIdWorker;
 import com.zy.acs.framework.exception.CoolException;
@@ -1565,7 +1562,7 @@
                 throw new BusinessException("group[" + groupId + "] 鍔ㄤ綔淇濆瓨澶辫触");
             }
 
-            log.info("{}鍙稟gv鍔ㄤ綔缁勮瀹屾垚锛屾寚浠ゆ暟閲忥細{}", agvNo, newActionList.size());
+            News.info("{}鍙稟gv鍔ㄤ綔缁勮瀹屾垚锛屾寚浠ゆ暟閲忥細{}", agvNo, newActionList.size());
             return pathTrace;
         } catch (Exception e) {
             log.error("mainService.generateAction", e);

--
Gitblit v1.9.1