From 1e5a083e2c1acd8ab24bbc3b0ba579b040abf6b9 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期三, 12 二月 2025 08:56:54 +0800 Subject: [PATCH] #四向库订单出库单个出库 --- src/main/java/com/zy/asrs/controller/OutController.java | 81 ++++++++++++++++++++++++++++++---------- 1 files changed, 60 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java index f75ade9..6d9b28f 100644 --- a/src/main/java/com/zy/asrs/controller/OutController.java +++ b/src/main/java/com/zy/asrs/controller/OutController.java @@ -70,35 +70,74 @@ List<LocDto> locDtos = new ArrayList<>(); Set<String> exist = new HashSet<>(); + Set<ExistDto> existDtos = new HashSet<>(); for (OrderDetl orderDetl : orderDetls) { double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D); + if (!Cools.isEmpty(amount)) { + if (amount > issued) { + return R.error("鏁伴噺楂樹簬鍙嚭搴撴暟閲�"); + } + issued = amount; + } if (issued <= 0.0D) { continue; } List<LocDetl> locDetls = new ArrayList<>(); - locDetls = locDetlService.queryStockMinAnfme(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist,orderDetl.getSupp(),orderDetl.getTemp1(),orderDetl.getTemp2()); + locDetls = locDetlService.queryStockFour(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist,orderDetl.getSupp(),orderDetl.getTemp1(),orderDetl.getTemp2()); for (LocDetl locDetl : locDetls) { - 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() ? 101 : 103); - List<LocDto.staListDto> maps = new ArrayList<>(); - for (Integer staNo : staNos) { - LocDto.staListDto staListDto = new LocDto.staListDto(); - staListDto.setStaNo(staNo); - staListDto.setStaName(Utils.getStaName(staNo)); - maps.add(staListDto); - } - locDto.setStaNos(maps); - locDtos.add(locDto); - // 鍓╀綑寰呭嚭鏁伴噺閫掑噺 - issued = issued - locDetl.getAnfme(); + LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo())); + List<LocMast> locMasts = new ArrayList<>(); + if (locMast.getBay1() >=1 && locMast.getBay1()<=2){ + locMasts = locMastService.selectList(new EntityWrapper<LocMast>() + .eq("gro1", locMast.getGro1()) + .eq("crn_no", 7) + .eq("loc_type1",locMast.getLocType1()) + .orderBy("bay1", false)); + }else if (locMast.getBay1() >=4 && locMast.getBay1()<=12){ + locMasts = locMastService.selectList(new EntityWrapper<LocMast>() + .eq("gro1", locMast.getGro1()) + .eq("crn_no", 7) + .eq("loc_type1",locMast.getLocType1()) + .orderBy("bay1", true)); }else { - break; + locMasts = locMastService.selectList(new EntityWrapper<LocMast>() + .eq("gro1", locMast.getGro1()) + .eq("crn_no", 7) + .eq("loc_type1",locMast.getLocType1()) + .orderBy("bay1", false)); } - - - - + for (LocMast locMast1 : locMasts){ + if (locMast1.getLocSts().equals("F")){ + LocDetl locDetl1 = locDetlService.selectOne(new EntityWrapper<LocDetl>() + .eq("loc_No", locMast1.getLocNo()) + .eq("matnr", locDetl.getMatnr()).eq("batch", locDetl.getBatch())); + if (!Cools.isEmpty(locDetl1)) { + ExistDto existDto = new ExistDto(); + existDto.setLocNo(locDetl1.getLocNo()); + existDto.setMatnr(locDetl1.getMatnr()); + existDto.setBatch(locDetl1.getBatch()); + if (existDtos.add(existDto)){ + if (issued > 0) { + LocDto locDto = new LocDto(locDetl1.getLocNo(), locDetl1.getMatnr(), locDetl1.getMaktx(), locDetl1.getBatch(), orderDetl.getOrderNo(), + issued >= locDetl1.getAnfme() ? locDetl1.getAnfme() : issued); + List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl1.getLocNo(), issued >= locDetl1.getAnfme() ? 101 : 103); + List<LocDto.staListDto> maps = new ArrayList<>(); + for (Integer staNo : staNos) { + LocDto.staListDto staListDto = new LocDto.staListDto(); + staListDto.setStaNo(staNo); + staListDto.setStaName(Utils.getStaName(staNo)); + maps.add(staListDto); + } + locDto.setStaNos(maps); + locDtos.add(locDto); + // 鍓╀綑寰呭嚭鏁伴噺閫掑噺 + issued = issued - locDetl.getAnfme(); + }else { + break; + } + } + } + } + } } if (issued > 0) { LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued); -- Gitblit v1.9.1