From c3434b1fe0132372b34ff0a46d84e6129a094bfc Mon Sep 17 00:00:00 2001
From: L <L@132>
Date: 星期四, 28 八月 2025 08:43:15 +0800
Subject: [PATCH] *
---
src/main/java/com/zy/core/cache/TaskProtocolCache.java | 102 ++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 80 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..f2f01c6 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,70 @@
}
}
+
+
+ /**
+ * 鏌ヨ鏄惁鏈夊彲鎵ц浠诲姟
+ */
+ 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(); // 閲婃斁璇婚攣
+ }
+ }
+
+
+ /**
+ * 鏌ヨ鏄惁鏈夊彲鎵ц浠诲姟
+ */
+ public TaskProtocol getNowPosRunTask2() {
+// lock.readLock().lock(); // 鍔犺閿�
+ try {
+ for (TaskProtocol task : cache.values()) {
+ if (task.getTaskStatus()==1) {
+ return task;
+ }
+ }
+ for (TaskProtocol task : cache.values()) {
+ if (task.getTaskStatus()==2) {
+ return task;
+ }
+ }
+ for (TaskProtocol task : cache.values()) {
+ if (task.getTaskStatus()==3) {
+ return task;
+ }
+ }
+ return null; // 杩斿洖鍓湰
+ } finally {
+// lock.readLock().unlock(); // 閲婃斁璇婚攣
+ }
+ }
+
}
--
Gitblit v1.9.1