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/service/impl/WorkServiceImpl.java | 41 ++++++++++++++++++++++++++++++++++++++++-
1 files changed, 40 insertions(+), 1 deletions(-)
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 039e8be..231f907 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -387,6 +387,7 @@
wrkMast.setModiUser(userId);
wrkMast.setModiTime(now);
wrkMast.setPacked(itemId);
+ wrkMast.setMk(locMast.getMk());
if (!wrkMastService.insert(wrkMast)) {
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細" + dto.getLocNo());
}
@@ -461,6 +462,10 @@
}
// 鑾峰彇搴撲綅
LocMast locMast = locMastService.selectById(taskDto.getLocNo());
+ if(!locMast.getLocSts().equals("F")) {
+ throw new CoolException("璁㈠崟棰勮鏁版嵁宸茶繃鏈燂紝璇烽噸璇�");
+ }
+
// 鍒ゆ柇鏄惁鏄洏鐐瑰崟
String orderNo = taskDto.getLocDtos().get(0).getOrderNo();
OrderPakout orderPakout = orderPakOutService.selectByNo(orderNo);
@@ -498,6 +503,7 @@
wrkMast.setAppeTime(now);
wrkMast.setModiUser(userId);
wrkMast.setModiTime(now);
+ wrkMast.setMk(locMast.getMk());
if (!wrkMastService.insert(wrkMast)) {
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細" + taskDto.getLocNo());
}
@@ -703,6 +709,7 @@
wrkMast.setAppeTime(now);
wrkMast.setModiUser(userId);
wrkMast.setModiTime(now);
+ wrkMast.setMk(locMast.getMk());
boolean res = wrkMastService.insert(wrkMast);
if (!res) {
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
@@ -773,6 +780,7 @@
wrkMast.setAppeTime(now);
wrkMast.setModiUser(1L);
wrkMast.setModiTime(now);
+ wrkMast.setMk(locMast.getMk());
wrkMast.setMemo("鐢熸垚鑷姩绌烘澘鍑哄簱");
boolean res = wrkMastService.insert(wrkMast);
if (!res) {
@@ -813,6 +821,7 @@
throw new CoolException(firstFrozenLocNo + "搴撲綅宸茶鍐荤粨!");
}
LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
+
if (locMast.getLocSts().equals("F")) {
// 鍚姩鍑哄簱寮�濮� 107.鐩樼偣鍑哄簱
stockOut(staNo, locDetlDtos, IoWorkType.CHECK_OUT, userId, param.getCheckId(), null);
@@ -832,10 +841,36 @@
if (Cools.isEmpty(sourceLoc)) {
throw new CoolException("鏈壘鍒板簱浣�");
}
+
+ if (Utils.isDeepLoc(slaveProperties, sourceLocNo)) {
+ String shallowLoc = Utils.getShallowLoc(slaveProperties, sourceLocNo);
+ LocMast locMast = locMastService.selectById(shallowLoc);
+ if (locMast == null) {
+ throw new CoolException(shallowLoc + "娴呭簱浣嶄笉瀛樺湪");
+ }
+
+ if(!locMast.getLocSts().equals("O")) {
+ throw new CoolException(shallowLoc + "娴呭簱浣嶇姸鎬佷笉涓虹┖");
+ }
+ }
+
LocMast loc = locMastService.selectById(locNo);
if (Cools.isEmpty(loc)) {
throw new CoolException("鏈壘鍒板簱浣�");
}
+
+ if (Utils.isDeepLoc(slaveProperties, locNo)) {
+ String shallowLoc = Utils.getShallowLoc(slaveProperties, locNo);
+ LocMast locMast = locMastService.selectById(shallowLoc);
+ if (locMast == null) {
+ throw new CoolException(shallowLoc + "娴呭簱浣嶄笉瀛樺湪");
+ }
+
+ if(!locMast.getLocSts().equals("O")) {
+ throw new CoolException(shallowLoc + "娴呭簱浣嶆湁璐э紝鏃犳硶绉昏浆");
+ }
+ }
+
// 鍒ゆ柇搴撲綅鏄惁鍐荤粨
String sourceLocFrozen = locMastMapper.findFirstFrozenLocNo(Arrays.asList(sourceLoc.getLocNo(), loc.getLocNo()));
if (sourceLocFrozen != null) {
@@ -878,6 +913,7 @@
wrkMast.setAppeTime(now);
wrkMast.setModiUser(userId);
wrkMast.setModiTime(now);
+ wrkMast.setMemo("浜哄伐鎵嬪姩绉诲簱");
boolean res = wrkMastService.insert(wrkMast);
if (!res) {
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
@@ -1008,7 +1044,7 @@
// todo 鐩樼偣璁板綍
// 淇敼搴撳瓨
if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(), locDetl.getBrand(),
- locDetl.getStandby1(), locDetl.getStandby2(), locDetl.getStandby3(), locDetl.getBoxType1(), locDetl.getBoxType2(), locDetl.getBoxType3())) {
+ adjust.getStandby1(), locDetl.getStandby2(), locDetl.getStandby3(), locDetl.getBoxType1(), locDetl.getBoxType2(), locDetl.getBoxType3())) {
throw new CoolException(locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "鎵瑰彿淇敼鏁伴噺澶辫触");
}
// 淇濆瓨璋冩暣璁板綍
@@ -1182,6 +1218,9 @@
if (Cools.isEmpty(wrkMast)) {
throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
}
+ if (wrkMast.getWrkSts() ==14|| wrkMast.getWrkSts() == 15) {
+ throw new CoolException(workNo + "宸ヤ綔妗e凡瀹屾垚涓嶅厑璁稿彇娑�");
+ }
String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣�
String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬�
// 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級
--
Gitblit v1.9.1