From a63de0a719690fd1887e848676b12c21fe819df1 Mon Sep 17 00:00:00 2001 From: whycq <913841844@qq.com> Date: 星期五, 19 四月 2024 09:42:58 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java | 170 ++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 120 insertions(+), 50 deletions(-) diff --git a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java index b22bdd1..f08cbde 100644 --- a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java @@ -3,6 +3,7 @@ import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; +import com.core.common.R; import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.service.*; @@ -18,6 +19,7 @@ import java.io.IOException; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; @Slf4j @Service @@ -46,23 +48,28 @@ private OrderService orderService; @Autowired private AgvBasDevpService agvBasDevpService; + @Autowired + private AgvWorkService agvWorkService; @Transactional public ReturnT<String> completedPutWayWrk(AgvWrkMast agvWrkMast) { int wrkNo = agvWrkMast.getWrkNo(); String barcode = agvWrkMast.getBarcode(); String orderNo = getOrderNoByWrkNo(wrkNo); + String agvBasDevp = ""; + if (agvWrkMast.getIoType() > 100) { + agvBasDevp = agvWrkMast.getLocNo(); + } else { + agvBasDevp = agvWrkMast.getSourceLocNo(); + } + //淇敼宸ヤ綔妗g姸鎬佷负207.搴撳瓨鏇存柊瀹屾垚 agvWrkMast.setWrkSts(207L); agvWrkMastService.updateById(agvWrkMast); - if(agvWrkMast.getIoType() == 10){ - // 绌烘澘鍏ュ簱 璁剧疆搴撲綅鐘舵�佷负D.绌烘《/绌烘爤鏉� - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode()); - }else{ - //淇敼鐩爣搴撲綅鐘舵�佷负F.鍦ㄥ簱 - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode()); - } + // 绌烘澘鍏ュ簱 璁剧疆搴撲綅鐘舵�佷负D.绌烘《/绌烘爤鏉� + String locSts = agvWrkMast.getIoType() == 10 ? "D" : "F"; + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),locSts,agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); //鐢熸垚AGV宸ヤ綔鍘嗗彶妗� agvWrkMastLogService.save(agvWrkMast); //鐢熸垚AGV宸ヤ綔鏄庣粏鍘嗗彶妗� @@ -83,7 +90,7 @@ //鏇存柊搴撳瓨鏄庣粏 agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo()); //淇敼婧愬簱浣嶇姸鎬佷负O - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O",""); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null); } //鍒犻櫎AGV宸ヤ綔妗� @@ -114,7 +121,56 @@ agvWrkMast.setWrkSts(207L); agvWrkMastService.updateById(agvWrkMast); //淇敼婧愬簱浣嶇姸鎬佷负O - agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O",""); + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null); + if(agvWrkMast.getIoType() == 101){ + //鏇存柊鐩爣搴撲綅鏄庣粏 101.鍑哄簱 鍒犻櫎婧愬簱浣嶅簱瀛樻槑缁� + agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvWrkMast.getSourceLocNo())); + //鐢熸垚绌烘澘鍏ュ簱浠诲姟 + Short containerType = Short.valueOf(agvWrkMast.getBarcode().substring(0, 2)); + try { + agvWorkService.emptyPlateIn(agvWrkMast.getLocNo(),agvWrkMast.getBarcode(),containerType,9527L,true); + }catch (Exception e){ + e.printStackTrace(); + log.error(e.getMessage()); + } + } + + //鐢熸垚AGV宸ヤ綔鍘嗗彶妗� + agvWrkMastLogService.save(agvWrkMast); + //鐢熸垚AGV宸ヤ綔鏄庣粏鍘嗗彶妗� + agvWrkDetlLogService.save(wrkNo); + //鍒犻櫎AGV宸ヤ綔妗� + agvWrkMastService.deleteById(wrkNo); + //鍒犻櫎AGV宸ヤ綔鏄庣粏妗� + agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo)); + if(!isJSON(orderNo)){ + //妫�鏌ヨ鍗曟槸鍚﹀凡瀹屾垚 + orderService.checkComplete(orderNo); + }else{ + List<Map> maps = JSONArray.parseArray(orderNo, Map.class); + maps.forEach(map -> { + String o = map.get("orderNo").toString(); + orderService.checkComplete(o); + }); + } + return SUCCESS; + } + + @Transactional + public ReturnT<String> completedCarryWrk2(AgvWrkMast agvWrkMast) { + int wrkNo = agvWrkMast.getWrkNo(); + String orderNo = getOrderNoByWrkNo(wrkNo); + String agvBasDevp = ""; + if (agvWrkMast.getIoType() > 100) { + agvBasDevp = agvWrkMast.getLocNo(); + } else { + agvBasDevp = agvWrkMast.getSourceLocNo(); + } + //淇敼宸ヤ綔妗g姸鎬佷负207.搴撳瓨鏇存柊瀹屾垚 + agvWrkMast.setWrkSts(207L); + agvWrkMastService.updateById(agvWrkMast); + //淇敼婧愬簱浣嶇姸鎬佷负O + agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null); if(agvWrkMast.getIoType() == 101){ //鏇存柊鐩爣搴撲綅鏄庣粏 101.鍑哄簱 鍒犻櫎婧愬簱浣嶅簱瀛樻槑缁� agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvWrkMast.getSourceLocNo())); @@ -142,56 +198,48 @@ } @Transactional - public ReturnT<String> startPutWayWrk(List<AgvWrkMast> agvWrkMastList) throws IOException { + @Synchronized + public ReturnT<String> startPutWayWrk(AgvWrkMast agvWrkMast) throws IOException { //涓嬪彂浠诲姟 - int startWrkCode = agvWrkMastService.startWrk(agvWrkMastList,"putaway"); + int startWrkCode = agvWrkMastService.startWrk(agvWrkMast); if(startWrkCode != 0){ throw new CoolException("浠诲姟涓嬪彂澶辫触"); } - //涓嬪彂瀹瑰櫒鍏ュ満鎸囦护 锛堢紦瀛樿揣鏋讹級 - int code = agvWrkMastService.containerMoveIn(agvWrkMastList); - - if(code == 0){ - for(AgvWrkMast agvWrkMast : agvWrkMastList){ - //涓嬪彂瀹瑰櫒杈惧埌閫氱煡 锛堣緭閫佺嚎锛� - if("Y".equals(agvWrkMast.getMk())){ - int containerArrivedCode = agvWrkMastService.containerArrived(agvWrkMast); - if(containerArrivedCode != 0){ - log.error("瀹瑰櫒鍒拌揪鎸囦护涓嬪彂澶辫触"); - continue; - } - } - //202.RCS鍙栬揣涓� - agvWrkMast.setWrkSts(202L); - agvWrkMastService.updateById(agvWrkMast); - if(agvWrkMast.getIoType() == 1){ - //淇敼AGV鍏ュ簱閫氱煡妗g姸鎬佸叆鍑虹姸鎬佷负Y - agvWaitPakinService.updateIoStatus(agvWrkMast.getWrkNo(),"Y"); - } - } - return SUCCESS; + agvWrkMast.setWrkSts(202L); + agvWrkMastService.updateById(agvWrkMast); + if(agvWrkMast.getIoType() == 1){ + //淇敼AGV鍏ュ簱閫氱煡妗g姸鎬佸叆鍑虹姸鎬佷负Y + agvWaitPakinService.updateIoStatus(agvWrkMast.getWrkNo(),"Y"); } - return FAIL; + return SUCCESS; + } - @Transactional - public ReturnT<String> startCarryWrk(List<AgvWrkMast> agvWrkMastList) throws IOException { - int code = agvWrkMastService.startWrk(agvWrkMastList,"carry"); - if(code == 0){ - agvWrkMastList.forEach(agvWrkMast -> { - //202.RCS鍙栬揣涓� - agvWrkMast.setWrkSts(202L); - agvWrkMastService.updateById(agvWrkMast); - }); - //agvWrkMastService.updateBatchById(agvWrkMastList); - - return SUCCESS; - } - - return FAIL; - } +// @Transactional +// public ReturnT<String> startCarryWrk(AgvWrkMast agvWrkMast) throws IOException { +// //log.info(agvWrkMastList.toString()); +// //浠诲姟杩囨护锛岃繃婊ゆ帀宸插瓨鍦ㄧ浉鍚岀洰鏍囧簱浣嶇殑宸ヤ綔妗� +// //agvWrkMastList = filter(agvWrkMastList); +// int code = agvWrkMastService.startWrk(agvWrkMast); +// //log.info(agvWrkMastList.toString()); +// if (Cools.isEmpty(agvWrkMastList)){ +// return SUCCESS; +// } +// if(code == 0){ +// agvWrkMastList.forEach(agvWrkMast -> { +// //202.RCS鍙栬揣涓� +// agvWrkMast.setWrkSts(202L); +// agvWrkMastService.updateById(agvWrkMast); +// }); +// //agvWrkMastService.updateBatchById(agvWrkMastList); +// +// return SUCCESS; +// } +// +// return FAIL; +// } @Synchronized @Transactional @@ -208,6 +256,15 @@ log.info("after锛�" + devNoMap.toString() + ", wrkNo:" + agvWrkMast.getWrkNo() + ", locNo: " + agvWrkMast.getLocNo()); } }); + + return SUCCESS; + } + + @Synchronized + @Transactional + public ReturnT<String> autoEmptyOut(AgvBasDevp agvBasDevp) { + + agvWorkService.emptyPlateOut(agvBasDevp.getDevNo(),0,9527L); return SUCCESS; } @@ -234,4 +291,17 @@ } } } + + private List<AgvWrkMast> filter(List<AgvWrkMast> agvWrkMastList){ + return agvWrkMastList.stream().filter(agvWrkMast -> { + AgvWrkMast agvWrkMastWroking = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("source_loc_no", agvWrkMast.getLocNo())); + if(!Cools.isEmpty(agvWrkMastWroking) && agvWrkMastWroking.getWrkSts()<=202){ + System.out.println("source_loc_no > 1"); + return false; + } + log.info(agvWrkMast.toString()); + int num = agvWrkMastService.selectCount(new EntityWrapper<AgvWrkMast>().eq("loc_no", agvWrkMast.getLocNo())); + return num <= maxWrokNum; + }).collect(Collectors.toList()); + } } -- Gitblit v1.9.1