From 5e1164518df7f1d3fe1870f9c29b073e33048e4a Mon Sep 17 00:00:00 2001 From: whycq <10027870+whycq@user.noreply.gitee.com> Date: 星期三, 05 六月 2024 16:47:04 +0800 Subject: [PATCH] # --- src/main/java/com/zy/common/service/AgvCommonService.java | 48 +++++++++++++--- src/main/webapp/views/home/map2.html | 6 + src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java | 4 src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java | 8 +- src/main/java/com/zy/asrs/task/AutoMoveScheduler.java | 32 +++++----- src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java | 31 ++++++++- src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java | 14 ++-- 7 files changed, 99 insertions(+), 44 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java index 0660704..591ab0b 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java @@ -423,7 +423,7 @@ throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�"); } //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅 - AgvLocMast locMast = agvCommonService.getLocNo(agvLocMast.getLocType1(),floor); + AgvLocMast locMast = agvCommonService.getLocNo(agvLocMast.getLocType1(),floor,false,true); if (Cools.isEmpty(locMast)) { throw new CoolException("褰撳墠妤煎眰娌℃湁绌哄簱浣�"); } @@ -556,7 +556,7 @@ if (agvWrkMast.getCrnNo() != agvBasDevp.getFloor()) { throw new CoolException("璇风Щ鍔ㄥ埌->" + agvWrkMast.getCrnNo() + "妤煎叆搴撶偣鍏ュ簱"); } - AgvLocMast locNo = agvCommonService.getLocNo(3, 1); + AgvLocMast locNo = agvCommonService.getLocNo(3, 1,false,true); //宸ヤ綔鐘舵�� agvWrkMast.setWrkSts(211L); //鍏ュ嚭搴撶被鍨� diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java index 6669120..542545d 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java @@ -91,7 +91,7 @@ List<AgvWaitPakin> agvWaitPakinList = agvWaitPakinService.selectList(new EntityWrapper<AgvWaitPakin>().eq("supp_code", agvBasDevp.getBarcode())); //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅 - AgvLocMast agvLocMast = agvCommonService.getLocNo(agvBasDevp.getLocType1(),agvBasDevp.getFloor()); + AgvLocMast agvLocMast = agvCommonService.getLocNo(agvBasDevp.getLocType1(),agvBasDevp.getFloor(),false,false); //鐢熸垚宸ヤ綔妗� AgvWrkMast wrkMast = createWrkMast(1,201L,agvBasDevp.getDevNo(),agvLocMast.getLocNo(),agvBasDevp.getBarcode(),now,userId, agvBasDevp.getLocType2()); //鏍囪鏄惁涓鸿緭閫佺嚎鍏ュ簱 @@ -349,12 +349,13 @@ } //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅 - AgvLocMast agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor()); + AgvLocMast agvLocMast = new AgvLocMast(); + //鏌ヨ鍏ュ簱閫氱煡妗� List<AgvWaitPakin> agvWaitPakinList = agvWaitPakinService.selectByContainerCode(containerCode); if(!Cools.isEmpty(agvWaitPakinList)){ - + agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,false); String devNo = agvBasDevp.getDevNo(); String locNo = agvLocMast.getLocNo(); @@ -370,6 +371,7 @@ //鏇存柊婧愮珯鐐圭姸鎬� updateAgvBasDevp(agvBasDevp,"R",containerType); }else { + agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),true,true); // 鐢熸垚宸ヤ綔妗� 10.绌烘澘鍏ュ簱 createWrkMast(10,201L,agvBasDevp.getDevNo(),agvLocMast.getLocNo(),containerCode,now,userId,containerType); //鏇存柊婧愮珯鐐圭姸鎬� diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java index dc15777..e3f57a5 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java @@ -105,7 +105,7 @@ public int startAllcationIn(AgvWrkMast agvWrkMast) throws IOException { AgvBasDevp basDevp = agvBasDevpService.selectByDevNo(agvWrkMast.getSourceLocNo()); //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅 - AgvLocMast locMast = agvCommonService.getLocNo(basDevp.getLocType1(),basDevp.getFloor()); + AgvLocMast locMast = agvCommonService.getLocNo(basDevp.getLocType1(),basDevp.getFloor(),false,true); agvWrkMast.setLocNo(locMast.getLocNo()); agvWrkMast.setWrkSts(201L); agvWrkMastService.updateById(agvWrkMast); @@ -221,10 +221,31 @@ agvWrkMast.setWrkNo(-agvWrkMast.getWrkNo()); } agvTaskCreateParam.setTaskCode(agvWrkMast.getWrkNo().toString()); - if (agvWrkMast.getIoType() == 108 || (agvWrkMast.getIoType() == 109 && agvWrkMast.getWrkSts() == 201) || agvWrkMast.getIoType() == 12) { - agvTaskCreateParam.setTaskTyp("F06"); - } else { - agvTaskCreateParam.setTaskTyp("F01"); + switch (agvWrkMast.getIoType()) { + case 108: + case 12: + agvTaskCreateParam.setTaskTyp("F06"); + break; + case 109: + if (agvWrkMast.getWrkSts() == 201) { + agvTaskCreateParam.setTaskTyp("F06"); + } else { + agvTaskCreateParam.setTaskTyp("F01"); + } + break; + case 1: + // 鍏ュ簱浠诲姟鏄彧鏈� 鎺ラ┏浣� -- > 搴撲綅 + AgvLocMast loc = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvWrkMast.getLocNo())); + String locSub = loc.getLocNo().substring(loc.getLocNo().length() - 4).substring(0, 2).substring(0, 2); + if ("02".equals(locSub)) { + agvTaskCreateParam.setTaskTyp("F06"); + } else { + agvTaskCreateParam.setTaskTyp("F01"); + } + break; + default: + agvTaskCreateParam.setTaskTyp("F01"); + break; } agvTaskCreateParam.setPositionCodePath(agvTaskParamList); diff --git a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java index 1c82e8f..5c9af68 100644 --- a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java +++ b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java @@ -203,24 +203,22 @@ */ @Scheduled(cron = "0/2 * * * * ? ") private void autoEmptyBack4(){ -// if (determineFloorConnection(2)){ - // 鏌ヨ 涓嶄负1妤肩殑绌鸿揣鏋� - List<AgvLocMast> agvLocMasts = agvLocMastService.selectList( - new EntityWrapper<AgvLocMast>() - .ne("floor", 1) - .eq("loc_sts","D") - .eq("loc_type1",3)); - if (agvLocMasts.isEmpty()) { - return; + // 鏌ヨ 涓嶄负1妤肩殑绌鸿揣鏋� + List<AgvLocMast> agvLocMasts = agvLocMastService.selectList( + new EntityWrapper<AgvLocMast>() + .ne("floor", 1) + .eq("loc_sts","D") + .eq("loc_type1",3)); + if (agvLocMasts.isEmpty()) { + return; + } + for (AgvLocMast agvLocMast : agvLocMasts) { + try{ + autoMoveHandler.autoEmptyBack4(agvLocMast); + } catch (Exception e){ + log.error("搴撲綅鍙�"+agvLocMast.getLocNo()+"绌烘澘鑷姩鍥炲簱 搴撲綅-鎺ラ┏鐐� 搴撲綅-鍚稿杞﹂棿,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage()); } - for (AgvLocMast agvLocMast : agvLocMasts) { - try{ - autoMoveHandler.autoEmptyBack4(agvLocMast); - } catch (Exception e){ - log.error("搴撲綅鍙�"+agvLocMast.getLocNo()+"绌烘澘鑷姩鍥炲簱 搴撲綅-鎺ラ┏鐐� 搴撲綅-鍚稿杞﹂棿,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage()); - } - } -// } + } } private boolean determineFloorConnection(Integer floor){ 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 1a40d13..1d2ebdc 100644 --- a/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java @@ -55,7 +55,7 @@ doHandMove2(agvWrkMast); return SUCCESS; } - + //鏍规嵁搴撲綅鐨刲octype鍊煎彂閫佷换鍔�--寮冪敤 private ReturnT<String> doAutoMove(AgvLocMast agvLocMast) { Date now = new Date(); //鏌ヨ宸ヤ綔妗� @@ -64,7 +64,7 @@ throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�"); } //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅 - AgvLocMast LocMast = agvCommonService.getLocNo(3,agvLocMast.getLocType3()); + AgvLocMast LocMast = agvCommonService.getLocNo(3,agvLocMast.getLocType3(),false,true); //鐢熸垚宸ヤ綔妗� AgvWrkMast mast = new AgvWrkMast(); //宸ヤ綔鐘舵�� @@ -182,7 +182,7 @@ private ReturnT<String> doAutoMove2(AgvWrkMast agvWrkMast) { Date now = new Date(); //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅 - AgvLocMast locMast = agvCommonService.getLocNo(3,agvWrkMast.getCrnNo()); + AgvLocMast locMast = agvCommonService.getLocNo(3,agvWrkMast.getCrnNo(),false,true); if (Cools.isEmpty(locMast)) { throw new CoolException("鏆傛棤搴撲綅"); } @@ -274,7 +274,7 @@ Date now = new Date(); AgvBasDevp agvBasDevp = agvBasDevpService.selectByDevNo(agvWrkMast.getSourceLocNo()); //妫�绱㈢┖闂叉帴椹充綅锛岄�夋嫨鍚堥�傜殑鎺ラ┏浣� - AgvLocMast locMast = agvCommonService.getLocNo(3, 1); + AgvLocMast locMast = agvCommonService.getLocNo(3, 1,true,true); if (Cools.isEmpty(locMast)) { throw new CoolException("1妤兼殏鏃犵┖搴撲綅"); } @@ -299,7 +299,7 @@ throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�"); } //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅 - AgvLocMast LocMast = agvCommonService.getLocNo(3,1); + AgvLocMast LocMast = agvCommonService.getLocNo(3,1,true,true); //鐢熸垚宸ヤ綔妗� AgvWrkMast mast = new AgvWrkMast(); //宸ヤ綔鐘舵�� @@ -361,7 +361,7 @@ ioType = 109; } else { //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅 - locMast = agvCommonService.getLocNo(3,1); + locMast = agvCommonService.getLocNo(3,1,true,true); locNo = locMast.getLocNo(); wrkSts = 201L; ioType = 109; @@ -434,7 +434,7 @@ //鍏ュ嚭搴撶被鍨� mast.setIoType(109); //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅 - AgvLocMast locMast = agvCommonService.getLocNo(3,1); + AgvLocMast locMast = agvCommonService.getLocNo(3,1,true,true); mast.setLocNo(locMast.getLocNo()); updateAgvLocMast(locMast,"S"); } else { diff --git a/src/main/java/com/zy/common/service/AgvCommonService.java b/src/main/java/com/zy/common/service/AgvCommonService.java index f756a9a..8efe2b6 100644 --- a/src/main/java/com/zy/common/service/AgvCommonService.java +++ b/src/main/java/com/zy/common/service/AgvCommonService.java @@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; /** @@ -73,7 +74,7 @@ * 妫�绱㈠簱浣嶅彿 * @return locNo 妫�绱㈠埌鐨勫簱浣嶅彿 */ - public AgvLocMast getLocNo(int type, int floor) { + public AgvLocMast getLocNo(int type, int floor,boolean isEmpty,boolean isCurrLev) { // 鐩爣搴撲綅 AgvLocMast locMast = null; // if(Cools.isEmpty(agvWaitPakinList)){ @@ -113,16 +114,16 @@ try{ // 寮�濮嬫煡鎵惧簱浣� ==============================>> - locMast = getLocNoRule(type,floor); + locMast = getLocNoRule(type,floor,isEmpty,isCurrLev); if (locMast != null) { return locMast; } }catch (Exception e){ - throw new CoolException("妤煎眰鍙凤細"+floor+"锛涜妤煎眰娌℃湁绌哄簱浣�===>"+e.getMessage()); + throw new CoolException(floor+"妤硷紱璇ユゼ灞傛病鏈夌┖搴撲綅===>"+e.getMessage()); } //鎵句笉鍒板簱浣嶏紝鎶涘嚭寮傚父 - throw new CoolException("妤煎眰鍙凤細"+floor+"锛涜妤煎眰娌℃湁绌哄簱浣�"); + throw new CoolException(floor+"妤硷紱璇ユゼ灞傛病鏈夌┖搴撲綅"); } /* @@ -233,12 +234,41 @@ } //闅忔満鍙栦竴涓揣浣� - private AgvLocMast getLocNoRule(int type,int floor){ + private AgvLocMast getLocNoRule(int type,int floor,boolean isEmpty,boolean isCurrLev){ + Boolean orderBy = false; + int levCount = 0; + int times = 1; + if (floor == 1) { + orderBy = true; + levCount = 2; + } else { + orderBy = false; + levCount = 1; + } try{ - List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(new EntityWrapper<AgvLocMast>() - .eq("loc_sts", "O") - .eq("floor", floor) - .eq("loc_type1", type)); + EntityWrapper<AgvLocMast> wrapper = new EntityWrapper<>(); + wrapper.eq("loc_sts", "O").eq("loc_type1", type); + List<AgvLocMast> agvLocMasts = new ArrayList<>(); + //涓嶆槸绌烘澘浼樺厛鎵�2灞� + if (isEmpty) { + wrapper.eq("floor", floor).eq("lev1",1); + } else { + wrapper.eq("floor", floor).orderBy("lev1",!orderBy); + } + + + //褰撶洰鏍囧簱浣嶆槸1妤� + if(floor == 1) { + wrapper.orderBy("loc_no",false); + } + agvLocMasts = agvLocMastService.selectList(wrapper); + //鏄惁褰撳墠灞� + if (Cools.isEmpty(agvLocMasts) && !isCurrLev) { + if (times < levCount) { + times++; + return getLocNoRule(type,floor,isEmpty,isCurrLev); + } + } for (AgvLocMast agvLocMast : agvLocMasts){ AgvLocMast agvLocMast1 = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocMast.getLocNo())); if (agvLocMast1.getLocSts().equals("O")){ diff --git a/src/main/webapp/views/home/map2.html b/src/main/webapp/views/home/map2.html index e8e0c00..25a0932 100644 --- a/src/main/webapp/views/home/map2.html +++ b/src/main/webapp/views/home/map2.html @@ -591,7 +591,6 @@ currentLev: { deep: true, handler(val) { - console.log(val) this.init() if (this.searchMatnr != "" || this.searchOrderNo != "" @@ -605,6 +604,11 @@ currentFloor: { deep: true, handler(val) { + if (val == 1) { + this.floorList = [1,2] + } else { + this.floorList = [1] + } this.init() if (this.searchMatnr != "" || this.searchOrderNo != "" -- Gitblit v1.9.1