#ZH
野心家
2025-05-27 b791daa70e38b4e426d2b065da5bd317fe8c91f3
src/main/java/com/zy/core/cache/TaskProtocolCache.java
@@ -71,7 +71,7 @@
        try {
            List<TaskProtocol> allTakeTaskProtocol = new ArrayList<>();
            for (TaskProtocol task : cache.values()) {
                if (task.getTaskStatus()==1) {
                if (task.getTaskStatus()==2) {
                    allTakeTaskProtocol.add(task);
                }
            }
@@ -89,7 +89,7 @@
        try {
            List<TaskProtocol> allPutTaskProtocol = new ArrayList<>();
            for (TaskProtocol task : cache.values()) {
                if (task.getTaskStatus()==2) {
                if (task.getTaskStatus()==3) {
                    allPutTaskProtocol.add(task);
                }
            }
@@ -107,7 +107,7 @@
        try {
            List<TaskProtocol> allWalkTaskProtocol = new ArrayList<>();
            for (TaskProtocol task : cache.values()) {
                if (task.getTaskStatus()==0) {
                if (task.getTaskStatus()==1) {
                    allWalkTaskProtocol.add(task);
                }
            }
@@ -117,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(); // 释放读锁
        }
    }
}