|  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 拣料、并板、盘点再入库 | 
 |  |  |      * 拣料、并板再入库 | 
 |  |  |      */ | 
 |  |  |     @Transactional | 
 |  |  |     public synchronized void stnToCrnStnPick(){ | 
 |  |  | 
 |  |  |                         continue; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107) | 
 |  |  |                     if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104) | 
 |  |  |                             || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo()) ) { | 
 |  |  |                         continue; | 
 |  |  |                     } | 
 |  |  | 
 |  |  |                         News.info(wrkMast.getWrkNo() + "更新工作档数据状态失败"); | 
 |  |  |                         continue; | 
 |  |  |                     } | 
 |  |  |                     if (wrkMastMapper.setSteEmpty(wrkMast.getWrkNo()) == 0) { | 
 |  |  |                         News.info(wrkMast.getWrkNo() + "更新工作档数据状态失败"); | 
 |  |  |                         continue; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     // 修改库位状态 Q.拣料/盘点/并板再入库 | 
 |  |  |                     LocMast locMast = locMastService.selectById(sourceLocNo); | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 拣料、并板、盘点再入库(325、331、333、339) | 
 |  |  |      * 拣料、并板再入库(325、331、333、339) | 
 |  |  |      */ | 
 |  |  |     @Transactional | 
 |  |  |     public synchronized void stnToCrnStnPick2(){ | 
 |  |  | 
 |  |  |                         continue; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107) | 
 |  |  |                     if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104) | 
 |  |  |                             || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo()) ) { | 
 |  |  |                         continue; | 
 |  |  |                     } | 
 |  |  | 
 |  |  |                         News.info(wrkMast.getWrkNo() + "更新工作档数据状态失败"); | 
 |  |  |                         continue; | 
 |  |  |                     } | 
 |  |  |                     if (wrkMastMapper.setSteEmpty(wrkMast.getWrkNo()) == 0) { | 
 |  |  |                         News.info(wrkMast.getWrkNo() + "更新工作档数据状态失败"); | 
 |  |  |                         continue; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     // 修改库位状态 Q.拣料/盘点/并板再入库 | 
 |  |  |                     LocMast locMast = locMastService.selectById(sourceLocNo); | 
 |  |  | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 盘点再入库 | 
 |  |  |      */ | 
 |  |  |     @Transactional | 
 |  |  |     public synchronized void stnToCrnStnPlate(){ | 
 |  |  |         for (DevpSlave devp : slaveProperties.getDevp()) { | 
 |  |  |             // 遍历拣料入库口 | 
 |  |  |             for (DevpSlave.Sta pickSta : devp.getPickInSta()) { | 
 |  |  | //                if (pickSta.getStaNo() == 325 || pickSta.getStaNo() == 331 || pickSta.getStaNo() == 333 || pickSta.getStaNo() == 339) { | 
 |  |  | //                    continue; | 
 |  |  | //                } | 
 |  |  |  | 
 |  |  |                 // 获取拣料入库站信息 | 
 |  |  |                 DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); | 
 |  |  |                 StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo()); | 
 |  |  |                 if (staProtocol == null) { | 
 |  |  |                     continue; | 
 |  |  |                 } else { | 
 |  |  |                     staProtocol = staProtocol.clone(); | 
 |  |  |                 } | 
 |  |  |                 if (staProtocol.isAutoing() | 
 |  |  |                         && staProtocol.isLoading() | 
 |  |  |                         && staProtocol.isInEnable() | 
 |  |  |                         && (staProtocol.getWorkNo() > 0) | 
 |  |  |                         && staProtocol.isPakMk()){ | 
 |  |  |  | 
 |  |  |                     // 获取条码扫描仪信息 | 
 |  |  |                     BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode()); | 
 |  |  |                     if (barcodeThread == null) { | 
 |  |  |                         continue; | 
 |  |  |                     } | 
 |  |  |                     String barcode = barcodeThread.getBarcode(); | 
 |  |  |                     if(Cools.isEmpty(barcode)) { | 
 |  |  |                         continue; | 
 |  |  |                     } | 
 |  |  |                     if("NG".endsWith(barcode) || "NoRead".equals(barcode) || "empty".equals(barcode)) { | 
 |  |  |                         continue; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     WrkMast wrkMast = wrkMastMapper.selectByWorkNo(staProtocol.getWorkNo().intValue()); | 
 |  |  |                     if (wrkMast == null) {//找不到工作档 | 
 |  |  |                         continue; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     if ((wrkMast.getIoType() != 107) | 
 |  |  |                             || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo()) ) { | 
 |  |  |                         continue; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     //*********************同库位组校验********************* | 
 |  |  |                     boolean flag = false; | 
 |  |  |                     String th = ""; | 
 |  |  |                     List<String> innerLoc = Utils.getGroupInnerLoc(wrkMast.getSourceLocNo()); | 
 |  |  |                     for (String loc : innerLoc) { | 
 |  |  |                         LocMast locMast = locMastService.selectById(loc); | 
 |  |  |                         if (locMast == null) { | 
 |  |  |                             continue; | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  |                         if (!locMast.getLocSts().equals("F")) { | 
 |  |  |                             flag = true; | 
 |  |  |                             th = loc + "库位存在未回库任务"; | 
 |  |  |                             break; | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                     if (flag) { | 
 |  |  |                         News.info(th); | 
 |  |  |                         continue; | 
 |  |  |                     } | 
 |  |  |                     //*********************同库位组校验********************* | 
 |  |  |  | 
 |  |  |                     // 保存工作主档历史档 | 
 |  |  |                     if (wrkMastMapper.saveWrkMastLog(wrkMast.getWrkNo()) == 0) { | 
 |  |  |                         News.info(wrkMast.getWrkNo() + "保存工作主档历史档失败"); | 
 |  |  |                         continue; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     //盘点找新库位 | 
 |  |  |                     try { | 
 |  |  |                         LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());//源库位 | 
 |  |  |                         SearchLocParam param = new SearchLocParam(); | 
 |  |  |                         param.setWrkNo(wrkMast.getWrkNo()); | 
 |  |  |                         param.setBarcode(barcode); | 
 |  |  |                         param.setIoType(107);//盘点 | 
 |  |  |                         param.setSourceStaNo(wrkMast.getStaNo()); | 
 |  |  |                         param.setLocType1(locMast.getLocType1()); | 
 |  |  |                         String response = new HttpHandler.Builder() | 
 |  |  |                                 .setUri(wmsUrl) | 
 |  |  |                                 .setPath("/rpc/pakin/loc/v1") | 
 |  |  |                                 .setJson(JSON.toJSONString(param)) | 
 |  |  |                                 .build() | 
 |  |  |                                 .doPost(); | 
 |  |  |                         JSONObject jsonObject = JSON.parseObject(response); | 
 |  |  |                         Integer code = jsonObject.getInteger("code"); | 
 |  |  |                         if (code.equals(200)) { | 
 |  |  |                             StartupDto dto = jsonObject.getObject("data", StartupDto.class); | 
 |  |  |  | 
 |  |  |                             //获取回库提升机目标站 | 
 |  |  |                             LiftStaProtocol liftStaProtocol = NyLiftUtils.getLiftStaByLev(pickSta.getLiftNo(), Utils.getLev(dto.getLocNo())); | 
 |  |  |                             if (liftStaProtocol == null) { | 
 |  |  |                                 News.info(wrkMast.getWrkNo() + "获取回库提升机目标站失败"); | 
 |  |  |                                 continue; | 
 |  |  |                             } | 
 |  |  |  | 
 |  |  |                             // 更新工作档数据状态 | 
 |  |  |                             wrkMast.setIoType(wrkMast.getIoType() - 50); // 入出库类型: 107->57 | 
 |  |  |                             wrkMast.setWrkSts(2L); // 工作状态: 2.设备上走 | 
 |  |  |                             wrkMast.setSourceStaNo(dto.getSourceStaNo()); // 源站 | 
 |  |  |                             wrkMast.setStaNo(liftStaProtocol.getStaNo());//目标站 | 
 |  |  |                             wrkMast.setLocNo(dto.getLocNo()); // 目标库位 | 
 |  |  |                             wrkMast.setShuttleNo(null); // 穿梭车清空 | 
 |  |  |                             wrkMast.setLiftNo(null);// 提升机清空 | 
 |  |  |                             wrkMast.setModiTime(new Date()); | 
 |  |  |                             if (wrkMastMapper.updateById(wrkMast) == 0) { | 
 |  |  |                                 News.info(wrkMast.getWrkNo() + "更新工作档数据状态失败"); | 
 |  |  |                                 continue; | 
 |  |  |                             } | 
 |  |  |  | 
 |  |  |                         } else if (code == 500){ | 
 |  |  |                             News.error("请求接口失败!!!url:{};request:{};response:{}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response); | 
 |  |  |                         } | 
 |  |  |                     } catch (Exception e) { | 
 |  |  |                         e.printStackTrace(); | 
 |  |  |                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |                         return false;//站点不可入 | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             }else { | 
 |  |  |                 return false; | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             //判断提升机整个三楼是否都处于入库模式 |