From 4976563e692c610f2a8e2ba472424114340ff6a7 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期四, 25 三月 2021 10:34:52 +0800
Subject: [PATCH] #

---
 src/main/java/zy/cloud/wms/manager/service/impl/WorkServiceImpl.java |   55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 54 insertions(+), 1 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 1c8556f..99df66d 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
@@ -529,15 +529,68 @@
 
             }
         }
-
         return R.ok();
     }
 
     @Override
+    @Transactional
     public R stockCheckAuditing(Long checkId, Long userId) {
+        Check check = checkService.selectById(checkId);
+        if (null == check) {
+            return R.error("鐩樼偣璁板綍宸插け鏁�");
+        }
+        Date now = new Date();
+        // 1.淇敼搴撳瓨鏁伴噺
+        if (check.getOriQty() != 0 && check.getCekQty() != 0) {
+            // 鏇存柊搴撳瓨鏄庣粏
+            if (check.getSettle() == 1) {
+                if (!locDetlService.incrementStock(check.getNodeId(), check.getMatnr(), Math.abs(check.getDiffQty()))) {
+                    throw new CoolException("淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触");
+                }
+            } else if (check.getSettle() == 2) {
+                if (!locDetlService.reduceStock(check.getNodeId(), check.getMatnr(), Math.abs(check.getDiffQty()))) {
+                    throw new CoolException("淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触");
+                }
+            }
+        }
 
+        // 2.鍒犻櫎搴撳瓨
+        if (check.getOriQty() != 0 && check.getCekQty() == 0) {
+            if (!locDetlService.delete(new EntityWrapper<LocDetl>().eq("node_id", check.getNodeId()).eq("matnr", check.getMatnr()))) {
+                throw new CoolException("鍒犻櫎搴撳瓨鏄庣粏鏁伴噺澶辫触");
+            }
+        }
 
+        // 3.鏂板搴撳瓨
+        if (check.getOriQty() == 0 && check.getCekQty() != 0) {
+            Mat mat = matService.selectByMatnr(check.getMatnr());
+            if (mat == null) {
+                throw new CoolException("鍟嗗搧鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�");
+            }
+            // 鏇存柊璐т綅搴撳瓨鏄庣粏
+            LocDetl locDetl = new LocDetl();
+            locDetl.setLocNo(check.getLocNo());
+            locDetl.setNodeId(check.getNodeId());
+//            locDetl.setZpallet(param.getZpallet());
+            locDetl.setAnfme(check.getCekQty());
+            VersionUtils.setLocDetl(locDetl, mat);
+            locDetl.setStatus(1);
+            locDetl.setCreateBy(userId);
+            locDetl.setCreateTime(now);
+            locDetl.setUpdateBy(userId);
+            locDetl.setUpdateTime(now);
+            if (!locDetlService.insert(locDetl)) {
+                throw new CoolException("鏂板搴撳瓨鏄庣粏澶辫触");
+            }
+        }
 
+        // 淇敼鐩樼偣璁板綍
+        check.setStatus(2);
+        check.setUpdateBy(userId);
+        check.setUpdateTime(now);
+        if (!checkService.updateById(check)) {
+            throw new CoolException("淇敼鐩樼偣璁板綍鐘舵�佸け璐�");
+        }
         return R.ok();
     }
 

--
Gitblit v1.9.1