| | |
| | | dev_no2 = 1012; |
| | | } else if (ledId == 2) { |
| | | dev_no1 = 1013; |
| | | dev_no2 = 1015; |
| | | dev_no2 = 1014; |
| | | dev_no3 = 1015; |
| | | } else if (ledId == 3) { |
| | | dev_no1 = 1021; |
| | |
| | | LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); |
| | | String errMsg = ""; |
| | | if (!back && staProtocol.isBackErr()) { |
| | | errMsg = "超宽异常"; |
| | | errMsg = "超长异常"; |
| | | back = true; |
| | | } |
| | | if (!back && staProtocol.isHighErr()) { |
| | |
| | | back = true; |
| | | } |
| | | if (!back && staProtocol.isRightErr()) { |
| | | errMsg = "超长异常"; |
| | | back = true; |
| | | } |
| | | if (!back && staProtocol.isWeightErr()) { |
| | | errMsg = "超重"; |
| | | errMsg = "超宽异常"; |
| | | back = true; |
| | | } |
| | | // 退回 |
| | |
| | | if (wrkMast.getStaNo() == 1026) { |
| | | locNo = "1200305"; |
| | | } |
| | | //获取提升机信息 |
| | | LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, 1); |
| | | if (liftThread == null) { |
| | | continue; |
| | | } |
| | | |
| | | LiftProtocol liftProtocol = liftThread.getStatus(); |
| | | if (liftProtocol == null) { |
| | | continue; |
| | | } |
| | | |
| | | if (!liftThread.isIdle()) { |
| | | continue; |
| | | } |
| | | |
| | | |
| | | //判断提升机内是否有托盘 |
| | | if (liftProtocol.getHasTray()) { |
| | | News.info("{}任务,{}号提升机,提升机内无托盘,禁止派发", wrkMast.getWrkNo(), liftProtocol.getLiftNo()); |
| | | continue; |
| | | } |
| | | |
| | | |
| | | boolean dispatchShuttle = shuttleDispatchUtils.searchDispatchShuttleNoLift(wrkMast.getWrkNo(), locNo, wrkMast.getLocNo(), "TRANSPORT_DEVP"); |
| | | if (!dispatchShuttle) { |
| | | News.info("{}任务,调度小车失败", wrkMast.getWrkNo()); |
| | |
| | | if (wrkMast.getStaNo() == 1024) { |
| | | locNo = "1200305"; |
| | | } |
| | | |
| | | boolean dispatchShuttle = shuttleDispatchUtils.searchDispatchShuttleNoLift(wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), locNo, "TRANSPORT_DEVP"); |
| | | if (!dispatchShuttle) { |
| | | News.info("{}任务,调度小车失败", wrkMast.getWrkNo()); |
| | | continue; |
| | | } |
| | | |
| | | WrkMast wrkMast2 = wrkMastService.selectByMainWrkNo(wrkMast.getWrkNo()); |
| | | wrkMast.setWrkSts(WrkStsType.OUTBOUND_SHUTTLE_RUN.sts); |
| | | wrkMast.setSystemMsg("");//清空消息 |
| | | wrkMast.setModiTime(now); |
| | | if (wrkMast2 != null) { |
| | | wrkMast.setShuttleNo(wrkMast2.getShuttleNo()); |
| | | } |
| | | if (!wrkMastService.updateById(wrkMast)) { |
| | | News.info("{}任务,更新工作档失败", wrkMast.getWrkNo()); |
| | | } else { |
| | |
| | | LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led); |
| | | String errMsg = ""; |
| | | if (!back && staProtocol.isBackErr()) { |
| | | errMsg = "超宽异常"; |
| | | errMsg = "超长异常"; |
| | | back = true; |
| | | } |
| | | if (!back && staProtocol.isHighErr()) { |
| | |
| | | back = true; |
| | | } |
| | | if (!back && staProtocol.isRightErr()) { |
| | | errMsg = "超长异常"; |
| | | errMsg = "超宽异常"; |
| | | back = true; |
| | | } |
| | | if (!back && staProtocol.isWeightErr()) { |
| | |
| | | } |
| | | } |
| | | String barcode = staProtocol.getBarcode(); |
| | | |
| | | |
| | | |
| | | if (!staProtocol.isLoading()) { |
| | |
| | | try { |
| | | this.recShuttleErr(); |
| | | this.recLiftErr(); |
| | | LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, 1); |
| | | ledThread.errorReset(); |
| | | ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, 2); |
| | | ledThread.errorReset(); |
| | | ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, 3); |
| | | ledThread.errorReset(); |
| | | ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, 4); |
| | | ledThread.errorReset(); |
| | | } catch (Exception e) { |
| | | News.error("recErr fail", e); |
| | | } |
| | |
| | | |
| | | /** |
| | | * 从没有提升机侧入库,有两种情况,一种入库到同层,一种入库到不同层,则需要提升机 |
| | | * |
| | | * @param wrkMast |
| | | */ |
| | | public void shuttleMoveExecute(WrkMast wrkMast, Integer staNo, Integer lev) { |
| | |
| | | return false; |
| | | } |
| | | |
| | | //判断提升机是否有其他任务 |
| | | WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(liftProtocol.getLiftNo(), wrkMast.getWrkNo(), wrkMast.getMainWrkNo()); |
| | | if (liftWrkMast != null) { |
| | | if (!liftWrkMast.getWrkNo().equals(wrkMast.getWrkNo())) {//提升机任务和当前任务不相同 |
| | | News.info("{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), wrkMast.getLiftNo()); |
| | | return false;//当前提升机存在未完成任务,等待下一次轮询 |
| | | } |
| | | } |
| | | |
| | | |
| | | if (!liftThread.isIdle()) { |
| | | News.info("{}任务,{}号提升机,提升机忙碌中,禁止派发", wrkMast.getWrkNo(), wrkMast.getLiftNo()); |
| | |
| | | } |
| | | |
| | | //判断提升机是否有其他任务 |
| | | WrkMast w = wrkMastService.selectLiftWrkMast(1); |
| | | if (w != null) { |
| | | if (!w.getWrkNo().equals(wrkMast.getWrkNo())) {//提升机任务和当前任务不相同 |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}号提升机,提升机存在别的绑定任务ru,禁止派发", wrkMast.getWrkNo(), 1); |
| | | return false; |
| | | WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(liftProtocol.getLiftNo(), wrkMast.getWrkNo(), wrkMast.getMainWrkNo()); |
| | | if (liftWrkMast != null) { |
| | | if (!liftWrkMast.getWrkNo().equals(wrkMast.getMainWrkNo())) {//提升机任务和当前任务不相同 |
| | | News.info("{}任务,{}号提升机,提升机存在未完成任务,禁止派发", wrkMast.getWrkNo(), wrkMast.getLiftNo()); |
| | | return false;//当前提升机存在未完成任务,等待下一次轮询 |
| | | } |
| | | } |
| | | |
| | |
| | | return false; |
| | | } |
| | | |
| | | |
| | | if (!liftStandByLocNo.equals(wrkMast.getSourceLocNo())) { |
| | | //获取小车到提升机待机位行走命令 |
| | | List<ShuttleCommand> moveCommands = shuttleOperaUtils.getStartToTargetCommands(shuttleProtocol.getCurrentLocNo(), liftStandByLocNo, mapType, assignCommand, shuttleThread); |
| | |
| | | |
| | | } |
| | | //获取小车到提升机待机行走命令 |
| | | List<ShuttleCommand> commands = shuttleOperaUtils.getStartToTargetCommands(shuttleProtocol.getCurrentLocNo(), locNo, NavigationMapType.DFX.id, assignCommand, shuttleThread); |
| | | List<ShuttleCommand> commands = shuttleOperaUtils.getStartToTargetCommands(shuttleProtocol.getCurrentLocNo(), locNo, NavigationMapType.NORMAL.id, assignCommand, shuttleThread); |
| | | if (commands == null) { |
| | | News.taskInfo(wrkMast.getWrkNo(), "{}任务,{}小车,路径计算失败", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo()); |
| | | return false; |
| | |
| | | package com.zy.common.service; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.common.Cools; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.domain.param.*; |
| | |
| | | if (!locMast.getLocSts().equals("O")) { |
| | | throw new CoolException("目标库位不处于空库状态"); |
| | | } |
| | | WrkMast wms_wrk_no = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wms_wrk_no", param.getTaskNo())); |
| | | if (wms_wrk_no!=null){ |
| | | throw new CoolException("工作当已经存在"); |
| | | } |
| | | |
| | | // 获取工作号 |
| | | int workNo = getWorkNo(WrkIoType.IN.id); |
| | |
| | | if (!locMast.getLocSts().equals("F")) { |
| | | throw new CoolException("源库位不处于在库状态"); |
| | | } |
| | | |
| | | WrkMast wms_wrk_no = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wms_wrk_no", param.getTaskNo())); |
| | | if (wms_wrk_no!=null){ |
| | | throw new CoolException("工作当已经存在"); |
| | | } |
| | | // 获取工作号 |
| | | int workNo = getWorkNo(WrkIoType.OUT.id); |
| | | // 保存工作档 |