#
Junjie
2025-05-28 298ccf07fc34186c690d5cee51d1c66f55e9263f
src/main/java/com/zy/core/action/ForkLiftAction.java
@@ -50,7 +50,7 @@
        redisCommand.setCommandStep(0);//命令执行步序
        redisCommand.setAssignCommand(assignCommand);//命令
        //任务数据保存到redis
        if (redisUtil.set(RedisKeyType.FORK_LIFT.key + assignCommand.getTaskNo(), JSON.toJSONString(redisCommand))) {
        if (redisUtil.set(RedisKeyType.FORK_LIFT_WORK_FLAG.key + assignCommand.getTaskNo(), JSON.toJSONString(redisCommand))) {
            forkLiftThread.setSyncTaskNo(assignCommand.getTaskNo().intValue());
            return true;
        }
@@ -58,15 +58,15 @@
    }
    public synchronized boolean executeWork(Integer liftNo, Integer taskNo) {
        Object obj = redisUtil.get(RedisKeyType.FORK_LIFT.key + taskNo);
        Object obj = redisUtil.get(RedisKeyType.FORK_LIFT_WORK_FLAG.key + taskNo);
        if (obj == null) {
            return false;
        }
        WrkMast wrkMast = wrkMastService.selectByWorkNo(taskNo);
        if (wrkMast == null) {
            return false;
        }
//        WrkMast wrkMast = wrkMastService.selectByWorkNo(taskNo);
//        if (wrkMast == null) {
//            return false;
//        }
        LiftRedisCommand redisCommand = JSON.parseObject(obj.toString(), LiftRedisCommand.class);
        if (redisCommand == null) {
@@ -96,7 +96,7 @@
            ForkLiftCommand command = commands.get(commandStep);
            //判断提升机是否空闲
            if (!forkLiftThread.isIdle()) {
            if (!forkLiftThread.isDeviceIdle()) {
                return false;
            }
@@ -125,7 +125,7 @@
            //更新redis数据
            redisCommand.setCommandStep(commandStep);
            // 更新redis数据
            redisUtil.set(RedisKeyType.FORK_LIFT.key + taskNo, JSON.toJSONString(redisCommand));
            redisUtil.set(RedisKeyType.FORK_LIFT_WORK_FLAG.key + taskNo, JSON.toJSONString(redisCommand));
        }
        return true;
@@ -148,8 +148,42 @@
            response = forkLiftThread.pickAndPut(command);
        } else if (command.getMode().intValue() == ForkLiftTaskModeType.SHUTTLE_SWITCH.id) {
            response = forkLiftThread.shuttleSwitch(command);
        } else if (command.getMode().intValue() == ForkLiftTaskModeType.MOVE.id) {
            response = forkLiftThread.move(command);
        }
        return response;
    }
    //申请提升机资源
    public synchronized boolean applyForkLift(Integer liftNo, Integer waitBindTaskNo) {
        ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, liftNo);
        if (forkLiftThread == null) {
            return false;
        }
        ForkLiftProtocol forkLiftProtocol = forkLiftThread.getStatus();
        if (forkLiftProtocol == null) {
            return false;
        }
        if (!forkLiftThread.isIdle()) {
            return false;
        }
        List<WrkMast> wrkMasts = wrkMastService.selectLiftWrkMast(liftNo);
        if (!wrkMasts.isEmpty()) {
            return false;
        }
        if (waitBindTaskNo != null) {
            WrkMast wrkMast = wrkMastService.selectByWorkNo(waitBindTaskNo);
            if (wrkMast == null) {
                return false;
            }
            wrkMast.setLiftNo(liftNo);
            wrkMast.setModiTime(new Date());
            wrkMastService.updateById(wrkMast);
        }
        return true;
    }
}