From abb7c67088e18f8052eeff6d35b611286eedcee5 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期五, 21 三月 2025 15:52:02 +0800
Subject: [PATCH] #出入库改动

---
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java |  152 +++++++++++++++++++++++++++++++-------------------
 1 files changed, 93 insertions(+), 59 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 74ac54a..415d235 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -20,6 +20,7 @@
 import com.zy.common.entity.Parameter;
 import com.zy.common.model.DetlDto;
 import com.zy.common.model.MesCombParam;
+import com.zy.common.service.CommonService;
 import com.zy.common.utils.HttpHandler;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -63,6 +64,10 @@
     private ApiLogService apiLogService;
     @Autowired
     private WorkLogHandler workLogHandler;
+    @Autowired
+    private CommonService commonService;
+    @Autowired
+    private LocMastService locMastService;
 
     @Override
     @Transactional
@@ -77,11 +82,11 @@
         }
 
         // todo: 涓嶄笅绾块噸鏂板叆搴�
-        WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode());
-        if (wrkMast != null && wrkMast.getWrkSts() == 18) {
-            ReturnT<String> start = workLogHandler.start(wrkMast);
+        WrkMast wrkMast18 = wrkMastService.selectByBarcode(param.getBarcode());
+        if (wrkMast18 != null && wrkMast18.getWrkSts() == 18) {
+            ReturnT<String> start = workLogHandler.start(wrkMast18);
             if (!start.isSuccess()) {
-                log.error("宸ヤ綔妗workNo={}]鍘嗗彶妗e鐞嗗け璐�", wrkMast.getWrkNo());
+                log.error("宸ヤ綔妗workNo={}]鍘嗗彶妗e鐞嗗け璐�", wrkMast18.getWrkNo());
             }
         }
 
@@ -90,40 +95,6 @@
         // 鏃犲崟缁勬墭
         if (Cools.isEmpty(param.getOrderNo())) {
 
-            // 鐢熸垚鍏ュ簱閫氱煡妗�
-            List<DetlDto> detlDtos = new ArrayList<>();
-            param.getCombMats().forEach(elem -> {
-                DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
-                if (DetlDto.has(detlDtos, detlDto)) {
-                    DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
-                    assert one != null;
-                    one.setAnfme(one.getAnfme() + detlDto.getAnfme());
-                } else {
-                    detlDtos.add(detlDto);
-                }
-            });
-
-
-            for (DetlDto detlDto : detlDtos) {
-                Mat mat = matService.selectByMatnr(detlDto.getMatnr());
-                if (Cools.isEmpty(mat)) {
-                    throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
-                }
-                WaitPakin waitPakin = new WaitPakin();
-                waitPakin.sync(mat);
-                waitPakin.setBatch(detlDto.getBatch());
-                waitPakin.setZpallet(param.getBarcode());   // 鎵樼洏鐮�
-                waitPakin.setIoStatus("N");     // 鍏ュ嚭鐘舵��
-                waitPakin.setAnfme(detlDto.getAnfme());  // 鏁伴噺
-                waitPakin.setStatus("Y");    // 鐘舵��
-                waitPakin.setAppeUser(userId);
-                waitPakin.setAppeTime(now);
-                waitPakin.setModiUser(userId);
-                waitPakin.setModiTime(now);
-                if (!waitPakinService.insert(waitPakin)) {
-                    throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
-                }
-            }
         // 鍏宠仈缁勬墭
         } else {
             Order order = orderService.selectByNo(param.getOrderNo());
@@ -153,30 +124,93 @@
                     detlDtos.add(detlDto);
                 }
             });
-            for (DetlDto detlDto : detlDtos) {
-                Mat mat = matService.selectByMatnr(detlDto.getMatnr());
-                if (Cools.isEmpty(mat)) {
-                    throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
-                }
-                WaitPakin waitPakin = new WaitPakin();
-                waitPakin.sync(mat);
-                waitPakin.setOrderNo(order.getOrderNo());   // 鍗曟嵁缂栧彿
-                waitPakin.setBatch(detlDto.getBatch());     // 搴忓垪鐮�
-                waitPakin.setZpallet(param.getBarcode());   // 鎵樼洏鐮�
-                waitPakin.setIoStatus("N");     // 鍏ュ嚭鐘舵��
-                waitPakin.setAnfme(detlDto.getAnfme());  // 鏁伴噺
-                waitPakin.setStatus("Y");    // 鐘舵��
-                waitPakin.setAppeUser(userId);
-                waitPakin.setAppeTime(now);
-                waitPakin.setModiUser(userId);
-                waitPakin.setModiTime(now);
-                if (!waitPakinService.insert(waitPakin)) {
-                    throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
-                }
-            }
+
             orderService.updateSettle(order.getId(), 2L, userId);
         }
 
+        LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", param.getLocno()));
+        if (Cools.isEmpty(locMast1)) {
+            throw new CoolException("鏈壘鍒版纭殑搴撲綅淇℃伅");
+        }
+
+        int workNo = commonService.getWorkNo(0);
+
+        // 鐢熸垚宸ヤ綔妗�
+        WrkMast wrkMast = new WrkMast();
+        wrkMast.setWrkNo(workNo);
+        wrkMast.setIoTime(new Date());
+        wrkMast.setWrkSts(9L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+        wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
+        Double ioPri = wrkMastService.getIoPri(1, locMast1.getLocNo());
+        wrkMast.setIoPri(ioPri); // 浼樺厛绾�
+        wrkMast.setCrnNo(locMast1.getCrnNo());
+        wrkMast.setOutMost(locMastService.isOutMost(locMast1.getLocNo(), true)?1:0);;
+        wrkMast.setSourceStaNo(null);
+        wrkMast.setStaNo(null);
+        wrkMast.setLocNo(locMast1.getLocNo());
+        wrkMast.setBarcode(param.getBarcode()); // 鎵樼洏鐮�
+        wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+        wrkMast.setPicking("N"); // 鎷f枡
+        wrkMast.setExitMk("N"); // 閫�鍑�
+        wrkMast.setEmptyMk("N"); // 绌烘澘
+        wrkMast.setLinkMis("Y");
+        wrkMast.setCtnType(null); // 瀹瑰櫒绫诲瀷
+        // 鎿嶄綔浜哄憳鏁版嵁
+        wrkMast.setAppeTime(now);
+        wrkMast.setModiTime(now);
+        boolean res = wrkMastService.insert(wrkMast);
+        if (!res) {
+            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+        }
+
+
+        for (CombParam.CombMat paramMat : param.getCombMats() )
+        {
+            Mat mat = matService.selectByMatnr(paramMat.getMatnr());
+            if (Cools.isEmpty(mat)) {
+                throw new CoolException(paramMat.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
+            }
+
+            // 鐢熸垚宸ヤ綔妗f槑缁�
+            WrkDetl wrkDetl = new WrkDetl();
+            wrkDetl.sync(mat);
+            wrkDetl.setAnfme(paramMat.getAnfme());
+            wrkDetl.setZpallet(param.getBarcode());
+//        wrkDetl.setAnfme(1.0D);
+            wrkDetl.setWrkNo(wrkMast.getWrkNo());
+            wrkDetl.setIoTime(wrkMast.getIoTime());
+            wrkDetl.setAppeTime(now);
+            wrkDetl.setModiTime(now);
+            if (!wrkDetlService.insert(wrkDetl)) {
+                throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+            }
+        }
+
+//        // 鏇存柊鍏ュ簱閫氱煡妗� ioStatus ===>> Y
+//        Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>()
+//                .eq("zpallet", barcode);
+//        WaitPakin setParam = new WaitPakin();
+//        setParam.setIoStatus("Y");
+//        setParam.setModiTime(now);
+//        if (!waitPakinService.update(setParam, wrapper)) {
+//            throw new CoolException("鏇存柊閫氱煡妗eけ璐�");
+//        }
+
+
+        // 鏇存柊鐩爣搴撲綅鐘舵��
+
+        if (locMast1.getLocSts().equals("O")){
+            locMast1.setLocSts("S"); // S.鍏ュ簱棰勭害
+            locMast1.setModiTime(now);
+            if (!locMastService.updateById(locMast1)){
+                throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
+            }
+        } else {
+            throw new CoolException(locMast1.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
+        }
+
+
+
     }
 
     @Override

--
Gitblit v1.9.1