From b6428016edf3de843020bc95fd1708d3bb1961e5 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期一, 07 七月 2025 16:41:51 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/action/ForkLiftAction.java | 44 +++++++++++++++++++++++++++++++++++++++----- 1 files changed, 39 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/zy/core/action/ForkLiftAction.java b/src/main/java/com/zy/core/action/ForkLiftAction.java index 3c412e4..9d7a7b3 100644 --- a/src/main/java/com/zy/core/action/ForkLiftAction.java +++ b/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; + } + } -- Gitblit v1.9.1