From d6dcba598b79f39aeea515f5121e8ec40830e13b Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期四, 03 十一月 2022 13:56:26 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   68 +++++++++++++++++++++++++++++----
 1 files changed, 59 insertions(+), 9 deletions(-)

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 2a8104d..06a9b5e 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -215,6 +215,9 @@
                 ioType = dto.isAll() ? 101 : 103;
             } else if (ioWorkType.equals(IoWorkType.CHECK_OUT)) {
                 ioType = 107;
+                if (wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 107)) > 0) {
+                    throw new CoolException("鍙兘瀛樺湪涓�绗旂洏鐐逛换鍔�");
+                }
             }
             assert ioType != null;
             // 鑾峰彇搴撲綅
@@ -351,15 +354,26 @@
                 throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
             }
             // 淇敼璁㈠崟鏄庣粏
-            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);
+            if (BaseController.isJSON(locDto.getOrderNo())) {
+                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);
@@ -387,6 +401,39 @@
         } else {
             throw new CoolException(taskDto.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
         }
+    }
+
+    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
@@ -523,6 +570,9 @@
     @Override
     @Transactional
     public void locCheckOut(StockOutParam param, Long userId) {
+        if (wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 107)) > 0) {
+            throw new CoolException("鍙兘瀛樺湪涓�绗旂洏鐐逛换鍔�");
+        }
         // 鐩爣绔欑偣鐘舵�佹娴�
         BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
         // 鑾峰彇搴撲綅鏄庣粏
@@ -828,7 +878,7 @@
         List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
         for (WrkDetl wrkDetl : wrkDetls) {
             if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
-                if (!BaseController.isJSON(wrkDetl.getOrderNo())) {
+                if (BaseController.isJSON(wrkDetl.getOrderNo())) {
                     if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
                         throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
                     }

--
Gitblit v1.9.1