| | |
| | | if (wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57) { |
| | | //拣料再回库,重新分配设备工作号 |
| | | int deviceWrk = commonService.getWorkNo(8);//生成提升机设备工作号 |
| | | BasLiftOpt basLiftOpt = basLiftOptService.selectByDeviceWrk(String.valueOf(deviceWrk), liftThread.getSlave().getId()); |
| | | if (basLiftOpt != null) { |
| | | News.info("{}任务,{}号提升机,设备工作号出现重复情况,请联系技术人员支持。", wrkMast.getWrkNo(), liftProtocol.getLiftNo()); |
| | | return false; |
| | | } |
| | | liftCommand.setTaskNo((short) deviceWrk); |
| | | } |
| | | ArrayList<NyLiftCommand> commands = new ArrayList<>(); |
| | |
| | | } |
| | | |
| | | if (wrkMast.getInvWh() == null) { |
| | | wrkMast.setInvWh("Y");//标记已经下发机械臂任务 |
| | | if (wrkMastMapper.updateById(wrkMast) > 0) { |
| | | RobotUtils.sendTask(staProtocol303.getWorkNo().toString(), wrkDetls.size(), "303"); |
| | | boolean result = RobotUtils.sendTask(staProtocol303.getWorkNo().toString(), wrkDetls.size(), "303"); |
| | | if (result) { |
| | | wrkMast.setInvWh("Y");//标记已经下发机械臂任务 |
| | | wrkMastMapper.updateById(wrkMast); |
| | | } |
| | | } |
| | | } |
| | |
| | | continue; |
| | | } |
| | | if (wrkMast.getInvWh() == null) { |
| | | wrkMast.setInvWh("Y");//标记已经下发机械臂任务 |
| | | if (wrkMastMapper.updateById(wrkMast) > 0) { |
| | | RobotUtils.sendTask(staProtocol317.getWorkNo().toString(), wrkDetls.size(), "317"); |
| | | boolean result = RobotUtils.sendTask(staProtocol317.getWorkNo().toString(), wrkDetls.size(), "317"); |
| | | if (result) { |
| | | wrkMast.setInvWh("Y");//标记已经下发机械臂任务 |
| | | wrkMastMapper.updateById(wrkMast); |
| | | } |
| | | } |
| | | } |
| | |
| | | ledCommand.setBarcode(barcode); |
| | | if (ioType != 110 && ioType != 10) { |
| | | List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", sourceLocNo)); |
| | | locDetls.forEach(locDetl -> { |
| | | Wrapper<WrkDetl> wrapper = new EntityWrapper<WrkDetl>().eq("matnr", locDetl.getMatnr()).eq("wrk_no", wrkNo); |
| | | 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());//料箱码 |
| | | List<WrkDetl> detl = wrkDetlService.selectList(wrapper); |
| | | if (Cools.isEmpty(detl)) { |
| | | String suppCode = ""; |
| | | if (locDetl.getSuppCode() != null) { |
| | | suppCode = locDetl.getSuppCode(); |
| | | } |
| | | ledCommand.getMatDtos().add(new MatDto(locDetl.getMatnr(), locDetl.getMaktx(), 0D, locDetl.getAnfme(), locDetl.getSpecs(), suppCode)); |
| | | } else { |
| | | //出库数量累计 |
| | | Double conut = 0.0; |
| | | for (WrkDetl wrkDetl : detl) { |
| | | conut = conut + wrkDetl.getAnfme(); |
| | | } |
| | | |
| | | for (WrkDetl wrkDetl : detl) { |
| | | if (ioType == 101) { |
| | | List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkNo)); |
| | | wrkDetls.forEach(wrkDetl -> { |
| | | ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(), 0D, wrkDetl.getSpecs(), wrkDetl.getSuppCode())); |
| | | }); |
| | | // locDetls.forEach(locDetl -> { |
| | | // Wrapper<WrkDetl> wrapper = new EntityWrapper<WrkDetl>().eq("matnr", locDetl.getMatnr()).eq("wrk_no", wrkNo); |
| | | // 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());//料箱码 |
| | | // List<WrkDetl> detl = wrkDetlService.selectList(wrapper); |
| | | // if (Cools.isEmpty(detl)) { |
| | | // String suppCode = ""; |
| | | // if (locDetl.getSuppCode() != null) { |
| | | // suppCode = locDetl.getSuppCode(); |
| | | // } |
| | | // ledCommand.getMatDtos().add(new MatDto(locDetl.getMatnr(), locDetl.getMaktx(), 0D, locDetl.getAnfme(), locDetl.getSpecs(), suppCode)); |
| | | // } else { |
| | | // //出库数量累计 |
| | | // Double conut = 0.0; |
| | | // for (WrkDetl wrkDetl : detl) { |
| | | // conut = conut + wrkDetl.getAnfme(); |
| | | // } |
| | | // |
| | | // for (WrkDetl wrkDetl : detl) { |
| | | // String suppCode = ""; |
| | | // if (wrkDetl.getSuppCode() != null) { |
| | | // suppCode = wrkDetl.getSuppCode(); |
| | | // } |
| | | // ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(), (locDetl.getAnfme() - conut), wrkDetl.getSpecs(), suppCode, wrkDetl.getOrderNo())); |
| | | // } |
| | | // } |
| | | // |
| | | // }); |
| | | } else { |
| | | locDetls.forEach(locDetl -> { |
| | | Wrapper<WrkDetl> wrapper = new EntityWrapper<WrkDetl>().eq("matnr", locDetl.getMatnr()).eq("wrk_no", wrkNo); |
| | | 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());//料箱码 |
| | | List<WrkDetl> detl = wrkDetlService.selectList(wrapper); |
| | | if (Cools.isEmpty(detl)) { |
| | | String suppCode = ""; |
| | | if (wrkDetl.getSuppCode() != null) { |
| | | suppCode = wrkDetl.getSuppCode(); |
| | | if (locDetl.getSuppCode() != null) { |
| | | suppCode = locDetl.getSuppCode(); |
| | | } |
| | | ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(), (locDetl.getAnfme() - conut), wrkDetl.getSpecs(), suppCode, wrkDetl.getOrderNo())); |
| | | } |
| | | } |
| | | ledCommand.getMatDtos().add(new MatDto(locDetl.getMatnr(), locDetl.getMaktx(), 0D, locDetl.getAnfme(), locDetl.getSpecs(), suppCode)); |
| | | } else { |
| | | //出库数量累计 |
| | | Double conut = 0.0; |
| | | for (WrkDetl wrkDetl : detl) { |
| | | conut = conut + wrkDetl.getAnfme(); |
| | | } |
| | | |
| | | }); |
| | | for (WrkDetl wrkDetl : detl) { |
| | | String suppCode = ""; |
| | | if (wrkDetl.getSuppCode() != null) { |
| | | suppCode = wrkDetl.getSuppCode(); |
| | | } |
| | | ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(), (locDetl.getAnfme() - conut), wrkDetl.getSpecs(), suppCode, wrkDetl.getOrderNo())); |
| | | } |
| | | } |
| | | |
| | | }); |
| | | } |
| | | |
| | | |
| | | if (ioType == 107) { |
| | | locDetls = new ArrayList<>(); |
| | | ledCommand.setMatDtos(new ArrayList<>()); |
| | | } |
| | | |
| | | if (locDetls.isEmpty()) { |
| | | if (locDetls.isEmpty() && ioType != 101) { |
| | | List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkNo)); |
| | | wrkDetls.forEach(wrkDetl -> { |
| | | ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(), wrkDetl.getAnfme(), wrkDetl.getSpecs(), wrkDetl.getSuppCode())); |
| | |
| | | return false;//检测目标站点路径是否未被占用 |
| | | } |
| | | //尝试锁定目标站路径 |
| | | boolean result2 = navigateMapUtils.writeNavigateNodeToRedisMap(Utils.getLev(wrkMast.getLocNo()), targetNodes, true);//所使用的路径进行锁定禁用 |
| | | boolean result2 = navigateMapUtils.writeNavigateNodeToRedisMap(Utils.getLev(wrkMast.getLocNo()), shuttleProtocol.getShuttleNo().intValue(), targetNodes, true);//所使用的路径进行锁定禁用 |
| | | if (!result2) { |
| | | News.info("{}任务,{}小车,路径锁定失败,禁止派发", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo()); |
| | | return false;//路径锁定失败 |
| | |
| | | if (result == null) { |
| | | //路径获取失败,需要解锁上面锁定的路径 |
| | | //尝试解锁目标站路径 |
| | | boolean result3 = navigateMapUtils.writeNavigateNodeToRedisMap(Utils.getLev(wrkMast.getLocNo()), targetNodes, false);//所使用的路径进行解锁 |
| | | boolean result3 = navigateMapUtils.writeNavigateNodeToRedisMap(Utils.getLev(wrkMast.getLocNo()), shuttleProtocol.getShuttleNo().intValue(), targetNodes, false);//所使用的路径进行解锁 |
| | | if (!result3) { |
| | | News.info("{}任务,{}小车,路径解锁失败", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo()); |
| | | return false;//路径解锁失败 |
| | |
| | | NyLiftCommand liftCommand = NyLiftUtils.getLiftCommand(liftProtocol.getLiftNo().intValue(), NyLiftTaskModelType.MOVE_CAR.id, sourceLiftSta.getStaNo(), sourceLiftSta.getStaNo(), wrkMast.getWrkNo()); |
| | | |
| | | int deviceWrk = commonService.getWorkNo(8);//生成提升机设备工作号 |
| | | BasLiftOpt basLiftOpt = basLiftOptService.selectByDeviceWrk(String.valueOf(deviceWrk), liftThread.getSlave().getId()); |
| | | if (basLiftOpt != null) { |
| | | News.info("{}任务,{}号提升机,设备工作号出现重复情况,请联系技术人员支持。", wrkMast.getWrkNo(), liftProtocol.getLiftNo()); |
| | | return false; |
| | | } |
| | | liftCommand.setTaskNo((short) deviceWrk);//更换随机任务号 |
| | | |
| | | ArrayList<NyLiftCommand> commands = new ArrayList<>(); |