| | |
| | | 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; |
| | |
| | | @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; |
| | |
| | | return false; |
| | | } |
| | | |
| | | LiftRedisCommand redisCommand = new LiftRedisCommand(); |
| | | ForkLiftRedisCommand redisCommand = new ForkLiftRedisCommand(); |
| | | redisCommand.setLiftNo(assignCommand.getLiftNo());//提升机号 |
| | | redisCommand.setWrkNo(assignCommand.getTaskNo());//工作号 |
| | | redisCommand.setCommandStep(0);//命令执行步序 |
| | | redisCommand.setAssignCommand(assignCommand);//命令 |
| | | //任务数据保存到redis |
| | | 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; |
| | |
| | | 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; |
| | | } |
| | |
| | | return false; |
| | | } |
| | | |
| | | LiftAssignCommand assignCommand = redisCommand.getAssignCommand(); |
| | | ForkLiftAssignCommand assignCommand = redisCommand.getAssignCommand(); |
| | | int commandStep = redisCommand.getCommandStep(); |
| | | |
| | | if (commandStep == 0) { |
| | |
| | | ForkLiftCommand command = commands.get(commandStep); |
| | | |
| | | //判断提升机是否空闲 |
| | | if (!forkLiftThread.isIdle()) { |
| | | if (!forkLiftThread.isDeviceIdle()) { |
| | | return false; |
| | | } |
| | | |
| | |
| | | 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; |
| | | } |
| | | |
| | | } |