From 595108c00257f238815ffc5c20fbfa82244c7740 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期二, 29 三月 2022 10:52:05 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java |   88 +++++++++++++++++++++++++++++++------------
 1 files changed, 63 insertions(+), 25 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 5197b90..58f8a31 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -5,11 +5,12 @@
 import com.core.common.Cools;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.MatCode;
+import com.zy.asrs.entity.Order;
+import com.zy.asrs.entity.OrderDetl;
 import com.zy.asrs.entity.WaitPakin;
 import com.zy.asrs.entity.param.CombParam;
-import com.zy.asrs.service.MatCodeService;
-import com.zy.asrs.service.MobileService;
-import com.zy.asrs.service.WaitPakinService;
+import com.zy.asrs.service.*;
+import com.zy.asrs.utils.VersionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -27,6 +28,10 @@
     private MatCodeService matCodeService;
     @Autowired
     private WaitPakinService waitPakinService;
+    @Autowired
+    private OrderService orderService;
+    @Autowired
+    private OrderDetlService orderDetlService;
 
     @Override
     @Transactional
@@ -34,33 +39,66 @@
         if (Cools.isEmpty(param.getBarcode()) || param.getCombMats().isEmpty()) {
             throw new CoolException(BaseRes.PARAM);
         }
-        int count = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
-                eq("barcode", param.getBarcode()).eq("status", "N"));
-        if (count > 0) {
+        // 鍒ゆ柇鏄惁鏈夌浉鍚屾潯鐮佺殑鏁版嵁
+        if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
+                eq("zpallet", param.getBarcode()).eq("io_status", "N")) > 0) {
             throw new CoolException("鏉$爜鏁版嵁宸插瓨鍦�");
         }
-        for (CombParam.CombMat combMat : param.getCombMats()) {
-            MatCode matCode = matCodeService.selectById(combMat.getMatNo());
-            if (Cools.isEmpty(matCode)) {
-                throw new CoolException("鐗╂枡鏁版嵁閿欒");
+        Date now = new Date();
+        // 鏃犲崟缁勬墭
+        if (Cools.isEmpty(param.getOrderNo())) {
+            for (CombParam.CombMat combMat : param.getCombMats()) {
+                MatCode matCode = matCodeService.selectById(combMat.getMatNo());
+                if (Cools.isEmpty(matCode)) {
+                    throw new CoolException("鐗╂枡鏁版嵁閿欒");
+                }
+                WaitPakin waitPakin = new WaitPakin();
+                waitPakin.setZpallet(param.getBarcode());   // 鎵樼洏鐮�
+                waitPakin.setStatus("Y");    // 鐘舵��
+                waitPakin.setAnfme(combMat.getCount());  // 鏁伴噺
+                waitPakin.setIoStatus("N");     // 鍏ュ嚭鐘舵��
+                waitPakin.setAppeUser(userId);
+                waitPakin.setAppeTime(now);
+                waitPakin.setModiUser(userId);
+                waitPakin.setModiTime(now);
+                VersionUtils.setWaitPakIn(waitPakin, matCode);
+
+                if (!waitPakinService.insert(waitPakin)) {
+                    throw new CoolException("淇濆瓨鏁版嵁澶辫触");
+                }
             }
-            WaitPakin waitPakin = new WaitPakin(
-                    param.getBarcode(),    // 鎵樼洏鐮�
-                    matCode.getMatNo(),    // 鐗╂枡缂栫爜
-                    matCode.getMatName(),    // 鐗╂枡鎻忚堪
-                    combMat.getCount(),    // 鏁伴噺
-                    matCode.getStr1(),    // 鍗曚綅
-                    "N",    // 鐘舵��
-                    null,    // 澶囨敞
-                    new Date(),    // 淇敼鏃堕棿
-                    userId,    // 淇敼浜哄憳
-                    new Date(),    // 娣诲姞鏃堕棿
-                    userId    // 鍒涘缓鑰�
-            );
-            if (!waitPakinService.insert(waitPakin)) {
-                throw new CoolException("淇濆瓨鏁版嵁澶辫触");
+        // 鍏宠仈缁勬墭
+        } else {
+            Order order = orderService.selectByNo(param.getOrderNo());
+            if (order.getSettle() > 2) {
+                throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�");
+            }
+            for (CombParam.CombMat comb : param.getCombMats()) {
+                OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), comb.getMatNo(), comb.getBatch());
+                if (comb.getCount() > orderDetl.getEnableQty()) {
+                    throw new CoolException(orderDetl.getMatnr() + "鍏ュ簱鏁伴噺涓嶅悎娉�");
+                }
+                // 淇敼鍗曠粏鏁伴噺
+                if (!orderDetlService.increase(order.getId(), comb.getMatNo(), comb.getBatch(), comb.getCount())) {
+                    throw new CoolException("淇敼鍗曟嵁鏄庣粏鏁伴噺澶辫触");
+                }
+                // 娣诲姞鍏ュ簱閫氱煡妗�
+                WaitPakin waitPakin = new WaitPakin();
+                waitPakin.setZpallet(param.getBarcode());   // 鎵樼洏鐮�
+                waitPakin.setStatus("Y");    // 鐘舵��
+                waitPakin.setAnfme(comb.getCount());  // 鏁伴噺
+                waitPakin.setIoStatus("N");     // 鍏ュ嚭鐘舵��
+                waitPakin.setAppeUser(userId);
+                waitPakin.setAppeTime(now);
+                waitPakin.setModiUser(userId);
+                waitPakin.setModiTime(now);
+                VersionUtils.setWaitPakIn(waitPakin, orderDetl);
+                if (!waitPakinService.insert(waitPakin)) {
+                    throw new CoolException("娣诲姞鍏ュ簱閫氱煡妗eけ璐�");
+                }
             }
         }
+
     }
 
 }

--
Gitblit v1.9.1