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 |  184 +++++++++++++++++++++++++++------------------
 1 files changed, 109 insertions(+), 75 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 ee26e48..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;
@@ -124,12 +125,7 @@
                 combMat.setBatch("");
             }
         }
-
-
-
-
         Date now = new Date();
-
         // 鏃犲崟缁勬墭
         if (Cools.isEmpty(param.getOrderNo())) {
 
@@ -175,25 +171,31 @@
         // 鍏宠仈缁勬墭
         } else {
             for (CombParam.CombMat combMat : param.getCombMats()) {
-                Integer sum = orderDetlService.sameOrderComb(param.getOrderNo(), combMat.getMatnr(),combMat.getBatch());
-                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+sum) < 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){
@@ -217,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)) {
@@ -225,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");     // 鍏ュ嚭鐘舵��
@@ -242,8 +247,9 @@
                 if (!waitPakinService.insert(waitPakin)) {
                     throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
                 }
+                orderService.updateSettle(order.getId(), 2L, userId);
             }
-            orderService.updateSettle(order.getId(), 2L, userId);
+
         }
 
     }
@@ -647,7 +653,11 @@
             EntityWrapper<ManPakOut> manPakOutEntityWrapper = new EntityWrapper<>();
             manPakOutEntityWrapper.eq("loc_no",jsonLocNo);
             manPakOutEntityWrapper.eq("matnr",jsonOrderDetl.getMatnr());
+            manPakOutEntityWrapper.eq("doc_num",order.getOrderNo());
             ManPakOut manPakOut = manPakOutService.selectOne(manPakOutEntityWrapper); //鑾峰彇鎷h揣鍗曚腑鐨勫搴旂殑璁㈠崟
+            if(Cools.isEmpty(manPakOut)){
+                return R.error("娌℃湁鎵惧埌瀵瑰簲鐨勫嚭搴撳崟"+jsonLocNo+"-------"+jsonOrderDetl.getMatnr());
+            }
             if(manPakOut.getCount() == null){
                 manPakOut.setCount(0.0);
             }
@@ -699,7 +709,7 @@
             boolean log=true;
             for (OrderDetl orderDetl1: orderDetls) {
                 //宸ヤ綔涓殑鏁伴噺灏忎簬鎬昏鍗曟暟鏃讹紝璁㈠崟鐘舵�佹敼涓�2锛屼綔涓氫腑
-                if(orderDetl1.getQty() < orderDetl.getAnfme()){
+                if(orderDetl1.getQty() < orderDetl1.getAnfme()){
                     log=false;
                 }
             }
@@ -725,9 +735,7 @@
             EntityWrapper<ManLocDetl> manLocDetlEntityWrapper = new EntityWrapper<>();
             manLocDetlEntityWrapper.eq("loc_no",manPakOut.getLocNo());
             manLocDetlEntityWrapper.eq("matnr",manPakOut.getMatnr());
-            if (checkManLocDetl.getAnfme().intValue() == manPakOut.getCount()){
-
-
+            if (checkManLocDetl.getAnfme() == 0 ){
                 if(!manLocDetlService.delete(manLocDetlEntityWrapper)){
                     return R.error("鍒犻櫎骞冲簱搴撳瓨澶辫触");
                 }
@@ -748,70 +756,96 @@
         String jsonLocNo = (String) json.get("locNo"); //鑾峰彇搴撲綅鐮�
         String jsonBarNo = (String) json.get("barcode"); //鑾峰彇鎵樼洏鐮�
 
-        WaitPakin waitPakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("zpallet", jsonBarNo)); //鑾峰彇瀵瑰簲缁勬墭淇℃伅
-        if (waitPakin.equals(null)){
+        List<WaitPakin> waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", jsonBarNo)); //鑾峰彇瀵瑰簲缁勬墭淇℃伅
+        if (Cools.isEmpty(waitPakins)){
             return R.error("鏈煡璇㈠埌缁勬墭");
-        } else if (waitPakin.getIoStatus() == "Y") {
+        } else if (waitPakins.get(0).getIoStatus() == "Y") {
             return R.error("缁勬墭宸茬粡鐢熸垚宸ヤ綔妗�");
         }
-        Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", waitPakin.getOrderNo()));  //鑾峰彇瀵瑰簲璁㈠崟淇℃伅
-        if (order.equals(null)){
-            return R.error("鏈煡璇㈠埌璁㈠崟淇℃伅");
-        }
-        OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", waitPakin.
-                getOrderNo()).eq("matnr", waitPakin.getMatnr()));  //鑾峰彇瀵瑰簲璁㈠崟鏄庣粏淇℃伅
-        if (orderDetl.equals(null)){
-            return R.error("鏈煡璇㈠埌璁㈠崟鏄庣粏淇℃伅");
-        }
-        Node node = nodeService.selectOne(new EntityWrapper<Node>().eq("name", jsonLocNo));  //鑾峰彇瀵瑰簲搴撲綅淇℃伅
-        if (node.equals(null)){
-            return R.error("鏈煡璇㈠埌搴撲綅淇℃伅");
-        }
-        Date date = new Date();
-        ManLocDetl manLocDetl = new ManLocDetl();  //鍒濆鍖栧簱瀛樺疄浣撶被
-        manLocDetl.setLocNo(node.getName());
-        manLocDetl.setNodeId(node.getId());
-        manLocDetl.setZpallet(waitPakin.getZpallet());
-        manLocDetl.setAnfme(waitPakin.getAnfme());
-        manLocDetl.setMatnr(waitPakin.getMatnr());
-        manLocDetl.setMaktx(waitPakin.getMaktx());
-        manLocDetl.setStatus(1);
-        manLocDetl.setCreateBy(user.getId());
-        manLocDetl.setCreateTime(date);
-        manLocDetl.setUpdateBy(user.getId());
-        manLocDetl.setModiTime(date);
-        manLocDetl.setOrderNo(waitPakin.getOrderNo());
-        manLocDetl.setOwner(waitPakin.getOwner());
-        manLocDetl.setPayment(waitPakin.getPayment());
 
-        if (!manLocDetlService.insert(manLocDetl)){  //鏁版嵁搴撴彃鍏ュ疄浣撶被淇℃伅
-            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("鎵�鍦ㄥ簱浣嶅凡瀛樺湪鏄庣粏");
+            }
         }
-        orderDetl.setQty(orderDetl.getQty()+ waitPakin.getAnfme());  //鏇存柊璁㈠崟鏄庣粏鏁伴噺
-        if (!orderDetlService.updateById(orderDetl)){
-            return R.error("鏇存柊璁㈠崟鏄庣粏澶辫触");
-        }
+        //鍒ゆ柇璁㈠崟鏄惁瀹屾垚
+        boolean log =true;
 
-        WaitPakinLog waitPakinLog = new WaitPakinLog(); //鍒濆鍖栧叆搴撻�氱煡鍗曟棩蹇楀疄浣撶被
-        waitPakinLog.setZpallet(waitPakin.getZpallet());
-        waitPakinLog.setAnfme(waitPakin.getAnfme());
-        waitPakinLog.setMatnr(waitPakin.getMatnr());
-        waitPakinLog.setLocNo(waitPakin.getLocNo());
-        waitPakinLog.setMaktx(waitPakin.getMaktx());
-        waitPakinLog.setOrderNo(waitPakin.getOrderNo());
-        waitPakinLog.setWeight(waitPakin.getWeight());
-        waitPakinLog.setStatus("Y");
-        waitPakinLog.setIoStatus("Y");
-        waitPakinLog.setModiUser(user.getId());
-        waitPakinLog.setModiTime(date);
-        waitPakinLog.setAppeUser(user.getId());
-        waitPakinLog.setAppeTime(date);
-        waitPakinLog.setOwner(waitPakin.getOwner());
-        waitPakinLog.setPayment(waitPakin.getPayment());
-        waitPakinLog.setUuid(waitPakin.getUuid());
+        for (WaitPakin waitPakin: waitPakins) {
+            Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", waitPakin.getOrderNo()));  //鑾峰彇瀵瑰簲璁㈠崟淇℃伅
+            if (order.equals(null)){
+                return R.error("鏈煡璇㈠埌璁㈠崟淇℃伅");
+            }
+            OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", waitPakin.
+                    getOrderNo()).eq("matnr", waitPakin.getMatnr()));  //鑾峰彇瀵瑰簲璁㈠崟鏄庣粏淇℃伅
+            if (orderDetl.equals(null)){
+                return R.error("鏈煡璇㈠埌璁㈠崟鏄庣粏淇℃伅");
+            }
+            Node node = nodeService.selectOne(new EntityWrapper<Node>().eq("name", jsonLocNo));  //鑾峰彇瀵瑰簲搴撲綅淇℃伅
+            if (node.equals(null)){
+                return R.error("鏈煡璇㈠埌搴撲綅淇℃伅");
+            }
+            Date date = new Date();
+            ManLocDetl manLocDetl = new ManLocDetl();  //鍒濆鍖栧簱瀛樺疄浣撶被
+            manLocDetl.setLocNo(node.getName());
+            manLocDetl.setNodeId(node.getId());
+            manLocDetl.setZpallet(waitPakin.getZpallet());
+            manLocDetl.setAnfme(waitPakin.getAnfme());
+            manLocDetl.setMatnr(waitPakin.getMatnr());
+            manLocDetl.setMaktx(waitPakin.getMaktx());
+            manLocDetl.setStatus(1);
+            manLocDetl.setCreateBy(user.getId());
+            manLocDetl.setCreateTime(date);
+            manLocDetl.setUpdateBy(user.getId());
+            manLocDetl.setModiTime(date);
+            manLocDetl.setOrderNo(waitPakin.getOrderNo());
+            manLocDetl.setOwner(waitPakin.getOwner());
+            manLocDetl.setPayment(waitPakin.getPayment());
 
-        if (!waitPakinLogService.insert(waitPakinLog)){  //鎻掑叆鍏ュ簱閫氱煡鍘嗗彶妗f暟鎹簱
-            return R.error("鎻掑叆鍘嗗彶鍏ュ簱閫氱煡妗eけ璐�");
+            if (!manLocDetlService.insert(manLocDetl)){  //鏁版嵁搴撴彃鍏ュ疄浣撶被淇℃伅
+                return R.error("鐗╂枡淇℃伅鍏ュ簱澶辫触");
+            }
+            orderDetl.setQty(orderDetl.getQty()+ waitPakin.getAnfme());  //鏇存柊璁㈠崟鏄庣粏鏁伴噺
+            if (!orderDetlService.updateById(orderDetl)){
+                return R.error("鏇存柊璁㈠崟鏄庣粏澶辫触");
+            }
+
+            WaitPakinLog waitPakinLog = new WaitPakinLog(); //鍒濆鍖栧叆搴撻�氱煡鍗曟棩蹇楀疄浣撶被
+            waitPakinLog.setZpallet(waitPakin.getZpallet());
+            waitPakinLog.setAnfme(waitPakin.getAnfme());
+            waitPakinLog.setMatnr(waitPakin.getMatnr());
+            waitPakinLog.setLocNo(jsonLocNo);
+            waitPakinLog.setMaktx(waitPakin.getMaktx());
+            waitPakinLog.setOrderNo(waitPakin.getOrderNo());
+            waitPakinLog.setWeight(waitPakin.getWeight());
+            waitPakinLog.setStatus("Y");
+            waitPakinLog.setIoStatus("Y");
+            waitPakinLog.setModiUser(user.getId());
+            waitPakinLog.setModiTime(date);
+            waitPakinLog.setAppeUser(user.getId());
+            waitPakinLog.setAppeTime(date);
+            waitPakinLog.setOwner(waitPakin.getOwner());
+            waitPakinLog.setPayment(waitPakin.getPayment());
+            waitPakinLog.setUuid(waitPakin.getUuid());
+
+            if (!waitPakinLogService.insert(waitPakinLog)){  //鎻掑叆鍏ュ簱閫氱煡鍘嗗彶妗f暟鎹簱
+                return R.error("鎻掑叆鍘嗗彶鍏ュ簱閫氱煡妗eけ璐�");
+            }
+            //璁㈠崟鏄惁瀹屾垚
+            List<OrderDetl> or = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", waitPakin.getOrderNo()));
+            for (OrderDetl o: or) {
+                if(o.getAnfme()-o.getQty()>0){
+                    log=false;
+                    break;
+                }
+            }
+            if(log){
+                order.setSettle(4L);
+                if(!orderService.update(order,new EntityWrapper<Order>().eq("order_no", waitPakin.getOrderNo()))){
+                    return R.error("璁㈠崟杞畬鎴愮姸鎬佸け璐ワ紒锛侊紒");
+                }
+            }
         }
 
         if (!waitPakinService.delete(new EntityWrapper<WaitPakin>().eq("zpallet",jsonBarNo))){  //鍒犻櫎鍘熷叆搴撻�氱煡妗�

--
Gitblit v1.9.1