| | |
| | | import com.core.annotations.ManagerAuth; |
| | | import com.core.common.R; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.domain.enums.CrnStatusType; |
| | | 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.RgvStateTableVo; |
| | | import com.zy.asrs.entity.BasRgv; |
| | | import com.zy.asrs.entity.BasRgvErr; |
| | | import com.zy.asrs.entity.TaskWrk; |
| | | import com.zy.asrs.entity.WrkMast; |
| | | import com.zy.asrs.mapper.BasRgvErrMapper; |
| | | import com.zy.asrs.service.BasRgvService; |
| | | import com.zy.asrs.service.LocMastService; |
| | | import com.zy.asrs.service.TaskWrkService; |
| | | import com.zy.asrs.service.WrkMastService; |
| | | import com.zy.asrs.service.impl.MainServiceImpl; |
| | | import com.zy.core.CrnThread; |
| | | import com.zy.core.RgvThread; |
| | | import com.zy.core.cache.MessageQueue; |
| | | import com.zy.core.cache.OutputQueue; |
| | | import com.zy.core.cache.SlaveConnection; |
| | |
| | | private MainServiceImpl mainService; |
| | | @Autowired |
| | | private LocMastService locMastService; |
| | | @Autowired |
| | | private TaskWrkService taskWrkService; |
| | | |
| | | |
| | | @ManagerAuth(memo = "复位") |
| | | @PostMapping("/rgv/operator/reset") |
| | | @PostMapping("/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 rgvControl2(command)?R.ok():R.error(); |
| | | } |
| | | @ManagerAuth(memo = "联机") |
| | | @PostMapping("/operator/auto") |
| | | public R crnAuto(RgvOperatorParam param){ |
| | | RgvCommand command = new RgvCommand(); |
| | | command.setRgvNo(param.getRgvNo()); // 堆垛机编号 |
| | | command.setAuto(true); |
| | | return rgvControl2(command)?R.ok():R.error(); |
| | | } |
| | | @ManagerAuth(memo = "恢复任务") |
| | | @PostMapping("/operator/restoreTask") |
| | | public R crnRestoreTask(RgvOperatorParam param){ |
| | | RgvCommand command = new RgvCommand(); |
| | | command.setRgvNo(param.getRgvNo()); // 堆垛机编号 |
| | | command.setRestoreTask(true); |
| | | return rgvControl2(command)?R.ok():R.error(); |
| | | } |
| | | @ManagerAuth(memo = "完成任务") |
| | | @PostMapping("/operator/compTask") |
| | | public R rgvCompTask(RgvOperatorParam param){ |
| | | RgvCommand command = new RgvCommand(); |
| | | command.setRgvNo(param.getRgvNo()); // 堆垛机编号 |
| | | command.setCompTask(true); |
| | | return rgvControl2(command)?R.ok():R.error(); |
| | | } |
| | | @ManagerAuth(memo = "急停") |
| | | @PostMapping("/operator/stop") |
| | | public R rgvStop(RgvOperatorParam param){ |
| | | RgvCommand command = new RgvCommand(); |
| | | command.setRgvNo(param.getRgvNo()); // 堆垛机编号 |
| | | command.setStop(true); |
| | | return rgvControl2(command)?R.ok():R.error(); |
| | | } |
| | | |
| | | @ManagerAuth(memo = "取消急停") |
| | | @PostMapping("/operator/noStop") |
| | | public R rgvNoStop(RgvOperatorParam param){ |
| | | RgvCommand command = new RgvCommand(); |
| | | command.setRgvNo(param.getRgvNo()); // 堆垛机编号 |
| | | command.setNoStop(true); |
| | | return rgvControl2(command)?R.ok():R.error(); |
| | | } |
| | | |
| | |
| | | for (RgvSlave rgv : slaveProperties.getRgv()) { |
| | | // 获取堆垛机信息 |
| | | if (command.getRgvNo().equals(rgv.getId())) { |
| | | CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId()); |
| | | if (crnThread == null) { |
| | | SiemensRgvThread rgvThread = (SiemensRgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId()); |
| | | if (rgvThread == null) { |
| | | throw new CoolException("RGV不在线"); |
| | | } |
| | | CrnProtocol crnProtocol = crnThread.getCrnProtocol(); |
| | | if (crnProtocol == null) { |
| | | RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); |
| | | if (rgvProtocol == null) { |
| | | throw new CoolException("RGV不在线"); |
| | | } |
| | | // 空闲判断 |
| | |
| | | vo.setStatusType(rgvProtocol.modeType.desc); // 模式状态 |
| | | vo.setStatus(rgvProtocol.getStatusType().desc); // 状态 |
| | | vo.setWorkNo1(rgvProtocol.getTaskNo1()); // 工位1任务号 |
| | | vo.setStatus1(rgvProtocol.getStatusType1().desc); // 工位1状态 |
| | | vo.setLoading1(rgvProtocol.getLoaded1()==1?"有物":"无物"); // 工位1有物 |
| | | vo.setRgvPos(rgvProtocol.getRgvPos()); |
| | | vo.setRgvPos1(rgvProtocol.getRgvPosI()); |
| | | vo.setWalkPos(rgvProtocol.getWalkPos()==1?"在定位":"不在定位"); |
| | | vo.setPakMk(rgvThread.isPakMk()?"无锁":"锁定"); |
| | | // vo.setWorkNo2(rgvProtocol.getTaskNo2()); // 工位2任务号 |
| | | // vo.setStatus2(rgvProtocol.getStatusType2().desc); // 工位2状态 |
| | | // vo.setLoading2(rgvProtocol.getLoaded2()==1?"有物":"无物"); // 工位2有物 |
| | | |
| | | vo.setWalkPos(rgvProtocol.getAlarm() == 0?"正常":"报警"); |
| | | vo.setWarnCode(String.valueOf(rgvProtocol.getAlarm())); |
| | | if (rgvProtocol.getTaskNo1()>0) { |
| | | TaskWrk taskWrk = taskWrkService.selectByWrkNo(rgvProtocol.getTaskNo1().intValue()); |
| | | if (taskWrk != null) { |
| | | vo.setStatus(CrnStatusType.process(taskWrk.getIoType()).getDesc()); // 模式状态 |
| | | vo.setSourceStaNo(taskWrk.getStartPoint()); // 源站 |
| | | vo.setStaNo(taskWrk.getTargetPoint()); // 目标站 |
| | | vo.setBarcode(taskWrk.getBarcode()); |
| | | } |
| | | } |
| | | if (rgvProtocol.getAlarm() > 0) { |
| | | BasRgvErr rgvErr = basRgvErrMapper.selectById(rgvProtocol.getAlarm()); |
| | | vo.setAlarm(rgvErr==null?"未知异常":rgvErr.getErrName()); |
| | |
| | | |
| | | vo.setWorkNo(rgvProtocol.getTaskNo1()); // 任务号 |
| | | if (rgvProtocol.getTaskNo1()>0) { |
| | | WrkMast wrkMast = wrkMastService.selectById(rgvProtocol.getTaskNo1()); |
| | | if (wrkMast != null) { |
| | | vo.setStatus(RgvStatusType.process(wrkMast.getIoType()).getDesc()); // 模式状态 |
| | | vo.setSourceStaNo(wrkMast.getSourceStaNo$()); // 源站 |
| | | vo.setStaNo(wrkMast.getStaNo$()); // 目标站 |
| | | vo.setSourceLocNo(wrkMast.getSourceLocNo()); // 源库位 |
| | | vo.setLocNo(wrkMast.getLocNo()); // 目标库位 |
| | | TaskWrk taskWrk = taskWrkService.selectByWrkNo(rgvProtocol.getTaskNo1().intValue()); |
| | | if (taskWrk != null) { |
| | | vo.setStatus(CrnStatusType.process(taskWrk.getIoType()).getDesc()); // 模式状态 |
| | | vo.setSourceStaNo(taskWrk.getStartPoint()); // 源站 |
| | | vo.setStaNo(taskWrk.getTargetPoint()); // 目标站 |
| | | vo.setOrigin(taskWrk.getBarcode()); |
| | | } |
| | | } else { |
| | | vo.setStatus(rgvProtocol.modeType.equals(RgvModeType.AUTO)? rgvProtocol.modeType.desc: RgvModeType.HAND.desc); // 模式状态 |