#
Junjie
2025-05-28 298ccf07fc34186c690d5cee51d1c66f55e9263f
src/main/java/com/zy/core/action/ForkLiftAction.java
@@ -63,10 +63,10 @@
            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;
            }
@@ -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;
    }
}