From e81c1dcf8d2cd9a0095039670a1f34e28078fd97 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期二, 26 十二月 2023 16:25:30 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/controller/OutController.java | 22 +++++++++++++++------- 1 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java index 8e00eac..910d56b 100644 --- a/src/main/java/com/zy/asrs/controller/OutController.java +++ b/src/main/java/com/zy/asrs/controller/OutController.java @@ -71,12 +71,20 @@ Set<String> exist = new HashSet<>(); for (OrderDetl orderDetl : orderDetls) { - BigDecimal a1 = new BigDecimal(orderDetl.getAnfme()).setScale(2,BigDecimal.ROUND_DOWN); - BigDecimal b1 = new BigDecimal(orderDetl.getQty()).setScale(2,BigDecimal.ROUND_DOWN); - Double c1 = a1.subtract(b1).setScale(2,BigDecimal.ROUND_DOWN).doubleValue(); + 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; @@ -94,10 +102,10 @@ locDto.setManu(locDetl.getManu()); locDtos.add(locDto); exist.add(locDetl.getLocNo()); - BigDecimal iss=new BigDecimal(Double.toString(issued)).setScale(2,BigDecimal.ROUND_DOWN); - BigDecimal an=new BigDecimal(Double.toString(locDetl.getAnfme())).setScale(2,BigDecimal.ROUND_DOWN); + 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=iss.subtract(an).setScale(2,BigDecimal.ROUND_DOWN).doubleValue(); + issued=iss.subtract(an).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue(); } else { break; } -- Gitblit v1.9.1