| | |
| | | wrkMast.setUpdMk("Y"); |
| | | wrkMast.setIoPri(14D); |
| | | wrkMastMapper.updateById(wrkMast); |
| | | // 生成工作档,将浅库位移转到新的库位中 |
| | | moveLocForDeepLoc(slave, shallowLoc); |
| | | // 生成工作档、改变浅库位的源库/目标库 库位状态、下发堆垛机命令(立马执行) |
| | | moveLocForDeepLocPakin(slave, shallowLoc, wrkMast); |
| | | // moveLocForDeepLocPakin(slave, shallowLoc, wrkMast); |
| | | } |
| | | continue; |
| | | } else if (shallowLoc.getLocSts().equals("Q")){ |
| | |
| | | || Cools.isEmpty(waitWrkMast)) { |
| | | wrkMast.setUpdMk("Y"); |
| | | wrkMastMapper.updateById(wrkMast); |
| | | // 生成工作档、改变浅库位的源库/目标库 库位状态、下发堆垛机命令(立马执行) |
| | | // 生成工作档,将浅库位移转到新的库位中 |
| | | moveLocForDeepLoc(slave, shallowLoc); |
| | | } |
| | | log.error("{}任务出库失败,浅库位堵塞!", wrkMast.getWrkNo()); |
| | |
| | | * tip:同步 |
| | | */ |
| | | private void moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc){ |
| | | try { |
| | | List<Integer> rows = locMastService.queryDistinctRow(crn.getId()); |
| | | LocMast loc = null; |
| | | for (Integer row : rows) { |
| | |
| | | } |
| | | } |
| | | } |
| | | if (null != loc) { break; } |
| | | if (null != loc) { |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | if (null == loc) { |
| | |
| | | } |
| | | } |
| | | |
| | | if (null != loc) { break; } |
| | | if (null != loc) { |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (null == loc) { |
| | | log.error("双深库位 --- 浅库位阻塞异常! 待移转浅库位:" + shallowLoc.getLocNo()); |
| | | throw new CoolException("双深库位 --- 浅库位阻塞异常! 待移转浅库位:" + shallowLoc.getLocNo()); |
| | | } |
| | | |
| | |
| | | } else { |
| | | throw new CoolException("移转失败"); |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | log.error("双深库位阻塞,对浅库位进行移转失败", e); |
| | | e.printStackTrace(); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 堆垛机演示 ===>> 库位移转 |
| | | */ |
| | | public synchronized void crnDemoOfLocMove1(){ |
| | | try { |
| | | for (CrnSlave crn : slaveProperties.getCrn()) { |
| | | if (!crn.getDemo()) { continue; } // 必须为演示状态 |
| | | if (!crn.getDemo()) { |
| | | continue; |
| | | } // 必须为演示状态 |
| | | |
| | | CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); |
| | | CrnProtocol crnProtocol = crnThread.getCrnProtocol(); |
| | | if (crnProtocol == null) { continue; } |
| | | if (crnProtocol == null) { |
| | | continue; |
| | | } |
| | | |
| | | // 只有当堆垛机空闲 并且 无任务时才继续执行 |
| | | if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) { |
| | | // 获取移库工作档信息 |
| | | WrkMast wrkMast = wrkMastMapper.selectLocMove(crn.getId()); |
| | | if (null != wrkMast) { continue; } |
| | | if (null != wrkMast) { |
| | | continue; |
| | | } |
| | | |
| | | LocMast sourceLoc = locMastService.queryDemoSourceLoc(crn.getId()); |
| | | LocMast loc = locMastService.queryDemoLoc(crn.getId()); |
| | | if (null == sourceLoc || null == loc) { continue; } |
| | | if (null == sourceLoc || null == loc) { |
| | | continue; |
| | | } |
| | | |
| | | String sourceLocNo = sourceLoc.getLocNo(); |
| | | String locNo = loc.getLocNo(); |
| | |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("堆垛机演示 ===>> 库位移转失败", e); |
| | | e.printStackTrace(); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | } |
| | | } |
| | | |