From 6daf900a09adcca981f620744bf89851654d88e0 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期二, 05 八月 2025 09:58:08 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/action/ForkLiftAction.java | 58 +++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 45 insertions(+), 13 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..5866f9c 100644 --- a/src/main/java/com/zy/core/action/ForkLiftAction.java +++ b/src/main/java/com/zy/core/action/ForkLiftAction.java @@ -12,9 +12,7 @@ import com.zy.core.enums.RedisKeyType; import com.zy.core.enums.SlaveType; import com.zy.core.model.CommandResponse; -import com.zy.core.model.command.ForkLiftCommand; -import com.zy.core.model.command.LiftAssignCommand; -import com.zy.core.model.command.LiftRedisCommand; +import com.zy.core.model.command.*; import com.zy.core.model.protocol.ForkLiftProtocol; import com.zy.core.thread.ForkLiftThread; import org.springframework.beans.factory.annotation.Autowired; @@ -33,7 +31,7 @@ @Autowired private BasLiftOptService basLiftOptService; - public synchronized boolean assignWork(Integer liftNo, LiftAssignCommand assignCommand) { + public synchronized boolean assignWork(Integer liftNo, ForkLiftAssignCommand assignCommand) { ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, liftNo); if (forkLiftThread == null) { return false; @@ -44,14 +42,14 @@ return false; } - LiftRedisCommand redisCommand = new LiftRedisCommand(); + ForkLiftRedisCommand redisCommand = new ForkLiftRedisCommand(); redisCommand.setLiftNo(assignCommand.getLiftNo());//鎻愬崌鏈哄彿 redisCommand.setWrkNo(assignCommand.getTaskNo());//宸ヤ綔鍙� redisCommand.setCommandStep(0);//鍛戒护鎵ц姝ュ簭 redisCommand.setAssignCommand(assignCommand);//鍛戒护 //浠诲姟鏁版嵁淇濆瓨鍒皉edis if (redisUtil.set(RedisKeyType.FORK_LIFT_WORK_FLAG.key + assignCommand.getTaskNo(), JSON.toJSONString(redisCommand))) { - forkLiftThread.setSyncTaskNo(assignCommand.getTaskNo().intValue()); + forkLiftThread.setSyncTaskNo(assignCommand.getTaskNo()); return true; } return false; @@ -63,12 +61,12 @@ 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); + ForkLiftRedisCommand redisCommand = JSON.parseObject(obj.toString(), ForkLiftRedisCommand.class); if (redisCommand == null) { return false; } @@ -88,7 +86,7 @@ return false; } - LiftAssignCommand assignCommand = redisCommand.getAssignCommand(); + ForkLiftAssignCommand assignCommand = redisCommand.getAssignCommand(); int commandStep = redisCommand.getCommandStep(); if (commandStep == 0) { @@ -96,7 +94,7 @@ ForkLiftCommand command = commands.get(commandStep); //鍒ゆ柇鎻愬崌鏈烘槸鍚︾┖闂� - if (!forkLiftThread.isIdle()) { + if (!forkLiftThread.isDeviceIdle()) { return false; } @@ -148,8 +146,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