From b7d562f09526fc5d1fddc3a692f47aeb3ac956f6 Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期二, 28 四月 2026 04:09:14 +0800
Subject: [PATCH] #退库优化/自动跨巷道移库V1

---
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java |   54 ++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 36 insertions(+), 18 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
index f000220..c1e7965 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -194,13 +194,6 @@
                             }
                         }
                     }
-                    if(wrkMast.getSourceStaNo().equals("1070")){
-                        WrkMast wrkMastOld = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode",wrkMast.getBarcode()).eq("loc_no",wrkMast.getSourceLocNo()));
-                        wrkMastOld.setOveMk("Y");
-                        if(!wrkMastService.updateById(wrkMastOld)){
-                            return FAIL.setMsg("鍑哄簱鍥炲簱 ===>> 鍘熶换鍔″畬鎴愬け璐�; [workNo=" + wrkMastOld.getWrkNo() + "],[locNo=" + wrkMastOld.getLocNo() + "]");
-                        }
-                    }
                     // 淇敼搴撲綅鐘舵�� S ====>> F
                     if (locMast.getLocSts().equals("S")) {
                         locMast.setLocSts("F");
@@ -457,6 +450,14 @@
 //                    }
                     movLoc(wrkMast);
                     break;
+                case 2:WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode",wrkMast.getBarcode()).eq("io_type",101));
+                if(!Cools.isEmpty(wrkMast1)) {
+                    wrkMast1.setOveMk("Y");
+                }
+                if(!wrkMastService.updateById(wrkMast1)) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return FAIL.setMsg("鏇存柊閫�搴撹法鍖哄煙瀹屾垚鐘舵�佸け璐�; [workNo=" + wrkMast1.getWrkNo());
+                }break;
                 default:
                     break;
             }
@@ -607,19 +608,36 @@
                             throw new CoolException("宸ヤ綅鐘舵�佷慨鏀瑰け璐ワ紒锛�");
                         }
                     } else {
-                        if(!Objects.isNull(wrkMast.getPacked())){ //涓嶆槸鏈贩閬撶殑鍑哄簱鑷�1070锛屼箣鍓嶇殑璺ㄥ贩閬撳嚭搴撹繘琛屽畬缁撴搷浣�
-                            WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no",wrkMast.getPacked()));
-                            if(!Objects.isNull(wrkMast1)) {
-                                wrkMast1.setOveMk("Y");
-                                wrkMastService.updateById(wrkMast1);
+                        if(!Objects.isNull(wrkMast.getPacked()) || !Objects.isNull(wrkMast.getExitMk())){ //鏍囪
+                            if(!Objects.isNull(wrkMast.getPacked())){
+                                WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no",wrkMast.getPacked()));
+                                if(!Objects.isNull(wrkMast1)) {
+                                    wrkMast1.setOveMk("Y");
+                                    wrkMastService.updateById(wrkMast1);
+                                }
                             }
-                            LocAroundBind bLocNo = locAroundBindService.selectOne(new EntityWrapper<LocAroundBind>().eq("b_loc_no", wrkMast.getSourceLocNo()));
-                            if (Objects.isNull(bLocNo)) {
-                                throw new CoolException("鏁版嵁閿欒锛� 鐩爣宸ヤ綅涓嶅瓨鍦紒锛�");
+                            movLoc(wrkMast);
+                            LocMast locMastTarget = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no",wrkMast.getLocNo()));
+                            // 淇敼搴撲綅鐘舵�� S ====>> F
+                            if (locMastTarget.getLocSts().equals("S")) {
+                                locMastTarget.setLocSts("F");
+                                locMastTarget.setBarcode(wrkMast.getBarcode());
+                                locMastTarget.setIoTime(now);
+                                locMastTarget.setModiTime(now);
+                                if (!locMastService.updateById(locMastTarget)) {
+                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                    return FAIL.setMsg("閫�搴撹法鍖哄煙鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+                                }
                             }
-                            bLocNo.setLocType(LocStsType.LOC_STS_TYPE_O.type);
-                            if (!locAroundBindService.updateById(bLocNo)) {
-                                throw new CoolException("宸ヤ綅鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+                            if(!Objects.isNull(wrkMast.getPacked())){
+                                LocAroundBind bLocNo = locAroundBindService.selectOne(new EntityWrapper<LocAroundBind>().eq("b_loc_no", wrkMast.getSourceLocNo()));
+                                if (Objects.isNull(bLocNo)) {
+                                    throw new CoolException("鏁版嵁閿欒锛� 鐩爣宸ヤ綅涓嶅瓨鍦紒锛�");
+                                }
+                                bLocNo.setLocType(LocStsType.LOC_STS_TYPE_O.type);
+                                if (!locAroundBindService.updateById(bLocNo)) {
+                                    throw new CoolException("宸ヤ綅鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+                                }
                             }
                         }
 //                    // 鍑哄簱纭淇″彿浣�

--
Gitblit v1.9.1