From 5d69d40253e6ab640d09319074dbccdc43bd2eb3 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期一, 09 十月 2023 15:52:51 +0800 Subject: [PATCH] #组托限制平库托盘码 --- src/main/java/com/zy/asrs/controller/OutController.java | 30 ++++++++++++++++++++++++------ 1 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java index b2dce00..910d56b 100644 --- a/src/main/java/com/zy/asrs/controller/OutController.java +++ b/src/main/java/com/zy/asrs/controller/OutController.java @@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; @@ -62,7 +63,7 @@ List<OrderDetl> orderDetls = orderDetlService.selectBatchIds(ids); List<LocDto> locDtos = new ArrayList<>(); for (OrderDetl o: orderDetls) { - if (o.getAnfme() == o.getWorkQty()){ + if (o.getAnfme().equals(o.getWorkQty())){ return R.error("鍑哄簱鐨勬槑缁嗕腑鏈夊凡鍑哄簱鐗╂枡"); } } @@ -70,14 +71,29 @@ Set<String> exist = new HashSet<>(); for (OrderDetl orderDetl : orderDetls) { - double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty()).orElse(0.0D); + BigDecimal a1 = new BigDecimal(orderDetl.getAnfme()).setScale(2,BigDecimal.ROUND_HALF_UP); + BigDecimal b1 = new BigDecimal(orderDetl.getQty()).setScale(2,BigDecimal.ROUND_HALF_UP); + Double c1 = a1.subtract(b1).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue(); + double issued = Optional.of( c1 ).orElse(0.0D); if (issued <= 0.0D) { continue; } - List<LocDetl> locDetls = locDetlService.queryStock2(orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getOwner()); + BigDecimal decimal = BigDecimal.valueOf(c1).subtract(BigDecimal.valueOf(c1).setScale(0,BigDecimal.ROUND_DOWN)); + + List<LocDetl> locDetls = new ArrayList<>(); + if (decimal.doubleValue() > 0){ + locDetls = locDetlService.queryStock2(orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getOwner()); + }else { + locDetls = locDetlService.queryStock3(orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getOwner()); + } + for (LocDetl locDetl : locDetls) { if (issued > 0) { + boolean sign = false; + if (issued > locDetl.getAnfme() || locDetl.getAnfme().equals(issued)){ + sign=true; + } LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(), - issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued,locDetl.getOwner(),locDetl.getPayment()); - List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() ? 101 : 103); + sign ? locDetl.getAnfme() : issued,locDetl.getOwner(),locDetl.getPayment()); + List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), sign? 101 : 103); // LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(), // locDetl.getAnfme(), issued < locDetl.getAnfme()? issued : locDetl.getAnfme()); // //閫熻吘鍙湁鍏ㄦ澘锛屾墍浠ュ彧鑳�101鍏ㄦ澘鍑哄簱 @@ -86,8 +102,10 @@ locDto.setManu(locDetl.getManu()); locDtos.add(locDto); exist.add(locDetl.getLocNo()); + BigDecimal iss=new BigDecimal(Double.toString(issued)).setScale(2,BigDecimal.ROUND_HALF_UP); + BigDecimal an=new BigDecimal(Double.toString(locDetl.getAnfme())).setScale(2,BigDecimal.ROUND_HALF_UP); // 鍓╀綑寰呭嚭鏁伴噺閫掑噺 - issued = issued - locDetl.getAnfme(); + issued=iss.subtract(an).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue(); } else { break; } -- Gitblit v1.9.1