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 +++++++++++++++++-------
 src/main/java/zy/cloud/wms/common/service/MainService.java           |   58 ++----------------
 2 files changed, 60 insertions(+), 71 deletions(-)

diff --git a/src/main/java/zy/cloud/wms/common/service/MainService.java b/src/main/java/zy/cloud/wms/common/service/MainService.java
index 86cbd86..433c536 100644
--- a/src/main/java/zy/cloud/wms/common/service/MainService.java
+++ b/src/main/java/zy/cloud/wms/common/service/MainService.java
@@ -38,48 +38,6 @@
     @Autowired
     private SnowflakeIdWorker snowflakeIdWorker;
 
-//    @Transactional
-//    public List<StoPreVo> stockOutPreview0(OrderStoDto dto) {
-//        if (Cools.isEmpty(dto) || Cools.isEmpty(dto.getCustOrders())) {
-//            throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�");
-//        }
-//        // 妫�鏌ュ簱瀛樻槸鍚﹁冻澶�
-//        locDetlService.checkLocDetlCount(dto.getNumber());
-//        List<StoPreVo> result = new ArrayList<>();
-//        for (CustOrder custOrder : dto.getCustOrders()) {
-//            // 鍒ゆ柇鐗╂枡鏄惁瀛樺湪
-//            Mat mat = matService.selectByMatnr(custOrder.getUserCode());
-//            if (null == mat) {
-//                throw new CoolException(custOrder.getUserCode() + "鐗╂枡灏氭湭鏇存柊銆�" + custOrder.getNumber() +"鍗曟嵁鍥犳涓柇锛�");
-//            }
-//            // 鏌ヨ瀛樻湁褰撳墠鐗╂枡鐨勮揣浣�
-//            List<LocDetl> locDetls = locDetlService.findOfSort(mat.getMatnr());
-//            double issued = Optional.ofNullable(custOrder.getQty()).orElse(0.0D) ;
-//            // 瑙嗗浘瀵硅薄
-//            StoPreVo vo = new StoPreVo();
-//            vo.setMatnr(mat.getMatnr());
-//            vo.setMaktx(mat.getMaktx());
-//            vo.setAnfme(issued);
-//            List<StoPreVo.StoPreLoc> locVos = new ArrayList<>();
-//            vo.setLocs(locVos);
-//            for (LocDetl locDetl : locDetls) {
-//                if (issued > 0) {
-//                    StoPreVo.StoPreLoc locVo = new StoPreVo.StoPreLoc();
-//                    locVo.setLocNo(locDetl.getLocNo());
-//                    locVo.setNodeId(locDetl.getNodeId());
-//                    locVo.setTotal(locDetl.getAnfme());
-//                    locVo.setReduce(issued>=locDetl.getAnfme()?locDetl.getAnfme():issued);
-//                    locVo.setPrior(locDetlService.isPrior(locDetl.getNodeId(), mat.getMatnr()));
-//                    locVos.add(locVo);
-//                    // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
-//                    issued = issued - locDetl.getAnfme();
-//                }
-//            }
-//            result.add(vo);
-//        }
-//        return result;
-//    }
-
     @Transactional
     public List<StoPreTab> stockOutPreview(OrderStoDto dto) {
         if (Cools.isEmpty(dto) || Cools.isEmpty(dto.getCustOrders())) {
@@ -161,15 +119,15 @@
                         throw new CoolException("淇濆瓨鍑哄簱閫氱煡鍗曞け璐�");
                     }
                     if (issued>=locDetl.getAnfme()) {
-                        // 鍒犻櫎搴撳瓨鏄庣粏
-                        if (!locDetlService.removeStock(locDetl.getNodeId(), mat.getMatnr())) {
-                            throw new CoolException("鍒犻櫎搴撳瓨鏄庣粏澶辫触");
-                        }
+//                        // 鍒犻櫎搴撳瓨鏄庣粏
+//                        if (!locDetlService.removeStock(locDetl.getNodeId(), mat.getMatnr())) {
+//                            throw new CoolException("鍒犻櫎搴撳瓨鏄庣粏澶辫触");
+//                        }
                     } else {
-                        // 淇敼搴撳瓨鏄庣粏鏁伴噺
-                        if (!locDetlService.reduceStock(locDetl.getNodeId(), mat.getMatnr(), issued)) {
-                            throw new CoolException("淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触");
-                        }
+//                        // 淇敼搴撳瓨鏄庣粏鏁伴噺
+//                        if (!locDetlService.reduceStock(locDetl.getNodeId(), mat.getMatnr(), issued)) {
+//                            throw new CoolException("淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触");
+//                        }
                     }
                     // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
                     issued = issued - locDetl.getAnfme();
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