From 2cd165b0fae397281801939182436837e0a55ad0 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 21 四月 2026 10:10:07 +0800
Subject: [PATCH] #堆垛机增加镭射值-V3.0.0.6

---
 src/main/java/com/zy/asrs/controller/OpenController.java |   31 ++++++++++++++++++++++++++++---
 1 files changed, 28 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 6cda1e6..eb65d3b 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -446,20 +446,45 @@
             return R.error("鍙傛暟涓嶈兘涓虹┖");
         }
         Set<String> allowKeys = FakeConfigKeys.ALL_KEYS;
+        Map<String, String> normalizedMap = new LinkedHashMap<>();
         for (Map.Entry<String, Object> entry : param.getConfigMap().entrySet()) {
             String key = entry.getKey();
             if (!allowKeys.contains(key)) {
                 return R.error("涓嶆敮鎸佺殑閰嶇疆椤�: " + key);
             }
-            String normalized = normalizeFakeConfigValue(key, entry.getValue());
-            if (!configService.saveConfigValue(key, normalized)) {
-                return R.error("淇濆瓨澶辫触: " + key);
+            normalizedMap.put(key, normalizeFakeConfigValue(key, entry.getValue()));
+        }
+        validateFakeCrnLaserConfig(normalizedMap);
+        for (Map.Entry<String, String> entry : normalizedMap.entrySet()) {
+            if (!configService.saveConfigValue(entry.getKey(), entry.getValue())) {
+                return R.error("淇濆瓨澶辫触: " + entry.getKey());
             }
         }
         configService.refreshSystemConfigCache();
         return getFakeConfig();
     }
 
+    private void validateFakeCrnLaserConfig(Map<String, String> normalizedMap) {
+        long bayMin = resolveFakeLongValue(normalizedMap, FakeConfigKeys.FAKE_CRN_BAY_MIN);
+        long bayMax = resolveFakeLongValue(normalizedMap, FakeConfigKeys.FAKE_CRN_BAY_MAX);
+        long laserMin = resolveFakeLongValue(normalizedMap, FakeConfigKeys.FAKE_CRN_LASER_MIN);
+        long laserMax = resolveFakeLongValue(normalizedMap, FakeConfigKeys.FAKE_CRN_LASER_MAX);
+        if (bayMax <= bayMin) {
+            throw new CoolException("鍫嗗灈鏈� bay 鏈�澶у�煎繀椤诲ぇ浜庢渶灏忓��");
+        }
+        if (laserMax <= laserMin) {
+            throw new CoolException("鍫嗗灈鏈洪暛灏勬渶澶у�煎繀椤诲ぇ浜庢渶灏忓��");
+        }
+    }
+
+    private long resolveFakeLongValue(Map<String, String> normalizedMap, String key) {
+        String value = normalizedMap.get(key);
+        if (value == null) {
+            value = configService.getConfigValue(key, FakeConfigKeys.DEFAULTS.get(key));
+        }
+        return Long.parseLong(value);
+    }
+
     private String normalizeFakeConfigValue(String key, Object rawValue) {
         if (rawValue == null) {
             throw new CoolException(key + " 鍙傛暟涓嶈兘涓虹┖");

--
Gitblit v1.9.1