From 70b86bb70e6941127888979dbde37dda3b1db0b6 Mon Sep 17 00:00:00 2001
From: cp <513960435@qq.com>
Date: 星期二, 19 十一月 2024 09:14:43 +0800
Subject: [PATCH] 完善下架功能

---
 zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java |  107 +++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 87 insertions(+), 20 deletions(-)

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 c2d6f71..4872ed1 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
@@ -251,36 +251,76 @@
 
     @Override
     @Transactional
-    public R WarehouseIn(String locNo, String barcode,Long hostId) {
+    public R WarehouseIn(String locNo, String barcode,Long hostId,Long userId) {
         //鍒ゆ柇搴撲綅鐘舵��
         LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, locNo).eq(LocMast::getHostId,hostId).eq(LocMast::getWhsType,1L));
         if (Cools.isEmpty(locMast)){
             return R.error("璇ュ簱浣嶄笉瀛樺湪");
         }
-        if (!locMast.getLocSts().equals("O")){
-            return R.error("璇ュ簱浣嶇姸鎬佷负锛�"+locMast.getLocSts()+",绂佹鍏ュ簱");
-        }
+//        if (!locMast.getLocSts().equals("O")){
+//            return R.error("璇ュ簱浣嶇姸鎬佷负锛�"+locMast.getLocSts()+",绂佹鍏ュ簱");
+//        }
         //鏌ヨ缁勬墭鏁版嵁
         List<WaitPakin> list = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getZpallet, barcode).eq(WaitPakin::getHostId, hostId));
         if (Cools.isEmpty(list)){
             return R.error("鏈壘鍒扮粍鎵樹俊鎭�");
         }
         Date now = new Date();
+
         //鎻掑叆搴撳瓨鏁版嵁
         for (WaitPakin waitPakin: list){
-            Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, waitPakin.getMatnr()).eq(Mat::getHostId, hostId));
-            LocDetl locDetl = new LocDetl();
-            locDetl.sync(mat);
-            locDetl.setLocNo(locNo);
+            //澶勭悊搴撳瓨淇℃伅
+            AdjDetl adjDetl = new AdjDetl();
+            Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>()
+                    .eq(Mat::getMatnr, waitPakin.getMatnr()).eq(Mat::getHostId, hostId));
+            LocDetl locDetl1=locDetlService.getOne(new LambdaQueryWrapper<LocDetl>()
+                    .eq(LocDetl::getMatnr,waitPakin.getMatnr())
+                    .eq(LocDetl::getHostId,hostId)
+                    .eq(LocDetl::getLocNo,locNo));
+            double i=0.0;
+            if(!Cools.isEmpty(locDetl1)){
+                i=locDetl1.getAnfme();
+                locDetl1.setAnfme(locDetl1.getAnfme()+waitPakin.getAnfme());
+                locDetlService.updateById(locDetl1);
+                adjDetl.setMatnr(locDetl1.getMatnr());
+                adjDetl.setBatch(locDetl1.getBatch());
+                adjDetl.setAdjQty(locDetl1.getAnfme());
+            }else{
+                LocDetl locDetl = new LocDetl();
+                locDetl.sync(mat);
+                locDetl.setLocNo(locNo);
 //            locDetl.setBarcode(waitPakin.getBarcode());
-            locDetl.setZpallet(waitPakin.getZpallet());
-            locDetl.setAnfme(waitPakin.getAnfme());
-            locDetl.setBatch(waitPakin.getBatch());
+                locDetl.setZpallet(waitPakin.getZpallet());
+                locDetl.setAnfme(waitPakin.getAnfme());
+                locDetl.setBatch(waitPakin.getBatch());
 //            locDetl.setWeight(waitPakin.getWeight());
-            locDetl.setHostId(hostId);
-            locDetl.setModiTime(now);
-            locDetl.setAppeTime(now);
-            locDetlService.save(locDetl);
+                locDetl.setHostId(hostId);
+                locDetl.setModiTime(now);
+                locDetl.setAppeTime(now);
+                locDetlService.save(locDetl);
+                adjDetl.setMatnr(locDetl.getMatnr());
+                adjDetl.setBatch(locDetl.getBatch());
+                adjDetl.setAdjQty(locDetl.getAnfme());
+            }
+
+            try {
+
+                adjDetl.setLocNo(locNo);
+                adjDetl.setOriQty(i);
+                adjDetl.setMemo("骞冲韩涓婃灦");
+                adjDetl.setModiUser(userId);
+                adjDetl.setAppeUser(userId);
+                adjDetl.setAppeTime(new Date());
+                adjDetl.setModiTime(new Date());
+                adjDetl.setOrderNo(waitPakin.getOrderNo());
+                if (!adjDetlService.save(adjDetl)) {
+                    throw new CoolException("淇濆瓨搴撳瓨璋冩暣璁板綍澶辫触");
+                }
+            }catch (Exception e){
+                e.printStackTrace();
+                throw new CoolException("鏇存柊搴撳瓨鏁版嵁鍑洪敊" + e.getMessage());
+            }
+
             //鏄惁灞炰簬璁㈠崟鏁版嵁
             if (!Cools.isEmpty(waitPakin.getOrderNo())){
                 Order order = orderService.selectByNo(waitPakin.getOrderNo(), hostId);
@@ -320,7 +360,7 @@
 
     @Override
     @Transactional
-    public R WarehouseOut(CombParam combParam, Long hostId) {
+    public R WarehouseOut(CombParam combParam, Long hostId , Long userId) {
         //鍒ゆ柇搴撲綅鐘舵��
         LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, combParam.getLocno()).eq(LocMast::getHostId,hostId).eq(LocMast::getWhsType,1L));
         if (Cools.isEmpty(locMast)){
@@ -336,7 +376,7 @@
                     .eq(LocDetl::getHostId, hostId)
                     .eq(LocDetl::getZpallet, combMat.getZpallet())
                     .eq(LocDetl::getMatnr, combMat.getMatnr())
-                    .eq(LocDetl::getBatch, combMat.getBatch())
+//                    .eq(LocDetl::getBatch, combMat.getBatch())
             );
             if (Cools.isEmpty(locDetl)){
                 return R.error("鏈煡璇㈠埌搴撳瓨鏁版嵁");
@@ -357,7 +397,7 @@
                     continue;
                 }
                 if (orderDetl.getAnfme() < orderDetl.getWorkQty()+combMat.getAnfme()){
-                    throw new CoolException("涓嬫灦鏁伴噺鍑洪敊");
+                    combMat.setAnfme(orderDetl.getAnfme()-orderDetl.getWorkQty());
                 }
                 // 淇敼璁㈠崟鏄庣粏浣滀笟鏁伴噺
                 if (!orderDetlService.increaseWorkQtyByOrderNo(combParam.getOrderNo(), combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme(), hostId)) {
@@ -371,6 +411,8 @@
                 orderService.checkComplete(combParam.getOrderNo(), hostId);
             }
             try {
+                double i=0.0;
+                double j=locDetl.getAnfme();
                 //澶勭悊搴撳瓨淇℃伅
                 if (combMat.getAnfme().equals(locDetl.getAnfme())){
                     //搴撳瓨鐩哥瓑鍒犻櫎鏁版嵁
@@ -383,8 +425,32 @@
                     }
                 }else {
                     BigDecimal subtract = BigDecimal.valueOf(locDetl.getAnfme()).subtract(BigDecimal.valueOf(combMat.getAnfme()));
+                    i=subtract.byteValue();
                     locDetl.setAnfme(subtract.doubleValue());
                     locDetlService.updateById(locDetl);
+                }
+
+                try {
+                    //澶勭悊搴撳瓨淇℃伅
+                    AdjDetl adjDetl = new AdjDetl();
+                    adjDetl.setLocNo(locDetl.getLocNo());
+                    adjDetl.setMatnr(locDetl.getMatnr());
+                    adjDetl.setBatch(locDetl.getBatch());
+                    adjDetl.setOriQty(j);
+                    adjDetl.setAdjQty(i);
+                    adjDetl.setMemo("骞冲韩涓嬫灦");
+                    adjDetl.setModiUser(userId);
+                    adjDetl.setAppeUser(userId);
+                    adjDetl.setAppeTime(new Date());
+                    adjDetl.setModiTime(new Date());
+                    adjDetl.setOrderNo(combParam.getOrderNo());
+                    adjDetl.setHostId(hostId);
+                    if (!adjDetlService.save(adjDetl)) {
+                        throw new CoolException("淇濆瓨搴撳瓨璋冩暣璁板綍澶辫触");
+                    }
+                }catch (Exception e){
+                    e.printStackTrace();
+                    throw new CoolException("鏇存柊搴撳瓨鏁版嵁鍑洪敊" + e.getMessage());
                 }
             }catch (Exception e){
                 throw new CoolException("鏇存柊搴撳瓨鏁版嵁鍑洪敊"+e.getMessage());
@@ -461,7 +527,7 @@
                 adjDetl.setMatnr(locDetl.getMatnr());
                 adjDetl.setBatch(locDetl.getBatch());
                 adjDetl.setOriQty(locDetl.getAnfme());
-                adjDetl.setMemo("WarehouseOutV1-pick");
+                adjDetl.setMemo("骞舵澘閫斾腑鎷f枡");
                 adjDetl.setModiUser(userId);
                 adjDetl.setAppeUser(userId);
                 adjDetl.setAppeTime(new Date());
@@ -637,7 +703,7 @@
                         adjDetl.setBatch(locDetl.getBatch());
                         adjDetl.setOriQty(originAnfme);
                         adjDetl.setAdjQty(locDetl.getAnfme());
-                        adjDetl.setMemo("WarehouseOutV1-pick");
+                        adjDetl.setMemo("鎷f枡閫斾腑骞舵澘");
                         adjDetl.setModiUser(userId);
                         adjDetl.setAppeUser(userId);
                         adjDetl.setAppeTime(new Date());
@@ -785,4 +851,5 @@
 
         return R.ok();
     }
+
 }

--
Gitblit v1.9.1