| | |
| | | |
| | | taskStaNoToRgvStaNoMap.put(1050,1044);taskStaNoToRgvStaNoMap.put(1078,1044);taskStaNoToRgvStaNoMap.put(1064,1044);taskStaNoToRgvStaNoMap.put(1071,1044);taskStaNoToRgvStaNoMap.put(1096,1094); |
| | | taskStaNoToRgvStaNoMap.put(1104,1100);taskStaNoToRgvStaNoMap.put(1102,1100);taskStaNoToRgvStaNoMap.put(1090,1090);taskStaNoToRgvStaNoMap.put(1002,1001);taskStaNoToRgvStaNoMap.put(1016,1018); |
| | | taskStaNoToRgvStaNoMap.put(1020,1019);taskStaNoToRgvStaNoMap.put(1024,1022);taskStaNoToRgvStaNoMap.put(1035,1034);taskStaNoToRgvStaNoMap.put(1040,1033);taskStaNoToRgvStaNoMap.put(1043,1041); |
| | | taskStaNoToRgvStaNoMap.put(1020,1019);taskStaNoToRgvStaNoMap.put(1024,1022);taskStaNoToRgvStaNoMap.put(1031,1033);taskStaNoToRgvStaNoMap.put(1035,1034);taskStaNoToRgvStaNoMap.put(1040,1033);taskStaNoToRgvStaNoMap.put(1043,1041); |
| | | |
| | | canningLineRgvConnectionSiteList.add(1083);canningLineRgvConnectionSiteList.add(1086); |
| | | canningLineRgvConnectionSiteList.add(1089); |
| | |
| | | if (!staProtocol.isLoading()){ |
| | | continue; |
| | | } |
| | | if (!staProtocol.isPakMk()) { |
| | | continue; |
| | | } |
| | | News.info("{}入库回退:{},任务号:{}", inSta.getStaNo(), errMsg,wrkNo); |
| | | log.error("{}入库回退:{},任务号:{}", inSta.getStaNo(), errMsg,wrkNo); |
| | | return; |
| | | // 如果超限报警或超重等,出到1024 |
| | | if(errMsg.equals("扫码失败")) { |
| | | return; |
| | | } |
| | | } |
| | | |
| | | // 判断是否满足入库条件 |
| | |
| | | ) { |
| | | if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode) || barcode.startsWith("ERROR")) { |
| | | log.error("{}号条码检测失败,条码信息:{}", inSta.getBarcode(), barcode); |
| | | MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, "条码检测失败:"+barcode)); |
| | | continue; |
| | | } |
| | | // 判断重复工作档 |
| | | WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode); |
| | | if (wrkMast != null) { |
| | | MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, "条码已重复:" + barcode)); |
| | | continue; |
| | | } |
| | | |
| | |
| | | param.setBucketCount(staProtocol.getBucketCount()); |
| | | param.setTailSupportFlag(staProtocol.isTailSupportFlag()); |
| | | param.setWantBucketFlag(getWantBucketFlag()); |
| | | param.setErrMsg(errMsg); |
| | | |
| | | String response = new HttpHandler.Builder() |
| | | .setUri(wmsUrl) |
| | |
| | | StaProtocol staProtocol1084 = devpThread.getStation().get(1084); |
| | | StaProtocol staProtocol1087 = devpThread.getStation().get(1087); |
| | | List<SearchLocParam.WantBucket> wantBucketList = new ArrayList<>(); |
| | | wantBucketList.add(new SearchLocParam.WantBucket(1071,staProtocol1081.getWantBucketFlag())); |
| | | wantBucketList.add(new SearchLocParam.WantBucket(1064,staProtocol1084.getWantBucketFlag())); |
| | | wantBucketList.add(new SearchLocParam.WantBucket(1071,staProtocol1081.getWantBucketFlag())); |
| | | wantBucketList.add(new SearchLocParam.WantBucket(1078,staProtocol1087.getWantBucketFlag())); |
| | | return wantBucketList; |
| | | } |
| | |
| | | break; |
| | | } |
| | | |
| | | if (crnStn.getStaNo() == 1093) { // 判断出库到到1093,判断1092是否有物,有物不可出 |
| | | StaProtocol staProtocol2 = devpThread.getStation().get(1092); |
| | | if(!staProtocol2.isAutoing() || staProtocol2.isLoading() || staProtocol2.getWorkNo() != 0) { |
| | | log.warn("1号堆垛机出库取货前,判断1092站点信息自动:{},有物:{},工作号:{},不可入",staProtocol2.isAutoing(),staProtocol2.isLoading(),staProtocol2.getWorkNo()); |
| | | continue; |
| | | } |
| | | } |
| | | |
| | | // 双深库位且浅库位有货,则需先对浅库位进行库位移转 |
| | | if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo())) { |
| | | News.warnNoLog(""+mark+" - 2"+" - 6"+" - 双深库位且浅库位有货,则需先对浅库位进行库位移转 : 开始执行 任务号={}",wrkMast.getWrkNo()); |
| | |
| | | crnCommand.setDestinationPosX(crnStn.getRow().shortValue()); // 目标库位排 |
| | | |
| | | // 源站1057 |
| | | if(slave.getId() == 4 && crnStn.getStaNo() == 1057 && sourceSta.getRow1() == 12) { |
| | | if(slave.getId() == 4 && crnStn.getStaNo() == 1057 && (sourceSta.getRow1() == 11 || sourceSta.getRow1() == 12)) { |
| | | crnCommand.setDestinationPosX((short) 9); |
| | | } |
| | | crnCommand.setDestinationPosY(crnStn.getBay().shortValue()); // 目标库位列 |
| | |
| | | break; |
| | | } |
| | | ledCommand.setSourceLocNo(wrkMast.getSourceLocNo()); |
| | | ledCommand.setLocNo(wrkMast.getLocNo()); |
| | | ledCommand.setSourceStaNo(wrkMast.getSourceStaNo()); |
| | | ledCommand.setStaNo(wrkMast.getStaNo()); |
| | | ledCommand.setBarcode(wrkMast.getBarcode()); |
| | | if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) { |
| | | List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); |
| | | // List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo()); |
| | | wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getSpecs(),wrkDetl.getManuDate(),wrkDetl.getModel(),wrkDetl.getWeight(),wrkDetl.getManLength(),wrkDetl.getVolume()))); |
| | | // wrkDetls.forEach(wrkDetl -> { |
| | | // Double total = 0.0; |
| | | // EntityWrapper<LocDetl> wrapper = new EntityWrapper<>(); |
| | | // LocDetl locDetl = locDetlService.selectOne(wrapper.eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr())); |
| | | // if (Cools.isEmpty(locDetl)) { |
| | | // total = wrkDetl.getAnfme(); |
| | | // } else { |
| | | // total = locDetl.getAnfme(); |
| | | // } |
| | | // if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1) { |
| | | // ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total)); |
| | | // } |
| | | // if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) { |
| | | // ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total)); |
| | | // } |
| | | // if (wrkMast.getIoType() == 107) { |
| | | // ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total)); |
| | | // } |
| | | // }); |
| | | MatDto matDto = new MatDto(); |
| | | // 明细 |
| | | WrkDetl wrkDetl1 = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); |
| | | if (wrkDetl1 != null) { |
| | | ledCommand.setOrderNo(wrkDetl1.getOrderNo()); |
| | | matDto.setMaknx(wrkDetl1.getMaktx()); |
| | | matDto.setMatnr(wrkDetl1.getMatnr()); |
| | | matDto.setBatch(wrkDetl1.getBatch()); |
| | | matDto.setManuDate(wrkDetl1.getManuDate()); |
| | | matDto.setAnfme(wrkDetl1.getAnfme()); |
| | | matDto.setWeight(wrkDetl1.getWeight()); |
| | | matDto.setGrossWeight(wrkDetl1.getManLength()); |
| | | ledCommand.getMatDtos().add(matDto); |
| | | } |
| | | commands.add(ledCommand); |
| | | // 订单 |
| | | // if(wrkDetl1 != null && !Cools.isEmpty(wrkDetl1.getOrderNo())) { |
| | | // |
| | | // } |
| | | commands.add(0,ledCommand); |
| | | } |
| | | Set<Integer> workNos = wrkMasts.stream().map(WrkMast::getWrkNo).collect(Collectors.toSet()); |
| | | // 获取LED线程 |
| | |
| | | } |
| | | |
| | | if(wrkMast.getIoType() == 3 && (wrkMast.getStaNo() == 1024 || wrkMast.getStaNo() == 1016 || wrkMast.getStaNo() == 1043)) { // 到1024出库口,放到输送线后任务完成 |
| | | wrkMast.setWrkSts(2L); |
| | | if(wrkMast.getWrkSts() != 2 ){ |
| | | log.warn("rgv放货完成,rgv未复位:rgv号{},任务号:{},任务状态{}",wrkMast.getRgvNo(),wrkMast.getWrkNo(),wrkMast.getWrkSts()); |
| | | continue; |
| | | } |
| | | wrkMast.setWrkSts(5L); |
| | | wrkMast.setModiTime(new Date()); |
| | | wrkMastService.updateById(wrkMast); |
| | | } else if(wrkMast.getIoType() == 101 && (wrkMast.getStaNo() == 1024 || wrkMast.getStaNo() == 1016 || wrkMast.getStaNo() == 1043)) { |
| | | if(wrkMast.getWrkSts() != 2 ) { |
| | | log.warn("rgv放货完成,rgv未复位:rgv号{},任务号:{},任务状态{}", wrkMast.getRgvNo(), wrkMast.getWrkNo(), wrkMast.getWrkSts()); |
| | | continue; |
| | | } |
| | | wrkMast.setWrkSts(15L); |
| | | wrkMast.setModiTime(new Date()); |
| | | wrkMastService.updateById(wrkMast); |
| | | } else if(wrkMast.getIoType() == 110 && (wrkMast.getStaNo() == 1002 || wrkMast.getStaNo() == 1020 ||wrkMast.getStaNo() == 1035)) { |
| | | if(wrkMast.getWrkSts() != 2 ){ |
| | | log.warn("rgv放货完成,rgv未复位:rgv号{},任务号:{},任务状态{}",wrkMast.getRgvNo(),wrkMast.getWrkNo(),wrkMast.getWrkSts()); |
| | | continue; |
| | | } |
| | | wrkMast.setWrkSts(15L); |
| | | wrkMast.setModiTime(new Date()); |
| | | wrkMastService.updateById(wrkMast); |
| | |
| | | SearchLocParam param = new SearchLocParam(); |
| | | param.setIoType(10); |
| | | param.setSourceStaNo(site); |
| | | param.setBucketType("21"); // 空母托盘 |
| | | param.setLocType1((short) 1); |
| | | |
| | | String response = new HttpHandler.Builder() |
| | |
| | | CanningLineInLocParam param = new CanningLineInLocParam(); |
| | | param.setWrkNo(staProtocol.getWrkNo()); |
| | | param.setMatnr(staProtocol.getMatnr().trim()); |
| | | param.setBatch(staProtocol.getBatch()); |
| | | param.setBatch(staProtocol.getBatch().trim()); |
| | | param.setManuDate(staProtocol.getManuDate()); |
| | | param.setWeight(staProtocol.getWeight()); |
| | | param.setGrossWeight(staProtocol.getGrossWeight()); |
| | | param.setReinspection(staProtocol.isReinspection()); |
| | | param.setSourceStaNo(site + 2); |
| | | param.setTbFlag(staProtocol2.isBarcodeErr()); |
| | | |
| | |
| | | staProtocol.setBucketCount(wrkDetl.getAnfme().intValue()); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, inGzxSiteList.indexOf(site) + 4, new Task(4, staProtocol)); |
| | | if (result) { |
| | | log.info("告诉罐装线入库桶信息命令队列推送成功:" + staProtocol.getWorkNo() + "," + site + "," + staProtocol.getBucketType() +"," + staProtocol.getBucketCount()); |
| | | log.info("告诉罐装线入库桶信息命令队列推送成功:" + staProtocol.getWorkNo() + "," +"托盘码:" + wrkMast.getBarcode() +"," + site + "," + staProtocol.getBucketType() +"," + staProtocol.getBucketCount()); |
| | | News.info("告诉罐装线入库桶信息命令队列推送成功:" + staProtocol.getWorkNo() + "," + site + "," + staProtocol.getBucketType() +"," + staProtocol.getBucketCount()); |
| | | wrkMast.setWhsType(1); // 更新推送标识,避免重复推送 |
| | | wrkMastService.updateById(wrkMast); |