From 0ee00b5d3cbd625fc9d0e92f88bb327aac6c86e9 Mon Sep 17 00:00:00 2001
From: 王佳豪 <g675230687@126.com>
Date: 星期六, 15 五月 2021 15:27:34 +0800
Subject: [PATCH] 1.立库任务单入库支持批量组托的功能

---
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java |   95 ++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 84 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index 829b519..3b05adb 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -95,7 +95,7 @@
             // 鍏宠仈閫氱煡鍗曠粍鎵�
             for (CombParam.CombMat combMat : param.getCombMats()) {
                 WaitPakin one = waitPakinService.selectOne(new EntityWrapper<WaitPakin>()
-                        .eq("supplier", param.getBillNo())
+                        .eq("supplier", combMat.getSupplier())
                         .eq("matnr", combMat.getMatNo())
                         .isNull("zpallet"));
                 if (one == null) {
@@ -115,34 +115,32 @@
                 waitPakin.setAppeTime(new Date());
                 waitPakin.setModiUser(userId);
                 waitPakin.setModiTime(new Date());
+                waitPakin.setSupplier(combMat.getSupplier());
                 if (!waitPakinService.insert(waitPakin)) {
                     throw new CoolException("淇濆瓨鏁版嵁澶辫触");
                 }
                 // 鍑忓皯閫氱煡鍗曚笂璇ョ墿鏂欑粍鎵樻暟閲�
                 if (waitPakin.getAnfme() >= one.getAnfme()) {
                     waitPakinService.delete(new EntityWrapper<WaitPakin>()
-                            .eq("supplier", param.getBillNo())
+                            .eq("supplier", combMat.getSupplier())
                             .eq("matnr", combMat.getMatNo())
-                            .eq("warehouse", param.getWarehouse())
+                            .eq("mnemonic", param.getMnemonic())
                             .isNull("zpallet"));
                 } else {
                     Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>();
-                    if ("".equals(param.getWarehouse())) {
-                        wrapper.eq("supplier", param.getBillNo())
+                    if ("".equals(param.getMnemonic())) {
+                        wrapper.eq("supplier", combMat.getSupplier())
                                 .eq("matnr", combMat.getMatNo())
                                 .isNull("zpallet");
                     } else {
-                        wrapper.eq("supplier", param.getBillNo())
+                        wrapper.eq("supplier", combMat.getSupplier())
                                 .eq("matnr", combMat.getMatNo())
-                                .eq("warehouse", param.getWarehouse())
+                                .eq("mnemonic", param.getMnemonic())
                                 .isNull("zpallet");
                     }
                     WaitPakin pakin = new WaitPakin();
                     pakin.setAnfme(one.getAnfme() - waitPakin.getAnfme());
-                    if (!waitPakinService.update(pakin, wrapper.eq("supplier", param.getBillNo())
-                            .eq("matnr", combMat.getMatNo())
-                            .eq("warehouse", param.getWarehouse())
-                            .isNull("zpallet"))) {
+                    if (!waitPakinService.update(pakin, wrapper)) {
                         throw new CoolException("鏇存柊鏁版嵁澶辫触");
                     }
 
@@ -156,4 +154,79 @@
 
     }
 
+    @Override
+    @Transactional
+    public void combBatch(CombParam param, Long userId) {
+        if (Cools.isEmpty(param.getBarcode())) {
+            throw new CoolException(BaseRes.PARAM);
+        }
+        if (Cools.isEmpty(param.getCombMats()) && Cools.isEmpty(param.getProductCode())) {
+            throw new CoolException(BaseRes.PARAM);
+        }
+        int count = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
+                eq("zpallet", param.getBarcode()).eq("io_status", "N"));
+        if (count > 0) {
+            throw new CoolException("鏉$爜鏁版嵁宸插瓨鍦�");
+        }
+        // 鍏宠仈閫氱煡鍗曠粍鎵�
+        for (CombParam.CombMat combMat : param.getCombMats()) {
+            WaitPakin one = waitPakinService.selectOne(new EntityWrapper<WaitPakin>()
+                    .eq("supplier", combMat.getSupplier())
+                    .eq("matnr", combMat.getMatNo())
+                    .isNull("zpallet"));
+            if (one == null) {
+                throw new CoolException("閫氱煡鍗曚笉瀛樺湪" + combMat.getMatNo() + "鏁版嵁锛�");
+            }
+            if (combMat.getCount() > one.getAnfme()) {
+                throw new CoolException(combMat.getMatNo() + "鐗╂枡鏁伴噺涓嶈冻锛�");
+            }
+            MatCode matCode = matCodeService.selectById(combMat.getMatNo());
+            if (Cools.isEmpty(matCode)) {
+                throw new CoolException("鐗╂枡鏁版嵁閿欒");
+            }
+            WaitPakin waitPakin = one.clone();
+            waitPakin.setZpallet(param.getBarcode());   // 鎵樼洏鐮�
+            waitPakin.setAnfme(combMat.getCount());  // 鏁伴噺
+            waitPakin.setAppeUser(userId);
+            waitPakin.setAppeTime(new Date());
+            waitPakin.setModiUser(userId);
+            waitPakin.setModiTime(new Date());
+            waitPakin.setSupplier(combMat.getSupplier());
+            if (!waitPakinService.insert(waitPakin)) {
+                throw new CoolException("淇濆瓨鏁版嵁澶辫触");
+            }
+            // 鍑忓皯閫氱煡鍗曚笂璇ョ墿鏂欑粍鎵樻暟閲�
+            if (waitPakin.getAnfme() >= one.getAnfme()) {
+                waitPakinService.delete(new EntityWrapper<WaitPakin>()
+                        .eq("supplier", combMat.getSupplier())
+                        .eq("matnr", combMat.getMatNo())
+                        .eq("mnemonic", combMat.getMnemonic())
+                        .isNull("zpallet"));
+            } else {
+                Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>();
+                if ("".equals(param.getMnemonic())) {
+                    wrapper.eq("supplier", combMat.getSupplier())
+                            .eq("matnr", combMat.getMatNo())
+                            .isNull("zpallet");
+                } else {
+                    wrapper.eq("supplier", combMat.getSupplier())
+                            .eq("matnr", combMat.getMatNo())
+                            .eq("mnemonic", combMat.getMnemonic())
+                            .isNull("zpallet");
+                }
+                WaitPakin pakin = new WaitPakin();
+                pakin.setAnfme(one.getAnfme() - waitPakin.getAnfme());
+                pakin.setSupplier(combMat.getSupplier());
+                pakin.setMatnr(combMat.getMatNo());
+                pakin.setMnemonic(combMat.getMnemonic());
+                if (!waitPakinService.update(pakin, wrapper)) {
+                    throw new CoolException("鏇存柊鏁版嵁澶辫触");
+                }
+
+            }
+
+        }
+
+
+    }
 }

--
Gitblit v1.9.1