From 71d499e1ad7d4e2f2886627f7a57e0fadf0bc235 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 06 五月 2026 16:48:11 +0800
Subject: [PATCH] #dfs

---
 src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java |   36 ++++++++++++++++++++++++++++++++++++
 1 files changed, 36 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java b/src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java
index 1d415b0..0ffb9f9 100644
--- a/src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java
+++ b/src/main/java/com/zy/core/utils/DualCrnOperateProcessUtils.java
@@ -560,6 +560,10 @@
             return null;
         }
 
+        if (isConveyorStationTaskLimitReached()) {
+            return null;
+        }
+
         if (station == 1) {
             if (dualCrnProtocol.getTaskNo() > 0) {
                 News.taskInfo(wrkMast.getWrkNo(), "宸ヤ綅1绯荤粺鍐呴儴璁板綍鏈変换鍔�");
@@ -676,6 +680,22 @@
                     wrkMast.getStaNo(),
                     currentStationTaskCount,
                     basStation.getOutTaskLimit());
+            return true;
+        }
+        return false;
+    }
+
+    private boolean isConveyorStationTaskLimitReached() {
+        int conveyorStationTaskLimit = getSystemConfigInt("conveyorStationTaskLimit", 30);
+        if (conveyorStationTaskLimit <= 0) {
+            return false;
+        }
+
+        int currentStationTaskCount = stationOperateProcessUtils.getCurrentStationTaskCount();
+        if (currentStationTaskCount >= conveyorStationTaskLimit) {
+            News.warn("杈撻�佺珯鐐逛换鍔℃暟閲忚揪鍒颁笂闄愶紝宸插仠姝㈠弻宸ヤ綅鍫嗗灈鏈轰换鍔′笅鍙戙�傚綋鍓嶄换鍔℃暟={}锛屼笂闄�={}",
+                    currentStationTaskCount,
+                    conveyorStationTaskLimit);
             return true;
         }
         return false;
@@ -978,6 +998,22 @@
         return getSystemConfigBoolean(CRN_OUT_REQUIRE_STATION_OUT_ENABLE_CONFIG, true);
     }
 
+    private int getSystemConfigInt(String code, int defaultValue) {
+        Object systemConfigMapObj = redisUtil.get(RedisKeyType.SYSTEM_CONFIG_MAP.key);
+        if (!(systemConfigMapObj instanceof Map)) {
+            return defaultValue;
+        }
+        try {
+            Object value = ((Map<?, ?>) systemConfigMapObj).get(code);
+            if (value == null) {
+                return defaultValue;
+            }
+            return Integer.parseInt(String.valueOf(value).trim());
+        } catch (Exception ignore) {
+            return defaultValue;
+        }
+    }
+
     private boolean getSystemConfigBoolean(String code, boolean defaultValue) {
         Object systemConfigMapObj = redisUtil.get(RedisKeyType.SYSTEM_CONFIG_MAP.key);
         if (!(systemConfigMapObj instanceof Map)) {

--
Gitblit v1.9.1