From 05b6ccedbd294ad536fe86b49e10d6825284fb65 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期四, 12 九月 2024 11:14:47 +0800
Subject: [PATCH] #

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderDetlController.java           |   34 +++++++++++
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/MobileService.java          |    1 
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MobileController.java              |   32 ++++++++++
 zy-asrs-wms/src/main/webapp/views/wrkMast/wrkMast.html                                  |    3 +
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java |   79 ++++++++++++++++++++++++++
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java             |   13 ++++
 6 files changed, 162 insertions(+), 0 deletions(-)

diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/MobileService.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/MobileService.java
index 3151787..48271d1 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/MobileService.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/MobileService.java
@@ -19,4 +19,5 @@
     R WarehouseIn(String locNo, String barcode,Long hostId);
 
     R WarehouseOut(CombParam combParam, Long hostId);
+    R WarehouseOutV1(CombParam combParam, 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 858b673..057e514 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
@@ -392,4 +392,83 @@
 
         return R.ok();
     }
+
+    @Override
+    @Transactional
+    public R WarehouseOutV1(CombParam combParam, Long hostId) {
+        //鍒ゆ柇搴撲綅鐘舵��
+        LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, combParam.getLocno()).eq(LocMast::getHostId,hostId).eq(LocMast::getWhsType,0L));
+        if (Cools.isEmpty(locMast)){
+            return R.error("璇ュ簱浣嶄笉瀛樺湪");
+        }
+        if (!locMast.getLocSts().equals("P")){
+            return R.error("璇ュ簱浣嶇姸鎬佷负锛�"+locMast.getLocSts()+",涓嶆弧瓒冲苟鏉块�斾腑鎷i�夋潯浠讹紒锛侊紒");
+        }
+        //鏌ヨ搴撳瓨鏁版嵁
+        for (CombParam.CombMat combMat :combParam.getCombMats()){
+            List<LocDetl> locDetlList = locDetlService.list(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 (locDetlList.isEmpty()){
+                return R.error("鏈煡璇㈠埌搴撳瓨鏁版嵁");
+            }
+            if (locDetlList.size()>1){
+                return R.error("搴撳瓨鏁版嵁澶т簬1鏉★紝涓轰繚璇佹暟鎹噯纭�э紝璇风敤姝e父娴佺▼鍑哄簱锛侊紒锛�");
+            }
+            LocDetl locDetl = locDetlList.get(0);
+            if (combMat.getAnfme() > locDetl.getAnfme()){
+                return R.error("鎷i�夋暟閲忛敊璇紝瓒呭嚭搴撳瓨鏁伴噺");
+            }
+            if (!Cools.isEmpty(combParam.getOrderNo())){
+                Order order = orderService.selectByNo(combParam.getOrderNo(), hostId);
+                if (Cools.isEmpty(order)){
+                    continue;
+                }
+                if (order.getSettle() == 1){
+                    orderService.updateSettle(order.getId(), 2L, 9527L, hostId);
+                }
+                OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), combMat.getMatnr(), combMat.getBatch(),hostId);
+                if (Cools.isEmpty(orderDetl)){
+                    continue;
+                }
+                if (orderDetl.getAnfme() < (orderDetl.getWorkQty()+combMat.getAnfme())){
+                    throw new CoolException("鎷i�夋暟閲忓嚭閿�,璁㈠崟鍓╀綑鍑哄簱鏁伴噺灏忎簬宸插嚭搴撴暟閲忎笌灏嗘嫞閫夋暟閲忎箣鍜岋紒锛侊紒");
+                }
+                // 淇敼璁㈠崟鏄庣粏浣滀笟鏁伴噺
+                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);
+            }
+            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());
+            }
+        }
+        return R.ok();
+    }
 }
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 24d9fe8..d95c320 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
@@ -46,6 +46,19 @@
         return R.ok(detls);
     }
 
+    @RequestMapping(value = "/locDetl/forlocNo/auth/v1")
+    @ManagerAuth
+    public R forlocNoV1(@RequestParam String locNo) {
+        LambdaQueryWrapper<LocDetl> locDetlLambdaQueryWrapper = new LambdaQueryWrapper<LocDetl>()
+                .eq(LocDetl::getLocNo, locNo)
+                .eq(LocDetl::getHostId, getHostId());
+        List<LocDetl> detls = locDetlService.list(locDetlLambdaQueryWrapper);
+        if (Cools.isEmpty(detls)){
+            return R.error("鏈煡璇㈠埌搴撳瓨鏁版嵁");
+        }
+        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) {
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MobileController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MobileController.java
index 978ce8d..bf35464 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MobileController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MobileController.java
@@ -76,6 +76,12 @@
         return mobileService.WarehouseOut(combParam,getHostId());
     }
 
+    @RequestMapping("/pda/WarehouseOut/v1")
+    @ManagerAuth
+    public R WarehouseOutV1(@RequestBody CombParam combParam){
+        return mobileService.WarehouseOutV1(combParam,getHostId());
+    }
+
     @RequestMapping("/menu/pda/auth")
     @ManagerAuth
     public R menuPda(){
@@ -544,4 +550,30 @@
         return R.ok();
     }
 
+    @RequestMapping("/barcode/list/all")
+    @ManagerAuth(memo = "骞舵澘鍏ュ簱閫斾腑鎷f枡鍑哄簱鑾峰彇浠诲姟淇℃伅")
+    @Transactional
+    public R orderOutListOrder(@RequestBody String barcode) {
+        ArrayList<WrkMast> wrkMastArrayList = new ArrayList<>();
+        if (Cools.isEmpty(barcode) || barcode.isEmpty()){
+            List<WrkMast> wrkMasts = wrkMastService.list(new LambdaQueryWrapper<WrkMast>()
+                    .eq(WrkMast::getHostId, getHostId())
+                    .eq(WrkMast::getWrkSts, 199)
+                    .eq(WrkMast::getIoType, 104));
+            wrkMastArrayList.addAll(wrkMasts);
+        } else {
+            WrkMast wrkMast = wrkMastService.getOne(new LambdaQueryWrapper<WrkMast>()
+                    .eq(WrkMast::getBarcode, barcode)
+                    .eq(WrkMast::getHostId, getHostId())
+                    .eq(WrkMast::getWrkSts, 199)
+                    .eq(WrkMast::getIoType, 104)
+            );
+            if (!Cools.isEmpty(wrkMast)){
+                wrkMastArrayList.add(wrkMast);
+            }
+        }
+
+        return R.ok().add(wrkMastArrayList);
+    }
+
 }
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 4d58cb6..b552720 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
@@ -36,6 +36,8 @@
     private WrkDetlService wrkDetlService;
     @Autowired
     private WorkService workService;
+    @Autowired
+    private LocDetlService locDetlService;
 
     @RequestMapping(value = "/orderDetl/forOrderNo/auth")
     @ManagerAuth
@@ -72,6 +74,38 @@
         return R.ok(orderDetlService.page(new Page<>(curr, limit), wrapper));
     }
 
+    @RequestMapping(value = "/orderDetl/forOrderNo/auth/v1")
+    @ManagerAuth
+    public R forOrderNoV1(@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);
+        List<LocDetl> detls = locDetlService.list(locDetlLambdaQueryWrapper);
+        if (Cools.isEmpty(detls)){
+            return R.error("鏈煡璇㈠埌搴撳瓨鏁版嵁");
+        }
+        if (detls.size()>1){
+            return R.error("搴撳瓨鏁版嵁澶т簬1鏉★紝涓轰繚璇佹暟鎹噯纭�э紝璇风敤姝e父娴佺▼鍑哄簱锛侊紒锛�");
+        }
+        List<OrderDetl> orderDetlList = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>()
+                .eq(OrderDetl::getMatnr, matnr)
+                .eq(OrderDetl::getHostId, getHostId())
+                .like(OrderDetl::getOrderNo, orderNo)
+        );
+        if (Cools.isEmpty(orderDetlList)){
+            return R.error("鏈煡璇㈠埌姝よ鍗曟鐗╂枡鏁版嵁");
+        }
+        if (orderDetlList.size()>1){
+            return R.error("姝よ鍗曟鐗╂枡鏁版嵁鏁版嵁澶т簬1鏉★紝涓轰繚璇佹暟鎹噯纭�э紝璇风敤姝e父娴佺▼鍑哄簱锛侊紒锛�");
+        }
+        for(OrderDetl orderDetl:orderDetlList){
+            double count = orderDetl.getAnfme() - orderDetl.getWorkQty();
+            orderDetl.setAnfme(count);
+        }
+        return R.ok(orderDetlList);
+    }
+
 
     @RequestMapping(value = "/orderDetl/add/auth")
     @ManagerAuth
diff --git a/zy-asrs-wms/src/main/webapp/views/wrkMast/wrkMast.html b/zy-asrs-wms/src/main/webapp/views/wrkMast/wrkMast.html
index dfb5b78..4a2a3ab 100644
--- a/zy-asrs-wms/src/main/webapp/views/wrkMast/wrkMast.html
+++ b/zy-asrs-wms/src/main/webapp/views/wrkMast/wrkMast.html
@@ -123,6 +123,9 @@
     {{#if (d.ioType === 107) { }}
     <a class="layui-btn layui-btn-warm layui-btn-xs btn-pick" lay-event="pick">鐩�</a>
     {{# } }}
+    {{#if (d.ioType === 104) { }}
+    <a class="layui-btn layui-btn-warm layui-btn-xs btn-pick" lay-event="pick">骞�</a>
+    {{# } }}
 </script>
 
 <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>

--
Gitblit v1.9.1