From 6cfcb307f01b9550b6cd67321f2c1db345b4da19 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期一, 13 一月 2025 16:07:21 +0800
Subject: [PATCH] 优化自动移库逻辑及调拨信息上报
---
src/main/java/com/zy/common/service/AgvCommonService.java | 6
src/main/java/com/zy/asrs/task/AutoMoveScheduler.java | 30 +++---
src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java | 232 +++++++++++++++++++++++-----------------------
3 files changed, 134 insertions(+), 134 deletions(-)
diff --git a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
index 74828c9..2941e89 100644
--- a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
@@ -44,21 +44,21 @@
// 璋冩嫧鍑哄簱
// @Scheduled(cron = "0/2 * * * * ? ")
- private void execute(){
- List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(
- new EntityWrapper<AgvLocMast>()
- .isNotNull("loc_type")
- .ne("loc_type", "")
- .eq("floor", 1)
- .eq("loc_sts","F"));
- if (agvLocMasts.isEmpty()) {
- return;
- }
- for (AgvLocMast agvLocMast : agvLocMasts) {
- ReturnT<String> returnT = autoMoveHandler.start(agvLocMast);
- }
-
- }
+// private void execute(){
+// List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(
+// new EntityWrapper<AgvLocMast>()
+// .isNotNull("loc_type")
+// .ne("loc_type", "")
+// .eq("floor", 1)
+// .eq("loc_sts","F"));
+// if (agvLocMasts.isEmpty()) {
+// return;
+// }
+// for (AgvLocMast agvLocMast : agvLocMasts) {
+// ReturnT<String> returnT = autoMoveHandler.start(agvLocMast);
+// }
+//
+// }
/**
* 鑷姩璋冩嫧浠诲姟锛屼粠1妤艰皟鎷ㄥ埌2妤硷紝3妤�
diff --git a/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java b/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
index 0dbdc53..036acb0 100644
--- a/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
@@ -35,15 +35,15 @@
@Autowired
AgvBasDevpService agvBasDevpService;
- public ReturnT<String> start(AgvLocMast agvLocMast) {
- // locType 1. 鑷姩锛� 2. 鎵嬪姩
- if (agvLocMast.getLocType().equals("1")) {
- return doAutoMove(agvLocMast);
- } else if (agvLocMast.getLocType().equals("2")) {
- return doHandMove(agvLocMast);
- }
- return SUCCESS;
- }
+// public ReturnT<String> start(AgvLocMast agvLocMast) {
+// // locType 1. 鑷姩锛� 2. 鎵嬪姩
+// if (agvLocMast.getLocType().equals("1")) {
+// return doAutoMove(agvLocMast);
+// } else if (agvLocMast.getLocType().equals("2")) {
+// return doHandMove(agvLocMast);
+// }
+// return SUCCESS;
+// }
public ReturnT<String> start2(AgvWrkMast agvWrkMast) {
// locType 1. 鑷姩锛� 2. 鎵嬪姩
@@ -62,66 +62,66 @@
return SUCCESS;
}
//鏍规嵁搴撲綅鐨刲octype鍊煎彂閫佷换鍔�--寮冪敤
- private ReturnT<String> doAutoMove(AgvLocMast agvLocMast) {
- Date now = new Date();
- //鏌ヨ宸ヤ綔妗�
- AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode());
- if(!Cools.isEmpty(agvWrkMast)){
- throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
- }
- //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
- AgvLocMast LocMast = agvCommonService.getLocNo(3,agvLocMast.getLocType3(),false,true);
- //鐢熸垚宸ヤ綔妗�
- AgvWrkMast mast = new AgvWrkMast();
- //宸ヤ綔鐘舵��
- mast.setWrkSts(201L);
- //鍏ュ嚭搴撶被鍨�
- mast.setIoType(108);
- mast.setIoTime(now);
- //浼樺厛绾�
- mast.setIoPri(300.0);
- //婧愮珯鐐�
- mast.setSourceLocNo(agvLocMast.getLocNo());
- //鐩爣绔欑偣
- mast.setLocNo(LocMast.getLocNo());
- //璐ф灦缂栫爜
- mast.setBarcode(agvLocMast.getBarcode());
- //璐ф灦绫诲瀷
- mast.setWhsType(30);
-
- mast.setAppeUser(9527L);
- mast.setAppeTime(now);
- mast.setModiUser(9527L);
- mast.setModiTime(now);
- mast.setLogErrMemo("doAutoMove");
- if (!agvWrkMastService.insertByIncrease(mast)) {
- throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
- }
-
- AgvWrkMast mast1 = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", LocMast.getLocNo()).eq("source_loc_no",agvLocMast.getLocNo()));
- //鐢熸垚宸ヤ綔妗f槑缁�
- List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvLocMast.getLocNo()));
- agvLocDetls.forEach(agvLocDetl -> {
- AgvWrkDetl wrkDetl = new AgvWrkDetl();
- wrkDetl.setWrkNo(mast1.getWrkNo());
- wrkDetl.sync(agvLocDetl);
- wrkDetl.setSpecs("1-" + agvLocMast.getLocType3());
- wrkDetl.setSuppCode(agvLocDetl.getSuppCode());
- wrkDetl.setIoTime(now);
- wrkDetl.setAppeUser(9527L);
- wrkDetl.setAppeTime(now);
- wrkDetl.setModiUser(9527L);
- wrkDetl.setModiTime(now);
- if (!agvWrkDetlService.insert(wrkDetl)) {
- throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
- }
- });
- //鏇存柊鐩爣搴撲綅鐘舵��
- updateAgvLocMast(agvLocMast,"R");
- updateAgvLocMast(LocMast,"S");
-
- return SUCCESS;
- }
+// private ReturnT<String> doAutoMove(AgvLocMast agvLocMast) {
+// Date now = new Date();
+// //鏌ヨ宸ヤ綔妗�
+// AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode());
+// if(!Cools.isEmpty(agvWrkMast)){
+// throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+// }
+// //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
+// AgvLocMast LocMast = agvCommonService.getLocNo(3,agvLocMast.getLocType3(),false,true);
+// //鐢熸垚宸ヤ綔妗�
+// AgvWrkMast mast = new AgvWrkMast();
+// //宸ヤ綔鐘舵��
+// mast.setWrkSts(201L);
+// //鍏ュ嚭搴撶被鍨�
+// mast.setIoType(108);
+// mast.setIoTime(now);
+// //浼樺厛绾�
+// mast.setIoPri(300.0);
+// //婧愮珯鐐�
+// mast.setSourceLocNo(agvLocMast.getLocNo());
+// //鐩爣绔欑偣
+// mast.setLocNo(LocMast.getLocNo());
+// //璐ф灦缂栫爜
+// mast.setBarcode(agvLocMast.getBarcode());
+// //璐ф灦绫诲瀷
+// mast.setWhsType(30);
+//
+// mast.setAppeUser(9527L);
+// mast.setAppeTime(now);
+// mast.setModiUser(9527L);
+// mast.setModiTime(now);
+// mast.setLogErrMemo("doAutoMove");
+// if (!agvWrkMastService.insertByIncrease(mast)) {
+// throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+// }
+//
+// AgvWrkMast mast1 = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", LocMast.getLocNo()).eq("source_loc_no",agvLocMast.getLocNo()));
+// //鐢熸垚宸ヤ綔妗f槑缁�
+// List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvLocMast.getLocNo()));
+// agvLocDetls.forEach(agvLocDetl -> {
+// AgvWrkDetl wrkDetl = new AgvWrkDetl();
+// wrkDetl.setWrkNo(mast1.getWrkNo());
+// wrkDetl.sync(agvLocDetl);
+// wrkDetl.setSpecs("1-" + agvLocMast.getLocType3());
+// wrkDetl.setSuppCode(agvLocDetl.getSuppCode());
+// wrkDetl.setIoTime(now);
+// wrkDetl.setAppeUser(9527L);
+// wrkDetl.setAppeTime(now);
+// wrkDetl.setModiUser(9527L);
+// wrkDetl.setModiTime(now);
+// if (!agvWrkDetlService.insert(wrkDetl)) {
+// throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+// }
+// });
+// //鏇存柊鐩爣搴撲綅鐘舵��
+// updateAgvLocMast(agvLocMast,"R");
+// updateAgvLocMast(LocMast,"S");
+//
+// return SUCCESS;
+// }
private ReturnT<String> doHandMove(AgvLocMast agvLocMast) {
Date now = new Date();
@@ -189,7 +189,7 @@
private ReturnT<String> doAutoMove2(AgvWrkMast agvWrkMast) {
Date now = new Date();
//妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
- AgvLocMast locMast = agvCommonService.getLocNo(3,agvWrkMast.getCrnNo(),false,true);
+ AgvLocMast locMast = agvCommonService.getLocNo(3,agvWrkMast.getCrnNo(),false,true,null);
if (Cools.isEmpty(locMast)) {
throw new CoolException("鏆傛棤搴撲綅");
}
@@ -213,7 +213,7 @@
private ReturnT<String> doAutoMove3(AgvWrkMast agvWrkMast) {
Date now = new Date();
//妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
- AgvLocMast locMast = agvCommonService.getLocNo(3,agvWrkMast.getCrnNo(),false,false);
+ AgvLocMast locMast = agvCommonService.getLocNo(3,agvWrkMast.getCrnNo(),false,false,null);
if (Cools.isEmpty(locMast)) {
throw new CoolException("鏆傛棤搴撲綅");
}
@@ -320,7 +320,7 @@
Date now = new Date();
AgvBasDevp agvBasDevp = agvBasDevpService.selectByDevNo(agvWrkMast.getSourceLocNo());
//妫�绱㈢┖闂叉帴椹充綅锛岄�夋嫨鍚堥�傜殑鎺ラ┏浣�
- AgvLocMast locMast = agvCommonService.getLocNo(3, 1,true,true);
+ AgvLocMast locMast = agvCommonService.getLocNo(3, 1,true,true,null);
if (Cools.isEmpty(locMast)) {
throw new CoolException("1妤兼殏鏃犵┖搴撲綅");
}
@@ -339,47 +339,47 @@
return SUCCESS;
}
- public ReturnT<String> autoEmptyBack2(AgvLocMast agvLocMast) {
- Date now = new Date();
- //鏌ヨ宸ヤ綔妗�
- AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode());
- if(!Cools.isEmpty(agvWrkMast)){
- throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
- }
- //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
- AgvLocMast LocMast = agvCommonService.getLocNo(3,1,true,true);
- //鐢熸垚宸ヤ綔妗�
- AgvWrkMast mast = new AgvWrkMast();
- //宸ヤ綔鐘舵��
- mast.setWrkSts(201L);
- //鍏ュ嚭搴撶被鍨�
- mast.setIoType(109);
- mast.setIoTime(now);
- //浼樺厛绾�
- mast.setIoPri(300.0);
- //婧愮珯鐐�
- mast.setSourceLocNo(agvLocMast.getLocNo());
- //鐩爣绔欑偣
- mast.setLocNo(LocMast.getLocNo());
- //璐ф灦缂栫爜
- mast.setBarcode(agvLocMast.getBarcode());
- //璐ф灦绫诲瀷
- mast.setWhsType(30);
-
- mast.setAppeUser(9527L);
- mast.setAppeTime(now);
- mast.setModiUser(9527L);
- mast.setModiTime(now);
- mast.setLogErrMemo("autoEmptyBack2");
- if (!agvWrkMastService.insertByIncrease(mast)) {
- throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
- }
-
- //鏇存柊鐩爣搴撲綅鐘舵��
- updateAgvLocMast(agvLocMast,"R");
- updateAgvLocMast(LocMast,"S");
- return SUCCESS;
- }
+// public ReturnT<String> autoEmptyBack2(AgvLocMast agvLocMast) {
+// Date now = new Date();
+// //鏌ヨ宸ヤ綔妗�
+// AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode());
+// if(!Cools.isEmpty(agvWrkMast)){
+// throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+// }
+// //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
+// AgvLocMast LocMast = agvCommonService.getLocNo(3,1,true,true);
+// //鐢熸垚宸ヤ綔妗�
+// AgvWrkMast mast = new AgvWrkMast();
+// //宸ヤ綔鐘舵��
+// mast.setWrkSts(201L);
+// //鍏ュ嚭搴撶被鍨�
+// mast.setIoType(109);
+// mast.setIoTime(now);
+// //浼樺厛绾�
+// mast.setIoPri(300.0);
+// //婧愮珯鐐�
+// mast.setSourceLocNo(agvLocMast.getLocNo());
+// //鐩爣绔欑偣
+// mast.setLocNo(LocMast.getLocNo());
+// //璐ф灦缂栫爜
+// mast.setBarcode(agvLocMast.getBarcode());
+// //璐ф灦绫诲瀷
+// mast.setWhsType(30);
+//
+// mast.setAppeUser(9527L);
+// mast.setAppeTime(now);
+// mast.setModiUser(9527L);
+// mast.setModiTime(now);
+// mast.setLogErrMemo("autoEmptyBack2");
+// if (!agvWrkMastService.insertByIncrease(mast)) {
+// throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+// }
+//
+// //鏇存柊鐩爣搴撲綅鐘舵��
+// updateAgvLocMast(agvLocMast,"R");
+// updateAgvLocMast(LocMast,"S");
+// return SUCCESS;
+// }
public ReturnT<String> autoEmptyBack4(AgvLocMast agvLocMast) {
Date now = new Date();
@@ -410,7 +410,7 @@
ioType = 109;
} else {
//妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
- locMast = agvCommonService.getLocNo(3,1,true,true);
+ locMast = agvCommonService.getLocNo(3,1,true,true,null);
locNo = locMast.getLocNo();
wrkSts = 201L;
ioType = 109;
@@ -485,7 +485,7 @@
//鍏ュ嚭搴撶被鍨�
mast.setIoType(109);
//妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
- AgvLocMast locMast = agvCommonService.getLocNo(3,1,true,true);
+ AgvLocMast locMast = agvCommonService.getLocNo(3,1,true,true,null);
mast.setLocNo(locMast.getLocNo());
updateAgvLocMast(locMast,"S");
} else {
@@ -559,7 +559,7 @@
throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
}
//妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
- AgvLocMast LocMast = agvCommonService.getLocNo(3,1,false,false);
+ AgvLocMast LocMast = agvCommonService.getLocNo(3,1,false,false,null);
if (LocMast.getLev1() != 2) {
throw new CoolException("鐩爣妤煎眰涓嶆槸鍚稿浜屾ゼ");
}
diff --git a/src/main/java/com/zy/common/service/AgvCommonService.java b/src/main/java/com/zy/common/service/AgvCommonService.java
index 7af4f56..5be7c9a 100644
--- a/src/main/java/com/zy/common/service/AgvCommonService.java
+++ b/src/main/java/com/zy/common/service/AgvCommonService.java
@@ -120,12 +120,12 @@
// 寮�濮嬫煡鎵惧簱浣� ==============================>>
// 鍥涙湡椤圭洰锛氶渶瑕佹敼鏌ユ壘搴撲綅閫昏緫
// 绠卞3鍏ュ簱
- if (type == 3) {
+ if (type == 3 && factory != null) {
//浼樺厛鍏ュ簱鍚稿1妤硷紝鍦�2妤�
- locMast = locUtils.getLocNoRuleByFactory(type,isEmpty ,factory);
+ locMast = locUtils.getLocNoRuleByFactory(type, isEmpty, factory);
} else if (type == 6) {
//鍗婃垚鍝佺澹冲叆搴擄紝鍏ュ埌鍚稿2妤肩殑370涓簱浣嶉噷
- locMast = locUtils.getLocNoRuleByFloor(type, floor, isEmpty,2);
+ locMast = locUtils.getLocNoRuleByFloor(type, floor, isEmpty, 2);
} else {
//涓嶅姩杩欎釜閫昏緫
locMast = getLocNoRule(type, floor, isEmpty, isCurrLev);
--
Gitblit v1.9.1