| | |
| | | */ |
| | | @Slf4j |
| | | @Service("mainService") |
| | | @Transactional |
| | | public class MainServiceImpl { |
| | | |
| | | public static final long COMMAND_TIMEOUT = 5 * 1000; |
| | |
| | | if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(wrkMast.getWrkNo().shortValue()) && crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.forkPosType == CrnForkPosType.HOME) { |
| | | log.info("堆垛机出库完成 - 开始执行"); |
| | | |
| | | Date date = new Date(); |
| | | long diffInMillis = date.getTime() - wrkMast.getCrnStrTime().getTime(); |
| | | if (!(diffInMillis >= 30000)){ |
| | | continue; |
| | | } |
| | | |
| | | // 命令下发区 -------------------------------------------------------------------------- |
| | | |
| | | // 下发站点信息 |
| | |
| | | // } |
| | | |
| | | // 只有当堆垛机空闲 并且 无任务时才继续执行 |
| | | if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getModeType() == CrnModeType.AUTO && crnProtocol.getForkPos() == 0 && crnProtocol.getTaskNo() == 0 && crnProtocol.getTaskNoTwo() == 0) { |
| | | if ( |
| | | crnProtocol.getStatusType() == CrnStatusType.IDLE |
| | | && crnProtocol.getModeType() == CrnModeType.AUTO |
| | | && crnProtocol.getForkPos() == 0 |
| | | && crnProtocol.getTaskNo() == 0 |
| | | && crnProtocol.getStatusTypeTwo() == CrnStatusType.IDLE |
| | | && crnProtocol.getForkPosTwo() == 0 |
| | | && crnProtocol.getTaskNoTwo() == 0) { |
| | | News.warnNoLog("" + mark + " - 0" + " - 开始执行堆垛机入出库作业下发"); |
| | | if (crnProtocol.getLoaded() == 0 && crnProtocol.getLoadedTwo() == 0) { |
| | | //News.error("工位1无物,工位2无物"); |
| | |
| | | return; |
| | | } |
| | | |
| | | // 堆垛机控制过滤 |
| | | if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { |
| | | return; |
| | | } |
| | | |
| | | // 已经存在吊车执行任务时,则过滤 |
| | | if (wrkMastMapper.selectWorking(slave.getId()) != null) { |
| | | return; |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | if (crnStation == 0) { |
| | | return; |
| | | }else if(crnStation == 1) { |
| | | // 堆垛机控制过滤 |
| | | if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { |
| | | return; |
| | | } |
| | | }else if(crnStation == 2) { |
| | | // 堆垛机控制过滤 |
| | | if (!crnProtocol.getStatusTypeTwo().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNoTwo() != 0) { |
| | | return; |
| | | } |
| | | }else { |
| | | } |
| | | |
| | | News.warnNoLog("" + mark + " - 3" + " - 3" + " - 命令下发 : 工作号={},源排={},源列={},源层={},目标排={},目标列={},目标层={}", wrkMast.getWrkNo().shortValue(), sourceSta.getRow1().shortValue(), sourceSta.getBay1().shortValue(), sourceSta.getLev1().shortValue(), sta.getRow1().shortValue(), sta.getBay1().shortValue(), sta.getLev1().shortValue()); |
| | | |
| | |
| | | } |
| | | // 状态:等待确认 并且 任务完成位 = 1 |
| | | if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) { |
| | | News.warnNoLog("" + mark + " - 0" + " - 开始执行对工作档的完成操作,任务号:" + crnProtocol.getTaskNo()); |
| | | if (crnProtocol.getTaskNo() == 9999) { |
| | | crnThread.setResetFlag(true); |
| | | continue; |
| | | } |
| | | |
| | | if ((System.currentTimeMillis() - crnProtocol.getLastCommandTime()) < 1000 * 6) { |
| | | News.error("" + mark + " - 0" + " - 堆垛机指令等待确认完成过快异常,任务号:" + crnProtocol.getTaskNo()); |
| | | continue; |
| | | } |
| | | |
| | | News.warnNoLog("" + mark + " - 0" + " - 开始执行对工作档的完成操作,任务号:" + crnProtocol.getTaskNo()); |
| | | // if (crnProtocol.getTaskNo() == 9999) { |
| | | // crnThread.setResetFlag(true); |
| | | // continue; |
| | | // } |
| | | // 获取入库待确认工作档 |
| | | WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue()); |
| | | if (wrkMast == null) { |
| | | News.error("" + mark + " - 1" + " - 堆垛机处于等待确认且任务完成状态,但未找到工作档。堆垛机号={},工作号={}", crn.getId(), crnProtocol.getTaskNo()); |
| | | continue; |
| | | } |
| | | Date date = new Date(); |
| | | long diffInMillis = date.getTime() - wrkMast.getCrnStrTime().getTime(); |
| | | if (!(diffInMillis >= 30000)){ |
| | | continue; |
| | | } |
| | | // 入库 + 库位转移 ==> 4.入库完成 |
| | | if (wrkMast.getWrkSts() == 3) { |
| | | wrkMast.setWrkSts(4L); |