From c4f32cf388c02c64b267cac6cce68392a1ca9d61 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期五, 14 二月 2025 13:03:44 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/controller/OutController.java | 326 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 297 insertions(+), 29 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..6e1f55f 100644 --- a/src/main/java/com/zy/asrs/controller/OutController.java +++ b/src/main/java/com/zy/asrs/controller/OutController.java @@ -58,9 +58,11 @@ return R.ok().add(orderDetlService.selectByOrderId(orderId).stream().map(OrderDetl::getId).distinct().collect(Collectors.toList())); } - @PostMapping("/out/pakout/previewCustomQuantity/auth") + + /** 鍥涘悜搴撹鍗曞嚭搴� **/ + @PostMapping("/out/pakout/previewCustomQuantity/auth/sxk") @ManagerAuth - public R pakoutPreviewCustomQuantity(@RequestBody JSONObject jsonObject) { + public R pakoutPreviewCustomQuantitySXK(@RequestBody JSONObject jsonObject) { List<Long> ids = JSON.parseObject(jsonObject.get("ids").toString(), ArrayList.class); Double amount = JSON.parseObject(jsonObject.get("amount").toString(), Double.class); if (Cools.isEmpty(ids)) { @@ -70,35 +72,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); @@ -109,9 +150,9 @@ return R.ok().add(locDtos); } - @PostMapping("/out/pakout/preview/auth") + @PostMapping("/out/pakout/preview/auth/sxk") @ManagerAuth - public R pakoutPreview(@RequestBody List<Long> ids) { + public R pakoutPreviewSXK(@RequestBody List<Long> ids) { if (Cools.isEmpty(ids)) { return R.parse(BaseRes.PARAM); } @@ -181,10 +222,6 @@ } } } - - - - } if (issued > 0) { LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued); @@ -195,6 +232,237 @@ return R.ok().add(locDtos); } + /** ctu璁㈠崟鍑哄簱 **/ + @PostMapping("/out/pakout/previewCustomQuantity/auth/ctu") + @ManagerAuth + public R pakoutPreviewCustomQuantityCTU(@RequestBody JSONObject jsonObject) { + List<Long> ids = JSON.parseObject(jsonObject.get("ids").toString(), ArrayList.class); + Double amount = JSON.parseObject(jsonObject.get("amount").toString(), Double.class); + if (Cools.isEmpty(ids)) { + return R.parse(BaseRes.PARAM); + } + List<OrderDetl> orderDetls = orderDetlService.selectBatchIds(ids); + 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()); + for (LocDetl locDetl : locDetls) { + if (issued > 0) { + ExistDto existDto = new ExistDto(); + existDto.setLocNo(locDetl.getLocNo()); + existDto.setMatnr(locDetl.getMatnr()); + existDto.setBatch(locDetl.getBatch()); + if (existDtos.add(existDto)) { + 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(); + } + }else { + break; + } + } + if (issued > 0) { + LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued); + locDto.setLack(Boolean.TRUE); + locDtos.add(locDto); + } + } + return R.ok().add(locDtos); + } + + @PostMapping("/out/pakout/preview/auth/ctu") + @ManagerAuth + public R pakoutPreviewCtu(@RequestBody List<Long> ids) { + if (Cools.isEmpty(ids)) { + return R.parse(BaseRes.PARAM); + } + List<OrderDetl> orderDetls = orderDetlService.selectBatchIds(ids); + 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 (issued <= 0.0D) { continue; } + List<LocDetl> locDetls = new ArrayList<>(); + locDetls = locDetlService.queryStockMinAnfme(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist,orderDetl.getSupp(),orderDetl.getTemp1(),orderDetl.getTemp2()); + for (LocDetl locDetl : locDetls) { + if (issued > 0) { + ExistDto existDto = new ExistDto(); + existDto.setLocNo(locDetl.getLocNo()); + existDto.setMatnr(locDetl.getMatnr()); + existDto.setBatch(locDetl.getBatch()); + if (existDtos.add(existDto)) { + 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(); + } + }else { + break; + } + } + if (issued > 0) { + LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued); + locDto.setLack(Boolean.TRUE); + locDtos.add(locDto); + } + } + return R.ok().add(locDtos); + } + + /** crn璁㈠崟鍑哄簱 **/ + @PostMapping("/out/pakout/previewCustomQuantity/auth/crn") + @ManagerAuth + public R pakoutPreviewCustomQuantityCRN(@RequestBody JSONObject jsonObject) { + List<Long> ids = JSON.parseObject(jsonObject.get("ids").toString(), ArrayList.class); + Double amount = JSON.parseObject(jsonObject.get("amount").toString(), Double.class); + if (Cools.isEmpty(ids)) { + return R.parse(BaseRes.PARAM); + } + List<OrderDetl> orderDetls = orderDetlService.selectBatchIds(ids); + 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.queryStockCrn(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist,orderDetl.getSupp(),orderDetl.getTemp1(),orderDetl.getTemp2()); + for (LocDetl locDetl : locDetls) { + if (issued > 0) { + ExistDto existDto = new ExistDto(); + existDto.setLocNo(locDetl.getLocNo()); + existDto.setMatnr(locDetl.getMatnr()); + existDto.setBatch(locDetl.getBatch()); + if (existDtos.add(existDto)) { + 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(); + } + }else { + break; + } + } + if (issued > 0) { + LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued); + locDto.setLack(Boolean.TRUE); + locDtos.add(locDto); + } + } + return R.ok().add(locDtos); + } + + @PostMapping("/out/pakout/preview/auth/crn") + @ManagerAuth + public R pakoutPreviewCRN(@RequestBody List<Long> ids) { + if (Cools.isEmpty(ids)) { + return R.parse(BaseRes.PARAM); + } + List<OrderDetl> orderDetls = orderDetlService.selectBatchIds(ids); + 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 (issued <= 0.0D) { continue; } + List<LocDetl> locDetls = new ArrayList<>(); + locDetls = locDetlService.queryStockCrn(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist,orderDetl.getSupp(),orderDetl.getTemp1(),orderDetl.getTemp2()); + for (LocDetl locDetl : locDetls) { + if (issued > 0) { + ExistDto existDto = new ExistDto(); + existDto.setLocNo(locDetl.getLocNo()); + existDto.setMatnr(locDetl.getMatnr()); + existDto.setBatch(locDetl.getBatch()); + if (existDtos.add(existDto)) { + 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(); + } + }else { + break; + } + } + if (issued > 0) { + LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued); + locDto.setLack(Boolean.TRUE); + locDtos.add(locDto); + } + } + return R.ok().add(locDtos); + } + + + + + + @PostMapping("/out/pakout/auth") @ManagerAuth(memo = "璁㈠崟鍑哄簱") public synchronized R pakout(@RequestBody List<LocDto> locDtos) throws InterruptedException { -- Gitblit v1.9.1