From 449e4e9df08162b1e7e04ac0d4e05a1387298171 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期二, 08 七月 2025 16:48:16 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/action/ForkLiftAction.java | 50 ++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 42 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/zy/core/action/ForkLiftAction.java b/src/main/java/com/zy/core/action/ForkLiftAction.java index c72deec..9d7a7b3 100644 --- a/src/main/java/com/zy/core/action/ForkLiftAction.java +++ b/src/main/java/com/zy/core/action/ForkLiftAction.java @@ -50,7 +50,7 @@ redisCommand.setCommandStep(0);//鍛戒护鎵ц姝ュ簭 redisCommand.setAssignCommand(assignCommand);//鍛戒护 //浠诲姟鏁版嵁淇濆瓨鍒皉edis - 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; + } + } -- Gitblit v1.9.1