From 25e8446bcddc3dc81307be31f2966577a0a1d6ee Mon Sep 17 00:00:00 2001
From: yxFwq <1>
Date: 星期三, 26 二月 2025 15:06:55 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  132 +++++++++++++++++++++++--------------------
 1 files changed, 70 insertions(+), 62 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 0cfb3a3..e6ea793 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1953,13 +1953,15 @@
                 } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
                     // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
                     if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) {
-                        wrkMast.setUpdMk("Y");
-                        wrkMast.setIoPri(14D);
-                        wrkMastMapper.updateById(wrkMast);
                         // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
-                        moveLocForDeepLoc(slave, shallowLoc);
+//                        boolean moveLocForDeepLoc = moveLocForDeepLoc(slave, shallowLoc);
                         // 鐢熸垚宸ヤ綔妗c�佹敼鍙樻祬搴撲綅鐨勬簮搴�/鐩爣搴� 搴撲綅鐘舵�併�佷笅鍙戝爢鍨涙満鍛戒护锛堢珛椹墽琛�)
 //                        moveLocForDeepLocPakin(slave, shallowLoc, wrkMast);
+                        if (moveLocForDeepLoc(slave, shallowLoc)){
+                            wrkMast.setUpdMk("Y");
+                            wrkMast.setIoPri(14D);
+                            wrkMastMapper.updateById(wrkMast);
+                        }
                     }
                     continue;
                 } else if (shallowLoc.getLocSts().equals("Q")) {
@@ -4645,7 +4647,7 @@
      * 鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堢珛鍗虫墽琛岀増)
      * tip锛氬悓姝�
      */
-    private synchronized void moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc) {
+    private synchronized boolean moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc) {
         try {
             log.info("绉诲簱锛欳rnSlave锛歿}銆丩ocMast锛歿}",JSON.toJSON(crn),JSON.toJSON(shallowLoc));
             List<Integer> rows = locMastService.queryDistinctRow(crn.getId());
@@ -4690,74 +4692,80 @@
 
             if (null == loc) {
                 log.error("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo());
+                return false;
 //                throw new CoolException("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo());
             } else {
-                // 鑾峰彇宸ヤ綔鍙�
-                int workNo = commonService.getWorkNo(0);
-                // 淇濆瓨宸ヤ綔妗�
-                WrkMast wrkMast = new WrkMast();
-                wrkMast.setWrkNo(workNo);
-                wrkMast.setIoTime(new Date());
-                wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
-                wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
-                wrkMast.setIoPri(13D);
-                wrkMast.setCrnNo(crn.getId());
-                wrkMast.setSourceLocNo(shallowLoc.getLocNo()); // 婧愬簱浣�
-                wrkMast.setLocNo(loc.getLocNo()); // 鐩爣搴撲綅
-                wrkMast.setFullPlt(shallowLoc.getFullPlt()); // 婊℃澘
-                wrkMast.setPicking("N"); // 鎷f枡
-                wrkMast.setExitMk("N"); // 閫�鍑�
-                wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘
-                wrkMast.setBarcode(shallowLoc.getBarcode()); // 鎵樼洏鐮�
-                wrkMast.setLinkMis("N");
-                wrkMast.setAppeTime(new Date());
-                wrkMast.setModiTime(new Date());
-                int res = wrkMastMapper.insert(wrkMast);
-                if (res == 0) {
-                    throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
-                }
-                // 宸ヤ綔妗f槑缁嗕繚瀛�
-                if (shallowLoc.getLocSts().equals("F")) {
-                    List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo()));
-                    for (LocDetl locDetl : locDetls) {
-                        WrkDetl wrkDetl = new WrkDetl();
-                        wrkDetl.setWrkNo(workNo);
-                        wrkDetl.setIoTime(new Date());
-                        wrkDetl.setAnfme(locDetl.getAnfme());
-                        VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
-                        wrkDetl.setAppeTime(new Date());
-                        wrkDetl.setModiTime(new Date());
-                        if (!wrkDetlService.insert(wrkDetl)) {
-                            throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+                try {
+                    // 鑾峰彇宸ヤ綔鍙�
+                    int workNo = commonService.getWorkNo(0);
+                    // 淇濆瓨宸ヤ綔妗�
+                    WrkMast wrkMast = new WrkMast();
+                    wrkMast.setWrkNo(workNo);
+                    wrkMast.setIoTime(new Date());
+                    wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+                    wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
+                    wrkMast.setIoPri(13D);
+                    wrkMast.setCrnNo(crn.getId());
+                    wrkMast.setSourceLocNo(shallowLoc.getLocNo()); // 婧愬簱浣�
+                    wrkMast.setLocNo(loc.getLocNo()); // 鐩爣搴撲綅
+                    wrkMast.setFullPlt(shallowLoc.getFullPlt()); // 婊℃澘
+                    wrkMast.setPicking("N"); // 鎷f枡
+                    wrkMast.setExitMk("N"); // 閫�鍑�
+                    wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘
+                    wrkMast.setBarcode(shallowLoc.getBarcode()); // 鎵樼洏鐮�
+                    wrkMast.setLinkMis("N");
+                    wrkMast.setAppeTime(new Date());
+                    wrkMast.setModiTime(new Date());
+                    int res = wrkMastMapper.insert(wrkMast);
+                    if (res == 0) {
+                        throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+                    }
+                    // 宸ヤ綔妗f槑缁嗕繚瀛�
+                    if (shallowLoc.getLocSts().equals("F")) {
+                        List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo()));
+                        for (LocDetl locDetl : locDetls) {
+                            WrkDetl wrkDetl = new WrkDetl();
+                            wrkDetl.setWrkNo(workNo);
+                            wrkDetl.setIoTime(new Date());
+                            wrkDetl.setAnfme(locDetl.getAnfme());
+                            VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
+                            wrkDetl.setAppeTime(new Date());
+                            wrkDetl.setModiTime(new Date());
+                            if (!wrkDetlService.insert(wrkDetl)) {
+                                throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+                            }
                         }
                     }
-                }
-                // 淇敼婧愬簱浣嶇姸鎬�
-                if (shallowLoc.getLocSts().equals("D") || shallowLoc.getLocSts().equals("F")) {
-                    shallowLoc.setLocSts("R"); // R.鍑哄簱棰勭害
-                    shallowLoc.setModiTime(new Date());
-                    if (!locMastService.updateById(shallowLoc)) {
-                        throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
+                    // 淇敼婧愬簱浣嶇姸鎬�
+                    if (shallowLoc.getLocSts().equals("D") || shallowLoc.getLocSts().equals("F")) {
+                        shallowLoc.setLocSts("R"); // R.鍑哄簱棰勭害
+                        shallowLoc.setModiTime(new Date());
+                        if (!locMastService.updateById(shallowLoc)) {
+                            throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
+                        }
+                    } else {
+                        throw new CoolException("婧愬簱浣嶅嚭搴撳け璐�");
                     }
-                } else {
-                    throw new CoolException("婧愬簱浣嶅嚭搴撳け璐�");
-                }
-                // 淇敼鐩爣搴撲綅鐘舵��
-                if (loc.getLocSts().equals("O")) {
-                    loc.setLocSts("S"); // S.鍏ュ簱棰勭害
-                    loc.setModiTime(new Date());
-                    if (!locMastService.updateById(loc)) {
-                        throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
+                    // 淇敼鐩爣搴撲綅鐘舵��
+                    if (loc.getLocSts().equals("O")) {
+                        loc.setLocSts("S"); // S.鍏ュ簱棰勭害
+                        loc.setModiTime(new Date());
+                        if (!locMastService.updateById(loc)) {
+                            throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
+                        }
+                    } else {
+                        throw new CoolException("绉昏浆澶辫触");
                     }
-                } else {
-                    throw new CoolException("绉昏浆澶辫触");
+                } catch (Exception e){
+                    log.error("鍙屾繁搴撲綅闃诲锛屽娴呭簱浣嶈繘琛岀Щ杞け璐�", e);
                 }
             }
         } catch (Exception e) {
             log.error("鍙屾繁搴撲綅闃诲锛屽娴呭簱浣嶈繘琛岀Щ杞け璐�", e);
-            e.printStackTrace();
-            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+//            e.printStackTrace();
+//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
         }
+        return true;
     }
 
     /**

--
Gitblit v1.9.1