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