From 23f3afa2a869a01e063875c9519dae7419e8a767 Mon Sep 17 00:00:00 2001 From: LSH Date: 星期一, 31 十月 2022 10:57:26 +0800 Subject: [PATCH] #合并出库服务器错误问题修复 --- src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 58 +++++++++++++++++++++++++--- src/main/java/com/zy/asrs/controller/OutController.java | 12 ++++-- 2 files changed, 59 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java index 10f209d..6a64db6 100644 --- a/src/main/java/com/zy/asrs/controller/OutController.java +++ b/src/main/java/com/zy/asrs/controller/OutController.java @@ -140,12 +140,16 @@ } for (OrderDto orderDto : orderDtos) { Order order = orderService.selectByNo(orderDto.getOrderNo()); - if (order.getSettle() > 2) { - return R.error(orderDto.getOrderNo() + "璁㈠崟宸插け鏁堬紝璇峰強鏃跺埛鏂伴〉闈�"); + if (!Cools.isEmpty(order)){ + if (order.getSettle() > 2) { + return R.error(orderDto.getOrderNo() + "璁㈠崟宸插け鏁堬紝璇峰強鏃跺埛鏂伴〉闈�"); + } } OrderDetl orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), orderDto.getMatnr(), null); - if (orderDetl.getAnfme() - orderDetl.getQty() < orderDto.getAnfme()) { - return R.ok(orderDto.getOrderNo() + "璁㈠崟宸蹭綔涓氾紝璇峰強鏃跺埛鏂伴〉闈�"); + if (!Cools.isEmpty(orderDetl)){ + if (orderDetl.getAnfme() - orderDetl.getQty() < orderDto.getAnfme()) { + return R.ok(orderDto.getOrderNo() + "璁㈠崟宸蹭綔涓氾紝璇峰強鏃跺埛鏂伴〉闈�"); + } } } diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java index 2a4df87..06a9b5e 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -355,14 +355,25 @@ } // 淇敼璁㈠崟鏄庣粏 if (BaseController.isJSON(locDto.getOrderNo())) { - OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch()); - if (orderDetl == null) { - orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null); + String[] orderNos = GetOrderNo(locDto.getOrderNo()); + Double anfme = locDto.getAnfme(); + for (String orderNo:orderNos){ + OrderDetl orderDetl = orderDetlService.selectItem(orderNo, locDto.getMatnr(), locDto.getBatch()); + if (orderDetl == null) { + orderDetl = orderDetlService.selectItem(orderNo, locDto.getMatnr(), null); + } + if (orderDetl.getAnfme()<=anfme){ + if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getAnfme())) { + throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触"); + } + anfme=anfme-orderDetl.getAnfme(); + }else{ + if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(),anfme)) { + throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触"); + } + } + orderService.updateSettle(orderDetl.getOrderId(), 2L, userId); } - if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme())) { - throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触"); - } - orderService.updateSettle(orderDetl.getOrderId(), 2L, userId); } else { // 璁㈠崟鍚堝苟鍑哄簱 List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class); @@ -392,6 +403,39 @@ } } + private String[] GetOrderNo(String orderNo){ + String s1 = Recombination(orderNo, ","); + String s2 = Recombination(s1, "\"}"); + String[] s3= s2.split("\""); + String[] s =new String[(s3.length-1)/3]; + int i=0; + int j=0; + for (String ss:s3){ + if (ss.equals("orderNo")){ + s[i]=s3[j+2]; + i++; + } + j++; + } + return s; + } + private String Recombination(String a,String b){ + String[] d=a.split(b); + String c=""; + if (b.equals(",")){ + for (int i=0;i<d.length;i++){ + if (i%2!=0){ + c=c+d[i]; + } + } + }else if(b.equals("\"}")){ + for (int i=0;i<d.length-1;i++){ + c=c+d[i]; + } + } + return c; + } + @Override @Transactional public String emptyPlateIn(Integer devpNo, Long userId) { -- Gitblit v1.9.1