From 93674068e900b95726ef1ab9fd4dd61b50a1cb2f Mon Sep 17 00:00:00 2001 From: whycq <10027870+whycq@user.noreply.gitee.com> Date: 星期三, 12 六月 2024 09:56:45 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java | 76 +++++++++++++++++++++++++++----------- 1 files changed, 54 insertions(+), 22 deletions(-) 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 bfe79c1..af4d600 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java @@ -27,6 +27,7 @@ import java.util.Date; import java.util.Iterator; import java.util.List; +import java.util.concurrent.atomic.AtomicBoolean; /** * Created by vincent on 2020/6/11 @@ -91,7 +92,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()); //鏍囪鏄惁涓鸿緭閫佺嚎鍏ュ簱 @@ -328,6 +329,33 @@ if (Cools.isEmpty(agvBasDevp)) { throw new CoolException("鏆傛棤"+ station + "绔欑偣"); } + int br = 0; + if (containerType == 21 && agvBasDevp.getFloor() == 2) { + containerType = 20; + } + switch (containerType) { + case 10: + br = 1; + break; + case 20: + br = 2; + break; + case 21: + br = 4; + break; + case 30: + br = 3; + break; + case 40: + br = 5; + break; + } + if (br == 4 && agvBasDevp.getLocType1() == 2) { + br = 2; + } + if (agvBasDevp.getLocType1() != br) { + throw new CoolException("绔欑偣寮傚父锛�"); + } if (containerType == 40) { locType = 5; } else if (containerType == 21 && agvBasDevp.getFloor() == 3) { @@ -349,11 +377,24 @@ } //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅 - AgvLocMast agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor()); + AgvLocMast agvLocMast = new AgvLocMast(); + //鏌ヨ鍏ュ簱閫氱煡妗� List<AgvWaitPakin> agvWaitPakinList = agvWaitPakinService.selectByContainerCode(containerCode); if(!Cools.isEmpty(agvWaitPakinList)){ + AtomicBoolean isCurrLev = new AtomicBoolean(false); + agvWaitPakinList.forEach(agvWaitPakin -> { + if (agvWaitPakin.getProcessSts() == 1) { + isCurrLev.set(true); + } + }); + if (isCurrLev.get()) { + agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,true); + } else { + agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,false); + } + String devNo = agvBasDevp.getDevNo(); @@ -363,13 +404,14 @@ AgvWrkMast wrkMast = createWrkMast(1,201L,devNo,locNo,containerCode,now,userId, containerType); //鐢熸垚宸ヤ綔妗f槑缁� agvWaitPakinList.forEach(wp -> { - createWrkDetlReWrite(wp.getMatnr(),wrkMast.getWrkNo(),wp.getOrderNo(),wp.getBatch(),wp.getAnfme(),wp.getSuppCode(),now,userId,wp.getThreeCode(),wp.getDeadTime()); + createWrkDetlReWrite(wp.getMatnr(),wrkMast.getWrkNo(),wp.getOrderNo(),wp.getBatch(),wp.getAnfme(),wp.getSuppCode(),now,userId,wp.getThreeCode(),wp.getDeadTime(),wp.getProcessSts()); }); //淇敼鍏ュ簱閫氱煡妗g姸鎬� agvWaitPakinService.updateIoStatus(containerCode,"Y"); //鏇存柊婧愮珯鐐圭姸鎬� 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); //鏇存柊婧愮珯鐐圭姸鎬� @@ -559,17 +601,6 @@ if (Cools.isEmpty(wrkMast)){ throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪"); } -// if(!wrkMast.getLocNo().contains("@") || !wrkMast.getSourceLocNo().contains("@")){ -// throw new CoolException("鐩爣搴撲綅鎴栬�呮簮搴撲綅鏆傛湭鍒嗛厤锛屾棤娉曞彇娑�"); -// } - //淇敼AGV宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负205.宸ヤ綔瀹屾垚 - //agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205); - - //if (wrkMast.getIoType() == 101) { - // agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),206,"鎵嬪姩瀹屾垚",userId); - //} else { - // agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205,"鎵嬪姩瀹屾垚",userId); - //} if (wrkMast.getIoType()==121){ if (wrkMast.getWrkSts()<12L){ @@ -584,8 +615,12 @@ } return; - } else { - agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205,"鎵嬪姩瀹屾垚",userId); + } else { + if(wrkMast.getIoType() == 110){ + agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),206,"鎵嬪姩瀹屾垚",userId); + } else { + agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205,"鎵嬪姩瀹屾垚",userId); + } } //鍑哄簱浠诲姟 101.鍑哄簱 || 103.鎷f枡鍑哄簱 || 107.鐩樼偣鍑哄簱 @@ -598,12 +633,9 @@ agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getSourceLocNo(),"O","",wrkMast.getWhsType().shortValue()); } //鍑哄簱浠诲姟 110.绌烘澘鍑哄簱 - if(wrkMast.getIoType() == 110){ - agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue()); - } + if (wrkMast.getIoType() == 10) { agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getSourceLocNo(),"O",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue()); - agvLocMastService.updateLocStsByLocNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(wrkMast.getLocNo())); } } @@ -890,7 +922,7 @@ /* 鐢熸垚宸ヤ綔妗f槑缁� */ - private void createWrkDetlReWrite(String matnr, int wrkNo, String orderNo,String batch, double anfme, String zpallet, Date now, Long userId, String csocode, String isoseq){ + private void createWrkDetlReWrite(String matnr, int wrkNo, String orderNo,String batch, double anfme, String zpallet, Date now, Long userId, String csocode, String isoseq,Integer processSts){ Mat mat = matService.selectByMatnr(matnr); if (Cools.isEmpty(mat)) { throw new CoolException(matnr + "鍟嗗搧缁存姢澶辫触"); @@ -903,11 +935,11 @@ wrkDetl.setBatch(batch); wrkDetl.setAnfme(anfme); // 鏁伴噺 wrkDetl.setSuppCode(zpallet); // 璐ф灦鏉$爜 + wrkDetl.setProcessSts(processSts); wrkDetl.setAppeUser(userId); wrkDetl.setAppeTime(now); wrkDetl.setModiUser(userId); wrkDetl.setModiTime(now); - wrkDetl.setThreeCode(csocode); wrkDetl.setDeadTime(isoseq); if (!agvWrkDetlService.insert(wrkDetl)) { -- Gitblit v1.9.1