From 8f527cfc93518f5db3b90f31f78a358d79bcbb51 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期五, 03 十一月 2023 16:58:04 +0800
Subject: [PATCH] #导出excel单据

---
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java |  310 +++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 274 insertions(+), 36 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 fb062fe..2b49f04 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -7,6 +7,7 @@
 import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.core.common.*;
 import com.core.exception.CoolException;
+import com.sun.org.apache.xpath.internal.operations.Or;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.entity.param.CombParam;
 import com.zy.asrs.entity.param.MobileAdjustParam;
@@ -24,15 +25,14 @@
 import com.zy.common.service.CommonService;
 import com.zy.common.utils.HttpHandler;
 import com.zy.common.utils.Synchro;
+import com.zy.system.entity.User;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
+import java.math.BigDecimal;
+import java.util.*;
 
 /**
  * 绉诲姩绔湇鍔℃牳蹇冪被
@@ -80,6 +80,9 @@
     private ManLocDetlService manLocDetlService;
     @Autowired
     private ManLocDetlMapper manLocDetlMapper;
+    @Autowired
+    private WaitPakinLogService waitPakinLogService;
+
 
 
     @Override
@@ -103,12 +106,16 @@
         }
 
         int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode()));
+        int countLoc2 =  manLocDetlMapper.selectCount(new EntityWrapper<ManLocDetl>().eq("zpallet",param.getBarcode()));
         WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode());
         if (wrkMast != null && wrkMast.getIoType() < 100){
             throw new CoolException("宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + param.getBarcode());
 
         }
         if (countLoc > 0 ) {
+            throw new CoolException("宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + param.getBarcode());
+        }
+        if (countLoc2 > 0 ) {
             throw new CoolException("宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + param.getBarcode());
         }
 
@@ -119,12 +126,7 @@
                 combMat.setBatch("");
             }
         }
-
-
-
-
         Date now = new Date();
-
         // 鏃犲崟缁勬墭
         if (Cools.isEmpty(param.getOrderNo())) {
 
@@ -170,25 +172,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()).setScale(2,BigDecimal.ROUND_HALF_UP);
+                BigDecimal b1 = new BigDecimal(orderDetl.getWorkQty()).setScale(2,BigDecimal.ROUND_HALF_UP);
+                BigDecimal c1 = new BigDecimal(combMat.getAnfme()).setScale(2,BigDecimal.ROUND_HALF_UP);
+                double e1 = b1.add(c1).doubleValue();
+                BigDecimal f1 = new BigDecimal(e1).setScale(2,BigDecimal.ROUND_HALF_UP);
+                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){
@@ -212,7 +220,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)) {
@@ -220,7 +231,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");     // 鍏ュ嚭鐘舵��
@@ -237,8 +248,9 @@
                 if (!waitPakinService.insert(waitPakin)) {
                     throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
                 }
+                orderService.updateSettle(order.getId(), 2L, userId);
             }
-            orderService.updateSettle(order.getId(), 2L, userId);
+
         }
 
     }
@@ -519,7 +531,7 @@
 
     @Transactional
     @Override
-    public R manDetlIn(JSONObject json) {
+    public R manDetlIn(JSONObject json, User user) {
         Date date = new Date();
         String jsonLocNo = (String) json.get("locNo");
         Node node = nodeService.selectOne(new EntityWrapper<Node>()
@@ -548,12 +560,23 @@
             if (orderDetl.getAnfme() - (jsonOrderDetl.getAnfme() + orderDetl.getWorkQty()) < 0) {
                 return R.error("鍏ュ簱鏁伴噺澶т簬鍙叆鏁伴噺");
             }
+
+
             //鏌ヨ骞冲簱涓槸鍚︽湁涓�鏍风殑鐗╂枡鍙凤紝鏈夌殑璇濈洿鎺ュ鍔犳暟閲�
             ManLocDetl checkManLocDetl = manLocDetlService.selectInventory(jsonLocNo,orderDetl.getMatnr(),jsonOrderDetl.getBatch());
             if (checkManLocDetl == null) {
-
                 ManLocDetl manLocDetl = new ManLocDetl();
                 Synchro.Copy(orderDetl, manLocDetl);
+
+                BigDecimal decimal = BigDecimal.valueOf(jsonOrderDetl.getAnfme()).subtract(BigDecimal.valueOf(jsonOrderDetl.getAnfme()).setScale(0,BigDecimal.ROUND_DOWN));
+                if (decimal.doubleValue() > 0){
+                    manLocDetl.setPrice(1.0);
+                }else {
+                    manLocDetl.setPrice(2.0);
+                }
+
+
+
                 manLocDetl.setLocNo(node.getName());
                 manLocDetl.setNodeId(node.getId());
                 manLocDetl.setMatnr(orderDetl.getMatnr());
@@ -571,6 +594,9 @@
             } else {
                   if (checkManLocDetl.getWeight() == null){
                       checkManLocDetl.setWeight(0.0);
+                  }
+                  if (jsonOrderDetl.getWeight() == null){
+                      jsonOrderDetl.setWeight(0.0);
                   }
                 if(manLocDetlService.increase(checkManLocDetl.getAnfme() + jsonOrderDetl.getAnfme(),
                         node.getName(),
@@ -604,7 +630,7 @@
             }
             orderService.checkComplete(order.getOrderNo());
 
-            SaasUtils.insertLog(0,jsonLocNo,jsonOrderDetl.getMatnr(), jsonOrderDetl.getAnfme());
+            SaasUtils.insertLog(0,jsonLocNo,jsonOrderDetl.getMatnr(), jsonOrderDetl.getAnfme(),user.getUsername());
         }
 
 
@@ -613,7 +639,7 @@
 
     @Transactional
     @Override
-    public R manDetlOut(JSONObject json) {
+    public R manDetlOut(JSONObject json,User user) {
         Date date = new Date();
         String jsonLocNo = (String) json.get("locNo");
         Node node = nodeService.selectOne(new EntityWrapper<Node>()
@@ -639,17 +665,28 @@
             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);
+                manPakOut.setCount(0.0);
             }
 //            if (jsonOrderDetl.getAnfme() > manPakOut.getAnfme()) { //鍒ゆ柇宸ヤ綔鏁伴噺鏄惁澶т簬鎷h揣鍗曠殑鏁伴噺
 //                return R.error("鍑哄簱鏁伴噺澶т簬鎷h揣鍗曟�绘暟閲�");
 //            }
-            if (jsonOrderDetl.getAnfme() > (manPakOut.getAnfme()-manPakOut.getCount())) { //鍒ゆ柇宸ヤ綔鏁伴噺鏄惁澶т簬鎷h揣鍗曞墿浣欏彲鍑虹殑鏁伴噺
+            BigDecimal a1 = new BigDecimal(manPakOut.getAnfme()).setScale(2,BigDecimal.ROUND_HALF_UP);
+            BigDecimal b1 = new BigDecimal(manPakOut.getCount()).setScale(2,BigDecimal.ROUND_HALF_UP);
+            Double c1 = a1.subtract(b1).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
+            if (jsonOrderDetl.getAnfme() > c1) { //鍒ゆ柇宸ヤ綔鏁伴噺鏄惁澶т簬鎷h揣鍗曞墿浣欏彲鍑虹殑鏁伴噺
                 return R.error("鍑哄簱鏁伴噺澶т簬鎷h揣鍗曞墿浣欏彲鍑烘暟閲�");
             }
-            if (orderDetl.getWorkQty() - orderDetl.getQty() <jsonOrderDetl.getAnfme() ){
+
+            BigDecimal e1 = new BigDecimal(orderDetl.getWorkQty()).setScale(2,BigDecimal.ROUND_HALF_UP);
+            BigDecimal f1 = new BigDecimal(orderDetl.getQty()).setScale(2,BigDecimal.ROUND_HALF_UP);
+            Double g1 = e1.subtract(f1).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
+            if ( g1  <jsonOrderDetl.getAnfme() ){
                 return R.error("鍑哄簱鏁伴噺澶т簬鍗曟嵁鍓╀綑鍙嚭鏁伴噺");
             }
             //鏌ヨ骞冲簱涓槸鍚︽湁涓�鏍风殑鐗╂枡鍙�
@@ -660,8 +697,14 @@
             if (jsonOrderDetl.getAnfme() > checkManLocDetl.getAnfme()) {
                 return R.error("鍑哄簱鏁伴噺澶т簬鍙嚭鏁伴噺");
             }
-            Double finalQty = checkManLocDetl.getAnfme() - jsonOrderDetl.getAnfme();
-            Double weight = checkManLocDetl.getWeight() - jsonOrderDetl.getWeight();
+            if(checkManLocDetl.getWeight() == null){
+                checkManLocDetl.setWeight(0.0);
+            }
+            if(jsonOrderDetl.getWeight() == null){
+                jsonOrderDetl.setWeight(0.0);
+            }
+            Double finalQty =  new BigDecimal(checkManLocDetl.getAnfme()).setScale(2,BigDecimal.ROUND_HALF_UP).subtract(new BigDecimal(jsonOrderDetl.getAnfme()).setScale(2,BigDecimal.ROUND_HALF_UP)).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue() ;
+            Double weight =  new BigDecimal(checkManLocDetl.getWeight()).setScale(2,BigDecimal.ROUND_HALF_UP).subtract(new BigDecimal(jsonOrderDetl.getWeight()).setScale(2,BigDecimal.ROUND_HALF_UP)).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue() ;
             checkManLocDetl.setAnfme(finalQty);
             checkManLocDetl.setWeight(weight);
             if (weight < 0){
@@ -676,7 +719,7 @@
                     return R.error("淇敼骞冲簱鐗╂枡澶辫触锛�");
                 }
             }
-            orderDetl.setQty(orderDetl.getQty() + jsonOrderDetl.getAnfme());
+            orderDetl.setQty( new BigDecimal(orderDetl.getQty()).setScale(2,BigDecimal.ROUND_HALF_UP).add(new BigDecimal(jsonOrderDetl.getAnfme()).setScale(2,BigDecimal.ROUND_HALF_UP)).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue() );
             orderDetl.setUpdateTime(date);
             orderDetlService.updateById(orderDetl);
             //鏇存柊璁㈠崟鐘舵��
@@ -685,7 +728,7 @@
             boolean log=true;
             for (OrderDetl orderDetl1: orderDetls) {
                 //宸ヤ綔涓殑鏁伴噺灏忎簬鎬昏鍗曟暟鏃讹紝璁㈠崟鐘舵�佹敼涓�2锛屼綔涓氫腑
-                if(orderDetl1.getQty() < orderDetl.getAnfme()){
+                if(orderDetl1.getQty() < orderDetl1.getAnfme()){
                     log=false;
                 }
             }
@@ -696,13 +739,14 @@
                 return R.error("鏇存柊璁㈠崟鐘舵�佸け璐�");
             }
             if(manPakOut.getCount() == null){
-                manPakOut.setCount(0);
+                manPakOut.setCount(0.0);
             }
-            manPakOut.setCount(manPakOut.getCount()+jsonOrderDetl.getAnfme().intValue());
+
+            manPakOut.setCount(new BigDecimal(manPakOut.getCount()).setScale(2,BigDecimal.ROUND_HALF_UP).add(new BigDecimal(jsonOrderDetl.getAnfme()).setScale(2,BigDecimal.ROUND_HALF_UP)).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue());
             if (!manPakOutService.update(manPakOut,manPakOutEntityWrapper)){
                 return R.error("鏇存柊鎷h揣鍗曞畬鎴愭暟鐩け璐�");
             }
-            if (manPakOut.getAnfme().intValue() == manPakOut.getCount()){
+            if (manPakOut.getAnfme().equals(manPakOut.getCount())){
                 manPakOut.setStatus(1);
                 if (!manPakOutService.update(manPakOut,manPakOutEntityWrapper)){
                     return R.error("鏇存柊鎷h揣鍗曠姸鎬佸け璐�");
@@ -711,9 +755,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("鍒犻櫎骞冲簱搴撳瓨澶辫触");
                 }
@@ -723,9 +765,205 @@
                     return R.error("鏇存柊骞冲簱搴撳瓨鐘舵�佸け璐�");
                 }
             }
-            SaasUtils.insertLog(1,jsonLocNo,jsonOrderDetl.getMatnr(), jsonOrderDetl.getAnfme());
+            SaasUtils.insertLog(1,jsonLocNo,jsonOrderDetl.getMatnr(), jsonOrderDetl.getAnfme(),user.getUsername());
 
         }
         return R.ok("涓嬫灦瀹屾垚");
     }
+
+    @Override
+    public R manDetlInBarcode(JSONObject json, User user) {
+        String jsonLocNo = (String) json.get("locNo"); //鑾峰彇搴撲綅鐮�
+        String jsonBarNo = (String) json.get("barcode"); //鑾峰彇鎵樼洏鐮�
+
+        List<WaitPakin> waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", jsonBarNo)); //鑾峰彇瀵瑰簲缁勬墭淇℃伅
+        if (Cools.isEmpty(waitPakins)){
+            return R.error("鏈煡璇㈠埌缁勬墭");
+        } else if (waitPakins.get(0).getIoStatus().equals("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;
+
+        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("鏈煡璇㈠埌搴撲綅淇℃伅");
+            }
+            ManLocDetl manLocDetl = new ManLocDetl();  //鍒濆鍖栧簱瀛樺疄浣撶被
+            //鑾峰彇缁勬墭灏忔暟浣�
+            BigDecimal decimal = BigDecimal.valueOf(waitPakin.getAnfme()).subtract(BigDecimal.valueOf(waitPakin.getAnfme()).setScale(0,BigDecimal.ROUND_DOWN));
+            if (decimal.doubleValue() > 0){
+                manLocDetl.setPrice(1.0);
+            }else {
+                manLocDetl.setPrice(2.0);
+            }
+
+
+
+            Date date = new Date();
+
+            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("鐗╂枡淇℃伅鍏ュ簱澶辫触");
+            }
+            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))){  //鍒犻櫎鍘熷叆搴撻�氱煡妗�
+            return R.error("鍒犻櫎鍏ュ簱閫氱煡妗eけ璐�");
+        }
+        return R.ok("涓婃灦鎴愬姛");
+    }
+
+    @Override
+    @Transactional
+    public R barcodeDelete(JSONObject json, User user) {
+        String jsonBarcode = (String) json.get("barcode");
+        String jsonOrderNo = (String) json.get("orderNo");
+        JSONArray combMats = json.getJSONArray("combMats");
+        for (int i = 0; i < combMats.size(); i++) {
+            ManLocDetl jsonManLocDetl = combMats.getObject(i, ManLocDetl.class);
+            Wrapper<OrderDetl> orderDetlWrapper = new EntityWrapper<OrderDetl>()
+                    .eq("order_no", jsonOrderNo)
+                    .eq("matnr", jsonManLocDetl.getMatnr());
+            OrderDetl orderDetl = orderDetlService.selectOne(orderDetlWrapper);
+            if (Cools.isEmpty(orderDetl)){
+                return R.error("璁㈠崟涓湭鏌ヨ鍒颁笅鏋舵暟鎹�");
+            }
+            BigDecimal orderQty = new BigDecimal(orderDetl.getQty());
+            BigDecimal orderWorkQty = new BigDecimal(orderDetl.getWorkQty());
+            BigDecimal anfme = new BigDecimal(jsonManLocDetl.getAnfme());
+            BigDecimal diffQty = orderQty.add(anfme);
+            BigDecimal diffWorkQty = orderWorkQty.add(anfme);
+            if (diffQty.doubleValue() > orderDetl.getAnfme()){
+                return R.error("瀹屾垚鏁伴噺澶т簬璁㈠崟鏁伴噺");
+            }
+            if (diffWorkQty.doubleValue() > orderDetl.getAnfme()){
+                return R.error("宸ヤ綔鏁伴噺澶т簬璁㈠崟鏁伴噺");
+            }
+            orderDetl.setQty(diffQty.doubleValue());
+            orderDetl.setWorkQty(diffWorkQty.doubleValue());
+            if (!orderDetlService.updateById(orderDetl)){
+                return R.error("璁㈠崟鏄庣粏鏇存柊澶辫触");
+            }
+            EntityWrapper<ManLocDetl> manLocDetlWrapper = new EntityWrapper<>();
+            manLocDetlWrapper.eq("zpallet",jsonBarcode);
+            manLocDetlWrapper.eq("matnr",jsonManLocDetl.getMatnr());
+            ManLocDetl manLocDetl = manLocDetlService.selectOne(manLocDetlWrapper);
+            BigDecimal locDetlAnfme = new BigDecimal(manLocDetl.getAnfme());
+
+            BigDecimal diffAnfme = locDetlAnfme.subtract(anfme);
+            if (diffAnfme.doubleValue() <0){
+                return R.error("鍑哄簱鏁伴噺澶т簬搴撳瓨鏁伴噺");
+            }
+            if (diffAnfme.doubleValue() == 0){
+                if (!manLocDetlService.delete(manLocDetlWrapper)){
+                    return R.error("鍒犻櫎搴撳瓨鏄庣粏澶辫触");
+                }
+
+            } else if (diffAnfme.doubleValue() > 0) {
+                manLocDetl.setAnfme(diffAnfme.doubleValue());
+                if (!manLocDetlService.update(manLocDetl,manLocDetlWrapper)){
+                    return R.error("鏇存柊搴撳瓨鏄庣粏澶辫触");
+                }
+
+
+            }
+            Order order = orderService.selectByNo(jsonOrderNo);
+            if (IsOrderStatus(jsonOrderNo)){
+                order.setSettle(4L);
+            }else {
+                order.setSettle(2L);
+            }
+            if(!orderService.update(order,new EntityWrapper<Order>().eq("order_no", jsonOrderNo))){
+                throw new RuntimeException("鏇存柊璁㈠崟鐘舵�佸け璐�");
+            }
+        }
+
+        return R.ok();
+    }
+
+    public Boolean IsOrderStatus(String order){
+        //鍒ゆ柇璁㈠崟鏄惁瀹屾垚
+        boolean log =true;
+        //璁㈠崟鏄惁瀹屾垚
+        List<OrderDetl> or = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", order));
+        for (OrderDetl o: or) {
+            if(o.getAnfme()-o.getQty()>0){
+                log=false;
+                break;
+            }
+        }
+        return log;
+    }
 }

--
Gitblit v1.9.1