From cac8fbf138586bdf451cdb656758b0b8958df07a Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 26 三月 2026 08:51:01 +0800
Subject: [PATCH] #解决拣选回库后库存丢失问题,库存明细的预留字段与工作明细预留字段不一致情况

---
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 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 f25e07d..d95957b 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -276,13 +276,15 @@
 
                     for (WrkDetl wrkDetl : wrkDetls53) {
 
-                        LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
+                        LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), null, null, null, null, null);
                         if (null != locDetl) {
-                            if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3())) {
+                            if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), null, null, null, null, null)) {
 //                                exceptionHandle("鎷f枡鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                                 return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                             }
+                        }else {
+                            return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 鎼滅储搴撳瓨鏄庣粏澶辫触缁撴灉涓虹┖; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                         }
                         if (storeType != null) {
                             OrderDetl orderDetl = new OrderDetl();
@@ -462,6 +464,8 @@
                         locMast.setLocSts(wrkMast.getFullPlt().equals("Y") ? "F" : "D");
                         locMast.setBarcode(wrkMast.getBarcode());
                         locMast.setIoTime(now);
+                        //set 鐩樼偣瀛楁涓篩
+                        locMast.setMk("Y");
                         locMast.setModiTime(now);
                         if (!locMastService.updateById(locMast)) {
 //                            exceptionHandle("鐩樼偣鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
@@ -489,6 +493,8 @@
                     if (null != sourceLoc) {
                         sourceLoc.setBarcode("");
                         sourceLoc.setLocSts("O");
+                        locMast.setMk(sourceLoc.getMk());
+                        sourceLoc.setMk("N");
                         sourceLoc.setModiTime(now);
                         sourceLoc.setIoTime(now);
                         if (!locMastService.updateById(sourceLoc)) {
@@ -654,6 +660,8 @@
                     // 淇敼婧愬簱浣嶇姸鎬� R ===>> O
                     if (locMast.getLocSts().equals("R")) {
                         locMast.setLocSts("O");
+                        //璁剧疆鐩樼偣瀛楁涓篘
+                        locMast.setMk("N");
                         locMast.setBarcode("");
                         locMast.setModiTime(now);
                         locMast.setIoTime(now);

--
Gitblit v1.9.1