From 57610f520d214c9b5797191f7dbc68c121c7f0c1 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期二, 14 四月 2026 19:34:52 +0800
Subject: [PATCH] mat导入问题 移库数据丢失修复
---
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 105 +++++++++++++++++++++++++++++++++++-----------------
1 files changed, 70 insertions(+), 35 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 003e018..cf50759 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -145,7 +145,7 @@
Double v = Math.round((selectOne.getStockQty() - selectOne.getAnfme()) * 10000) / 10000.0;
- OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), null, null, null, null,
+ OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), "", "", "", "",
null, null, null);
if (!Objects.isNull(orderDetlPakout)) {
@@ -469,24 +469,27 @@
}
/***/
- if (!Objects.isNull(wrkMast.getWrkCode())) {
- LocMast lcmst = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getSourceLocNo()));
- lcmst.setLocSts(LocStsType.LOC_STS_TYPE_O.type);
- if (!locMastService.updateById(lcmst)) {
- throw new CoolException("搴撲綅鐘舵�佷慨鏀瑰け璐ワ紒锛�");
- }
+ if (wrkMast.getIoType() !=2){
+ if (!Objects.isNull(wrkMast.getWrkCode())) {
+ LocMast lcmst = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getSourceLocNo()));
+ lcmst.setLocSts(LocStsType.LOC_STS_TYPE_O.type);
+ if (!locMastService.updateById(lcmst)) {
+ throw new CoolException("搴撲綅鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+ }
- 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("宸ヤ綅鐘舵�佷慨鏀瑰け璐ワ紒锛�");
- }
+ 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("宸ヤ綅鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+ }
- locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()));
+ locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()));
+ }
}
+
return SUCCESS;
}
@@ -494,31 +497,65 @@
public void movLoc(WrkMast wrkMast) {
LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+ if (Objects.isNull(locMast)) {
+ throw new CoolException("鐩爣搴撲綅涓嶅瓨鍦紒锛�");
+ }
Date now = new Date();
+ Long operatorUser = wrkMast.getModiUser();
+ if (Objects.isNull(operatorUser)) {
+ operatorUser = wrkMast.getAppeUser();
+ }
// 榛樿鐩爣搴撲綅鏄┖鏉�
String locSts = "D";
// 搴撲綅绉昏浆鍒ゆ柇鏄惁涓虹┖鏉跨Щ杞�
- if (wrkMast.getEmptyMk().equals("N")) {
+ if ("N".equals(wrkMast.getEmptyMk())) {
locSts = "F";
- // 杞Щ搴撳瓨鏄庣粏鏁版嵁: 搴撳瓨鍙� 鐢卞伐浣滄。婧愬簱浣嶅彉涓虹洰鏍囧簱浣�
- if (!locDetlService.updateLocNo(wrkMast.getLocNo(), wrkMast.getSourceLocNo())) {
-// exceptionHandle("搴撲綅绉昏浆 ===>> 杞Щ搴撳瓨鏄庣粏鏁版嵁澶辫触锛沎婧愬簱浣�={0}],[鐩爣搴撲綅={1}]", wrkMast.getSourceLocNo(), wrkMast.getLocNo());
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- log.info("搴撲綅绉昏浆 ===>> 杞Щ搴撳瓨鏄庣粏鏁版嵁澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ List<LocDetl> sourceDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()));
+ for (LocDetl sourceDetl : sourceDetls) {
+ LocDetl targetDetl = locDetlService.selectItem(wrkMast.getLocNo(), sourceDetl.getMatnr(), sourceDetl.getBatch(), sourceDetl.getBrand(),
+ sourceDetl.getStandby1(), sourceDetl.getStandby2(), sourceDetl.getStandby3(), sourceDetl.getBoxType1(),
+ sourceDetl.getBoxType2(), sourceDetl.getBoxType3());
+ if (null != targetDetl && !Objects.equals(targetDetl.getId(), sourceDetl.getId())) {
+ Double targetQty = targetDetl.getAnfme() == null ? 0D : targetDetl.getAnfme();
+ Double sourceQty = sourceDetl.getAnfme() == null ? 0D : sourceDetl.getAnfme();
+ targetDetl.setAnfme(Math.round((targetQty + sourceQty) * 10000) / 10000.0);
+ targetDetl.setAreaId(locMast.getAreaId());
+ targetDetl.setAreaName(locMast.getAreaName());
+ targetDetl.setModiTime(now);
+ if (!Objects.isNull(operatorUser)) {
+ targetDetl.setModiUser(operatorUser);
+ }
+ if (!locDetlService.updateById(targetDetl)) {
+ throw new CoolException("搴撲綅绉昏浆 ===>> 鍚堝苟搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[sourceLoc=" + wrkMast.getSourceLocNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ }
+ if (!locDetlService.deleteById(sourceDetl.getId())) {
+ throw new CoolException("搴撲綅绉昏浆 ===>> 鍒犻櫎婧愬簱瀛樻槑缁嗗け璐�; [workNo=" + wrkMast.getWrkNo() + "],[sourceLoc=" + wrkMast.getSourceLocNo() + "]");
+ }
+ } else {
+ sourceDetl.setLocNo(wrkMast.getLocNo());
+ sourceDetl.setAreaId(locMast.getAreaId());
+ sourceDetl.setAreaName(locMast.getAreaName());
+ sourceDetl.setModiTime(now);
+ if (!Objects.isNull(operatorUser)) {
+ sourceDetl.setModiUser(operatorUser);
+ }
+ if (!locDetlService.updateById(sourceDetl)) {
+ throw new CoolException("搴撲綅绉昏浆 ===>> 杞Щ搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[sourceLoc=" + wrkMast.getSourceLocNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ }
+ }
}
}
// 淇敼婧愬簱浣嶇姸鎬� ==> O
LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo());
- if (null != sourceLoc) {
- sourceLoc.setBarcode("");
- sourceLoc.setLocSts("O");
- sourceLoc.setModiTime(now);
- sourceLoc.setIoTime(now);
- if (!locMastService.updateById(sourceLoc)) {
-// exceptionHandle("搴撲綅绉昏浆 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLoc={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- log.info("搴撲綅绉昏浆 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
- }
+ if (null == sourceLoc) {
+ throw new CoolException("婧愬簱浣嶄笉瀛樺湪锛侊紒");
+ }
+ sourceLoc.setBarcode("");
+ sourceLoc.setLocSts("O");
+ sourceLoc.setModiTime(now);
+ sourceLoc.setIoTime(now);
+ if (!locMastService.updateById(sourceLoc)) {
+ throw new CoolException("搴撲綅绉昏浆 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
// 淇敼鐩爣搴撲綅鐘舵�� ==> .locSts
locMast.setLocSts(locSts);
@@ -526,9 +563,7 @@
locMast.setIoTime(now);
locMast.setModiTime(now);
if (!locMastService.updateById(locMast)) {
-// exceptionHandle("搴撲綅绉昏浆 ===>> 淇敼鐩爣搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- log.info("搴撲綅绉昏浆 ===>> 淇敼鐩爣搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ throw new CoolException("搴撲綅绉昏浆 ===>> 淇敼鐩爣搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
}
--
Gitblit v1.9.1