From 2aa6001a302f86e521584ccc738d3b009e200cd2 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期四, 19 三月 2026 17:48:05 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 127 ++++++++++++++++++++++++++++++++++--------
1 files changed, 103 insertions(+), 24 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 943152a..f414b25 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
+import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.service.*;
import com.zy.asrs.task.AbstractHandler;
@@ -12,6 +13,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@@ -23,6 +25,9 @@
@Transactional
public class WorkMastHandler extends AbstractHandler<String> {
+
+ @Autowired
+ private MatService matService;
@Autowired
private WrkMastService wrkMastService;
@Autowired
@@ -124,11 +129,15 @@
}
// 鏇存柊璁㈠崟瀹屾垚鏁伴噺
- OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+ OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBomCode(),wrkDetl.getThreeCode());
try {
if(!Cools.isEmpty(orderDetl)){
- if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
- wrkDetl.getBatch(),wrkDetl.getAnfme())){
+ if(!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(),
+ wrkDetl.getMatnr(),
+ wrkDetl.getBatch(),
+ wrkDetl.getAnfme(),
+ wrkDetl.getBomCode(),
+ wrkDetl.getThreeCode())){
// exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
// wrkMast.getWrkNo(), wrkMast.getLocNo());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -142,6 +151,7 @@
if (locMast.getLocSts().equals("S")) {
locMast.setLocSts("F");
locMast.setBarcode(wrkMast.getBarcode());
+ locMast.setFullPlt(wrkMast.getFullPlt());
locMast.setIoTime(now);
locMast.setModiTime(now);
if (!locMastService.updateById(locMast)) {
@@ -161,13 +171,53 @@
return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
for (WrkDetl wrkDetl : wrkDetls53) {
+ String matnr = wrkDetl.getMatnr();
+ if (matnr.substring(0,1).equals("B")) {
+ wrkDetl.setMatnr(matnr.substring(1));
+ }
LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
if (null != locDetl) {
if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
// exceptionHandle("鎷f枡鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
+ log.error("鎹℃枡鏇存柊搴撳瓨澶辫触锛屽簱浣�"+locMast.getLocNo()+",鐗╂枡鍙�"+wrkDetl.getMatnr());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+
return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ }
+ List<LocDetl> locDetls1 = locDetlService.selectList(new EntityWrapper<LocDetl>()
+ .eq("loc_no", wrkMast.getLocNo())
+ .eq("matnr", wrkDetl.getMatnr())
+ .eq(!Cools.isEmpty(wrkDetl.getBatch()), "batch", wrkDetl.getBatch())
+ .in(Cools.isEmpty(wrkDetl.getBatch()), "batch", null, "", " ")
+ );
+ if (locDetls1.size() != 1) {
+ log.error("鎹℃枡鏇存柊搴撳瓨鍚庨噸鏌ュ簱瀛樺け璐ワ紝鏈壘鍒板簱瀛樻垨鏌ヨ鍒颁笉涓轰竴涓�");
+ }else {
+ BigDecimal newAnf = new BigDecimal(locDetls1.get(0).getAnfme().toString());
+ BigDecimal subAnf = new BigDecimal((locDetl.getAnfme() - wrkDetl.getAnfme()));
+ if (newAnf.compareTo(subAnf) != 0) {
+ log.error("鎹℃枡鏇存柊搴撳瓨鍚庯紝鍙嶆煡鏁伴噺寮傚父锛屽簱浣�"+locMast.getLocNo()+",鐗╂枡鍙�"+wrkDetl.getMatnr()+",閲嶆煡鏁伴噺"+newAnf+",搴斾负鏁伴噺"+subAnf);
+ }
+
+ }
+ } else {
+ if (Math.abs(wrkDetl.getAnfme())<=0){
+ continue;
+ }
+ LocDetl detl = new LocDetl();
+
+// Mat mat = matService.selectByMatnr(wrkDetl.getMatnr());
+// detl.sync(mat);
+ detl.sync(wrkDetl);
+ detl.setOrderNo(wrkDetl.getOrderNo());//璁㈠崟缂栧彿
+ detl.setLocNo(wrkMast.getLocNo()); // 搴撲綅鍙�
+ detl.setAnfme(Math.abs(wrkDetl.getAnfme())); // 鏁伴噺
+ detl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜
+ detl.setModiTime(now);
+ detl.setAppeTime(now);
+ if (!locDetlService.insert(detl)) {
+ return FAIL.setMsg("琛ユ枡 ===>> 娣诲姞搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
}
@@ -204,19 +254,17 @@
// 鏍规嵁宸ヤ綔鍙凤紝鏌ヨ宸ヤ綔鏄庣粏妗�
List<WrkDetl> wrkDetls54 = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
if (wrkDetls54.isEmpty()) {
-// exceptionHandle("骞舵澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ exceptionHandle("骞舵澘鍏ュ簱 ===>> 宸ヤ綔鏄庣粏妗d负绌猴紱[workNo={0}]", wrkMast.getWrkNo());
}
// 淇敼搴撳瓨鏄庣粏鏁伴噺锛屽鏃犲簱瀛橈紝鏇炬柊澧�
for (WrkDetl wrkDetl:wrkDetls54) {
-
- LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+ if (Cools.isEmpty(wrkDetl.getMemo())) {
+ continue;
+ }
+ LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBomCode(), wrkDetl.getThreeCode());
if (null != locDetl) {
- if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
-// exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ if (!locDetlService.updateAnfme(locDetl.getAnfme() + wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBomCode(), wrkDetl.getThreeCode())) {
+ exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
}
} else {
locDetl = new LocDetl();
@@ -227,11 +275,29 @@
locDetl.setModiTime(now);
locDetl.setAppeTime(now);
if (!locDetlService.insert(locDetl)) {
-// exceptionHandle("骞舵澘鍏ュ簱 ===>> 鏂板搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 鏂板搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ exceptionHandle("骞舵澘鍏ュ簱 ===>> 鏂板搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
}
}
+
+ // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+ OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBomCode(), wrkDetl.getThreeCode());
+ if (orderDetl == null) {
+ orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBomCode(), wrkDetl.getThreeCode());
+ }
+ try {
+ if(!Cools.isEmpty(orderDetl)){
+ if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(),
+ wrkDetl.getMatnr(),
+ orderDetl.getBatch(),
+ wrkDetl.getAnfme(),
+ wrkDetl.getBomCode(),
+ wrkDetl.getThreeCode())) {
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ }
+ }
+ } catch (Exception ignore){}
+
}
// 淇敼搴撲綅鐘舵�� Q ====>> F
if (locMast.getLocSts().equals("Q")) {
@@ -240,9 +306,7 @@
locMast.setIoTime(now);
locMast.setModiTime(now);
if (!locMastService.updateById(locMast)) {
-// exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+ exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
}
}
break;
@@ -272,6 +336,7 @@
case 11:
// 榛樿鐩爣搴撲綅鏄┖鏉�
String locSts = "D";
+ Long modiUser = wrkMast.getModiUser();
// 搴撲綅绉昏浆鍒ゆ柇鏄惁涓虹┖鏉跨Щ杞�
if (wrkMast.getEmptyMk().equals("N")) {
locSts = "F";
@@ -289,6 +354,7 @@
sourceLoc.setLocSts("O");
sourceLoc.setModiTime(now);
sourceLoc.setIoTime(now);
+ sourceLoc.setModiUser(modiUser);
if (!locMastService.updateById(sourceLoc)) {
// exceptionHandle("搴撲綅绉昏浆 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLoc={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -300,6 +366,7 @@
locMast.setBarcode(wrkMast.getBarcode());
locMast.setIoTime(now);
locMast.setModiTime(now);
+ locMast.setModiUser(modiUser);
if (!locMastService.updateById(locMast)) {
// exceptionHandle("搴撲綅绉昏浆 ===>> 淇敼鐩爣搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -352,12 +419,24 @@
}
for (WrkDetl w: wrkDetls101) {
- //鏇存敼璁㈠崟鏁伴噺
- OrderDetl orderDetl=orderDetlService.selectItem(w.getOrderNo(),w.getMatnr(),w.getBatch());
- orderDetl.setQty(orderDetl.getQty()+w.getAnfme());
- if(!orderDetlService.updateById(orderDetl)){
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 淇敼璁㈠崟鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+ if (!Cools.isEmpty(w.getOrderNo())) {
+ //鏇存敼璁㈠崟鏁伴噺
+// OrderDetl orderDetl=orderDetlService.selectItem(w.getOrderNo(),w.getMatnr(),w.getBatch());
+ List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>()
+ .eq("order_no", w.getOrderNo())
+ .eq("matnr", w.getMatnr())
+ .eq(!Cools.isEmpty(w.getBatch()),"batch", w.getBatch())
+ );
+ if (Cools.isEmpty(orderDetls) || orderDetls.size() != 1) {
+ log.error("鍏ㄦ澘鍑哄簱鏇存柊璁㈠崟淇℃伅锛屾煡鎵惧埌璁㈠崟鏄庣粏涓虹┖鎴栦笉涓�1锛氳鍗�:"+w.getOrderNo()+",鐗╂枡:"+w.getMatnr()+",鎵规:"+w.getBatch());
+ continue;
+ }
+ OrderDetl orderDetl = orderDetls.get(0);
+ orderDetl.setQty(orderDetl.getQty()+w.getAnfme());
+ if(!orderDetlService.updateById(orderDetl)){
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 淇敼璁㈠崟鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+ }
}
}
--
Gitblit v1.9.1