From 3f9bda7361b9a9a9c908c54afaeb4a41d3727a25 Mon Sep 17 00:00:00 2001 From: lsh <1> Date: 星期四, 03 八月 2023 00:43:56 +0800 Subject: [PATCH] #平库库位转移BUG修复 --- src/main/java/com/zy/asrs/controller/OutController.java | 44 ++++++++++++++++++++++++++++---------------- 1 files changed, 28 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java index 2499a72..8e00eac 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; @@ -61,18 +62,30 @@ } List<OrderDetl> orderDetls = orderDetlService.selectBatchIds(ids); List<LocDto> locDtos = new ArrayList<>(); + for (OrderDetl o: orderDetls) { + if (o.getAnfme().equals(o.getWorkQty())){ + return R.error("鍑哄簱鐨勬槑缁嗕腑鏈夊凡鍑哄簱鐗╂枡"); + } + } 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_DOWN); + BigDecimal b1 = new BigDecimal(orderDetl.getQty()).setScale(2,BigDecimal.ROUND_DOWN); + Double c1 = a1.subtract(b1).setScale(2,BigDecimal.ROUND_DOWN).doubleValue(); + double issued = Optional.of( c1 ).orElse(0.0D); if (issued <= 0.0D) { continue; } - List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getOwner()); + List<LocDetl> locDetls = locDetlService.queryStock2(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鍏ㄦ澘鍑哄簱 @@ -81,8 +94,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); // 鍓╀綑寰呭嚭鏁伴噺閫掑噺 - issued = issued - locDetl.getAnfme(); + issued=iss.subtract(an).setScale(2,BigDecimal.ROUND_DOWN).doubleValue(); } else { break; } @@ -100,17 +115,12 @@ @PostMapping("/out/pakout/auth") @ManagerAuth(memo = "璁㈠崟鍑哄簱") public synchronized R pakout(@RequestBody List<LocDto> locDtos) throws InterruptedException { - List<LocDto> locDtos1 = locDtos; - R r = pakout2(locDtos1); - if (!r.equals(R.ok())){ - return r; - } int[][] is=new int[locDtos.size()][2]; for (int i=0;i<locDtos.size();i++){ LocDto locDto=locDtos.get(locDtos.size()-1-i); if (locDto.getLocNo()==null || locDto.getManu().equals("骞冲簱")){ is[i][0]=1; - } else { + }else { is[i][0]=0; } is[i][1]=locDtos.size()-1-i; @@ -121,7 +131,7 @@ } } if (Cools.isEmpty(locDtos)) { - return R.ok(); + return R.ok("绔嬪簱鍙傛暟涓虹┖锛岃鐢熸垚鎷h揣鍗曪紝骞冲簱鎷h揣鍑哄簱"); } boolean lack = true; for (LocDto locDto : locDtos) { @@ -131,7 +141,7 @@ } } if (lack) { - return R.ok(""); + return R.error("搴撳瓨涓嶈冻"); } Thread.sleep(1000L); @@ -157,7 +167,9 @@ return R.ok(); } - public synchronized R pakout2(List<LocDto> locDtos) throws InterruptedException { + @PostMapping("/out/pakout2/auth") + @ManagerAuth(memo = "鐢熸垚鎷h揣鍗�") + public synchronized R pakout2(@RequestBody List<LocDto> locDtos) throws InterruptedException { int[][] is = new int[locDtos.size()][2]; List<String> matnrs=new ArrayList<>(); for (int i = 0; i < locDtos.size(); i++) { @@ -220,7 +232,7 @@ ManLocDetl manLocDetl = manLocDetlService.selectItem(locDto.getLocNo(), locDto.getMatnr(), locDto.getBatch()); if (!Cools.isEmpty(manLocDetl) && !(locDto.getAnfme()>manLocDetl.getAnfme())) { manLocDetl.setStatus(0); - if (manLocDetlService.update(manLocDetl, new EntityWrapper<ManLocDetl>().eq("uuid", manLocDetl.getUuid()))) { + if (manLocDetlService.update(manLocDetl, new EntityWrapper<ManLocDetl>().eq("loc_no", manLocDetl.getLocNo()).eq("matnr",manLocDetl.getMatnr()))) { if (addPakOUT(locDto,uuid).equals(R.ok())) { Order order = orderService.selectByNo(locDto.getOrderNo()); if (Cools.isEmpty(order)){ @@ -264,7 +276,7 @@ manPakOut.setMatnr(locDto.getMatnr()); manPakOut.setMaktx(locDto.getMaktx()); manPakOut.setDocNum(locDto.getOrderNo()); - manPakOut.setCount(0); + manPakOut.setCount(0.0); manPakOut.setStatus(0); manPakOut.setCreateTime(new Date()); manPakOut.setBatch(locDto.getBatch()); -- Gitblit v1.9.1