From cc79183af9dda2e2e983ad9915d41f9c3fe2ed11 Mon Sep 17 00:00:00 2001 From: LSH Date: 星期六, 15 七月 2023 15:29:57 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 39 +++++++++++++++++++++++++++++---------- 1 files changed, 29 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java index f4457b9..8414097 100644 --- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java @@ -31,6 +31,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; @@ -170,24 +171,31 @@ // 鍏宠仈缁勬墭 } else { for (CombParam.CombMat combMat : param.getCombMats()) { - OrderDetl orderDetl = orderDetlService.selectItem(param.getOrderNo(), combMat.getMatnr(), combMat.getBatch()); + OrderDetl orderDetl = orderDetlService.selectItem(combMat.getOrderNo(), combMat.getMatnr(), combMat.getBatch()); if (orderDetl == null) { throw new CoolException("鎵句笉鍒扮粍鎵樼殑鍗曟嵁鏄庣粏"); } Double anfme = orderDetl.getAnfme(); Double workQty = orderDetl.getWorkQty(); - if ( anfme - (workQty+combMat.getAnfme()) < 0) { + BigDecimal a1 = new BigDecimal(orderDetl.getAnfme()); + BigDecimal b1 = new BigDecimal(orderDetl.getWorkQty()); + BigDecimal c1 = new BigDecimal(combMat.getAnfme()); + double e1 = b1.add(c1).doubleValue(); + BigDecimal f1 = new BigDecimal(e1); + Double d1 = a1.subtract(f1).doubleValue(); + if ( d1 < 0.0) { throw new CoolException("缁勬墭鏁伴噺宸茶秴鍑鸿鍗曢渶姹傞噺锛岃妫�鏌ユ槸鍚︽湁鍏朵粬鐨勭粍鎵樺凡瀹屾垚"); } } - Order order = orderService.selectByNo(param.getOrderNo()); - if (order.getSettle() > 2) { - throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�"); - } + // 鐢熸垚鍏ュ簱閫氱煡妗� List<DetlDto> detlDtos = new ArrayList<>(); for (CombParam.CombMat elem : param.getCombMats()) { + Order order = orderService.selectByNo(elem.getOrderNo()); + if (order.getSettle() > 2) { + throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�"); + } // 璁㈠崟鏄庣粏鏁伴噺鏍¢獙 OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch()); if(orderDetl == null){ @@ -211,7 +219,10 @@ detlDtos.add(detlDto); } } + int i=0; for (DetlDto detlDto : detlDtos) { + Order order = orderService.selectByNo(param.getCombMats().get(i).getOrderNo()); + i++; String uuid = String.valueOf(System.currentTimeMillis()); Mat mat = matService.selectByMatnr(detlDto.getMatnr()); if (Cools.isEmpty(mat)) { @@ -219,7 +230,7 @@ } WaitPakin waitPakin = new WaitPakin(); waitPakin.sync(mat); - waitPakin.setOrderNo(order.getOrderNo()); // 鍗曟嵁缂栧彿 + waitPakin.setOrderNo(order.getOrderNo()); // 鍗曟嵁缂栧彿 waitPakin.setBatch(detlDto.getBatch()); // 搴忓垪鐮� waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮� waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵�� @@ -236,8 +247,9 @@ if (!waitPakinService.insert(waitPakin)) { throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); } + orderService.updateSettle(order.getId(), 2L, userId); } - orderService.updateSettle(order.getId(), 2L, userId); + } } @@ -697,7 +709,7 @@ boolean log=true; for (OrderDetl orderDetl1: orderDetls) { //宸ヤ綔涓殑鏁伴噺灏忎簬鎬昏鍗曟暟鏃讹紝璁㈠崟鐘舵�佹敼涓�2锛屼綔涓氫腑 - if(orderDetl1.getQty() < orderDetl.getAnfme()){ + if(orderDetl1.getQty() < orderDetl1.getAnfme()){ log=false; } } @@ -750,6 +762,13 @@ } else if (waitPakins.get(0).getIoStatus() == "Y") { return R.error("缁勬墭宸茬粡鐢熸垚宸ヤ綔妗�"); } + + for (WaitPakin waitPakin: waitPakins) { + List<ManLocDetl> manLocDetls = manLocDetlService.selectList(new EntityWrapper<ManLocDetl>().eq("zpallet", waitPakin.getZpallet())); + if (!Cools.isEmpty(manLocDetls) || manLocDetls.size()>0){ + return R.error("鎵�鍦ㄥ簱浣嶅凡瀛樺湪鏄庣粏"); + } + } //鍒ゆ柇璁㈠崟鏄惁瀹屾垚 boolean log =true; @@ -796,7 +815,7 @@ waitPakinLog.setZpallet(waitPakin.getZpallet()); waitPakinLog.setAnfme(waitPakin.getAnfme()); waitPakinLog.setMatnr(waitPakin.getMatnr()); - waitPakinLog.setLocNo(waitPakin.getLocNo()); + waitPakinLog.setLocNo(jsonLocNo); waitPakinLog.setMaktx(waitPakin.getMaktx()); waitPakinLog.setOrderNo(waitPakin.getOrderNo()); waitPakinLog.setWeight(waitPakin.getWeight()); -- Gitblit v1.9.1