| | |
| | | assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo()); // 四向穿梭车编号 |
| | | assignCommand.setTaskMode(ShuttleTaskModeType.TRANSPORT.id);//小车移库任务 |
| | | assignCommand.setTaskNo(wrkMast.getWrkNo());//任务号 |
| | | assignCommand.setSourceLocNo(shuttleProtocol.getCurrentLocNo());//源库位 |
| | | assignCommand.setLocNo(wrkMast.getLocNo());//目标库位 |
| | | assignCommand.setAuto(true);//自动模式 |
| | | |
| | | //获取小车到输送站点行走命令 |
| | | //获取小车到目标库位命令 |
| | | List<ShuttleCommand> commands = shuttleOperaUtils.getStartToTargetCommands(liftSta.getLocNo(), wrkMast.getLocNo(), NavigationMapType.getDfxWithDevice(), assignCommand, shuttleThread); |
| | | if (commands == null) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}小车,路径计算失败", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo()); |
| | |
| | | assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo()); // 四向穿梭车编号 |
| | | assignCommand.setTaskMode(ShuttleTaskModeType.TRANSPORT.id);//小车移库任务 |
| | | assignCommand.setTaskNo(wrkMast.getWrkNo());//任务号 |
| | | assignCommand.setSourceLocNo(shuttleProtocol.getCurrentLocNo());//源库位 |
| | | assignCommand.setLocNo(liftSta.getLocNo());//目标库位 |
| | | assignCommand.setAuto(true);//自动模式 |
| | | |
| | | //获取小车到输送站点行走命令 |
| | |
| | | assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo()); // 四向穿梭车编号 |
| | | assignCommand.setTaskMode(ShuttleTaskModeType.TRANSPORT.id);//小车移库任务 |
| | | assignCommand.setTaskNo(wrkMast.getWrkNo());//任务号 |
| | | assignCommand.setSourceLocNo(shuttleProtocol.getCurrentLocNo());//源库位 |
| | | assignCommand.setLocNo(wrkMast.getLocNo());//目标库位 |
| | | assignCommand.setAuto(true);//自动模式 |
| | | assignCommand.setLocNo(wrkMast.getLocNo()); |
| | | |
| | | //获取小车到输送站点行走命令 |
| | | List<ShuttleCommand> commands = shuttleOperaUtils.getStartToTargetCommands(wrkMast.getSourceLocNo(), wrkMast.getLocNo(), NavigationMapType.getMapTypes(NavigationMapType.DFX), assignCommand, shuttleThread); |
| | |
| | | |
| | | //1.生成入库任务 ==> 3.提升机搬运中 |
| | | if (wrkMast.getWrkSts() == WrkStsType.NEW_INBOUND.sts) { |
| | | //获取源输送站 |
| | | LiftStaProtocol sourceLiftSta = LiftUtils.getLiftStaByStaNo(wrkMast.getSourceStaNo()); |
| | | if (sourceLiftSta == null) { |
| | | return false;//找不到站点 |
| | | } |
| | | |
| | | if (!sourceLiftSta.getHasTray()) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,源站无托盘", wrkMast.getWrkNo()); |
| | | return false; |
| | | } |
| | | |
| | | //获取目标输送站 |
| | | LiftStaProtocol liftSta = LiftUtils.getLiftStaByStaNo(wrkMast.getStaNo()); |
| | | if (liftSta == null) { |
| | |
| | | return false; |
| | | } |
| | | |
| | | //获取小车待机位 |
| | | String standbyLocNo = Utils.getShuttleStandbyLocNo(liftSta.getLocNo()); |
| | | if (standbyLocNo == null) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,获取小车待机位失败", wrkMast.getWrkNo()); |
| | | String targetLocNo = navigateUtils.calcEndLocation(wrkMast.getLocNo(), liftSta.getLocNo(), NavigationMapType.getMapTypes(NavigationMapType.NORMAL), null, null, 2); |
| | | if (targetLocNo == null) {//出输送线站点计算失败 |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,调度小车去入库层近点计算失败", wrkMast.getWrkNo()); |
| | | return false; |
| | | } |
| | | |
| | | //调度小车去待机位 |
| | | boolean dispatchShuttle = shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), standbyLocNo); |
| | | boolean dispatchShuttle = shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), targetLocNo); |
| | | if (!dispatchShuttle) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,调度小车失败", wrkMast.getWrkNo()); |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,调度小车去入库层失败", wrkMast.getWrkNo()); |
| | | return false; |
| | | } |
| | | return false; |
| | |
| | | |
| | | if (shuttleProtocol.getCurrentLocNo().equals(liftSta.getLocNo())) { |
| | | //小车还在输送站点 |
| | | //获取小车待机位 |
| | | String standbyLocNo = Utils.getShuttleStandbyLocNo(liftSta.getLocNo()); |
| | | if (standbyLocNo == null) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,获取小车待机位失败", wrkMast.getWrkNo()); |
| | | //小车出提升机近点距离 |
| | | int shuttleOutLiftLocationDistance = 2; |
| | | Config shuttleOutLiftLocationDistanceConfig = configService.selectOne(new EntityWrapper<Config>().eq("code", "shuttleOutLiftLocationDistance")); |
| | | if (shuttleOutLiftLocationDistanceConfig != null) { |
| | | shuttleOutLiftLocationDistance = Integer.parseInt(shuttleOutLiftLocationDistanceConfig.getValue()); |
| | | } |
| | | |
| | | String targetLocNo = navigateUtils.calcFirstLocation(shuttleProtocol.getCurrentLocNo(), wrkMast.getSourceLocNo(), NavigationMapType.getMapTypes(NavigationMapType.NORMAL), null, null, shuttleOutLiftLocationDistance); |
| | | if (targetLocNo == null) {//出输送线站点计算失败 |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}小车,出输送线站点计算失败", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo()); |
| | | return false; |
| | | } |
| | | |
| | | //调度小车去待机位 |
| | | boolean dispatchShuttle = shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), standbyLocNo, wrkMast.getShuttleNo()); |
| | | boolean dispatchShuttle = shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), targetLocNo, wrkMast.getShuttleNo()); |
| | | if (!dispatchShuttle) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,小车在输送站点调度小车避让失败", wrkMast.getWrkNo()); |
| | | return false; |
| | |
| | | } |
| | | |
| | | //获取提升机命令 |
| | | LiftCommand liftCommand = liftThread.getPickAndPutCommand(wrkMast.getWrkNo(), liftSta.getLev(), wrkMast.getStaNo()); |
| | | LiftCommand liftCommand = liftThread.getPickAndPutCommand(wrkMast.getWrkNo(), liftSta.getSiteId(), wrkMast.getStaNo()); |
| | | ArrayList<LiftCommand> commands = new ArrayList<>(); |
| | | commands.add(liftCommand); |
| | | |
| | |
| | | } |
| | | LiftProtocol liftProtocol = liftThread.getStatus(); |
| | | if (liftProtocol == null) { |
| | | continue; |
| | | } |
| | | |
| | | if (!liftThread.isDeviceIdle()) { |
| | | continue; |
| | | } |
| | | |
| | |
| | | return false;//缺少站点信息 |
| | | } |
| | | |
| | | if (liftSta.getHasTray()) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,目标站存在托盘,禁止派发", wrkMast.getWrkNo()); |
| | | if (liftSta.getHasCar()) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,目标站存在小车,禁止派发", wrkMast.getWrkNo()); |
| | | return false;//有托盘跳过 |
| | | } |
| | | |