*
L
13 小时以前 22a623b08a221984b8eb960af9a83484418a26b9
src/main/java/com/zy/core/thread/RgvThread.java
@@ -290,8 +290,14 @@
                continue;
            }
            RgvRunProtocol rgvRun = RgvRunCache.getRgvRun();
            if (!rgvRun.getRgvNo().equals(slave.getId())){
                continue;
            if (slave.getId()>2){
                if (!rgvRun.getRgvNo2().equals(slave.getId())){
                    continue;
                }
            } else {
                if (!rgvRun.getRgvNo().equals(slave.getId())){
                    continue;
                }
            }
            try {
                Thread.sleep(100);
@@ -299,14 +305,27 @@
//                System.out.println(JSON.toJSON(rgvRun));
                // 休眠 1 秒
                if (System.currentTimeMillis() - rgvRun.currentTimeMilliOld > 500L) {
                    rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
                } else {
                    continue;
                if (slave.getId()>2){
                    if (System.currentTimeMillis() - rgvRun.currentTimeMilliOld2 > 500L) {
                        rgvRun.currentTimeMilliOld2 = System.currentTimeMillis()+50;
                    } else {
                        continue;
                    }
                }else {
                    if (System.currentTimeMillis() - rgvRun.currentTimeMilliOld > 500L) {
                        rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
                    } else {
                        continue;
                    }
                }
                if (!deviceDetection()) {
                    rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
                    rgvRun.setRgvNo(slave.getOtherId());
                    if (slave.getId()>2){
                        rgvRun.currentTimeMilliOld2 = System.currentTimeMillis()+50;
                        rgvRun.setRgvNo2(slave.getOtherId());
                    } else {
                        rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
                        rgvRun.setRgvNo(slave.getOtherId());
                    }
                    RgvRunCache.updateRgvStatus(rgvRun);
                    if (!errorRgv.equals("无")){
                        RgvErrCache.updateRgvErr(slave.getId(),errorRgv);
@@ -324,21 +343,36 @@
                    rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId());
                }
                if (!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE) || (Math.abs(rgvProtocol.getRgvPos() - rgvProtocol.getRgvPosDestination())>100)){
                    rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
                    rgvRun.setRgvNo(slave.getOtherId());
                    if (slave.getId()>2){
                        rgvRun.currentTimeMilliOld2 = System.currentTimeMillis()+50;
                        rgvRun.setRgvNo2(slave.getOtherId());
                    } else {
                        rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
                        rgvRun.setRgvNo(slave.getOtherId());
                    }
                    RgvRunCache.updateRgvStatus(rgvRun);
                    continue;
                }
                if (rgvProtocol.getLoaded() == -1){
                    rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
                    rgvRun.setRgvNo(slave.getOtherId());
                    if (slave.getId()>2){
                        rgvRun.currentTimeMilliOld2 = System.currentTimeMillis()+50;
                        rgvRun.setRgvNo2(slave.getOtherId());
                    } else {
                        rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
                        rgvRun.setRgvNo(slave.getOtherId());
                    }
                    RgvRunCache.updateRgvStatus(rgvRun);
                    RgvErrCache.updateRgvErr(slave.getId(),"小车探物物状态异常");
                    continue;
                }
                if (rgvTaskProtocol.getAvoid() != 0) {
                    rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
                    rgvRun.setRgvNo(slave.getOtherId());
                    if (slave.getId()>2){
                        rgvRun.currentTimeMilliOld2 = System.currentTimeMillis()+50;
                        rgvRun.setRgvNo2(slave.getOtherId());
                    } else {
                        rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
                        rgvRun.setRgvNo(slave.getOtherId());
                    }
                    RgvRunCache.updateRgvStatus(rgvRun);
                    continue;
                }
@@ -425,8 +459,13 @@
                        }
                    }
                }
                rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
                rgvRun.setRgvNo(slave.getOtherId());
                if (slave.getId()>2){
                    rgvRun.currentTimeMilliOld2 = System.currentTimeMillis()+50;
                    rgvRun.setRgvNo2(slave.getOtherId());
                } else {
                    rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
                    rgvRun.setRgvNo(slave.getOtherId());
                }
                RgvRunCache.updateRgvStatus(rgvRun);
            } catch (Exception e) {
                log.error("RGV任务下发线程异常!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
@@ -437,8 +476,13 @@
//                    log.error("e2:"+e2.getMessage());
                }
                rgvRun = RgvRunCache.getRgvRun();
                rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
                rgvRun.setRgvNo(slave.getOtherId());
                if (slave.getId()>2){
                    rgvRun.currentTimeMilliOld2 = System.currentTimeMillis()+50;
                    rgvRun.setRgvNo2(slave.getOtherId());
                } else {
                    rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
                    rgvRun.setRgvNo(slave.getOtherId());
                }
                RgvRunCache.updateRgvStatus(rgvRun);
                continue;
//                e.printStackTrace();
@@ -544,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){
@@ -629,7 +673,12 @@
                                            }
                                        }
                                        signNowPosRun =false;
                                    } else {
                                        signNowPosRun =false;
                                    }
                                }
                                if (new TrackRangeUtils().IsItSmall(slave)){
                                    signNowPosRun = false;
                                }
                            } else {
                                long twoPos = Math.abs(nowPosRunTask2.getTargetPosition() - rgvProtocolOther.getRgvPos());
@@ -639,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;
                                    }
                                }
                            }
@@ -749,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){
@@ -836,7 +891,12 @@
                                            }
                                        }
                                        signNowPosRun =false;
                                    } else {
                                        signNowPosRun =false;
                                    }
                                }
                                if (new TrackRangeUtils().IsItSmall(slave)){
                                    signNowPosRun = false;
                                }
                            } else {
                                long twoPos = Math.abs(nowPosRunTask2.getTargetPosition() - rgvProtocolOther.getRgvPos());
@@ -846,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;
                                    }
                                }
                            }
                        }