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/webapp/views/pakStore/stockOut.html                  |    5 -
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java   |   71 ++-----------
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java |  152 ++++++++++++++++++-----------
 src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java    |   35 ++----
 src/main/webapp/static/js/pakStore/stockOut.js                |    6 -
 5 files changed, 116 insertions(+), 153 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
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index ebd138e..28c0d65 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -160,57 +160,7 @@
     @Override
     @Transactional
     public void startupFullTakeStore(StockOutParam param, Long userId) {
-        ArrayList<String> locNos = new ArrayList<>();
-        for (StockOutParam.LocDetl locDetl:param.getLocDetls()){
-            locNos.add(locDetl.getLocNo());
-        }
-        //妫�娴嬫槸鍚︿负娴呭簱浣�
-        List<LocMast> locMasts = null;
-        boolean sign=false;
-        String th = "";
-        for (StockOutParam.LocDetl locDetl:param.getLocDetls()){
-            int row = getRow(locDetl.getLocNo());
-            int bay = getBay(locDetl.getLocNo());
-            int lev = getLev(locDetl.getLocNo());
-            if (!(row==4 || row==5)){
-                if (row>5){
-                    locMasts=locMastService.selectList(new EntityWrapper<LocMast>().ge("row1", 5).le("row1", row)
-                            .eq("bay1",bay).eq("lev1",lev));
-                    for (LocMast locMast1:locMasts){
-                        if (locNos.contains(locMast1.getLocNo())){
-                            continue;
-                        }
-                        if (locMast1.getRow1()<row){
-                            if (!locMast1.getLocSts().equals("O")){
-                                sign=true;
-                                th="搴撲綅鍙凤細"+locDetl.getLocNo()+" 娴呭簱浣嶆湁闈炵┖搴撲綅锛�";
-                                break;
-                            }
-                        }
-                    }
-                }else {
-                    locMasts=locMastService.selectList(new EntityWrapper<LocMast>().le("row1", 4).ge("row1", row)
-                            .eq("bay1",bay).eq("lev1",lev));
-                    for (LocMast locMast1:locMasts){
-                        if (locNos.contains(locMast1.getLocNo())){
-                            continue;
-                        }
-                        if (locMast1.getRow1()>row){
-                            if (!locMast1.getLocSts().equals("O")){
-                                sign=true;
-                                th="搴撲綅鍙凤細"+locDetl.getLocNo()+" 娴呭簱浣嶆湁闈炵┖搴撲綅锛�";
-                                break;
-                            }
-                        }
-                    }
-                }
-            }
-        }
-        if (sign){
-            throw new CoolException("鍑哄簱澶辫触锛�"+th);
-        }
-        // 鐩爣绔欑偣鐘舵�佹娴�
-        BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
+
         // 鑾峰彇搴撲綅鏄庣粏
         List<LocDetlDto> locDetlDtos = new ArrayList<>();
         for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
@@ -221,7 +171,7 @@
         }
         if (!locDetlDtos.isEmpty()) {
             // 鍚姩鍑哄簱寮�濮� 101.鍑哄簱
-            stockOut(staNo, locDetlDtos, null, userId);
+            stockOut(null, locDetlDtos, null, userId);
         } else {
             throw new CoolException("搴撳瓨涓嶅瓨鍦�");
         }
@@ -299,22 +249,25 @@
             // 鑾峰彇璺緞
             Boolean outMost = locMastService.isOutMost(dto.getLocNo(), false);
             Integer outCrnNo = locMastService.getOutCrnNo(locMast);
-            StaDesc staDesc = staDescService.queryCrnStn(ioType, outCrnNo, staNo.getDevNo());
+
             // 鐢熸垚宸ヤ綔鍙�
             int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
             // 鐢熸垚宸ヤ綔妗�
             WrkMast wrkMast = new WrkMast();
             wrkMast.setWrkNo(workNo);
             wrkMast.setIoTime(now);
-            wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
-            wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
+            wrkMast.setWrkSts(ioType == 101?17L:9L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+            wrkMast.setIoType(ioType == 101?101:53); // 鍏ュ嚭搴撶姸鎬�
             Double ioPri = wrkMastService.getIoPri(ioType, dto.getLocNo());
             wrkMast.setIoPri(ioPri); // 浼樺厛绾э細13
             wrkMast.setOutMost(outMost?1:0);;
             wrkMast.setCrnNo(outMost?outCrnNo:locMast.getCrnNo());
-            wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
-            wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
-            wrkMast.setSourceLocNo(dto.getLocNo()); // 婧愬簱浣�
+            if (ioType == 101){
+                wrkMast.setSourceLocNo(dto.getLocNo()); // 婧愬簱浣�
+            }else {
+                wrkMast.setLocNo(dto.getLocNo());
+            }
+
             wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
             wrkMast.setPicking("N"); // 鎷f枡
             wrkMast.setExitMk("N"); // 閫�鍑�
@@ -349,7 +302,7 @@
             // 淇敼搴撲綅鐘舵��:   F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
             locMast = locMastService.selectById(dto.getLocNo());
             if (locMast.getLocSts().equals("F")) {
-                locMast.setLocSts(ioType==101?"R":"P");
+                locMast.setLocSts(ioType==101?"R":"Q");
                 locMast.setModiUser(userId);
                 locMast.setModiTime(now);
                 if (!locMastService.updateById(locMast)) {
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
index 0fbb782..5251db3 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -67,37 +67,24 @@
                 if (wrkMast.getIoType() == 1) {
                     // 鍏ュ簱閫氱煡鍗�
                     if (!Cools.isEmpty(wrkMast.getBarcode())) {
-                        // 淇濆瓨鍏ュ簱閫氱煡妗e巻鍙叉。
-                        if (!waitPakinLogService.save(wrkMast.getBarcode())) {
-                            exceptionHandle("淇濆瓨鍏ュ簱閫氱煡妗e巻鍙叉。[workNo={0}]澶辫触", wrkMast.getWrkNo());
-                        }
-                        // 鍒犻櫎鍏ュ簱閫氱煡妗�
-                        if (!waitPakinService.delete(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()))) {
-                            exceptionHandle("鍒犻櫎鍏ュ簱閫氱煡妗workNo={0}]澶辫触", wrkMast.getWrkNo());
-                        }
+//                        // 淇濆瓨鍏ュ簱閫氱煡妗e巻鍙叉。
+//                        if (!waitPakinLogService.save(wrkMast.getBarcode())) {
+//                            exceptionHandle("淇濆瓨鍏ュ簱閫氱煡妗e巻鍙叉。[workNo={0}]澶辫触", wrkMast.getWrkNo());
+//                        }
+//                        // 鍒犻櫎鍏ュ簱閫氱煡妗�
+//                        if (!waitPakinService.delete(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()))) {
+//                            exceptionHandle("鍒犻櫎鍏ュ簱閫氱煡妗workNo={0}]澶辫触", wrkMast.getWrkNo());
+//                        }
                     }
-                    // 鎵嬪姩鍏ュ簱鐢熸垚鍗曟嵁 銆� 涓婃姤涓夋柟骞冲彴 銆�
-                    if (!Cools.isEmpty(wrkDetls)) {
-                        if (!orderService.saveHandlerOrder(Boolean.TRUE, wrkMast, wrkDetls)) {
-                            exceptionHandle("鐢熸垚鎵嬪姩鍏ュ簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo());
-                        }
-                    }
+
                     // 鎷f枡鍐嶅叆搴�
                 } else if (wrkMast.getIoType() == 53) {
-                    if (!Cools.isEmpty(wrkDetls)) {
-                        if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls)) {
-                            exceptionHandle("鐢熸垚鎵嬪姩鍑哄簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo());
-                        }
-                    }
+
                 }
 
                 // 鍑哄簱 --------------------------------------------------------------------------------
             } else if (wrkMast.getWrkSts() == 18) {
-                if (!Cools.isEmpty(wrkDetls)) {
-                    if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls)) {
-                        exceptionHandle("鐢熸垚鎵嬪姩鍑哄簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo());
-                    }
-                }
+
             }
 
             // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
diff --git a/src/main/webapp/static/js/pakStore/stockOut.js b/src/main/webapp/static/js/pakStore/stockOut.js
index d9b2580..b45999f 100644
--- a/src/main/webapp/static/js/pakStore/stockOut.js
+++ b/src/main/webapp/static/js/pakStore/stockOut.js
@@ -70,13 +70,7 @@
                 if (locDetlData.length === 0){
                     layer.msg('璇峰厛鎻愬彇鍟嗗搧搴撳瓨', {icon: 2});
                 } else {
-                    var staNo = $("#staNoSelect").val();
-                    if (staNo === "" || staNo === null){
-                        layer.msg("璇烽�夋嫨鍑哄簱鍙�", {icon: 2});
-                        return;
-                    }
                     let param = {
-                        outSite: staNo,
                         locDetls: locDetlData
                     }
                     $.ajax({
diff --git a/src/main/webapp/views/pakStore/stockOut.html b/src/main/webapp/views/pakStore/stockOut.html
index 3e02f19..2d6a269 100644
--- a/src/main/webapp/views/pakStore/stockOut.html
+++ b/src/main/webapp/views/pakStore/stockOut.html
@@ -95,11 +95,6 @@
     <script type="text/html" id="toolbar">
         <div class="layui-form">
             <div class="layui-btn-container">
-                <!-- 1.閫夋嫨鍑哄簱鍙� -->
-                <span id="staNoSpan">鍑哄簱鍙o細</span>
-                <select id="staNoSelect" lay-verify="required">
-                    <option value="">璇烽�夋嫨绔欑偣</option>
-                </select>
                 <!-- 2.鍚姩鍑哄簱 -->
                 <button class="layui-btn layui-btn-lg" id="btn-outbound" lay-event="outbound">鍚姩鍑哄簱</button>
             </div>

--
Gitblit v1.9.1