From b791daa70e38b4e426d2b065da5bd317fe8c91f3 Mon Sep 17 00:00:00 2001
From: 野心家 <1051256694@qq.com>
Date: 星期二, 27 五月 2025 11:18:46 +0800
Subject: [PATCH] #ZH

---
 src/main/java/com/zy/core/cache/TaskProtocolCache.java |   74 ++++++++++++++++++++++++++-----------
 1 files changed, 52 insertions(+), 22 deletions(-)

diff --git a/src/main/java/com/zy/core/cache/TaskProtocolCache.java b/src/main/java/com/zy/core/cache/TaskProtocolCache.java
index 50fa398..d0f7d72 100644
--- a/src/main/java/com/zy/core/cache/TaskProtocolCache.java
+++ b/src/main/java/com/zy/core/cache/TaskProtocolCache.java
@@ -15,7 +15,7 @@
 @Slf4j
 public class TaskProtocolCache {
     // 鏈湴缂撳瓨锛岄敭涓� taskNo锛屽�间负 TaskProtocol
-    private final ConcurrentHashMap<Long, TaskProtocol> cache = new ConcurrentHashMap<>();
+    private final ConcurrentHashMap<String, TaskProtocol> cache = new ConcurrentHashMap<>();
 
     // 璇诲啓閿侊紝纭繚绾跨▼瀹夊叏
 //    private final ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
@@ -24,28 +24,16 @@
      * 鏇存柊璁惧鐘舵��
      */
     public void updateTaskProtocol(TaskProtocol status) {
-        cache.put(status.getTaskNo(), status);
+        cache.put(status.getTaskNoDirection(), status);
     }
 
     /**
      * 鍒犻櫎浠诲姟缂撳瓨
      */
-    public TaskProtocol removeTaskProtocol(String taskNo) {
+    public TaskProtocol removeTaskProtocol(String taskNoDirection) {
 //        lock.readLock().lock(); // 鍔犺閿�
         try {
-            return cache.remove(taskNo);
-        } finally {
-//            lock.readLock().unlock(); // 閲婃斁璇婚攣
-        }
-    }
-
-    /**
-     * 鑾峰彇浠诲姟缂撳瓨
-     */
-    public TaskProtocol getTaskProtocol(String taskNo) {
-//        lock.readLock().lock(); // 鍔犺閿�
-        try {
-            return cache.get(taskNo);
+            return cache.remove(taskNoDirection);
         } finally {
 //            lock.readLock().unlock(); // 閲婃斁璇婚攣
         }
@@ -54,7 +42,7 @@
     /**
      * 鑾峰彇鎵�鏈変换鍔�
      */
-    public ConcurrentHashMap<Long, TaskProtocol> getAllTaskProtocol() {
+    public ConcurrentHashMap<String, TaskProtocol> getAllTaskProtocol() {
 //        lock.readLock().lock(); // 鍔犺閿�
         try {
             return new ConcurrentHashMap<>(cache); // 杩斿洖鍓湰
@@ -74,12 +62,16 @@
         }
         return new ArrayList<>();
     }
+
+    /**
+     * 鑾峰彇鎵�鏈夊彇浠诲姟
+     */
     public List<TaskProtocol> getAllTakeTaskProtocol() {
 //        lock.readLock().lock(); // 鍔犺閿�
         try {
             List<TaskProtocol> allTakeTaskProtocol = new ArrayList<>();
             for (TaskProtocol task : cache.values()) {
-                if (task.getTaskStatus()==1) {
+                if (task.getTaskStatus()==2) {
                     allTakeTaskProtocol.add(task);
                 }
             }
@@ -90,14 +82,14 @@
     }
 
     /**
-     * 鑾峰彇鎵�鏈夊彇浠诲姟
+     * 鑾峰彇鎵�鏈夋斁浠诲姟
      */
     public List<TaskProtocol> getAllPutTaskProtocol() {
 //        lock.readLock().lock(); // 鍔犺閿�
         try {
             List<TaskProtocol> allPutTaskProtocol = new ArrayList<>();
             for (TaskProtocol task : cache.values()) {
-                if (task.getTaskStatus()==2) {
+                if (task.getTaskStatus()==3) {
                     allPutTaskProtocol.add(task);
                 }
             }
@@ -108,14 +100,14 @@
     }
 
     /**
-     * 鑾峰彇鎵�鏈夊彇浠诲姟
+     * 鑾峰彇鎵�鏈夎璧颁换鍔�
      */
     public List<TaskProtocol> getAllWalkTaskProtocol() {
 //        lock.readLock().lock(); // 鍔犺閿�
         try {
             List<TaskProtocol> allWalkTaskProtocol = new ArrayList<>();
             for (TaskProtocol task : cache.values()) {
-                if (task.getTaskStatus()==0) {
+                if (task.getTaskStatus()==1) {
                     allWalkTaskProtocol.add(task);
                 }
             }
@@ -125,4 +117,42 @@
         }
     }
 
+
+
+    /**
+     * 鏌ヨ鏄惁鏈夊彲鎵ц浠诲姟
+     */
+    public boolean isNowPosRun(Long targetPosition) {
+//        lock.readLock().lock(); // 鍔犺閿�
+        try {
+            List<TaskProtocol> allWalkTaskProtocol = new ArrayList<>();
+            for (TaskProtocol task : cache.values()) {
+                long runPos = Math.abs(task.getTargetPosition() - targetPosition);
+                if (runPos<50) {
+                    return true;
+                }
+            }
+            return false; // 杩斿洖鍓湰
+        } finally {
+//            lock.readLock().unlock(); // 閲婃斁璇婚攣
+        }
+    }
+    /**
+     * 鏌ヨ鏄惁鏈夊彲鎵ц浠诲姟
+     */
+    public TaskProtocol getNowPosRunTask(Long targetPosition) {
+//        lock.readLock().lock(); // 鍔犺閿�
+        try {
+            for (TaskProtocol task : cache.values()) {
+                long runPos = Math.abs(task.getTargetPosition() - targetPosition);
+                if (runPos<50) {
+                    return task;
+                }
+            }
+            return null; // 杩斿洖鍓湰
+        } finally {
+//            lock.readLock().unlock(); // 閲婃斁璇婚攣
+        }
+    }
+
 }

--
Gitblit v1.9.1