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 | 114 ++++++++++++++++++++++++++++++--------------------------- 1 files changed, 60 insertions(+), 54 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 e72bb68..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); + 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); + 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); + 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); + locMast = agvCommonService.getLocNo(3, 1, true, true); locNo = locMast.getLocNo(); wrkSts = 201L; ioType = 109; @@ -454,11 +460,11 @@ } //鏇存柊鐩爣搴撲綅鐘舵�� - 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"); } @@ -470,8 +476,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 = ""; @@ -480,7 +486,7 @@ AgvLocMast locMast = new AgvLocMast(); if (agvLocMast.getFloor() == 3) { floor = "F3"; - } else if(agvLocMast.getFloor() == 2) { + } 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)); @@ -490,14 +496,14 @@ //throw new CoolException("鏆傚仠鍥炴祦"); } //妫�绱㈢┖闂插彲鍏ユ帴椹充綅 娌℃湁绌洪棽鍙叆鎺ラ┏浣� 鐩存帴鎵惧簱浣� - AgvBasDevp devpNo = agvCommonService.getDevpNo(6, agvLocMast.getFloor(),"Y","Y"); + 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); + locMast = agvCommonService.getLocNo(6, 1, true, true); locNo = locMast.getLocNo(); wrkSts = 201L; ioType = 109; @@ -531,11 +537,11 @@ } //鏇存柊鐩爣搴撲綅鐘舵�� - 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"); } @@ -546,8 +552,8 @@ 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(); //鐢熸垚宸ヤ綔妗� @@ -573,9 +579,9 @@ //鍏ュ嚭搴撶被鍨� mast.setIoType(109); //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅 - AgvLocMast locMast = agvCommonService.getLocNo(3,1,true,true); + AgvLocMast locMast = agvCommonService.getLocNo(3, 1, true, true); mast.setLocNo(locMast.getLocNo()); - updateAgvLocMast(locMast,"S"); + updateAgvLocMast(locMast, "S"); } else { //宸ヤ綔鐘舵�� mast.setWrkSts(212L); @@ -588,7 +594,7 @@ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); } //鏇存柊鐩爣搴撲綅鐘舵�� - updateAgvBasDevp(agvBasDevp,"R"); + updateAgvBasDevp(agvBasDevp, "R"); return SUCCESS; @@ -597,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(); //鐢熸垚宸ヤ綔妗� @@ -627,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 -> { @@ -643,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); + AgvLocMast LocMast = agvCommonService.getLocNo(3, 1, false, false); if (LocMast.getLev1() != 2) { throw new CoolException("鐩爣妤煎眰涓嶆槸鍚稿浜屾ゼ"); } @@ -682,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 -> { @@ -700,8 +706,8 @@ } }); //鏇存柊鐩爣搴撲綅鐘舵�� - updateAgvLocMast(agvLocMast,"R"); - updateAgvLocMast(LocMast,"S"); + updateAgvLocMast(agvLocMast, "R"); + updateAgvLocMast(LocMast, "S"); return SUCCESS; } -- Gitblit v1.9.1