|  |  | 
 |  |  | import java.text.MessageFormat; | 
 |  |  | import java.util.ArrayList; | 
 |  |  | import java.util.Date; | 
 |  |  | import java.util.HashMap; | 
 |  |  | import java.util.List; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  | 
 |  |  |         if (commands.size() == 0) { | 
 |  |  |             return false; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         checkIOSta(commands, commandStep);//检测小车是否进出提升机输送站 | 
 |  |  |  | 
 |  |  |         NavigateMapData navigateMapData = new NavigateMapData(Utils.getLev(shuttleProtocol.getCurrentLocNo())); | 
 |  |  |  | 
 |  |  | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     //检测小车是否进出提升机输送站 | 
 |  |  |     public void checkIOSta(List<NyShuttleHttpCommand> commands, int commandStep) { | 
 |  |  |         if (commandStep != 0) { | 
 |  |  |             NyShuttleHttpCommand lastCommand = commands.get(commandStep - 1);//上一步命令 | 
 |  |  |             if (lastCommand.getRequest().getBody().get("requestType").equals("move")) { | 
 |  |  |                 //检测起点是否为提升机输送站点 | 
 |  |  |                 NyShuttleProtocol.NyShuttlePointClass start = JSON.parseObject(lastCommand.getRequest().getBody().get("start").toString(), NyShuttleProtocol.NyShuttlePointClass.class); | 
 |  |  |                 int[] startPoint = NavigatePositionConvert.NyXyzToWCSXyz(start.getX(), start.getY(), start.getZ()); | 
 |  |  |                 if (startPoint[0] == 13 && (startPoint[1] == 22 || startPoint[1] == 38 || startPoint[1] == 57)) { | 
 |  |  |                     //输送站点位置 | 
 |  |  |  | 
 |  |  |                     int liftNo; | 
 |  |  |                     if (startPoint[1] == 22) { | 
 |  |  |                         liftNo = 1; | 
 |  |  |                     } else if (startPoint[1] == 38) { | 
 |  |  |                         liftNo = 2; | 
 |  |  |                     } else { | 
 |  |  |                         liftNo = 3; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     HashMap<String, Object> data = new HashMap<>(); | 
 |  |  |                     data.put("lev", startPoint[2]); | 
 |  |  |                     data.put("status", false);//出输送站 | 
 |  |  |  | 
 |  |  |                     //下发任务 | 
 |  |  |                     MessageQueue.offer(SlaveType.Lift, liftNo, new Task(4, data)); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         if (commands.size() == commandStep) { | 
 |  |  |             return; | 
 |  |  |         } | 
 |  |  |         NyShuttleHttpCommand command = commands.get(commandStep);//当前命令 | 
 |  |  |         if (command.getRequest().getBody().get("requestType").equals("move")) { | 
 |  |  |             NyShuttleProtocol.NyShuttlePointClass target = JSON.parseObject(command.getRequest().getBody().get("target").toString(), NyShuttleProtocol.NyShuttlePointClass.class); | 
 |  |  |             int[] targetPoint = NavigatePositionConvert.NyXyzToWCSXyz(target.getX(), target.getY(), target.getZ()); | 
 |  |  |             //检测目标位置是否为提升机输送站点 | 
 |  |  |             if (targetPoint[0] == 13 && (targetPoint[1] == 22 || targetPoint[1] == 38 || targetPoint[1] == 57)) { | 
 |  |  |                 //输送站点位置 | 
 |  |  |  | 
 |  |  |                 int liftNo; | 
 |  |  |                 if (targetPoint[1] == 22) { | 
 |  |  |                     liftNo = 1; | 
 |  |  |                 } else if (targetPoint[1] == 38) { | 
 |  |  |                     liftNo = 2; | 
 |  |  |                 } else { | 
 |  |  |                     liftNo = 3; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 HashMap<String, Object> data = new HashMap<>(); | 
 |  |  |                 data.put("lev", targetPoint[2]); | 
 |  |  |                 data.put("status", true);//进输送站 | 
 |  |  |  | 
 |  |  |                 //下发任务 | 
 |  |  |                 MessageQueue.offer(SlaveType.Lift, liftNo, new Task(4, data)); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | } |