*
L
10 小时以前 22a623b08a221984b8eb960af9a83484418a26b9
*
2个文件已修改
64 ■■■■■ 已修改文件
src/main/java/com/zy/core/cache/TaskProtocolCache.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/RgvThread.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/cache/TaskProtocolCache.java
@@ -138,6 +138,44 @@
    /**
     * 查询是否有可执行任务
     */
    public TaskProtocol getNowPosRunTask3(Long targetPosition) {
//        lock.readLock().lock(); // 加读锁
        try {
            for (TaskProtocol task : cache.values()) {
                if (task.getTaskStatus()==1) {
                    long runPos = Math.abs(task.getTargetPosition() - targetPosition);
                    if (runPos<50) {
                        return task;
                    }
                    return null;
                }
            }
            for (TaskProtocol task : cache.values()) {
                if (task.getTaskStatus()==2) {
                    long runPos = Math.abs(task.getTargetPosition() - targetPosition);
                    if (runPos<50) {
                        return task;
                    }
                    return null;
                }
            }
            for (TaskProtocol task : cache.values()) {
                if (task.getTaskStatus()==3) {
                    long runPos = Math.abs(task.getTargetPosition() - targetPosition);
                    if (runPos<50) {
                        return task;
                    }
                    return null;
                }
            }
            return null; // 返回副本
        } finally {
//            lock.readLock().unlock(); // 释放读锁
        }
    }
    /**
     * 查询是否有可执行任务
     */
    public TaskProtocol getNowPosRunTask(Long targetPosition) {
//        lock.readLock().lock(); // 加读锁
        try {
src/main/java/com/zy/core/thread/RgvThread.java
@@ -588,7 +588,7 @@
                    RgvThread rgvThreadOther = (RgvThread) SlaveConnection.get(SlaveType.Rgv, slave.getOtherId());
                    TaskProtocolCache taskProtocolCacheOther = rgvThreadOther.getTaskProtocolCache();
                    TaskProtocol nowPosRunTask = taskProtocolCacheOther.getNowPosRunTask(rgvProtocolOther.getRgvPos());
                    TaskProtocol nowPosRunTask = taskProtocolCacheOther.getNowPosRunTask3(rgvProtocolOther.getRgvPos());
                    if (!Cools.isEmpty(nowPosRunTask)){
                        boolean signNowPosRun = true;
                        if (nowPosRunTask.getTaskStatus()==3){
@@ -673,7 +673,12 @@
                                            }
                                        }
                                        signNowPosRun =false;
                                    } else {
                                        signNowPosRun =false;
                                    }
                                }
                                if (new TrackRangeUtils().IsItSmall(slave)){
                                    signNowPosRun = false;
                                }
                            } else {
                                long twoPos = Math.abs(nowPosRunTask2.getTargetPosition() - rgvProtocolOther.getRgvPos());
@@ -683,7 +688,13 @@
                                }
                                if (Math.abs(onePos - twoPos)>100){
                                    if (onePos-50>twoPos+50){
                                        signNowPosRun =true;
                                    } else {
                                        signNowPosRun =false;
                                    }
                                } else {
                                    if (new TrackRangeUtils().IsItSmall(slave)){
                                        signNowPosRun = false;
                                    }
                                }
                            }
@@ -793,7 +804,7 @@
                } else {
                    RgvThread rgvThreadOther = (RgvThread) SlaveConnection.get(SlaveType.Rgv, slave.getOtherId());
                    TaskProtocolCache taskProtocolCacheOther = rgvThreadOther.getTaskProtocolCache();
                    TaskProtocol nowPosRunTask = taskProtocolCacheOther.getNowPosRunTask(rgvProtocolOther.getRgvPos());
                    TaskProtocol nowPosRunTask = taskProtocolCacheOther.getNowPosRunTask3(rgvProtocolOther.getRgvPos());
                    if (!Cools.isEmpty(nowPosRunTask)){
                        boolean signNowPosRun = true;
                        if (nowPosRunTask.getTaskStatus()==3){
@@ -880,7 +891,12 @@
                                            }
                                        }
                                        signNowPosRun =false;
                                    } else {
                                        signNowPosRun =false;
                                    }
                                }
                                if (new TrackRangeUtils().IsItSmall(slave)){
                                    signNowPosRun = false;
                                }
                            } else {
                                long twoPos = Math.abs(nowPosRunTask2.getTargetPosition() - rgvProtocolOther.getRgvPos());
@@ -890,8 +906,14 @@
                                }
                                if (Math.abs(onePos - twoPos)>100){
                                    if (onePos-50>twoPos+50){
                                        signNowPosRun =true;
                                    } else {
                                        signNowPosRun =false;
                                    }
                                } else {
                                    if (new TrackRangeUtils().IsItSmall(slave)){
                                        signNowPosRun = false;
                                    }
                                }
                            }
                        }