From 8ca385d65454fb8e993970a768ed3ad5c3a095ab Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期六, 18 一月 2025 13:44:44 +0800
Subject: [PATCH] 优化库位检索逻辑,修复代码并添加新功能
---
src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java | 176 +++++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 130 insertions(+), 46 deletions(-)
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 8f165ed..054bd68 100644
--- a/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
@@ -50,6 +50,7 @@
doAutoMove2(agvWrkMast);
return SUCCESS;
}
+
public ReturnT<String> start3(AgvWrkMast agvWrkMast) {
// locType 1. 鑷姩锛� 2. 鎵嬪姩
doHandMove2(agvWrkMast);
@@ -127,8 +128,8 @@
Date now = new Date();
//鏌ヨ宸ヤ綔妗�
AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode());
- if(!Cools.isEmpty(agvWrkMast)){
- throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+ if (!Cools.isEmpty(agvWrkMast)) {
+ throw new CoolException("褰撳墠" + agvLocMast.getBarcode() + "璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
}
// //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
// AgvLocMast LocMast = agvCommonService.getLocNo(3,agvLocMast.getLocType3());
@@ -162,7 +163,7 @@
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
}
- AgvWrkMast mast1 = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", devpNo.getDevNo()).eq("source_loc_no",agvLocMast.getLocNo()));
+ AgvWrkMast mast1 = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", devpNo.getDevNo()).eq("source_loc_no", agvLocMast.getLocNo()));
//鐢熸垚宸ヤ綔妗f槑缁�
List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvLocMast.getLocNo()));
agvLocDetls.forEach(agvLocDetl -> {
@@ -181,15 +182,15 @@
}
});
//鏇存柊鐩爣搴撲綅鐘舵��
- updateAgvLocMast(agvLocMast,"R");
- updateAgvBasDevp(devpNo,"S",null,agvLocMast.getBarcode());
+ updateAgvLocMast(agvLocMast, "R");
+ updateAgvBasDevp(devpNo, "S", null, agvLocMast.getBarcode());
return SUCCESS;
}
private ReturnT<String> doAutoMove2(AgvWrkMast agvWrkMast) {
Date now = new Date();
//妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
- AgvLocMast locMast = agvCommonService.getLocNo(3,agvWrkMast.getCrnNo(),false,true,null);
+ AgvLocMast locMast = agvCommonService.getLocNo(3, agvWrkMast.getCrnNo(), false, true);
if (Cools.isEmpty(locMast)) {
log.info("鏆傛棤搴撲綅");
return FAIL;
@@ -207,9 +208,9 @@
agvWrkMast.setLogErrMemo("start2-doAutoMove2");
agvWrkMastService.updateById(agvWrkMast);
//鏇存柊鐩爣搴撲綅鐘舵��
- updateAgvLocMast(locMast,"S");
+ updateAgvLocMast(locMast, "S");
AgvLocMast locMast1 = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", locMast.getLocNo()));
- log.info("鑷姩璋冩嫧浠诲姟 ==> 婧愬簱浣嶏細{}锛岀洰鏍囧簱浣嶏細{},搴撲綅鐘舵�亄}",agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo(),locMast1.getLocSts());
+ log.info("鑷姩璋冩嫧浠诲姟 ==> 婧愬簱浣嶏細{}锛岀洰鏍囧簱浣嶏細{},搴撲綅鐘舵�亄}", agvWrkMast.getSourceLocNo(), agvWrkMast.getLocNo(), locMast1.getLocSts());
return SUCCESS;
}
@@ -217,7 +218,7 @@
private ReturnT<String> doAutoMove3(AgvWrkMast agvWrkMast) {
Date now = new Date();
//妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
- AgvLocMast locMast = agvCommonService.getLocNo(3,agvWrkMast.getCrnNo(),false,false,null);
+ AgvLocMast locMast = agvCommonService.getLocNo(3, agvWrkMast.getCrnNo(), false, false);
if (Cools.isEmpty(locMast)) {
log.info("鏆傛棤搴撲綅");
return FAIL;
@@ -229,7 +230,7 @@
agvWrkMast.setModiTime(new Date());
agvWrkMastService.updateById(agvWrkMast);
//鏇存柊鐩爣搴撲綅鐘舵��
- updateAgvLocMast(locMast,"S");
+ updateAgvLocMast(locMast, "S");
return SUCCESS;
}
@@ -255,27 +256,30 @@
agvWrkMast.setLogErrMemo("start3-doHandMove2");
agvWrkMastService.updateById(agvWrkMast);
agvWrkMast.setModiTime(new Date());
- updateAgvBasDevp(devpNo,"S",null,agvWrkMast.getBarcode());
+ updateAgvBasDevp(devpNo, "S", null, agvWrkMast.getBarcode());
return SUCCESS;
}
+
/*
鏇存柊鐩爣搴撲綅淇℃伅
*/
- private void updateAgvLocMast(AgvLocMast locMast, String locSts){
+ private void updateAgvLocMast(AgvLocMast locMast, String locSts) {
locMast.setLocSts(locSts);
agvLocMastService.updateById(locMast);
}
+
/*
鏇存柊婧愮珯鐐逛俊鎭�
*/
- private void updateAgvBasDevp(AgvBasDevp agvBasDevp, String locSts){
- if(!Cools.isEmpty(agvBasDevp)){
+ private void updateAgvBasDevp(AgvBasDevp agvBasDevp, String locSts) {
+ if (!Cools.isEmpty(agvBasDevp)) {
agvBasDevp.setLocSts(locSts);
agvBasDevpService.updateById(agvBasDevp);
}
}
- private void updateAgvBasDevp(AgvBasDevp agvBasDevp, String locSts, Short continerType, String containerCode){
- if(!Cools.isEmpty(agvBasDevp)){
+
+ private void updateAgvBasDevp(AgvBasDevp agvBasDevp, String locSts, Short continerType, String containerCode) {
+ if (!Cools.isEmpty(agvBasDevp)) {
agvBasDevp.setLocSts(locSts);
agvBasDevp.setBarcode(containerCode);
agvBasDevpService.updateById(agvBasDevp);
@@ -286,8 +290,8 @@
Date now = new Date();
//鏌ヨ宸ヤ綔妗�
AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode());
- if(!Cools.isEmpty(agvWrkMast)){
- throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+ if (!Cools.isEmpty(agvWrkMast)) {
+ throw new CoolException("褰撳墠" + agvLocMast.getBarcode() + "璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
}
//妫�绱㈢┖闂叉帴椹充綅锛岄�夋嫨鍚堥�傜殑鎺ラ┏浣�
AgvBasDevp devpNo = agvCommonService.getDevpNo(3, agvLocMast.getFloor());
@@ -319,8 +323,8 @@
}
//鏇存柊鐩爣搴撲綅鐘舵��
- updateAgvLocMast(agvLocMast,"R");
- updateAgvBasDevp(devpNo,"S",agvLocMast.getLocType2(),agvLocMast.getBarcode());
+ updateAgvLocMast(agvLocMast, "R");
+ updateAgvBasDevp(devpNo, "S", agvLocMast.getLocType2(), agvLocMast.getBarcode());
return SUCCESS;
}
@@ -328,7 +332,7 @@
Date now = new Date();
AgvBasDevp agvBasDevp = agvBasDevpService.selectByDevNo(agvWrkMast.getSourceLocNo());
//妫�绱㈢┖闂叉帴椹充綅锛岄�夋嫨鍚堥�傜殑鎺ラ┏浣�
- AgvLocMast locMast = agvCommonService.getLocNo(3, 1,true,true,null);
+ AgvLocMast locMast = agvCommonService.getLocNo(3, 1, true, true);
if (Cools.isEmpty(locMast)) {
throw new CoolException("1妤兼殏鏃犵┖搴撲綅");
}
@@ -342,8 +346,8 @@
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
}
//鏇存柊鐩爣搴撲綅鐘舵��
- updateAgvLocMast(locMast,"S");
- updateAgvBasDevp(agvBasDevp,"R");
+ updateAgvLocMast(locMast, "S");
+ updateAgvBasDevp(agvBasDevp, "R");
return SUCCESS;
}
@@ -393,8 +397,8 @@
Date now = new Date();
//鏌ヨ宸ヤ綔妗�
AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode());
- if(!Cools.isEmpty(agvWrkMast)){
- throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+ if (!Cools.isEmpty(agvWrkMast)) {
+ throw new CoolException("褰撳墠" + agvLocMast.getBarcode() + "璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
}
String floor = "";
String locNo = "";
@@ -403,8 +407,10 @@
AgvLocMast locMast = new AgvLocMast();
if (agvLocMast.getFloor() == 3) {
floor = "F3";
- } else if(agvLocMast.getFloor() == 2) {
+ } else if (agvLocMast.getFloor() == 2) {
floor = "F2";
+ } else if (agvLocMast.getFloor() == 1 && agvLocMast.getLev1() == 2) {
+ floor = "02F1";
}
List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("io_type", 109).like("source_loc_no", floor).or().eq("io_type", 113));
if (agvWrkMasts.size() >= 5) {
@@ -413,14 +419,14 @@
//throw new CoolException("鏆傚仠鍥炴祦");
}
//妫�绱㈢┖闂插彲鍏ユ帴椹充綅 娌℃湁绌洪棽鍙叆鎺ラ┏浣� 鐩存帴鎵惧簱浣�
- AgvBasDevp devpNo = agvCommonService.getDevpNo(3, agvLocMast.getFloor(),"Y","Y");
+ AgvBasDevp devpNo = agvCommonService.getDevpNo(3, agvLocMast.getFloor(), "Y", "Y");
if (!Cools.isEmpty(devpNo)) {
locNo = devpNo.getDevNo();
wrkSts = 21L;
ioType = 109;
} else {
//妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
- locMast = agvCommonService.getLocNo(3,1,true,true,null);
+ locMast = agvCommonService.getLocNo(3, 1, true, true);
locNo = locMast.getLocNo();
wrkSts = 201L;
ioType = 109;
@@ -454,22 +460,100 @@
}
//鏇存柊鐩爣搴撲綅鐘舵��
- updateAgvLocMast(agvLocMast,"R");
+ updateAgvLocMast(agvLocMast, "R");
if (wrkSts == 21L) {
- updateAgvBasDevp(devpNo,"S",agvLocMast.getLocType2(),agvLocMast.getBarcode());
+ updateAgvBasDevp(devpNo, "S", agvLocMast.getLocType2(), agvLocMast.getBarcode());
} else {
- updateAgvLocMast(locMast,"S");
+ updateAgvLocMast(locMast, "S");
}
return SUCCESS;
}
+
+ public ReturnT<String> autoEmptyBackSiqi(AgvLocMast agvLocMast) {
+ Date now = new Date();
+ //鏌ヨ宸ヤ綔妗�
+ AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode());
+ if (!Cools.isEmpty(agvWrkMast)) {
+ throw new CoolException("褰撳墠" + agvLocMast.getBarcode() + "璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+ }
+ String floor = "";
+ String locNo = "";
+ Long wrkSts = 0L;
+ Integer ioType = 0;
+ AgvLocMast locMast = new AgvLocMast();
+ if (agvLocMast.getFloor() == 3) {
+ floor = "F3";
+ } else if (agvLocMast.getFloor() == 2) {
+ floor = "F2";
+ }
+ List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("io_type", 109).like("source_loc_no", floor).or().eq("io_type", 113));
+ if (agvWrkMasts.size() >= 5) {
+ //log.error("鏆傚仠鍥炴祦");
+ return FAIL;
+ //throw new CoolException("鏆傚仠鍥炴祦");
+ }
+ //妫�绱㈢┖闂插彲鍏ユ帴椹充綅 娌℃湁绌洪棽鍙叆鎺ラ┏浣� 鐩存帴鎵惧簱浣�
+ AgvBasDevp devpNo = agvCommonService.getDevpNo(6, agvLocMast.getFloor(), "Y", "Y");
+ if (!Cools.isEmpty(devpNo)) {
+ locNo = devpNo.getDevNo();
+ wrkSts = 21L;
+ ioType = 109;
+ } else {
+ //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
+ locMast = agvCommonService.getLocNo(6, 1, true, true);
+ locNo = locMast.getLocNo();
+ wrkSts = 201L;
+ ioType = 109;
+ }
+
+ //鐢熸垚宸ヤ綔妗�
+ AgvWrkMast mast = new AgvWrkMast();
+ //宸ヤ綔鐘舵��
+ mast.setWrkSts(wrkSts);
+ //鍏ュ嚭搴撶被鍨�
+ mast.setIoType(ioType);
+ mast.setIoTime(now);
+ //浼樺厛绾�
+ mast.setIoPri(300.0);
+ //婧愮珯鐐�
+ mast.setSourceLocNo(agvLocMast.getLocNo());
+ //鐩爣绔欑偣
+ mast.setLocNo(locNo);
+ //璐ф灦缂栫爜
+ mast.setBarcode(agvLocMast.getBarcode());
+ //璐ф灦绫诲瀷
+ mast.setWhsType(30);
+
+ mast.setAppeUser(9527L);
+ mast.setAppeTime(now);
+ mast.setModiUser(9527L);
+ mast.setModiTime(now);
+ mast.setLogErrMemo("autoEmptyBack4");
+ if (!agvWrkMastService.insertByIncrease(mast)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+
+ //鏇存柊鐩爣搴撲綅鐘舵��
+ updateAgvLocMast(agvLocMast, "R");
+ if (wrkSts == 21L) {
+ updateAgvBasDevp(devpNo, "S", agvLocMast.getLocType2(), agvLocMast.getBarcode());
+ } else {
+ updateAgvLocMast(locMast, "S");
+ }
+
+
+ return SUCCESS;
+ }
+
+
public ReturnT<String> autoEmptyBack5(AgvBasDevp agvBasDevp) {
//鏌ヨ宸ヤ綔妗�
AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvBasDevp.getBarcode());
- if(!Cools.isEmpty(agvWrkMast)){
- throw new CoolException("褰撳墠"+agvBasDevp.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+ if (!Cools.isEmpty(agvWrkMast)) {
+ throw new CoolException("褰撳墠" + agvBasDevp.getBarcode() + "璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
}
Date now = new Date();
//鐢熸垚宸ヤ綔妗�
@@ -495,9 +579,9 @@
//鍏ュ嚭搴撶被鍨�
mast.setIoType(109);
//妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
- AgvLocMast locMast = agvCommonService.getLocNo(3,1,true,true,null);
+ AgvLocMast locMast = agvCommonService.getLocNo(3, 1, true, true);
mast.setLocNo(locMast.getLocNo());
- updateAgvLocMast(locMast,"S");
+ updateAgvLocMast(locMast, "S");
} else {
//宸ヤ綔鐘舵��
mast.setWrkSts(212L);
@@ -510,7 +594,7 @@
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
}
//鏇存柊鐩爣搴撲綅鐘舵��
- updateAgvBasDevp(agvBasDevp,"R");
+ updateAgvBasDevp(agvBasDevp, "R");
return SUCCESS;
@@ -519,8 +603,8 @@
public ReturnT<String> autoEmptyBack6(AgvBasDevp agvBasDevp) {
//鏌ヨ宸ヤ綔妗�
AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvBasDevp.getBarcode());
- if(!Cools.isEmpty(agvWrkMast)){
- throw new CoolException("褰撳墠"+agvBasDevp.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+ if (!Cools.isEmpty(agvWrkMast)) {
+ throw new CoolException("褰撳墠" + agvBasDevp.getBarcode() + "璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
}
Date now = new Date();
//鐢熸垚宸ヤ綔妗�
@@ -549,13 +633,13 @@
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
}
//鏇存柊鐩爣搴撲綅鐘舵��
- updateAgvBasDevp(agvBasDevp,"R");
+ updateAgvBasDevp(agvBasDevp, "R");
return SUCCESS;
}
- public ReturnT<String> autoTransfers(AgvLocMast agvLocMast,Integer maxTansk) {
+ public ReturnT<String> autoTransfers(AgvLocMast agvLocMast, Integer maxTansk) {
Date now = new Date();
List<AgvLocDetl> locDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvLocMast.getLocNo()));
locDetls.forEach(agvLocDetl -> {
@@ -565,11 +649,11 @@
});
//鏌ヨ宸ヤ綔妗�
AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode());
- if(!Cools.isEmpty(agvWrkMast)){
- throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+ if (!Cools.isEmpty(agvWrkMast)) {
+ throw new CoolException("褰撳墠" + agvLocMast.getBarcode() + "璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
}
//妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
- AgvLocMast LocMast = agvCommonService.getLocNo(3,1,false,false,null);
+ AgvLocMast LocMast = agvCommonService.getLocNo(3, 1, false, false);
if (LocMast.getLev1() != 2) {
throw new CoolException("鐩爣妤煎眰涓嶆槸鍚稿浜屾ゼ");
}
@@ -604,7 +688,7 @@
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
}
- AgvWrkMast mast1 = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", LocMast.getLocNo()).eq("source_loc_no",agvLocMast.getLocNo()));
+ 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 -> {
@@ -622,8 +706,8 @@
}
});
//鏇存柊鐩爣搴撲綅鐘舵��
- updateAgvLocMast(agvLocMast,"R");
- updateAgvLocMast(LocMast,"S");
+ updateAgvLocMast(agvLocMast, "R");
+ updateAgvLocMast(LocMast, "S");
return SUCCESS;
}
--
Gitblit v1.9.1