From 0f64ee96e72e34135201f28e033e1b5537031712 Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期三, 10 十二月 2025 14:03:41 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/task/handler/WrkMastAgvHandler.java | 131 +++++++++++++++++++++++--------------------
1 files changed, 70 insertions(+), 61 deletions(-)
diff --git a/src/main/java/com/zy/asrs/task/handler/WrkMastAgvHandler.java b/src/main/java/com/zy/asrs/task/handler/WrkMastAgvHandler.java
index ef0cf30..c2f21f6 100644
--- a/src/main/java/com/zy/asrs/task/handler/WrkMastAgvHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WrkMastAgvHandler.java
@@ -10,6 +10,8 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import org.springframework.transaction.support.TransactionSynchronizationAdapter;
+import org.springframework.transaction.support.TransactionSynchronizationManager;
import java.util.ArrayList;
import java.util.Date;
@@ -22,6 +24,8 @@
@Autowired
private BasAgvMastService basAgvMastService;
@Autowired
+ private WrkMastService wrkMastService;
+ @Autowired
private BasAgvLocDetlService basAgvLocDetlService;
@Autowired
private BasAgvWrkDetlService basAgvWrkDetlService;
@@ -29,15 +33,21 @@
private LocMastService locMastService;
@Autowired
private LocDetlService locDetlService;
+ @Autowired
+ private OpenService openService;
- public ReturnT<String> start(BasAgvMast basAgvMast) {
+ public ReturnT<String> start(BasAgvMast basAgvMast) {
try {
Date now = new Date();
switch (basAgvMast.getIoType()){
case 0:
LocMast sourceLoc0 = locMastService.selectById(basAgvMast.getSourceLocNo());
locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", sourceLoc0.getLocNo()));
+ if(basAgvMast.getFloorNo() == 4){
+ basAgvMast.setBarcode(sourceLoc0.getBarcode());
+ basAgvMastService.updateById(basAgvMast);
+ }
sourceLoc0.setLocSts("O");
sourceLoc0.setBarcode("");
sourceLoc0.setModiTime(now);
@@ -47,25 +57,22 @@
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [TaskNo=" + basAgvMast.getTaskNo() + "],[locNo=" + basAgvMast.getSourceLocNo() + "]");
}
-
basAgvLocDetlService.delete(new EntityWrapper<BasAgvLocDetl>().eq("loc_no", basAgvMast.getSourceLocNo()));
basAgvWrkDetlService.delete(new EntityWrapper<BasAgvWrkDetl>().eq("wrk_no", basAgvMast.getTaskNo()));
basAgvMast.setStatus(3);
basAgvMastService.updateById(basAgvMast);
+ openService.agvBindAndBin(String.valueOf(basAgvMast.getTaskNo()));
break;
case 1:
LocMast sourceLoc1 = locMastService.selectById(basAgvMast.getSourceLocNo());
-
-
-
LocMast locMast1 = locMastService.selectById(basAgvMast.getLocNo());
List<LocDetl> locDetls1 = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", basAgvMast.getLocNo()));
if (!locDetls1.isEmpty()) {
locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", basAgvMast.getLocNo()));
}
-
// 淇敼鐩爣搴撲綅鐘舵�� ==> .locSts
locMast1.setLocSts("F");
+ locMast1.setBarcode(sourceLoc1.getBarcode());
locMast1.setIoTime(now);
locMast1.setModiTime(now);
if (!locMastService.updateById(locMast1)) {
@@ -73,21 +80,12 @@
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("搴撲綅绉昏浆 ===>> 淇敼鐩爣搴撲綅鐘舵�佸け璐�; [TaskNo=" + basAgvMast.getTaskNo() + "],[locNo=" + basAgvMast.getLocNo() + "]");
}
-
-
try{
// 杞Щ搴撳瓨鏄庣粏鏁版嵁: 搴撳瓨鍙� 鐢卞伐浣滄。婧愬簱浣嶅彉涓虹洰鏍囧簱浣�
locDetlService.updateLocNo(basAgvMast.getLocNo(), basAgvMast.getSourceLocNo());
-// if (!) {
-// exceptionHandle("搴撲綅绉昏浆 ===>> 杞Щ搴撳瓨鏄庣粏鏁版嵁澶辫触锛沎婧愬簱浣�={0}],[鐩爣搴撲綅={1}]", wrkMast.getSourceLocNo(), wrkMast.getLocNo());
-// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-// return FAIL.setMsg("搴撲綅绉昏浆 ===>> 杞Щ搴撳瓨鏄庣粏鏁版嵁澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
-// }
} catch (Exception e) {
-
+ return FAIL.setMsg(e.getMessage());
}
-
-
if (null != sourceLoc1) {
sourceLoc1.setBarcode("");
sourceLoc1.setLocSts("O");
@@ -103,13 +101,28 @@
basAgvLocDetlService.delete(new EntityWrapper<BasAgvLocDetl>().eq("loc_no", basAgvMast.getSourceLocNo()));
basAgvWrkDetlService.delete(new EntityWrapper<BasAgvWrkDetl>().eq("wrk_no", basAgvMast.getTaskNo()));
basAgvLocDetlService.delete(new EntityWrapper<BasAgvLocDetl>().eq("loc_no", basAgvMast.getLocNo()));
- basAgvMast.setStatus(3);
+ basAgvMast.setStatus(4);
basAgvMastService.updateById(basAgvMast);
+// openService.agvBindAndBin(String.valueOf(basAgvMast.getTaskNo()));
break;
case 2:
List<LocDetl> locDetls2 = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", basAgvMast.getLocNo()));
if (!locDetls2.isEmpty()) {
locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", basAgvMast.getLocNo()));
+ }
+
+ LocMast locMast2 = locMastService.selectById(basAgvMast.getLocNo());
+ // 淇敼搴撲綅鐘舵�� S ====>> F
+ if (locMast2.getLocSts().equals("S") ) {
+ locMast2.setLocSts("F");
+ locMast2.setIoTime(now);
+ locMast2.setModiTime(now);
+ } else if(basAgvMast.getTaskNo()>10000){
+ locMast2.setLocSts("D");
+ locMast2.setIoTime(now);
+ locMast2.setModiTime(now);
+ } else {
+ return FAIL.setMsg("搴撲綅鐘舵�佸紓甯�");
}
List<LocDetl> locDetlList1 = new ArrayList<>();
List<LocDetl> locDetlList2 = new ArrayList<>();
@@ -123,70 +136,66 @@
}
} else if (!basAgvWrkDetlList.isEmpty()){
for (BasAgvWrkDetl wrkDetl : basAgvWrkDetlList){
+ LocDetl locDetl = new LocDetl();
+ locDetl.sync(wrkDetl);
+ locDetl.setLocNo(basAgvMast.getLocNo()); // 搴撲綅鍙�
+ locDetl.setAnfme(wrkDetl.getAnfme()); // 鏁伴噺
+ locDetl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜
+ locDetl.setModiTime(now);
+ locDetl.setAppeTime(now);
+ locDetl.setOrigin("鍦ㄥ簱");
+ locDetlList2.add(locDetl);
- LocDetl locDetl = locDetlService.selectItem(basAgvMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand()
- ,wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3());
+ }
+ } else {
+ locMast2.setLocSts("D");
+ }
+
+ if (!locMastService.updateById(locMast2)) {
+ return FAIL;
+ }
+ if (!locDetlList1.isEmpty()){
+ for (LocDetl locDetlold : locDetlList1) {
+ LocDetl locDetl = locDetlService.selectItem(basAgvMast.getLocNo(), locDetlold.getMatnr(), locDetlold.getBatch(),locDetlold.getBrand()
+ ,locDetlold.getStandby1(),locDetlold.getStandby2(),locDetlold.getStandby3(),locDetlold.getBoxType1(),locDetlold.getBoxType2(),locDetlold.getBoxType3());
if (null != locDetl) {
- if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), basAgvMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3()
- ,wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3())) {
-// exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊搴撳瓨鏄庣粏澶辫触; [workNo=" + basAgvMast.getTaskNo() + "],[locNo=" + basAgvMast.getLocNo() + "]");
+ if (!locDetlService.updateAnfme(locDetlold.getAnfme(), basAgvMast.getLocNo(), locDetlold.getMatnr(), locDetlold.getBatch(),locDetlold.getBrand(),locDetlold.getStandby1(),locDetlold.getStandby2(),locDetlold.getStandby3()
+ ,locDetlold.getBoxType1(),locDetlold.getBoxType2(),locDetlold.getBoxType3())) {
}
} else {
- locDetl = new LocDetl();
- locDetl.sync(wrkDetl);
- locDetl.setLocNo(basAgvMast.getLocNo()); // 搴撲綅鍙�
- locDetl.setAnfme(wrkDetl.getAnfme()); // 鏁伴噺
- locDetl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜
- locDetl.setModiTime(now);
- locDetl.setAppeTime(now);
- locDetl.setOrigin("鍦ㄥ簱");
- if (!locDetlService.insert(locDetl)) {
-// exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 娣诲姞搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return FAIL.setMsg("鍏ュ簱 ===>> 娣诲姞搴撳瓨鏄庣粏澶辫触; [workNo=" + basAgvMast.getTaskNo() + "],[locNo=" + basAgvMast.getLocNo() + "]");
+ if (!locDetlService.insert(locDetlold)) {
}
}
-
- }
- }
-
- LocMast locMast2 = locMastService.selectById(basAgvMast.getLocNo());
-
-
- // 淇敼搴撲綅鐘舵�� S ====>> F
- if (locMast2.getLocSts().equals("S")) {
- locMast2.setLocSts("F");
- locMast2.setIoTime(now);
- locMast2.setModiTime(now);
- if (!locMastService.updateById(locMast2)) {
-// exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return FAIL.setMsg("鍏ㄥ叆搴� ===>> 淇敼搴撲綅鐘舵�佸け璐�; [TaskNo=" + basAgvMast.getTaskNo() + "],[locNo=" + basAgvMast.getLocNo() + "]");
- }
- }
-
-
- if (!locDetlList1.isEmpty()){
- for (LocDetl locDetl : locDetlList1) {
- locDetlService.insert(locDetl);
}
}
if (!locDetlList2.isEmpty()){
- for (LocDetl locDetl : locDetlList2) {
- locDetlService.insert(locDetl);
+ for (LocDetl locDetlold : locDetlList2) {
+ LocDetl locDetl = locDetlService.selectItem(basAgvMast.getLocNo(), locDetlold.getMatnr(), locDetlold.getBatch(),locDetlold.getBrand()
+ ,locDetlold.getStandby1(),locDetlold.getStandby2(),locDetlold.getStandby3(),locDetlold.getBoxType1(),locDetlold.getBoxType2(),locDetlold.getBoxType3());
+ if (null != locDetl) {
+ if (!locDetlService.updateAnfme(locDetlold.getAnfme(), basAgvMast.getLocNo(), locDetlold.getMatnr(), locDetlold.getBatch(),locDetlold.getBrand(),locDetlold.getStandby1(),locDetlold.getStandby2(),locDetlold.getStandby3()
+ ,locDetlold.getBoxType1(),locDetlold.getBoxType2(),locDetlold.getBoxType3())) {
+ }
+ } else {
+ if (!locDetlService.insert(locDetlold)) {
+ }
+ }
}
}
basAgvLocDetlService.delete(new EntityWrapper<BasAgvLocDetl>().eq("loc_no", basAgvMast.getLocNo()));
basAgvWrkDetlService.delete(new EntityWrapper<BasAgvWrkDetl>().eq("wrk_no", basAgvMast.getTaskNo()));
basAgvMast.setStatus(3);
+ if(basAgvMast.getFloorNo() == 2 || basAgvMast.getFloorNo() == 3){
+ basAgvMast.setStatus(4);
+ }
basAgvMastService.updateById(basAgvMast);
+ openService.agvBindAndBin(String.valueOf(basAgvMast.getTaskNo()));
break;
case 3:
basAgvMast.setStatus(3);
basAgvMastService.updateById(basAgvMast);
+ openService.agvBindAndBin(String.valueOf(basAgvMast.getTaskNo()));
break;
default:
return FAIL.setMsg("鏆備笉鏀寔璇ョ被鍨�");
--
Gitblit v1.9.1