| | |
| | | import com.zy.asrs.domain.vo.RgvStateTableVo; |
| | | import com.zy.asrs.entity.BasRgv; |
| | | import com.zy.asrs.entity.BasRgvErr; |
| | | import com.zy.asrs.entity.BasRgvMap; |
| | | import com.zy.asrs.entity.WrkMast; |
| | | import com.zy.asrs.mapper.BasRgvErrMapper; |
| | | import com.zy.asrs.mapper.BasRgvMapMapper; |
| | | import com.zy.asrs.service.BasRgvService; |
| | | import com.zy.asrs.service.LocMastService; |
| | | import com.zy.asrs.service.WrkMastService; |
| | |
| | | private MainServiceImpl mainService; |
| | | @Autowired |
| | | private LocMastService locMastService; |
| | | |
| | | @Autowired |
| | | private BasRgvMapMapper basRgvMapMapper; |
| | | @ManagerAuth(memo = "解锁小车") |
| | | @PostMapping("/lock") |
| | | public R lock(CrnOperatorParam param){ |
| | |
| | | |
| | | RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); |
| | | if (rgvProtocol == null) continue; |
| | | BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); |
| | | |
| | | vo.setStatusType(rgvProtocol.modeType.desc); // 模式状态 |
| | | vo.setStatus(String.valueOf(rgvProtocol.getMode())); // 状态 |
| | | vo.setWorkNo1(rgvProtocol.getTaskNo1()); // 工位1任务号 |
| | | vo.setStatus1(rgvProtocol.getStatusType1().desc); // 工位1状态 |
| | | vo.setLoading1(rgvProtocol.getLoaded1() ? "有物" : "无物"); // 工位1有物 |
| | | vo.setRgvPos(rgvProtocol.getRgvPos()); |
| | | vo.setRgvPos(basRgvMap != null?basRgvMap.getNowRoute():0); |
| | | vo.setRgvPos1(rgvProtocol.getRgvPosI2()); |
| | | vo.setWalkPos(Objects.equals(rgvProtocol.getWalkPos(), 1) ? "在定位" : "不在定位"); |
| | | vo.setPakMk(rgvThread.isPakMk() ? "无锁" : "锁定"); |
| | | // vo.setPakIn(rgvThread.isPakIn() ? "可入" : "不可入"); |
| | | // vo.setPakOut(rgvThread.isPakOut() ? "可出" : "不可出"); |
| | | // vo.setPakRgv(rgvThread.isPakRgv() ? "无锁" : "锁定"); |
| | | vo.setPaking(rgvThread.isPaking()? "无锁" : "锁定"); |
| | | // vo.setPakAll(rgvThread.isPakAll() ? "无锁" : "锁定"); |
| | | // vo.setPakToCrn(rgvThread.isPakToCrn() ? "无锁" : "锁定"); |
| | | |
| | | |
| | | vo.setWorkNo2(rgvProtocol.getTaskNo2()); // 工位2任务号 |
| | | // vo.setStatus2(rgvProtocol.getStatusType2().desc); // 工位2状态 |
| | | vo.setLoading2(rgvProtocol.getLoaded2() ? "有物" : "无物"); // 工位2有物 |
| | |
| | | } |
| | | RgvCommand command = new RgvCommand(); |
| | | command.setRgvNo(param.getRgvNo()); // RGV编号 |
| | | command.setAckFinish1(true); // 任务完成确认位 |
| | | // command.setTaskNo1( 0); // 工作号 |
| | | command.setTaskMode1(RgvTaskModeType.NONE); // 任务模式 |
| | | command.setSourceStaNo1((short) 0); // 源站 |
| | | command.setDestinationStaNo1((short) 0); // 目标站 |
| | | command.setAckFinish2(true); // 任务完成确认位 |
| | | command.setTaskNo2(0); // 工作号 |
| | | command.setTaskMode2(RgvTaskModeType.NONE); // 任务模式 |
| | | command.setSourceStaNo2((short) 0); // 源站 |
| | | command.setDestinationStaNo2((short) 0); // 目标站 |
| | | command.setCommand(true); |
| | | command.setWrkTaskPri(0); //执行工位 |
| | | command.setTaskNo(Math.toIntExact(0)); // 工作号 |
| | | command.setTaskStatus((short)0); // 任务模式: 取货 |
| | | command.setTargetPosition(0); // 目标站 |
| | | |
| | | return rgvControl(command)? R.ok(): R.error(); |
| | | return rgvClear(command)? R.ok(): R.error(); |
| | | } |
| | | |
| | | @ManagerAuth(memo = "手动复位") |
| | |
| | | return false; |
| | | } |
| | | |
| | | private boolean rgvClear(RgvCommand command){ |
| | | if (command.getRgvNo() == null) { |
| | | throw new CoolException("请选择RGV"); |
| | | } |
| | | for (RgvSlave rgv : slaveProperties.getRgv()) { |
| | | // 获取RGV信息 |
| | | if (command.getRgvNo().equals(rgv.getId())) { |
| | | RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId()); |
| | | if (rgvThread == null) { |
| | | throw new CoolException("RGV不在线"); |
| | | } |
| | | RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); |
| | | if (rgvProtocol == null) { |
| | | throw new CoolException("RGV不在线"); |
| | | } |
| | | if (MessageQueue.offer(SlaveType.Rgv, rgv.getId(), new Task(3, command))) { |
| | | return true; |
| | | } else { |
| | | throw new CoolException("命令下发失败"); |
| | | } |
| | | } |
| | | } |
| | | return false; |
| | | |
| | | } |
| | | |
| | | } |