From 5fb5b6883895eed6b79a9b20a8bff748134e9cfb Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期三, 27 十二月 2023 12:38:31 +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