| | |
| | | import com.zy.core.cache.SlaveConnection; |
| | | import com.zy.core.dispatcher.ShuttleDispatchUtils; |
| | | import com.zy.core.enums.*; |
| | | import com.zy.core.model.ShuttleSlave; |
| | | import com.zy.core.model.command.ShuttleAssignCommand; |
| | | import com.zy.core.model.command.ShuttleCommand; |
| | | import com.zy.core.model.command.ShuttleRedisCommand; |
| | | import com.zy.core.model.param.ShuttleMoveLocParam; |
| | | import com.zy.core.model.protocol.ShuttleProtocol; |
| | | import com.zy.core.properties.SlaveProperties; |
| | | import com.zy.core.thread.ShuttleThread; |
| | | import com.zy.core.thread.TrafficControlThread; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | |
| | | |
| | | if (shuttleTaskModeType == ShuttleTaskModeType.MOVE_LOC_NO) { |
| | | //移动到目标库位 |
| | | Integer mapType = NavigationMapType.NORMAL.id; |
| | | List<NavigationMapType> mapTypes = NavigationMapType.getMapTypes(NavigationMapType.NORMAL, NavigationMapType.PATH_LOCK); |
| | | if (shuttleProtocol.getHasLift()) { |
| | | mapType = NavigationMapType.DFX.id; |
| | | mapTypes = NavigationMapType.getMapTypes(NavigationMapType.DFX, NavigationMapType.PATH_LOCK); |
| | | } |
| | | List<ShuttleCommand> commands = shuttleOperaUtils.getStartToTargetCommands(shuttleProtocol.getCurrentLocNo(), param.getDistLocNo(), mapType, assignCommand, shuttleThread); |
| | | List<ShuttleCommand> commands = shuttleOperaUtils.getStartToTargetCommands(shuttleProtocol.getCurrentLocNo(), param.getDistLocNo(), mapTypes, assignCommand, shuttleThread); |
| | | if (commands == null) { |
| | | throw new CoolException("路径计算失败"); |
| | | } |
| | |
| | | assignCommand.setCommands(commands); |
| | | } else if (shuttleTaskModeType == ShuttleTaskModeType.RESET) { |
| | | //复位 |
| | | TrafficControlThread trafficControlThread = (TrafficControlThread) SlaveConnection.get(SlaveType.TrafficControl, 1); |
| | | trafficControlThread.forceCancelTrafficControl(shuttleProtocol.getShuttleNo()); |
| | | |
| | | shuttleThread.setSyncTaskNo(0);//工作号清空 |
| | | shuttleThread.setProtocolStatus(ShuttleProtocolStatusType.IDLE);//任务状态-空闲 |
| | | shuttleThread.setPakMk(true);//作业标记复位 |
| | |
| | | return R.ok(); |
| | | } else if (shuttleTaskModeType == ShuttleTaskModeType.MOVE_LOC_NO_TASK) { |
| | | //移动到目标库位(生成移动任务) |
| | | shuttleDispatchUtils.dispatchShuttle(commonService.getWorkNo(WrkIoType.LOC_MOVE.id), param.getDistLocNo(), param.getShuttleNo()); |
| | | shuttleDispatchUtils.dispatchShuttle(commonService.getWorkNo(WrkIoType.SHUTTLE_MOVE.id), param.getDistLocNo(), param.getShuttleNo()); |
| | | return R.ok(); |
| | | } else if (shuttleTaskModeType == ShuttleTaskModeType.SHUTTLE_DEMO_OPEN) { |
| | | //演示模式-开 |