| | |
| | | */ |
| | | public synchronized void stackingCompletionDriveTray() { |
| | | try { |
| | | List<WrkMast> wrkMasts = wrkMastMapper.selectStackingCompletionDriveTray(); |
| | | if (Cools.isEmpty(wrkMasts) || wrkMasts.size()==0){ |
| | | return; |
| | | } |
| | | |
| | | for (WrkMast wrkMast : wrkMasts){ |
| | | wrkMast.setWrkSts(44L); |
| | | // 获取入库站信息 |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); |
| | | StaProtocol staProtocol = devpThread.getStation().get(wrkMast.getStaNo()); |
| | | if (staProtocol == null) { |
| | | log.error("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发失败,站点查询失败"); |
| | | return; |
| | | } else { |
| | | staProtocol = staProtocol.clone(); |
| | | } |
| | | |
| | | if (!staProtocol.isLoading()){ |
| | | log.info("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发失败,站点无物,正在自动调出空板!"); |
| | | return; |
| | | } |
| | | // 判断是否满足入库条件 |
| | | if (staProtocol.isAutoing() && staProtocol.getWorkNo().equals(wrkMast.getWrkNo().shortValue()) && staProtocol.isPakMk()) { |
| | | staProtocol.setWorkNo((short)9999); |
| | | int staNo = wrkMast.getStaNo() + 1; |
| | | staProtocol.setStaNo((short)staNo); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol)); |
| | | if (!result) { |
| | | throw new CoolException("更新plc站点信息失败==>码垛位自动补充空板:驱动拆盘机输出托盘!"); |
| | | } |
| | | log.info("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发成功:工作号9999、目标站214!"); |
| | | wrkMastMapper.updateStackingCompletionDriveTray(wrkMast.getWrkNo()); |
| | | }else { |
| | | log.error("码垛位自动补充空板:驱动拆盘机输出托盘,任务下发失败,站点状态不符合!"); |
| | | } |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |