#
1
2025-05-12 a6480edc1d366bfeead1eb2784be13ae747e3f23
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);
                }
            }