From b830ec60edf8b4a581e6ed7ca4a62e16a82d7081 Mon Sep 17 00:00:00 2001 From: zhangc <zc@123> Date: 星期二, 17 十二月 2024 15:33:12 +0800 Subject: [PATCH] 优化逻辑并调整线程池配置 --- src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java | 74 +++++++++++++++++++++---------------- 1 files changed, 42 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java b/src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java index 646d5a2..451c395 100644 --- a/src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java @@ -29,6 +29,9 @@ private LocDetlService locDetlService; @Autowired private LocMastService locMastService; + + @Autowired + private AgvLocMastService agvLocMastService; @Autowired private CommonService commonService; @Autowired @@ -64,16 +67,16 @@ Date now = new Date(); Set<String> locNos = pakoutLoc(order); - for (String locNo : locNos){ + for (String locNo : locNos) { LocMast locMast = locMastService.selectByLoc(locNo); - if(!"F".equals(locMast.getLocSts())){ + if (!"F".equals(locMast.getLocSts())) { throw new CoolException("搴撲綅鐘舵�佸凡鍙樻洿"); } //鐢熸垚宸ヤ綔妗� - WrkMast wrkMast = createWrkMast(locNo,locMast.getBarcode(),now); + WrkMast wrkMast = createWrkMast(locNo, locMast.getBarcode(), now); //鐢熸垚宸ヤ綔妗f槑缁� List<LocDetl> locDetls = locDetlService.selectByLocNo(locNo); - createWrkDetl(locDetls, wrkMast,order.getOrderNo(),now); + createWrkDetl(locDetls, wrkMast, order.getOrderNo(), now); //淇敼搴撲綅鐘舵�� locMast.setLocSts("R"); locMastService.updateByLocNo(locMast); @@ -84,7 +87,7 @@ return SUCCESS; } - private Order createOrder(){ + private Order createOrder() { Date now = new Date(); return new Order( String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖] @@ -125,7 +128,7 @@ } - private OrderDetl createOrderDetl(Order order){ + private OrderDetl createOrderDetl(Order order) { Date now = new Date(); OrderDetl orderDetl = new OrderDetl(); @@ -141,14 +144,14 @@ return orderDetl; } - private Set<String> pakoutLoc(Order order){ + private Set<String> pakoutLoc(Order order) { //闇�瑕佸嚭搴撶殑搴撲綅 Set<String> locNos = new HashSet<>(); //鏍规嵁璁㈠崟鐢熸垚鍥涢」搴撳嚭搴撳伐浣滄。 List<OrderDetl> orderDetlList = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", order.getOrderNo())); - for(OrderDetl orderDetl : orderDetlList){ - if(orderDetl.getAnfme() - orderDetl.getQty() <= 0){ + for (OrderDetl orderDetl : orderDetlList) { + if (orderDetl.getAnfme() - orderDetl.getQty() <= 0) { continue; } @@ -162,16 +165,16 @@ //杩囨护搴撲綅璐х墿涓洪珮璐х墿 locNosSearch = locNosSearch.stream().filter(locNo -> { LocMast locMast = locMastService.selectByLoc(locNo); - if(locMast.getLocType1() == 3){ + if (locMast.getLocType1() == 3) { return false; - }else { + } else { //涓旀娴嬭搴撲綅鏄惁鍚病鏈夎揣鏋剁爜鐨勭墿鏂欙紝濡傛湁鏈夊垯涓嶅厑璁稿嚭搴� // LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locNo) // .andNew().eq("supp_code", "").or().isNull("supp_code")); - if(Cools.isEmpty(locDetlService.selectByLocWithoutContainer(locNo))){ + if (Cools.isEmpty(locDetlService.selectByLocWithoutContainer(locNo))) { return true; - }else { + } else { return false; } } @@ -180,13 +183,13 @@ //閲嶆柊鎺掑簭 Set<String> resort = resort(locNosSearch); - for(String locNo : resort){ + for (String locNo : resort) { List<LocDetl> locDetls = locDetlService.selectByLocNo(locNo); locNos.add(locNo); - for (LocDetl locDetl :locDetls){ - if(matnr.equals(locDetl.getMatnr())){ + for (LocDetl locDetl : locDetls) { + if (matnr.equals(locDetl.getMatnr())) { orderAnfme -= locDetl.getAnfme(); - }else { + } else { OrderDetl odNew = createOrderDetl(order); odNew.setMatnr(locDetl.getMatnr()); odNew.setMaktx(locDetl.getMaktx()); @@ -199,13 +202,13 @@ orderDetlService.insert(odNew); } } - if(orderAnfme <= 0){ + if (orderAnfme <= 0) { orderDetl.setQty(orderDetl.getAnfme() - orderAnfme); orderDetlService.updateById(orderDetl); break; } } - if(orderAnfme > 0){ + if (orderAnfme > 0) { orderDetl.setAnfme(orderDetl.getAnfme() - orderAnfme); orderDetl.setQty(orderDetl.getAnfme()); orderDetlService.updateById(orderDetl); @@ -216,30 +219,30 @@ } //鏍规嵁娣辨祬搴撲綅杩涜閲嶆柊鎺掑簭 - private Set<String> resort(Set<String> locNos){ + private Set<String> resort(Set<String> locNos) { Set<String> locNosResort = new LinkedHashSet<>(); - for(String locNoSearch : locNos){ + for (String locNoSearch : locNos) { LocMast locMast = locMastService.selectById(locNoSearch); - if(!"F".equals(locMast.getLocSts())){ + if (!"F".equals(locMast.getLocSts())) { continue; } List<String> groupOuterLoc = Utils.getGroupOuterLoc(locNoSearch); - if(Cools.isEmpty(groupOuterLoc)){ + if (Cools.isEmpty(groupOuterLoc)) { locNosResort.add(locNoSearch); - }else { + } else { groupOuterLoc.add(locNoSearch); //濡傛灉鏄繁搴撲綅锛屽垯鍏堟壘澶栦晶鐨勫簱浣� - for (String locNoOut : groupOuterLoc){ + for (String locNoOut : groupOuterLoc) { LocMast locMastOuter = locMastService.selectById(locNoOut); //澶栦晶濡傛灉鏄嫞鏂欙紝鍒欏唴娴嬩笉鍏佽鍑� - if("P".equals(locMastOuter.getLocSts()) || "Q".equals(locMastOuter.getLocSts()) || "S".equals(locMastOuter.getLocSts())){ + if ("P".equals(locMastOuter.getLocSts()) || "Q".equals(locMastOuter.getLocSts()) || "S".equals(locMastOuter.getLocSts())) { break; } - if(!"F".equals(locMastOuter.getLocSts())){ + if (!"F".equals(locMastOuter.getLocSts())) { continue; } locNosResort.add(locNoOut); @@ -250,7 +253,7 @@ return locNosResort; } - private WrkMast createWrkMast(String locNo,String barCode,Date now){ + private WrkMast createWrkMast(String locNo, String barCode, Date now) { int ioType = 101; int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType)); WrkMast wrkMast = new WrkMast(); @@ -274,19 +277,26 @@ wrkMast.setAppeTime(now); //wrkMast.setModiUser(userId); wrkMast.setModiTime(now); - + Integer pltType = null; + if (!Cools.isEmpty(locNo) && Cools.isEmpty(pltType)) { + AgvLocMast agvLocMast = agvLocMastService.selectById(locNo); + if (agvLocMast != null) { + pltType = agvLocMast.getPltType(); + } + } + wrkMast.setPltType(pltType); //琛ヨ揣鏍囪瘑 wrkMast.setMk("Y"); if (!wrkMastService.insert(wrkMast)) { - throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細"+locNo); + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細" + locNo); } return wrkMast; } - private void createWrkDetl(List<LocDetl> locDetls, WrkMast wrkMast,String orderNo, Date now){ + private void createWrkDetl(List<LocDetl> locDetls, WrkMast wrkMast, String orderNo, Date now) { locDetls.forEach(locDetl -> { WrkDetl wrkDetl = new WrkDetl(); - BeanUtils.copyProperties(locDetl,wrkDetl); + BeanUtils.copyProperties(locDetl, wrkDetl); wrkDetl.setZpallet(wrkMast.getBarcode()); wrkDetl.setIoTime(now); wrkDetl.setWrkNo(wrkMast.getWrkNo()); -- Gitblit v1.9.1