|  |  | 
 |  |  |                 // 尺寸检测异常 | 
 |  |  |                 boolean back = false; | 
 |  |  |                 String errMsg = ""; | 
 |  |  |                 if (staProtocol.isFrontErr()) { | 
 |  |  |                     errMsg = "前超限"; | 
 |  |  |                     back = true; | 
 |  |  |                 } | 
 |  |  |                 if (!back && staProtocol.isBackErr()) { | 
 |  |  |                     errMsg = "后超限"; | 
 |  |  |                     back = true; | 
 |  |  |                 } | 
 |  |  |                 if (!back && staProtocol.isHighErr()) { | 
 |  |  |                     errMsg = "高超限"; | 
 |  |  |                     back = true; | 
 |  |  |                 } | 
 |  |  |                 if (!back && staProtocol.isLeftErr()) { | 
 |  |  |                     errMsg = "左超限"; | 
 |  |  |                     back = true; | 
 |  |  |                 } | 
 |  |  |                 if (!back && staProtocol.isRightErr()) { | 
 |  |  |                     errMsg = "右超限"; | 
 |  |  |                     back = true; | 
 |  |  |                 } | 
 |  |  |                 if (!back && staProtocol.isWeightErr()) { | 
 |  |  |                     errMsg = "超重"; | 
 |  |  |                     back = true; | 
 |  |  |                 } | 
 |  |  |                 if (!back && staProtocol.isBarcodeErr()) { | 
 |  |  |                     errMsg = "扫码失败"; | 
 |  |  |                     back = true; | 
 |  |  |                 } | 
 |  |  | //                if (staProtocol.isFrontErr()) { | 
 |  |  | //                    errMsg = "前超限"; | 
 |  |  | //                    back = true; | 
 |  |  | //                } | 
 |  |  | //                if (!back && staProtocol.isBackErr()) { | 
 |  |  | //                    errMsg = "后超限"; | 
 |  |  | //                    back = true; | 
 |  |  | //                } | 
 |  |  | //                if (!back && staProtocol.isHighErr()) { | 
 |  |  | //                    errMsg = "高超限"; | 
 |  |  | //                    back = true; | 
 |  |  | //                } | 
 |  |  | //                if (!back && staProtocol.isLeftErr()) { | 
 |  |  | //                    errMsg = "左超限"; | 
 |  |  | //                    back = true; | 
 |  |  | //                } | 
 |  |  | //                if (!back && staProtocol.isRightErr()) { | 
 |  |  | //                    errMsg = "右超限"; | 
 |  |  | //                    back = true; | 
 |  |  | //                } | 
 |  |  | //                if (!back && staProtocol.isWeightErr()) { | 
 |  |  | //                    errMsg = "超重"; | 
 |  |  | //                    back = true; | 
 |  |  | //                } | 
 |  |  | //                if (!back && staProtocol.isBarcodeErr()) { | 
 |  |  | //                    errMsg = "扫码失败"; | 
 |  |  | //                    back = true; | 
 |  |  | //                } | 
 |  |  |                 // 退回 | 
 |  |  |                 if (back && staProtocol.isInEnable() && staProtocol.isLoading() && staProtocol.getWorkNo() == 0) { | 
 |  |  |                     MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg)); | 
 |  |  | 
 |  |  |                             staProtocol.setStaNo(dto.getStaNo().shortValue()); | 
 |  |  |                             devpThread.setPakMk(staProtocol.getSiteId(), false); | 
 |  |  |                             boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); | 
 |  |  |                             log.error("输送线下发2:"+dto.getWorkNo()+","+dto.getStaNo()); | 
 |  |  |                             log.info("输送线下发2:"+dto.getWorkNo()+","+dto.getStaNo()); | 
 |  |  |                             if (!result) { | 
 |  |  |                                 News.error(methodName + ":更新plc站点信息失败"); | 
 |  |  |                                 throw new CoolException("更新plc站点信息失败"); | 
 |  |  | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 // 判断堆垛机出库站状态 | 
 |  |  |                 if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") | 
 |  |  |                         && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) { | 
 |  |  |                 if ((staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") | 
 |  |  |                         && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) | 
 |  |  |                         || (staProtocol.getSiteId() == 1056 && staProtocol.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y"))) { | 
 |  |  |                     // 堆垛机控制过滤 | 
 |  |  |                     if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { | 
 |  |  |                         break; | 
 |  |  | 
 |  |  |                 } | 
 |  |  |                 // 判断是不是空闲三分钟 | 
 |  |  |                 BasCrnp basCrnp = basCrnpService.selectById(crn.getId()); | 
 |  |  |                 if (basCrnp.getWrkNo() != 0) { | 
 |  |  |                     continue; | 
 |  |  |                 } | 
 |  |  |                 Date now = new Date(); | 
 |  |  |                 Date modiTime = basCrnp.getModiTime(); | 
 |  |  |                 long diffInMillis = now.getTime()-modiTime.getTime(); | 
 |  |  | 
 |  |  |                     continue; | 
 |  |  |                 } | 
 |  |  |                 // 1083,1086,1089 外形检测失败,不是去异常口的 停在原处 | 
 |  |  |                 if (staProtocol.getSiteId() == 1083 || staProtocol.getSiteId() == 1086 || staProtocol.getSiteId() == 1089 && wrkMast.getStaNo() != 1090) { | 
 |  |  |                     boolean back = false; | 
 |  |  |                     String errMsg = ""; | 
 |  |  |                     if (staProtocol.isFrontErr()) { | 
 |  |  |                         errMsg = "前超限"; | 
 |  |  |                         back = true; | 
 |  |  |                     } | 
 |  |  |                     if (!back && staProtocol.isBackErr()) { | 
 |  |  |                         errMsg = "后超限"; | 
 |  |  |                         back = true; | 
 |  |  |                     } | 
 |  |  |                     if (!back && staProtocol.isHighErr()) { | 
 |  |  |                         errMsg = "高超限"; | 
 |  |  |                         back = true; | 
 |  |  |                     } | 
 |  |  |                     if (!back && staProtocol.isLeftErr()) { | 
 |  |  |                         errMsg = "左超限"; | 
 |  |  |                         back = true; | 
 |  |  |                     } | 
 |  |  |                     if (!back && staProtocol.isRightErr()) { | 
 |  |  |                         errMsg = "右超限"; | 
 |  |  |                         back = true; | 
 |  |  |                     } | 
 |  |  |                     if (back) { | 
 |  |  |                         log.error("{}站点,外形检测失败:{}",site,errMsg); | 
 |  |  |                         continue; | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  | //                if (staProtocol.getSiteId() == 1083 || staProtocol.getSiteId() == 1086 || staProtocol.getSiteId() == 1089 && wrkMast.getStaNo() != 1090) { | 
 |  |  | //                    boolean back = false; | 
 |  |  | //                    String errMsg = ""; | 
 |  |  | //                    if (staProtocol.isFrontErr()) { | 
 |  |  | //                        errMsg = "前超限"; | 
 |  |  | //                        back = true; | 
 |  |  | //                    } | 
 |  |  | //                    if (!back && staProtocol.isBackErr()) { | 
 |  |  | //                        errMsg = "后超限"; | 
 |  |  | //                        back = true; | 
 |  |  | //                    } | 
 |  |  | //                    if (!back && staProtocol.isHighErr()) { | 
 |  |  | //                        errMsg = "高超限"; | 
 |  |  | //                        back = true; | 
 |  |  | //                    } | 
 |  |  | //                    if (!back && staProtocol.isLeftErr()) { | 
 |  |  | //                        errMsg = "左超限"; | 
 |  |  | //                        back = true; | 
 |  |  | //                    } | 
 |  |  | //                    if (!back && staProtocol.isRightErr()) { | 
 |  |  | //                        errMsg = "右超限"; | 
 |  |  | //                        back = true; | 
 |  |  | //                    } | 
 |  |  | //                    if (back) { | 
 |  |  | //                        log.error("{}站点,外形检测失败:{}",site,errMsg); | 
 |  |  | //                        continue; | 
 |  |  | //                    } | 
 |  |  | //                } | 
 |  |  |                 if (staProtocol.getSiteId() == 1090 && wrkMast.getStaNo() == 1090) { | 
 |  |  |                     continue; | 
 |  |  |                 } | 
 |  |  | 
 |  |  | //                    } | 
 |  |  |                     wrkMast.setModiTime(new Date()); | 
 |  |  |                     wrkMastService.updateById(wrkMast); | 
 |  |  |                 } else if(wrkMast.getIoType() == 101 && (wrkMast.getStaNo() == 1024 || wrkMast.getStaNo() == 1016 || wrkMast.getStaNo() == 1043)) { | 
 |  |  |                 } else if(wrkMast.getIoType() == 101 && (wrkMast.getStaNo() == 1024 || wrkMast.getStaNo() == 1031 || wrkMast.getStaNo() == 1016 || wrkMast.getStaNo() == 1043)) { | 
 |  |  |                     if(wrkMast.getWrkSts() != 2 ) { | 
 |  |  |                         log.warn("rgv放货完成101,rgv未复位:rgv号{},任务号:{},任务状态{}", wrkMast.getRgvNo(), wrkMast.getWrkNo(), wrkMast.getWrkSts()); | 
 |  |  |                         continue; | 
 |  |  | 
 |  |  |                 // <4 < 2 < 4 | 
 |  |  |                 int count = wrkMastMapper.selectInGzxCount(wantBucket.getSite()); | 
 |  |  |                 if (wantBucket.getSite() == 1071 && count <= 2 || wantBucket.getSite() == 1064 && count == 0 || wantBucket.getSite() == 1078 && count <= 2) { | 
 |  |  |                     log.info("{}自动补空桶,罐装线要桶型信息:{},正在执行任务数:{}",wantBucket.getSite(), wantBucket.getBucketType(),count); | 
 |  |  |                     // 判断库里有无空桶组 | 
 |  |  |                     List<LocDetl> locDetlList = locDetlService.selectListByMatnr(wantBucket.getBucketType()); | 
 |  |  |                     for (int i = 0; i < locDetlList.size(); i++) { |