From d6ff18e0ff89d36e80195da43ca40bf3a8f42b2c Mon Sep 17 00:00:00 2001
From: Administrator <pjb>
Date: 星期日, 15 六月 2025 09:38:14 +0800
Subject: [PATCH] wms分配库位异常

---
 src/main/java/com/zy/core/cache/SlaveConnection.java |   38 +++++++++++++++++++++++---------------
 1 files changed, 23 insertions(+), 15 deletions(-)

diff --git a/src/main/java/com/zy/core/cache/SlaveConnection.java b/src/main/java/com/zy/core/cache/SlaveConnection.java
index a3dbdea..4233714 100644
--- a/src/main/java/com/zy/core/cache/SlaveConnection.java
+++ b/src/main/java/com/zy/core/cache/SlaveConnection.java
@@ -1,55 +1,63 @@
 package com.zy.core.cache;
 
 import com.zy.core.ThreadHandler;
+import com.zy.core.enums.SlaveType;
 
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
 /**
+ * 绾跨▼缂撳瓨瀹瑰櫒
  * Created by vincent on 2020/8/4
  */
 public class SlaveConnection {
 
-    public static final String CRN_PREFIX = "CRN_";
+    private static final String _LINK = "_";
 
-    public static final String DEVP_PREFIX = "DEVP_";
+    private static final Map<String, ThreadHandler> conContain = new ConcurrentHashMap<>();
 
-    private static Map<String, ThreadHandler> conContain = new ConcurrentHashMap<>();
-
-    public static void put(String key, ThreadHandler threadHandler) {
-
+    public static void put(SlaveType type, Integer id, ThreadHandler threadHandler) {
+        String key = toKey(type, id);
+        remove(type, id);
+        conContain.put(key, threadHandler);
     }
 
-    public static ThreadHandler get(String key) {
-        return conContain.get(key);
+    public static ThreadHandler get(SlaveType type, Integer id) {
+        return conContain.get(toKey(type, id));
     }
 
-    public static void remove(String key) {
-        ThreadHandler threadHandler = get(key);
+    public static void remove(SlaveType type, Integer id) {
+        ThreadHandler threadHandler = get(type, id);
         if (null == threadHandler) {
             return;
         }
-        conContain.remove(key);
+        conContain.remove(toKey(type, id));
         threadHandler.close();
     }
 
-    public static String remove(ThreadHandler threadHandler) {
+    public static Integer remove(ThreadHandler threadHandler) {
         if (null == threadHandler) {
             return null;
         }
         String key = null;
-        for (Map.Entry<String, ThreadHandler> entry : conContain.entrySet()){
+        for (Map.Entry<String, ThreadHandler> entry : conContain.entrySet()) {
             if (entry.getValue() == threadHandler) {
                 key = entry.getKey();
                 break;
             }
         }
         if (null != key) {
-            remove(key);
-            return key;
+            SlaveType type = SlaveType.findInstance(key);
+            Integer id = Integer.parseInt(key.split(_LINK)[1]);
+            remove(type, id);
+            return id;
         } else {
             return null;
         }
     }
 
+    private static String toKey(SlaveType type, Integer id) {
+        return type.toString() + _LINK + id;
+    }
+
 }

--
Gitblit v1.9.1