From 53dbbd7be6a6ed00d65276a8707680955f9912b9 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 19 三月 2021 16:33:42 +0800
Subject: [PATCH] [import]修改库存数量修改顺序

---
 src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java |   73 ++++++++++++++++++++++++++----------
 1 files changed, 52 insertions(+), 21 deletions(-)

diff --git a/src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java b/src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java
index 8faa579..dec1993 100644
--- a/src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java
+++ b/src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java
@@ -145,11 +145,28 @@
     @Override
     @Transactional
     public R stockOutComplete(StockConfirmParam param, Long userId) {
+        List<Pakout> pakouts = pakoutService.selectList(new EntityWrapper<Pakout>()
+                .eq("doc_num", param.getNumber())
+                .in("wrk_sts", 1, 2));
+        // 淇敼搴撳瓨鏁伴噺
+        for (Pakout pakout : pakouts) {
+            LocDetl locDetl = locDetlService.getLocDetl(pakout.getNodeId(), pakout.getMatnr());
+            if (pakout.getAnfme()>=locDetl.getAnfme()) {
+                // 鍒犻櫎搴撳瓨鏄庣粏
+                if (!locDetlService.removeStock(locDetl.getNodeId(), pakout.getMatnr())) {
+                    throw new CoolException("鍒犻櫎搴撳瓨鏄庣粏澶辫触");
+                }
+            } else {
+                // 淇敼搴撳瓨鏄庣粏鏁伴噺
+                if (!locDetlService.reduceStock(locDetl.getNodeId(), pakout.getMatnr(), pakout.getAnfme())) {
+                    throw new CoolException("淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触");
+                }
+            }
+        }
         // 淇敼鍑哄簱鍗曠姸鎬�
         if (!pakoutService.stockOutComplete(param.getWrkNo(), param.getNumber(), userId)) {
             return R.error("淇濆瓨鏁版嵁澶辫触");
         }
-        // todo锛氫慨鏀瑰簱瀛樻暟閲�
         // 淇敼鍗曟嵁鐘舵��
         if (!custOrderService.updateStatus(param.getNumber(), 4)) {
             throw new CoolException("淇敼鍗曟嵁鐘舵�佸け璐�");
@@ -201,6 +218,20 @@
     public R completePakout(String wrkNo, Long userId) {
         Pakout pakout = pakoutService.selectOne(new EntityWrapper<Pakout>().eq("wrk_no", wrkNo));
         if (null != pakout) {
+            // 淇敼搴撳瓨鏁伴噺
+            LocDetl locDetl = locDetlService.getLocDetl(pakout.getNodeId(), pakout.getMatnr());
+            if (pakout.getAnfme()>=locDetl.getAnfme()) {
+                // 鍒犻櫎搴撳瓨鏄庣粏
+                if (!locDetlService.removeStock(locDetl.getNodeId(), pakout.getMatnr())) {
+                    throw new CoolException("鍒犻櫎搴撳瓨鏄庣粏澶辫触");
+                }
+            } else {
+                // 淇敼搴撳瓨鏄庣粏鏁伴噺
+                if (!locDetlService.reduceStock(locDetl.getNodeId(), pakout.getMatnr(), pakout.getAnfme())) {
+                    throw new CoolException("淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触");
+                }
+            }
+            // 淇敼鎷h揣鍗曠姸鎬�
             if (pakoutService.stockOutComplete(wrkNo, null, userId)) {
 
                 boolean complete = true;
@@ -228,26 +259,26 @@
     @Transactional
     public R cancelPakout(String wrkNo, Long userId) {
         Pakout pakout = pakoutService.selectOne(new EntityWrapper<Pakout>().eq("wrk_no", wrkNo));
-        if (null != pakout) {
-            LocDetl locDetl = locDetlService.getLocDetl(pakout.getNodeId(), pakout.getMatnr());
-            if (locDetl == null) {
-                LocDetl oldLocDetl = new LocDetl();
-                VersionUtils.setLocDetl(oldLocDetl, pakout);
-                oldLocDetl.setCreateTime(new Date());
-                oldLocDetl.setCreateBy(userId);
-                oldLocDetl.setUpdateTime(new Date());
-                oldLocDetl.setUpdateBy(userId);
-                if (!locDetlService.insert(oldLocDetl)) {
-                    throw new CoolException("鎭㈠搴撳瓨鏄庣粏澶辫触");
-                }
-            } else {
-                if (!locDetlService.incrementStock(locDetl.getNodeId(), locDetl.getMatnr(), pakout.getAnfme())) {
-                   throw new CoolException("鎭㈠搴撳瓨鏄庣粏澶辫触");
-                }
-            }
-        } else {
-            return R.error("鎷h揣鍗曞凡澶辨晥锛屽彇娑堝け璐ワ紒");
-        }
+//        if (null != pakout) {
+//            LocDetl locDetl = locDetlService.getLocDetl(pakout.getNodeId(), pakout.getMatnr());
+//            if (locDetl == null) {
+//                LocDetl oldLocDetl = new LocDetl();
+//                VersionUtils.setLocDetl(oldLocDetl, pakout);
+//                oldLocDetl.setCreateTime(new Date());
+//                oldLocDetl.setCreateBy(userId);
+//                oldLocDetl.setUpdateTime(new Date());
+//                oldLocDetl.setUpdateBy(userId);
+//                if (!locDetlService.insert(oldLocDetl)) {
+//                    throw new CoolException("鎭㈠搴撳瓨鏄庣粏澶辫触");
+//                }
+//            } else {
+//                if (!locDetlService.incrementStock(locDetl.getNodeId(), locDetl.getMatnr(), pakout.getAnfme())) {
+//                   throw new CoolException("鎭㈠搴撳瓨鏄庣粏澶辫触");
+//                }
+//            }
+//        } else {
+//            return R.error("鎷h揣鍗曞凡澶辨晥锛屽彇娑堝け璐ワ紒");
+//        }
         if (!pakoutService.delete(new EntityWrapper<Pakout>().eq("wrk_no", pakout.getWrkNo()))) {
             throw new CoolException("鍒犻櫎鎷h揣鍗曞け璐�");
         }

--
Gitblit v1.9.1