From ec34bee74e62cd7aee25c8a207e183572d37454e Mon Sep 17 00:00:00 2001 From: 野心家 <1051256694@qq.com> Date: 星期二, 17 十二月 2024 15:16:29 +0800 Subject: [PATCH] 1.订单出库,优先出一筐的货 2.订单打印,制令号从Mat表中拿 --- zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OutController.java | 90 +++++++++++++++++++++++++++++++++++++-------- 1 files changed, 74 insertions(+), 16 deletions(-) diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OutController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OutController.java index 201a5c0..9c4fa47 100644 --- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OutController.java +++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OutController.java @@ -53,29 +53,87 @@ Set<String> exist = new HashSet<>(); + //鏍囪搴撲綅 + HashMap<String,Integer> hm = new HashMap<>(); + for (OrderDetl orderDetl : orderDetls) { double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D); if (issued <= 0.0D) { continue; } - List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), hostId); - for (LocDetl locDetl : locDetls) { - List<LocDetl> locMats = locDetlService.list(new LambdaQueryWrapper<LocDetl>() - .eq(LocDetl::getLocNo, locDetl.getLocNo()) - .eq(LocDetl::getHostId, hostId)); - if (issued > 0) { - LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(), - issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued); - List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), ((issued >= locDetl.getAnfme()) && (locMats.size() == 1)) ? 101 : 103, hostId); - locDto.setStaNos(staNos); - locDtos.add(locDto); - exist.add(locDetl.getLocNo()); - // 鍓╀綑寰呭嚭鏁伴噺閫掑噺 - issued = issued - locDetl.getAnfme(); - } else { - break; + if(!Cools.isEmpty(hm)){ + for(HashMap.Entry<String,Integer> entry:hm.entrySet()){ + List<LocDetl> locDetls = locDetlService.list(new LambdaQueryWrapper<LocDetl>() + .eq(LocDetl::getHostId, hostId) + .eq(LocDetl::getLocNo, entry.getKey()) + .eq(LocDetl::getMatnr, orderDetl.getMatnr())); + for (LocDetl locDetl : locDetls) { + List<LocDetl> locMats = locDetlService.list(new LambdaQueryWrapper<LocDetl>() + .eq(LocDetl::getLocNo, locDetl.getLocNo()) + .eq(LocDetl::getHostId, hostId)); + if (issued > 0) { + LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(), + issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued); + List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), ((issued >= locDetl.getAnfme()) && (locMats.size() == 1)) ? 101 : 103, hostId); + locDto.setStaNos(staNos); + locDtos.add(locDto); + exist.add(locDetl.getLocNo()); + // 鍓╀綑寰呭嚭鏁伴噺閫掑噺 + issued = issued - locDetl.getAnfme(); + hm.put(locDetl.getLocNo(), 1); + } else { + break; + } + } + } + if (issued >0){ + List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), hostId); + for (LocDetl locDetl : locDetls) { + for (HashMap.Entry<String,Integer> entry:hm.entrySet()){ + if(locDetl.getLocNo().equals(entry.getKey())){ + continue; + } + } + List<LocDetl> locMats = locDetlService.list(new LambdaQueryWrapper<LocDetl>() + .eq(LocDetl::getLocNo, locDetl.getLocNo()) + .eq(LocDetl::getHostId, hostId)); + if (issued > 0) { + LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(), + issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued); + List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), ((issued >= locDetl.getAnfme()) && (locMats.size() == 1)) ? 101 : 103, hostId); + locDto.setStaNos(staNos); + locDtos.add(locDto); + exist.add(locDetl.getLocNo()); + // 鍓╀綑寰呭嚭鏁伴噺閫掑噺 + issued = issued - locDetl.getAnfme(); + hm.put(locDetl.getLocNo(), 1); + } else { + break; + } + } + } + }else{ + List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), hostId); + for (LocDetl locDetl : locDetls) { + List<LocDetl> locMats = locDetlService.list(new LambdaQueryWrapper<LocDetl>() + .eq(LocDetl::getLocNo, locDetl.getLocNo()) + .eq(LocDetl::getHostId, hostId)); + if (issued > 0) { + LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(), + issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued); + List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), ((issued >= locDetl.getAnfme()) && (locMats.size() == 1)) ? 101 : 103, hostId); + locDto.setStaNos(staNos); + locDtos.add(locDto); + exist.add(locDetl.getLocNo()); + // 鍓╀綑寰呭嚭鏁伴噺閫掑噺 + issued = issued - locDetl.getAnfme(); + hm.put(locDetl.getLocNo(), 1); + } else { + break; + } } } + if (issued > 0) { List<LocDetl> locDetls1 = locDetlService.list(new LambdaQueryWrapper<LocDetl>() .eq(LocDetl::getMatnr, orderDetl.getMatnr()).eq(LocDetl::getHostId, hostId)); -- Gitblit v1.9.1