| | |
| | | import com.core.common.R; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.domain.enums.RgvStatusType; |
| | | import com.zy.asrs.domain.param.CrnOperatorParam; |
| | | import com.zy.asrs.domain.param.RgvOperatorParam; |
| | | import com.zy.asrs.domain.vo.RgvMsgTableVo; |
| | | import com.zy.asrs.domain.vo.RgvStateTableVo; |
| | |
| | | import com.zy.asrs.service.LocMastService; |
| | | import com.zy.asrs.service.WrkMastService; |
| | | import com.zy.asrs.service.impl.MainServiceImpl; |
| | | import com.zy.core.CrnThread; |
| | | import com.zy.core.cache.MessageQueue; |
| | | import com.zy.core.cache.OutputQueue; |
| | | import com.zy.core.cache.SlaveConnection; |
| | | import com.zy.core.enums.RgvModeType; |
| | | import com.zy.core.enums.RgvTaskModeType; |
| | | import com.zy.core.enums.SlaveType; |
| | | import com.zy.core.model.CrnSlave; |
| | | import com.zy.core.model.RgvSlave; |
| | | import com.zy.core.model.Task; |
| | | import com.zy.core.model.command.CrnCommand; |
| | | import com.zy.core.model.command.RgvCommand; |
| | | import com.zy.core.model.protocol.CrnProtocol; |
| | | import com.zy.core.model.protocol.RgvProtocol; |
| | | import com.zy.core.properties.SlaveProperties; |
| | | import com.zy.core.thread.SiemensRgvThread; |
| | |
| | | private MainServiceImpl mainService; |
| | | @Autowired |
| | | private LocMastService locMastService; |
| | | |
| | | |
| | | @ManagerAuth(memo = "复位") |
| | | @PostMapping("/rgv/operator/reset") |
| | | public R crnReset(RgvOperatorParam param){ |
| | | // 系统运行状态判断 |
| | | // if (SystemProperties.WCS_RUNNING_STATUS.get()) { |
| | | // return R.error("wcs系统状态为开启"); |
| | | // } |
| | | short[] array = new short[9]; |
| | | RgvCommand command = new RgvCommand(); |
| | | command.setRgvNo(param.getRgvNo()); // 堆垛机编号 |
| | | command.setReset(true); |
| | | |
| | | return rgvControl(command)?R.ok():R.error(); |
| | | } |
| | | |
| | | private boolean rgvControl(CrnCommand command){ |
| | | if (command.getCrnNo() == null) { |
| | | throw new CoolException("请选择RGV"); |
| | | } |
| | | for (RgvSlave rgv : slaveProperties.getRgv()) { |
| | | // 获取堆垛机信息 |
| | | if (command.getCrnNo().equals(rgv.getId())) { |
| | | CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId()); |
| | | if (crnThread == null) { |
| | | throw new CoolException("RGV不在线"); |
| | | } |
| | | CrnProtocol crnProtocol = crnThread.getCrnProtocol(); |
| | | if (crnProtocol == null) { |
| | | throw new CoolException("RGV不在线"); |
| | | } |
| | | // 空闲判断 |
| | | // if (crnProtocol.getStatusType().equals(com.zy.core.enums.CrnStatusType.IDLE) && crnProtocol.getTaskNo() == 0) { |
| | | if (MessageQueue.offer(SlaveType.Rgv, rgv.getId(), new Task(4, command))) { |
| | | return true; |
| | | } else { |
| | | throw new CoolException("命令下发失败"); |
| | | } |
| | | // } else { |
| | | // throw new CoolException("堆垛机不在空闲状态"); |
| | | // } |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | @PostMapping("/table/rgv/state") |
| | | @ManagerAuth(memo = "RGV信息表") |
| | |
| | | /************************** 手动操作 ******************************/ |
| | | /****************************************************************/ |
| | | |
| | | @ManagerAuth(memo = "取放货") |
| | | @PostMapping("/operator/put") |
| | | public R rgvFetchPut(RgvOperatorParam param){ |
| | | RgvCommand command = new RgvCommand(); |
| | | command.setRgvNo(param.getRgvNo()); // RGV编号 |
| | | command.setAckFinish1((short) 0); // 任务完成确认位 |
| | | command.setTaskNo1((short) 0); // 工作号 |
| | | command.setTaskMode1(RgvTaskModeType.FETCH_PUT); // 任务模式: 取放货 |
| | | command.setSourceStaNo1(param.getSourceStaNo1()); // 源站 |
| | | command.setDestinationStaNo1(param.getStaNo1()); // 目标站 |
| | | // command.setAckFinish2((short) 0); // 任务完成确认位 |
| | | // command.setTaskNo2((short) 0); // 工作号 |
| | | // command.setTaskMode2(RgvTaskModeType.FETCH_PUT); // 任务模式: 取放货 |
| | | // command.setSourceStaNo2(param.getSourceStaNo2()); // 源站 |
| | | // command.setDestinationStaNo2(param.getStaNo2()); // 目标站 |
| | | command.setCommand((short) 0); |
| | | |
| | | return rgvControl(command)? R.ok(): R.error(); |
| | | } |
| | | |
| | | @ManagerAuth(memo = "取货") |
| | | @PostMapping("/operator/take") |
| | | public R rgvFetch(RgvOperatorParam param){ |
| | | RgvCommand command = new RgvCommand(); |
| | | command.setRgvNo(param.getRgvNo()); // RGV编号 |
| | | command.setAckFinish1((short) 0); // 任务完成确认位 |
| | | command.setTaskNo1((short) 0); // 工作号 |
| | | command.setTaskMode1(RgvTaskModeType.FETCH); // 任务模式: 取货 |
| | | command.setSourceStaNo1(param.getSourceStaNo1()); // 源站 |
| | | command.setDestinationStaNo1(param.getStaNo1()); // 目标站 |
| | | command.setAckFinish2((short) 0); // 任务完成确认位 |
| | | command.setTaskNo2((short) 0); // 工作号 |
| | | command.setTaskMode2(RgvTaskModeType.FETCH_PUT); // 任务模式: 取放货 |
| | | command.setSourceStaNo2(param.getSourceStaNo2()); // 源站 |
| | | command.setDestinationStaNo2(param.getStaNo2()); // 目标站 |
| | | command.setCommand((short) 0); |
| | | |
| | | return rgvControl(command)? R.ok(): R.error(); |
| | | } |
| | | |
| | | @ManagerAuth(memo = "放货") |
| | | @PostMapping("/operator/stockMove") |
| | | public R rgvPut(RgvOperatorParam param){ |
| | | RgvCommand command = new RgvCommand(); |
| | | command.setRgvNo(param.getRgvNo()); // RGV编号 |
| | | command.setAckFinish1((short) 0); // 任务完成确认位 |
| | | command.setTaskNo1((short) 0); // 工作号 |
| | | command.setTaskMode1(RgvTaskModeType.PUT); // 任务模式: 放货 |
| | | command.setSourceStaNo1(param.getSourceStaNo1()); // 源站 |
| | | command.setDestinationStaNo1(param.getStaNo1()); // 目标站 |
| | | command.setAckFinish2((short) 0); // 任务完成确认位 |
| | | command.setTaskNo2((short) 0); // 工作号 |
| | | command.setTaskMode2(RgvTaskModeType.FETCH_PUT); // 任务模式: 取放货 |
| | | command.setSourceStaNo2(param.getSourceStaNo2()); // 源站 |
| | | command.setDestinationStaNo2(param.getStaNo2()); // 目标站 |
| | | command.setCommand((short) 0); |
| | | |
| | | return rgvControl(command)? R.ok(): R.error(); |
| | | } |
| | | |
| | | @ManagerAuth(memo = "任务完成") |
| | | @PostMapping("/operator/taskComplete") |