Junjie
2023-06-27 c2b0be1a368a88e4adb6dda12d0aa5d3bb0df838
src/main/java/com/zy/core/thread/LiftThread.java
@@ -363,9 +363,6 @@
            return false;
        }
        //将标记置为false(防止重发)
        liftProtocol.setPakMk(false);
        Object o = redisUtil.get("lift_wrk_no_" + wrkNo);
        if (o == null) {
            return false;
@@ -377,6 +374,43 @@
        //总步序
        int size = commands.size();
        LiftAssignCommand assignCommand = redisCommand.getAssignCommand();
        if (commandStep != 0) {
            //判断上一条指令是否完成
            LiftCommand command = commands.get(commandStep - 1);
            if (command.getRun().intValue() == 1) {
                //提升机升降命令
                if (command.getDistPosition().intValue() == liftProtocol.getPositionArrivalFeedback().intValue()) {
                    //提升机目标楼层和实际楼层相同,则认定命令完成
                    command.setComplete(true);
                }
            } else if (command.getRun().intValue() == 2 || command.getRun().intValue() == 3) {
                //无货正转,有货正转
                if (!liftProtocol.getForwardRotationFeedback()) {
                    //输送线正转反馈不在运行中,认定命令完成
                    command.setComplete(true);
                }
            } else if (command.getRun().intValue() == 6 || command.getRun().intValue() == 7) {
                //有货反转,无货反转
                if (!liftProtocol.getReverseFeedback()) {
                    //输送线反转反馈不在运行中,认定命令完成
                    command.setComplete(true);
                }
            } else if (command.getRun().intValue() == 4) {
                //输送线停止
                if (!liftProtocol.getForwardRotationFeedback() && !liftProtocol.getReverseFeedback()) {
                    //输送线正转反转都不在运行中,认定命令完成
                    command.setComplete(true);
                }
            }
            //任务数据保存到redis
            redisUtil.set("lift_wrk_no_" + redisCommand.getWrkNo(), JSON.toJSONString(redisCommand));
            if (!command.getComplete()) {
                //上一条任务未完成,禁止下发命令
                return false;
            }
        }
        //取出命令
        LiftCommand command = commands.get(commandStep);
@@ -408,6 +442,9 @@
            News.info("提升机命令下发成功,提升机号={},任务数据={}", command.getLiftNo(), JSON.toJSON(command));
            liftProtocol.setWrkTime(new Date());//更新工作时间
            //将标记置为false(防止重发)
            liftProtocol.setPakMk(false);
            //保存数据到数据库做流水
            BasLiftOptService liftOptService = SpringUtils.getBean(BasLiftOptService.class);
            if (liftOptService != null) {