From 37f97c17a695aacd4f658eb86483558ba62374cd Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期五, 31 五月 2024 17:56:13 +0800 Subject: [PATCH] #1 --- src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java | 162 ++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 139 insertions(+), 23 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 fa57596..7d9fa2e 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java @@ -209,20 +209,20 @@ //List<AgvLocDetl> agvLocDetlList = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvLocMast.getLocNo())); AgvBasDevp agvBasDevp = agvBasDevpService.selectById(agvWrkMast.getSourceLocNo()); - //鎷f枡鍏ュ簱 - if(ioType == 53){ - //淇敼宸ヤ綔鍏氭槑缁� - //agvWrkDetl.setAnfme(agvLocDetl.getAnfme() - agvWrkDetl.getAnfme()); - //agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>().eq("wrk_no",agvWrkDetl.getWrkNo())); - //淇敼搴撳瓨淇℃伅 - agvWrkDetlList.forEach(agvWrkDetl -> { - AgvLocDetl agvLocDetl = agvLocDetlService.selectByMatnrAndBatchAndCsocodeAndisoCode(agvWrkMast.getLocNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getBatch(), agvWrkDetl.getThreeCode(), agvWrkDetl.getDeadTime()); - - //AgvLocDetl agvLocDetl = agvLocDetlService.selectLocdetl(agvWrkMast.getLocNo(),agvWrkDetl.getMatnr(),agvWrkDetl.getBatch(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime()); - double updateAnfme = agvLocDetl.getAnfme() - agvWrkDetl.getAnfme(); - agvLocDetlService.updateAnfme(updateAnfme,agvLocDetl.getLocNo(),agvLocDetl.getMatnr(),agvLocDetl.getBatch(),agvLocDetl.getThreeCode(),agvLocDetl.getDeadTime()); - }); - } + ////鎷f枡鍏ュ簱 + //if(ioType == 53){ + // //淇敼宸ヤ綔鍏氭槑缁� + // //agvWrkDetl.setAnfme(agvLocDetl.getAnfme() - agvWrkDetl.getAnfme()); + // //agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>().eq("wrk_no",agvWrkDetl.getWrkNo())); + // //淇敼搴撳瓨淇℃伅 + // agvWrkDetlList.forEach(agvWrkDetl -> { + // AgvLocDetl agvLocDetl = agvLocDetlService.selectByMatnrAndBatchAndCsocodeAndisoCode(agvWrkMast.getLocNo(), agvWrkDetl.getMatnr(), agvWrkDetl.getBatch(), agvWrkDetl.getThreeCode(), agvWrkDetl.getDeadTime()); + // + // //AgvLocDetl agvLocDetl = agvLocDetlService.selectLocdetl(agvWrkMast.getLocNo(),agvWrkDetl.getMatnr(),agvWrkDetl.getBatch(),agvWrkDetl.getThreeCode(),agvWrkDetl.getDeadTime()); + // double updateAnfme = agvLocDetl.getAnfme() - agvWrkDetl.getAnfme(); + // agvLocDetlService.updateAnfme(updateAnfme,agvLocDetl.getLocNo(),agvLocDetl.getMatnr(),agvLocDetl.getBatch(),agvLocDetl.getThreeCode(),agvLocDetl.getDeadTime()); + // }); + //} //淇敼搴撲綅淇℃伅 updateAgvLocMast(agvLocMast,"Q"); //淇敼绔欑偣淇℃伅 @@ -561,7 +561,14 @@ // throw new CoolException("鐩爣搴撲綅鎴栬�呮簮搴撲綅鏆傛湭鍒嗛厤锛屾棤娉曞彇娑�"); // } //淇敼AGV宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负205.宸ヤ綔瀹屾垚 - agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205); + //agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205); + + //if (wrkMast.getIoType() == 101) { + // agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),206,"鎵嬪姩瀹屾垚",userId); + //} else { + // agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205,"鎵嬪姩瀹屾垚",userId); + //} + agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205,"鎵嬪姩瀹屾垚",userId); //鍑哄簱浠诲姟 101.鍑哄簱 || 103.鎷f枡鍑哄簱 || 107.鐩樼偣鍑哄簱 if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107 || wrkMast.getIoType() == 111){ @@ -575,6 +582,10 @@ //鍑哄簱浠诲姟 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())); } } @@ -597,7 +608,30 @@ //鐩爣搴撲綅 String locNo = wrkMast.getLocNo(); agvLocMastService.updateLocStsByLocNo(locNo,"O","",null); - agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue()); + if (wrkMast.getIoType() == 58) { + agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue()); + } else { + agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","",wrkMast.getWhsType().shortValue()); + } + + if (wrkMast.getIoType() == 1) { + List<AgvWaitPakin> agvWaitPakins = agvWaitPakinService.selectByContainerCode2(wrkMast.getBarcode()); + + for (AgvWaitPakin agvWaitPakin : agvWaitPakins) { + // 鍥炴粴鍏ュ簱璁㈠崟 + OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", agvWaitPakin.getThreeCode()).eq("matnr", agvWaitPakin.getMatnr()).eq("order_no", agvWaitPakin.getOrderNo())); + orderDetl.setQty(orderDetl.getQty() - agvWaitPakin.getAnfme()); + if (!orderDetlService.updateById(orderDetl)) { + throw new CoolException("璁㈠崟鍥炴粴澶辫触"); + } + // 鍒犻櫎缁勬墭妗� + if (!agvWaitPakinService.delete(new EntityWrapper<AgvWaitPakin>().eq("supp_code",agvWaitPakin.getSuppCode()).eq("matnr",agvWaitPakin.getMatnr()).eq("three_code",agvWaitPakin.getThreeCode()))) { + throw new CoolException("鍏ュ簱閫氱煡妗e彇娑堝け璐�"); + } + } + + + } // 绉诲簱鍙栨秷 @@ -609,8 +643,23 @@ String targetLocNo = wrkMast.getLocNo(); agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo)); agvLocMastService.updateLocStsByLocNo(targetLocNo,"O","",null); + AgvLocMast locMast = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", targetLocNo)); + // 褰撳墠浠诲姟鏄法灞傜Щ搴� 涓旂洰鏍囨ゼ灞傛槸1妤肩殑 鍥炴粴璋冩嫧鍗� + if (wrkMast.getIoType() == 12 && locMast.getFloor() == 1) { + List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo)); + for (AgvLocDetl agvLocDetl : agvLocDetls) { + OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("three_code", agvLocDetl.getThreeCode()).eq("matnr", agvLocDetl.getMatnr()).eq("order_no", "DB" + agvLocDetl.getOrderNo())); + orderDetl.setQty(orderDetl.getQty() + agvLocDetl.getAnfme()); + if (!orderDetlService.updateById(orderDetl)) { + throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); + } + } + } // 鑷姩璋冩嫧鍑哄簱鍙栨秷 - } else if(wrkMast.getIoType() == 108 || wrkMast.getIoType() == 111) { + } else if(wrkMast.getIoType() == 108 || wrkMast.getIoType() == 111 || wrkMast.getIoType() == 112) { + if (wrkMast.getIoType() == 112) { + throw new CoolException("褰撳墠浣滀笟涓嶈兘鍙栨秷锛�"); + } // 婧愬簱浣� String locNo = wrkMast.getSourceLocNo(); // 鐩爣搴撲綅 @@ -621,9 +670,15 @@ agvLocMastService.updateLocStsByLocNo(targetLocNo,"O","",null); } } else { - if (wrkMast.getWrkSts() != 22) { - agvBasDevpService.updateLocStsAndBarcodeByDevNo(targetLocNo,"O","",wrkMast.getWhsType().shortValue()); + if (wrkMast.getWrkSts() != 207L && wrkMast.getWrkSts() != 205L) { + if (wrkMast.getWrkSts() != 22) { + agvBasDevpService.updateLocStsAndBarcodeByDevNo(targetLocNo,"O","",wrkMast.getWhsType().shortValue()); + } + } else { + throw new CoolException("褰撳墠浣滀笟涓嶈兘鍙栨秷锛�"); } + + } List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo)); @@ -642,14 +697,42 @@ //鐩爣绔欑偣 String devNo = wrkMast.getLocNo(); if (wrkMast.getIoType() == 110 || wrkMast.getIoType() == 109) { - agvLocMastService.updateLocStsByLocNo(locNo,"D",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo)); - } else { + if (wrkMast.getIoType() == 109){ + // 婧愬簱浣嶆槸绔欑偣 + if ("DB".equals(locNo.substring(0,2))) { + agvBasDevpService.updateLocStsAndBarcodeByDevNo(locNo,"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue()); + agvLocMastService.updateLocStsByLocNo(devNo,"O","",null); + // 婧愬簱浣嶆槸搴撲綅 鐩爣搴撲綅鏄珯鐐� + } else if ("DB".equals(devNo.substring(0,2))) { + agvLocMastService.updateLocStsByLocNo(locNo,"D",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue()); + agvBasDevpService.updateLocStsAndBarcodeByDevNo(locNo,"O","",null); + // 婧愬簱浣嶆槸搴撲綅 + } else { + agvLocMastService.updateLocStsByLocNo(locNo,"D",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue()); + agvLocMastService.updateLocStsByLocNo(devNo,"O","",null); + } + + }else { + agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","",null); + } + } else if (wrkMast.getIoType() == 113) { + if (wrkMast.getWrkSts() == 212 || wrkMast.getWrkSts() == 213) { + agvBasDevpService.updateLocStsAndBarcodeByDevNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo)); + } else { + agvBasDevpService.updateLocStsAndBarcodeByDevNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo)); + if (!Cools.isEmpty(devNo)) { + agvLocMastService.updateLocStsByLocNo(devNo,"0","",null); + } + } + + } else { + agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","",null); agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo)); } - agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","",null); + } - if(wrkMast.getIoType() != 1 && wrkMast.getIoType() != 10){ + if(wrkMast.getIoType() != 1 && wrkMast.getIoType() != 10 && wrkMast.getIoType()!=111 && wrkMast.getIoType()!=108 && wrkMast.getIoType() != 12){ //璁㈠崟鍥炴粴 //List<AgvWrkDetl> agvWrkDetlList = agvWrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); List<AgvWrkDetl> agvWrkDetlList1 = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); @@ -674,15 +757,25 @@ } }); } + wrkMast.setModiUser(userId); + wrkMast.setModiTime(new Date()); + if (type == 2) { + wrkMast.setManuType("鎵嬪姩鍙栨秷锛坅gv锛�"); + } else { + wrkMast.setManuType("鎵嬪姩鍙栨秷"); + } + //淇濆瓨宸ヤ綔妗d互鍙婃槑缁� agvWrkMastLogService.save(wrkMast); agvWrkDetlLogService.save(wrkMast.getWrkNo()); + //鍒犻櫎宸ヤ綔妗d互鍙婃槑缁� if(!agvWrkMastService.deleteByWrkNo(wrkMast.getWrkNo()) || !agvWrkDetlService.deleteByWrkNo(wrkMast.getWrkNo())){ throw new CoolException("鍒犻櫎澶辫触锛岃鑱旂郴绠$悊鍛�"); } + if (type == 2) { //璋冪敤agv鍙栨秷浠诲姟鎺ュ彛 agvWrkMastService.callCancelTask(wrkMast.getWrkNo()); @@ -696,6 +789,7 @@ */ private void updateAgvLocMast(AgvLocMast locMast, String locSts){ locMast.setLocSts(locSts); + locMast.setModiTime(new Date()); agvLocMastService.updateById(locMast); } @@ -705,6 +799,7 @@ private void updateAgvLocMast(AgvLocMast locMast, String locSts, short type){ locMast.setLocSts(locSts); locMast.setLocType2(type); + locMast.setModiTime(new Date()); agvLocMastService.updateById(locMast); } @@ -893,6 +988,27 @@ } } + @Override + @Transactional + public void changeType(String workNo, Long userId) { + AgvWrkMast wrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("wrk_no", workNo)); + if (Cools.isEmpty(wrkMast)) { + throw new CoolException("鏆傛棤\n" + workNo + "\n宸ヤ綔"); + } + if (wrkMast.getWrkSts() != 22) { + throw new CoolException("褰撳墠浠诲姟宸插垎閰嶇洰鏍囧簱浣嶏紝鏆備笉鏀寔璋冩暣"); + } + if (wrkMast.getIoType() == 108) { + wrkMast.setIoType(111); + agvWrkMastService.update(wrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no", workNo)); + } else if(wrkMast.getIoType() == 111) { + wrkMast.setIoType(108); + agvWrkMastService.update(wrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no", workNo)); + } + + + } + private void addInQty(String devno){ AgvBasDevp agvBasDevp = agvBasDevpService.selectById(devno); if(!Cools.isEmpty(agvBasDevp)){ -- Gitblit v1.9.1