From f53706e7e8a7b4e0278917e9d3cdfbc877de177d Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期四, 30 五月 2024 16:59:47 +0800
Subject: [PATCH] #平库下架完成

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderController.java               |    6 +++
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderDetlController.java           |    6 +++
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/OrderService.java           |    1 
 zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/entity/param/CombParam.java     |    2 +
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java |   68 +++++++++++++++++++++++++++++++--
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/OrderServiceImpl.java  |   19 +++++++++
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java             |   17 ++++++++
 7 files changed, 114 insertions(+), 5 deletions(-)

diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/entity/param/CombParam.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/entity/param/CombParam.java
index 13642e6..2b4415b 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/entity/param/CombParam.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/entity/param/CombParam.java
@@ -49,6 +49,8 @@
         // 瑙勬牸
         private String specs;
 
+        private String zpallet;
+
     }
 
 }
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/OrderService.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/OrderService.java
index 07c11b9..6296d20 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/OrderService.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/OrderService.java
@@ -25,4 +25,5 @@
 
 
     List<OrderNameListDto> selectAllorderNo(Long hostId);
+    List<String> selectAllOutOrderNo(Long hostId);
 }
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java
index a7e0e3b..fe051e7 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java
@@ -19,6 +19,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;
@@ -314,14 +315,71 @@
             return R.error("璇ュ簱浣嶇姸鎬佷负锛�"+locMast.getLocSts()+",绂佹鍑哄簱");
         }
         //鏌ヨ搴撳瓨鏁版嵁
-        List<LocDetl> locDetls = locDetlService.list(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getZpallet, combParam.getBarcode()).eq(LocDetl::getLocNo, combParam.getLocno()).eq(LocDetl::getHostId, hostId));
-        if (Cools.isEmpty(locDetls)){
-            return R.error("鏈煡璇㈠埌搴撳瓨鏁版嵁");
-        }
-        for (LocDetl locDetl: locDetls){
+        for (CombParam.CombMat combMat :combParam.getCombMats()){
+            LocDetl locDetl = locDetlService.getOne(new LambdaQueryWrapper<LocDetl>()
+                    .eq(LocDetl::getLocNo, combParam.getLocno())
+                    .eq(LocDetl::getHostId, hostId)
+                    .eq(LocDetl::getZpallet, combMat.getZpallet())
+                    .eq(LocDetl::getMatnr, combMat.getMatnr())
+                    .eq(LocDetl::getBatch, combMat.getBatch())
+            );
+            if (Cools.isEmpty(locDetl)){
+                return R.error("鏈煡璇㈠埌搴撳瓨鏁版嵁");
+            }
+            if (combMat.getAnfme() > locDetl.getAnfme()){
+                return R.error("涓嬫灦鏁伴噺閿欒锛岃秴鍑哄簱瀛樻暟閲�");
+            }
+            try {
+                //澶勭悊搴撳瓨淇℃伅
+                if (combMat.getAnfme().equals(locDetl.getAnfme())){
+                    //搴撳瓨鐩哥瓑鍒犻櫎鏁版嵁
+                    locDetlService.removeById(locDetl);
+                    int count = locDetlService.count(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocNo,combParam.getLocno()).eq(LocDetl::getHostId, hostId));
+                    if (count == 0){
+                        LocMast locMast1 = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, combParam.getLocno()).eq(LocMast::getHostId, hostId));
+                        locMast1.setLocSts("O");
+                        locMastService.updateById(locMast1);
+                    }
+                }else {
+                    BigDecimal subtract = BigDecimal.valueOf(locDetl.getAnfme()).subtract(BigDecimal.valueOf(combMat.getAnfme()));
+                    locDetl.setAnfme(subtract.doubleValue());
+                    locDetlService.updateById(locDetl);
+                }
+            }catch (Exception e){
+                throw new CoolException("鏇存柊搴撳瓨鏁版嵁鍑洪敊"+e.getMessage());
+            }
+
+            if (!Cools.isEmpty(combParam.getOrderNo())){
+                Order order = orderService.selectByNo(combParam.getOrderNo(), hostId);
+                if (Cools.isEmpty(order)){
+                    continue;
+                }
+                OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), combMat.getMatnr(), combMat.getBatch(),hostId);
+                if (Cools.isEmpty(orderDetl)){
+                    continue;
+                }
+                if (orderDetl.getWorkQty() < orderDetl.getWorkQty()+combMat.getAnfme()){
+                    throw new CoolException("涓嬫灦鏁伴噺鍑洪敊");
+                }
+                // 淇敼璁㈠崟鏄庣粏浣滀笟鏁伴噺
+                if (!orderDetlService.increaseWorkQtyByOrderNo(combParam.getOrderNo(), combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme(), hostId)) {
+                    throw new CoolException("淇敼鍗曟嵁鏄庣粏宸ヤ綔鏁伴噺澶辫触");
+                }
+                // 淇敼璁㈠崟鏄庣粏瀹屾垚鏁伴噺
+                if (!orderDetlService.increase(order.getId(), hostId, combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme())) {
+                    throw new CoolException("淇敼鍗曟嵁鏄庣粏瀹屾垚鏁伴噺澶辫触");
+                }
+                // 淇敼璁㈠崟鐘舵�� 浣滀笟涓� ===>> 宸插畬鎴�
+                orderService.checkComplete(combParam.getOrderNo(), hostId);
+            }
+
 
         }
 
+
+
+
+
         return R.ok();
     }
 }
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/OrderServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/OrderServiceImpl.java
index 5417f72..24a83a3 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/OrderServiceImpl.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/OrderServiceImpl.java
@@ -179,4 +179,23 @@
         return orderNameListDtos;
 
     }
+
+    @Override
+    public List<String> selectAllOutOrderNo(Long hostId) {
+        List<Order> list = list(new LambdaQueryWrapper<Order>().eq(Order::getHostId, hostId));
+        if (Cools.isEmpty(list)){
+            return null;
+        }
+        ArrayList<String> orderNameListDtos = new ArrayList<>();
+        for (Order order :list){
+            DocType docType = docTypeService.getOne(new LambdaQueryWrapper<DocType>().eq(DocType::getDocId, order.getDocType()));
+
+            if (docType.getPakout() == 1){
+                orderNameListDtos.add(order.getOrderNo());
+            }
+        }
+
+        return orderNameListDtos;
+
+    }
 }
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java
index 508415c..f546d25 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java
@@ -38,6 +38,23 @@
         return R.ok(detls);
     }
 
+    @RequestMapping(value = "/locDetl/forlocNo/auth")
+    @ManagerAuth
+    public R forlocNo(@RequestParam String orderNo,@RequestParam String locNo,@RequestParam String batch,@RequestParam String matnr) {
+        LambdaQueryWrapper<LocDetl> locDetlLambdaQueryWrapper = new LambdaQueryWrapper<LocDetl>()
+                .eq(LocDetl::getLocNo, locNo)
+                .eq(LocDetl::getHostId, getHostId())
+                .eq(LocDetl::getMatnr, matnr);
+        if (!Cools.isEmpty(batch)){
+            locDetlLambdaQueryWrapper.eq(LocDetl::getBatch,batch);
+        }
+        List<LocDetl> detls = locDetlService.list(locDetlLambdaQueryWrapper);
+        if (Cools.isEmpty(detls)){
+            return R.error("鏈煡璇㈠埌搴撳瓨鏁版嵁");
+        }
+        return R.ok(detls);
+    }
+
     @RequestMapping(value = "/locDetl/{id}/auth")
     @ManagerAuth
     public R get(@PathVariable("id") String id) {
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderController.java
index 18d2f58..3014164 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderController.java
@@ -67,6 +67,12 @@
         return R.ok(orderService.selectAllorderNo(getHostId()));
     }
 
+    @RequestMapping(value = "/outOrder/list/all")
+    @ManagerAuth
+    public R orderOutList() {
+        return R.ok(orderService.selectAllOutOrderNo(getHostId()));
+    }
+
     @RequestMapping(value = "/order/{id}/auth")
     @ManagerAuth
     public R get(@PathVariable("id") String id) {
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderDetlController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderDetlController.java
index 4d3e4e0..4faa9f0 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderDetlController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderDetlController.java
@@ -24,6 +24,12 @@
     @Autowired
     private OrderDetlService orderDetlService;
 
+    @RequestMapping(value = "/orderDetl/forOrderNo/auth")
+    @ManagerAuth
+    public R forOrderNo(@RequestParam String orderNo) {
+        return R.ok(orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderNo,orderNo).eq(OrderDetl::getHostId,getHostId())));
+    }
+
     @RequestMapping(value = "/orderDetl/{id}/auth")
     @ManagerAuth
     public R get(@PathVariable("id") String id) {

--
Gitblit v1.9.1