#
Junjie
2 天以前 c72c95f66a00d04dd54e2b49a4f3e3766f01871f
src/main/java/com/zy/core/thread/impl/NyLiftThread.java
@@ -85,7 +85,7 @@
                try {
                    listenMessageFromRedis();
                    readStatus();
                    Thread.sleep(100);
                    Thread.sleep(200);
                } catch (Exception e) {
                    log.error("LiftThread Fail", e);
                }
@@ -93,13 +93,18 @@
        });
        readThread.start();
        while (true) {
            try {
                execute();
            } catch (Exception e) {
                e.printStackTrace();
        //设备执行
        Thread executeThread = new Thread(() -> {
            while (true) {
                try {
                    execute();
                    Thread.sleep(200);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
        });
        executeThread.start();
    }
    private void execute() {
@@ -181,8 +186,6 @@
            liftProtocol.setHasTray(data.getInteger("hasTray") == 1);
            //有小车
            liftProtocol.setHasCar(data.getInteger("hasCar") == 1);
            //出入库模式
            liftProtocol.setIOMode(data.getInteger("iOMode"));
            //故障码
            liftProtocol.setErrorCode(data.getInteger("errorCode"));
            //当前层
@@ -192,17 +195,19 @@
            InnerLiftExtend liftExtend = (InnerLiftExtend) liftProtocol.getExtend();
            liftProtocol.setExtend(liftExtend);
            JSONObject extend = data.getJSONObject("extend");
            liftExtend.setFrontOverrun(extend.getInteger("frontOverrun") == 1);
            liftExtend.setBackOverrun(extend.getInteger("backOverrun") == 1);
            liftExtend.setLeftOverrun(extend.getInteger("leftOverrun") == 1);
            liftExtend.setRightOverrun(extend.getInteger("rightOverrun") == 1);
            liftExtend.setOverHeight(extend.getInteger("overHeight") == 1);
            liftExtend.setOverWeight(extend.getInteger("overWeight") == 1);
            liftExtend.setPlcTaskNoComplete(extend.getInteger("plcTaskNoComplete"));
            if (extend != null) {
                liftExtend.setFrontOverrun(extend.getInteger("frontOverrun") == 1);
                liftExtend.setBackOverrun(extend.getInteger("backOverrun") == 1);
                liftExtend.setLeftOverrun(extend.getInteger("leftOverrun") == 1);
                liftExtend.setRightOverrun(extend.getInteger("rightOverrun") == 1);
                liftExtend.setOverHeight(extend.getInteger("overHeight") == 1);
                liftExtend.setOverWeight(extend.getInteger("overWeight") == 1);
                liftExtend.setPlcTaskNoComplete(extend.getInteger("plcTaskNoComplete"));
            if (!liftExtend.getPlcTaskNoComplete().equals(liftProtocol.getPlcTaskNo())) {
                //设备状态
                liftProtocol.setDeviceStatus(LiftDeviceStatusType.BUSY.id);
                if (!liftExtend.getPlcTaskNoComplete().equals(liftProtocol.getPlcTaskNo())) {
                    //设备状态
                    liftProtocol.setDeviceStatus(LiftDeviceStatusType.BUSY.id);
                }
            }
            //读取站点
@@ -353,29 +358,10 @@
    }
    @Override
    public CommandResponse switchIOMode(LiftCommand command) {
        CommandResponse response = new CommandResponse(false);
        try {
            //发出请求
            String resultKey = requestCommand(command);
            //查询请求结果
            JSONObject result = queryCommandStatus(resultKey);
            if (result == null) {
                return response;//请求失败
            }
            if(!result.getString("result").equals("success")) {
                return response;//请求失败
            }
            this.liftProtocol.setSendTime(System.currentTimeMillis());//指令下发时间
            response.setMessage(JSON.toJSONString(result));
            response.setResult(true);
            return response;
        } catch (Exception e) {
            e.printStackTrace();
            response.setMessage(e.getMessage());
            return response;
        }
    public CommandResponse switchIOMode(LiftIoModeType type) {
        CommandResponse response = new CommandResponse(true);
        liftProtocol.setIOMode(type);
        return response;
    }
    @Override
@@ -401,20 +387,51 @@
        InnerLiftExtend extend = (InnerLiftExtend) this.liftProtocol.getExtend();
        boolean res = this.liftProtocol.getProtocolStatus() == LiftProtocolStatusType.IDLE.id
//                && this.liftProtocol.getPlcTaskNo() == 0
                && this.liftProtocol.getTaskNo() == 0
                && this.liftProtocol.getModel() == 2
                && this.liftProtocol.getDeviceStatus() == LiftDeviceStatusType.IDLE.id
                && this.liftProtocol.getErrorCode() == 0
                && !extend.getFrontOverrun()
                && !extend.getBackOverrun()
                && !extend.getLeftOverrun()
                && !extend.getRightOverrun()
                && !extend.getOverHeight()
                && !extend.getOverWeight()
                ;
        return res;
        if (this.liftProtocol.getProtocolStatus() != LiftProtocolStatusType.IDLE.id) {
            return false;//任务不空闲
        }
        if (this.liftProtocol.getTaskNo() != 0) {
            return false;//有任务号
        }
        if (this.liftProtocol.getModel() != 2) {
            return false;//非自动
        }
        if (this.liftProtocol.getDeviceStatus() != LiftDeviceStatusType.IDLE.id) {
            return false;//非空闲
        }
        if (this.liftProtocol.getErrorCode() != 0) {
            return false;//有故障
        }
        if (extend.getFrontOverrun()) {
            return false;
        }
        if (extend.getBackOverrun()) {
            return false;
        }
        if (extend.getLeftOverrun()) {
            return false;
        }
        if (extend.getRightOverrun()) {
            return false;
        }
        if (extend.getOverHeight()) {
            return false;
        }
        if (extend.getOverWeight()) {
            return false;
        }
        return true;
    }
    @Override
@@ -431,8 +448,7 @@
            }
        }
        if (this.liftProtocol.getProtocolStatus() == null
                || this.liftProtocol.getModel() == null
        if (this.liftProtocol.getModel() == null
                || this.liftProtocol.getDeviceStatus() == null
                || this.liftProtocol.getErrorCode() == null
                || this.liftProtocol.getExtend() == null
@@ -442,18 +458,43 @@
        InnerLiftExtend extend = (InnerLiftExtend) this.liftProtocol.getExtend();
        boolean res = this.liftProtocol.getProtocolStatus() == LiftProtocolStatusType.IDLE.id
                && this.liftProtocol.getModel() == 2
                && this.liftProtocol.getDeviceStatus() == LiftDeviceStatusType.IDLE.id
                && this.liftProtocol.getErrorCode() == 0
                && !extend.getFrontOverrun()
                && !extend.getBackOverrun()
                && !extend.getLeftOverrun()
                && !extend.getRightOverrun()
                && !extend.getOverHeight()
                && !extend.getOverWeight()
                ;
        return res;
        if (this.liftProtocol.getModel() != 2) {
            return false;//非自动
        }
        if (this.liftProtocol.getDeviceStatus() != LiftDeviceStatusType.IDLE.id) {
            return false;//非空闲
        }
        if (this.liftProtocol.getErrorCode() != 0) {
            return false;//有故障
        }
        if (extend.getFrontOverrun() == null || extend.getFrontOverrun()) {
            return false;
        }
        if (extend.getBackOverrun() == null || extend.getBackOverrun()) {
            return false;
        }
        if (extend.getLeftOverrun() == null || extend.getLeftOverrun()) {
            return false;
        }
        if (extend.getRightOverrun() == null || extend.getRightOverrun()) {
            return false;
        }
        if (extend.getOverHeight() == null || extend.getOverHeight()) {
            return false;
        }
        if (extend.getOverWeight() == null || extend.getOverWeight()) {
            return false;
        }
        return true;
    }
    @Override