|  |  | 
 |  |  |                     WrkMast wrkMast = wrkMastMapper.selectPakInStep4(staProtocol.getSiteId(),"3"); | 
 |  |  |  | 
 |  |  |                     if (wrkMast == null) { | 
 |  |  |                         WrkMast wrkMast1 = wrkMastMapper.selectPakInStep5(staProtocol.getSiteId(),"3"); | 
 |  |  |                         if (Cools.isEmpty(wrkMast1) && staProtocol.isEmptyMk()){ | 
 |  |  |                             WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(staProtocol.getSiteId() + 9999L); | 
 |  |  |                             if (Cools.isEmpty(wrkMastSta)){ | 
 |  |  |                                 WrkMastSta wrkMastSta1 = new WrkMastSta(new Date(),staProtocol.getSiteId()); | 
 |  |  |                                 wrkMastSta1.setType(2); | 
 |  |  |                                 wrkMastSta1.setWrkType(1); | 
 |  |  |                                 wrkMastStaMapper.insert(wrkMastSta1); | 
 |  |  |                             } | 
 |  |  |                             continue; | 
 |  |  |                         } | 
 |  |  | //                        WrkMast wrkMast1 = wrkMastMapper.selectPakInStep5(staProtocol.getSiteId(),"3"); | 
 |  |  | //                        if (Cools.isEmpty(wrkMast1) && staProtocol.isEmptyMk()){ | 
 |  |  | //                            WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(staProtocol.getSiteId() + 9999L); | 
 |  |  | //                            if (Cools.isEmpty(wrkMastSta)){ | 
 |  |  | //                                WrkMastSta wrkMastSta1 = new WrkMastSta(new Date(),staProtocol.getSiteId()); | 
 |  |  | //                                wrkMastSta1.setType(2); | 
 |  |  | //                                wrkMastSta1.setWrkType(1); | 
 |  |  | //                                wrkMastStaMapper.insert(wrkMastSta1); | 
 |  |  | //                            } | 
 |  |  | //                            continue; | 
 |  |  | //                        } | 
 |  |  | //                        log.error("站点号"+staProtocol.getSiteId()+"未查询到工作档案!"); | 
 |  |  |                         // 无拣料数据 | 
 |  |  |                         continue; | 
 |  |  | 
 |  |  |  | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 拣料、并板、盘点再入库  拆垛位置 | 
 |  |  |      */ | 
 |  |  |     public synchronized void storeEmptyPlt4() { | 
 |  |  |         for (DevpSlave devp : slaveProperties.getDevp()) { | 
 |  |  |             // 遍历叠盘入库口 | 
 |  |  |             for (DevpSlave.Sta pickSta : devp.getEmptyInSta2()) { | 
 |  |  |  | 
 |  |  |                 // 获取入库站信息 | 
 |  |  |                 SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); | 
 |  |  |                 StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo()); | 
 |  |  |                 if (staProtocol == null) { | 
 |  |  |                     continue; | 
 |  |  |                 } else { | 
 |  |  |                     staProtocol = staProtocol.clone(); | 
 |  |  |                 } | 
 |  |  |                 BasDevp basDevp = basDevpService.selectById(staProtocol.getSiteId()); | 
 |  |  |                 if (Cools.isEmpty(basDevp) || basDevp.getReportSign()!=1){ | 
 |  |  |                     continue; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isPakMk() && staProtocol.getWorkNo()==0 && !staProtocol.isOutEnable() && staProtocol.isInEnable()) { | 
 |  |  |                     WrkMast wrkMast = wrkMastMapper.selectPakInStep4(staProtocol.getSiteId(),"3"); | 
 |  |  |                     if (wrkMast == null) { | 
 |  |  |                         WrkMast wrkMast1 = wrkMastMapper.selectPakInStep5(staProtocol.getSiteId(),"3"); | 
 |  |  |                         if (Cools.isEmpty(wrkMast1) && staProtocol.isEmptyMk()){ | 
 |  |  |                             WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(staProtocol.getSiteId() + 19999L); | 
 |  |  |                             if (Cools.isEmpty(wrkMastSta)){ | 
 |  |  |                                 WrkMastSta wrkMastSta1 = new WrkMastSta(new Date(),staProtocol.getSiteId()); | 
 |  |  |                                 wrkMastSta1.setType(2); | 
 |  |  |                                 wrkMastSta1.setWrkType(1); | 
 |  |  |                                 wrkMastStaMapper.insert(wrkMastSta1); | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |             int[] staNos=new int[]{131,135};//(2个入库站点,1楼2个出库码垛站,根据现场修改) | 
 |  |  |             for (int staNo : staNos){ | 
 |  |  |                 BasDevp basDevp = basDevpService.selectById(staNo); | 
 |  |  |                 if (basDevp.getWrkNo()!=0){ | 
 |  |  |                 if (Cools.isEmpty(basDevp) || basDevp.getReportSign()!=1){ | 
 |  |  |                     continue; | 
 |  |  |                 } | 
 |  |  |                 if (basDevp.getWrkNo()!=0 && (basDevp.getWrkNo()<9900 || basDevp.getWrkNo()>9999)){ | 
 |  |  |                     continue; | 
 |  |  |                 } | 
 |  |  |                 WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne202(staNo); | 
 |  |  | 
 |  |  |             int[] staNos=new int[]{144};//(1楼1个贴标位,根据现场修改) | 
 |  |  |             for (int staNo : staNos){ | 
 |  |  |                 BasDevp basDevp = basDevpService.selectById(staNo); | 
 |  |  |                 if ((basDevp.getWrkNo()<9900 || basDevp.getWrkNo()>19999) && basDevp.getWrkNo()!=32222){ | 
 |  |  |                 if ((basDevp.getWrkNo()<9900 || basDevp.getWrkNo()>9999) && basDevp.getWrkNo()!=32222){ | 
 |  |  |                     continue; | 
 |  |  |                 } | 
 |  |  |                 WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne202(staNo); | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 其他  ===>> 拆垛完成继续下一步  运行途中自动避让空板 | 
 |  |  |      */ | 
 |  |  |     public synchronized void stackingCompletionDriveTray4() { | 
 |  |  |         try { | 
 |  |  |             int[] staNos=new int[]{134};//(134有任务,135空闲,则避让) | 
 |  |  |             for (int staNo : staNos){ | 
 |  |  |                 BasDevp basDevp = basDevpService.selectById(staNo); | 
 |  |  |                 BasDevp basDevp135 = basDevpService.selectById(135); | 
 |  |  |                 if (basDevp.getWrkNo()==0 || (basDevp.getWrkNo()<10000 && basDevp.getWrkNo()>9899) ){ | 
 |  |  |                     continue; | 
 |  |  |                 } | 
 |  |  |                 if (basDevp135.getReportSign()!=0){ | 
 |  |  |                     continue; | 
 |  |  |                 } | 
 |  |  |                 WrkMast wrkMast131 = wrkMastMapper.selectWrkMastUnstackingOne202Two(131); | 
 |  |  |                 if (Cools.isEmpty(wrkMast131)){ | 
 |  |  |                     continue; | 
 |  |  |                 } | 
 |  |  |                 // 获取站点信息 | 
 |  |  |                 SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); | 
 |  |  |                 StaProtocol staProtocol135 = devpThread.getStation().get(135); | 
 |  |  |                 if (staProtocol135 == null) { | 
 |  |  |                     continue; | 
 |  |  |                 } else { | 
 |  |  |                     staProtocol135 = staProtocol135.clone(); | 
 |  |  |                 } | 
 |  |  |                 if (staProtocol135.getWorkNo()<9900 || staProtocol135.getWorkNo()>9999 || staProtocol135.getWorkNo()==0 | 
 |  |  |                         || !staProtocol135.isLoading() || !staProtocol135.isAutoing()){ | 
 |  |  |                     continue; | 
 |  |  |                 } | 
 |  |  |                 StaProtocol staProtocol = devpThread.getStation().get(staNo); | 
 |  |  |                 if (staProtocol == null) { | 
 |  |  |                     continue; | 
 |  |  |                 } else { | 
 |  |  |                     staProtocol = staProtocol.clone(); | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 if (!staProtocol.isLoading()){ | 
 |  |  |                     continue; | 
 |  |  |                 } | 
 |  |  | //                if (!staProtocol.getWorkNo().equals(wrkMast131.getWrkNo())){ | 
 |  |  | //                    log.info("站点工作号={} 与贴标工作号={} 不一致,异常!",staProtocol.getWorkNo(),wrkMast131.getWrkNo().shortValue()); | 
 |  |  | //                } | 
 |  |  |                 // 判断是否满足入库条件 | 
 |  |  |                 if (staProtocol.isAutoing() | 
 |  |  |                         && staProtocol.isLoading() | 
 |  |  |                         && basDevp.getReportSign()==0 | 
 |  |  |                 ) {//&& staProtocol.isPakMk() && !Cools.isEmpty(barcode)) { | 
 |  |  |                     if (true){ | 
 |  |  |                         return; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     //任务完成 | 
 |  |  |                     boolean result1 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(3, staProtocol135)); | 
 |  |  |                     try{ | 
 |  |  |                         Thread.sleep(100); | 
 |  |  |                     }catch (Exception e){ } | 
 |  |  |                     basDevp135.setReportSign(2); | 
 |  |  |                     basDevpService.updateById(basDevp135); | 
 |  |  |                     staProtocol135.setWorkNo(32222); | 
 |  |  |                     staProtocol135.setStaNo(144); | 
 |  |  |                     devpThread.setPakMk(staProtocol135.getSiteId(), false); | 
 |  |  |                     boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol135)); | 
 |  |  |                     if (!result) { | 
 |  |  |                         throw new CoolException("更新plc站点信息失败==>驱动码垛位托盘前进失败!"); | 
 |  |  |                     } | 
 |  |  |                     boolean result2 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(4, staProtocol135)); | 
 |  |  |  | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         }catch (Exception e){ | 
 |  |  | //            e.printStackTrace(); | 
 |  |  | //            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); | 
 |  |  |             log.error("其他  ===>> 贴标完成驱动托盘进入下一步"+e); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      *  完成小车任务 | 
 |  |  |      */ | 
 |  |  |     public synchronized void rgvCompleteWrkMastSta() { |