| | |
| | | } |
| | | |
| | | if (wrkMast.getShuttleNo() == null) {//没有绑定小车,进行调度 |
| | | //强制预留一台小车给入库任务 |
| | | int lev = Utils.getLev(wrkMast.getSourceLocNo()); |
| | | //获取当前楼层有几台空闲可用小车 |
| | | int shuttleCount = shuttleDispatchUtils.getShuttleCountByLev(lev); |
| | | if (shuttleCount >= 2) {//只有可用小车数量大于2,才进行入库任务预留小车 |
| | | int shuttleWrkInObligateCount = 1;//预留小车数量 |
| | | Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "shuttleWrkInObligateCount").eq("status", 1)); |
| | | if (config != null) { |
| | | shuttleWrkInObligateCount = Integer.parseInt(config.getValue()); |
| | | } |
| | | //可用出库小车数量(给入库任务预留一台车) |
| | | int useShuttleCount = shuttleCount - shuttleWrkInObligateCount; |
| | | //查询楼层已分配车辆的出库任务数量 |
| | | List<WrkMast> wrkMasts = wrkMastService.selectShuttleOutWrkByLev(lev); |
| | | if (wrkMasts.size() >= useShuttleCount) { |
| | | News.info("{}任务,当前楼层可用小车{}台,出库任务已分配{}台,系统等待中。", wrkMast.getWrkNo(), useShuttleCount, wrkMasts.size()); |
| | | return false; |
| | | } |
| | | } |
| | | boolean result = shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), wrkMast.getSourceLocNo());//调度小车到货物所在库位进行取货 |
| | | News.info("{}任务,调度小车{}系统等待中。", wrkMast.getWrkNo(), result ? "成功" : "失败"); |
| | | return false; |
| | |
| | | ledCommand.setSourceLocNo(wrkMast.getSourceLocNo()); |
| | | ledCommand.setLocNo(wrkMast.getLocNo()); |
| | | ledCommand.setStaNo(wrkMast.getStaNo()); |
| | | if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) { |
| | | if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10 && wrkMast.getIoType() != 107) { |
| | | //for (WrkDetl wrkDetl : wrkDetls) { |
| | | // LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr())); |
| | | // |
| | |
| | | //} |
| | | List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo())); |
| | | locDetls.forEach(locDetl -> { |
| | | Wrapper<WrkDetl> wrapper = new EntityWrapper<WrkDetl>().eq("matnr", locDetl.getMatnr()).eq("wrk_no",wrkMast.getWrkNo()); |
| | | Utils.wapperSetCondition(wrapper,"batch",locDetl.getBatch()); |
| | | Utils.wapperSetCondition(wrapper,"three_code",locDetl.getThreeCode()); |
| | | Utils.wapperSetCondition(wrapper,"dead_time",locDetl.getDeadTime()); |
| | | Utils.wapperSetCondition(wrapper,"supp_code",locDetl.getSuppCode());//料箱码 |
| | | Wrapper<WrkDetl> wrapper = new EntityWrapper<WrkDetl>().eq("matnr", locDetl.getMatnr()).eq("wrk_no", wrkMast.getWrkNo()); |
| | | Utils.wapperSetCondition(wrapper, "batch", locDetl.getBatch()); |
| | | Utils.wapperSetCondition(wrapper, "three_code", locDetl.getThreeCode()); |
| | | Utils.wapperSetCondition(wrapper, "dead_time", locDetl.getDeadTime()); |
| | | Utils.wapperSetCondition(wrapper, "supp_code", locDetl.getSuppCode());//料箱码 |
| | | WrkDetl detl = wrkDetlService.selectOne(wrapper); |
| | | if (Cools.isEmpty(detl)) { |
| | | String suppCode = ""; |
| | |
| | | } |
| | | }); |
| | | } |
| | | |
| | | if (wrkMast.getIoType() == 107) { |
| | | List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); |
| | | wrkDetls.forEach(wrkDetl -> { |
| | | ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(), wrkDetl.getAnfme(), wrkDetl.getSpecs(), wrkDetl.getSuppCode())); |
| | | }); |
| | | } |
| | | |
| | | commands.add(ledCommand); |
| | | } |
| | | Set<Integer> workNos = wrkMasts.stream().map(WrkMast::getWrkNo).collect(Collectors.toSet()); |