From ce43df438a4bbef5b9ffaed0a33a97db6e88fbf1 Mon Sep 17 00:00:00 2001 From: zhangc <zc@123> Date: 星期二, 14 一月 2025 14:57:07 +0800 Subject: [PATCH] 优化异常处理及订单同步逻辑 --- src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java | 16 ++++++++++++---- src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java | 3 ++- src/main/java/com/zy/asrs/task/OrderSyncScheduler.java | 2 +- src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java | 20 +++++++++++++++----- 4 files changed, 30 insertions(+), 11 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 46ced6e..05605cf 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java @@ -17,10 +17,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; /** @@ -92,6 +89,17 @@ if (!Cools.isEmpty(agvWrkMastService.selectByContainerCode(param.getBarcode()))) { throw new CoolException(param.getBarcode() + "璐ф灦鐮佸凡瀛樺湪AGV宸ヤ綔妗d腑"); } + //鍒ゆ柇鏄惁鏈夌浉鍚屾槑缁� + List<CombParam.CombMat> combMats = param.getCombMats(); + Map<String, String> data = new HashMap<>(); + for (CombParam.CombMat combMat : combMats) { + String matnr = combMat.getMatnr(); + String csocode = combMat.getCsocode(); + if (data.get(matnr + csocode) != null) { + throw new CoolException("鏄庣粏涓瓨鍦ㄧ浉鍚岀墿鏂欏彿鍜岃鍗曞彿"); + } + data.put(matnr + csocode, matnr + csocode); + } if (Cools.isEmpty(param.getOrderNo())) { //鏃犲崟缁勬墭 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 4b4c04e..955aa3b 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java @@ -645,7 +645,8 @@ } if (Cools.isEmpty(agvLocMast)) { - throw new CoolException("鏆傛棤褰撳墠鍑哄簱绔欑偣绫诲瀷鐨勭┖璐ф灦锛�"); + log.info("鏆傛棤褰撳墠鍑哄簱绔欑偣绫诲瀷鐨勭┖璐ф灦锛�"); + return; } //鐢熸垚宸ヤ綔妗� createWrkMast(110, 21L, agvLocMast.getLocNo(), agvBasDevp.getDevNo(), agvLocMast.getBarcode(), now, userId, containerType, agvLocMast.getPltType()); diff --git a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java index cb648d6..f579f89 100644 --- a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java +++ b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java @@ -86,7 +86,7 @@ @Scheduled(fixedDelay = 30000) //@Async("orderThreadPool") public synchronized void reportOrder() { - DocType docType = docTypeService.selectOne(new EntityWrapper<DocType>().eq("docName", "閾跺骇閲囪喘鍏ュ簱鍗�")); + DocType docType = docTypeService.selectOne(new EntityWrapper<DocType>().eq("doc_name", "閾跺骇閲囪喘鍏ュ簱鍗�")); List<Order> orderList = orderService.selectList(new EntityWrapper<Order>().eq("doc_type", docType.getDocId()).in("settle", 2, 4)); orderList.forEach(order -> { orderSyncHandler.timelyStart(order); 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 036acb0..6a3020f 100644 --- a/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java @@ -191,11 +191,15 @@ //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅 AgvLocMast locMast = agvCommonService.getLocNo(3,agvWrkMast.getCrnNo(),false,true,null); if (Cools.isEmpty(locMast)) { - throw new CoolException("鏆傛棤搴撲綅"); + log.info("鏆傛棤搴撲綅"); + return FAIL; + //throw new CoolException("鏆傛棤搴撲綅"); } AgvWrkMast workingMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", locMast.getLocNo())); if (!Cools.isEmpty(workingMast)) { - throw new CoolException("褰撳墠搴撲綅姝e湪杩涜鍏ュ簱锛岃繘琛屼笅涓�娆¤疆璇�"); + log.info("褰撳墠搴撲綅姝e湪杩涜鍏ュ簱锛岃繘琛屼笅涓�娆¤疆璇�"); + return FAIL; + //throw new CoolException("褰撳墠搴撲綅姝e湪杩涜鍏ュ簱锛岃繘琛屼笅涓�娆¤疆璇�"); } agvWrkMast.setWrkSts(201L); agvWrkMast.setModiTime(new Date()); @@ -215,7 +219,9 @@ //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅 AgvLocMast locMast = agvCommonService.getLocNo(3,agvWrkMast.getCrnNo(),false,false,null); if (Cools.isEmpty(locMast)) { - throw new CoolException("鏆傛棤搴撲綅"); + log.info("鏆傛棤搴撲綅"); + return FAIL; + //throw new CoolException("鏆傛棤搴撲綅"); } agvWrkMast.setWrkSts(201L); agvWrkMast.setLocNo(locMast.getLocNo()); @@ -239,7 +245,9 @@ } if (Cools.isEmpty(devpNo)) { - throw new CoolException("鏆傛棤绌洪棽鎺ラ┏浣�"); + log.info("鏆傛棤绌洪棽鎺ラ┏浣�"); + return FAIL; + //throw new CoolException("鏆傛棤绌洪棽鎺ラ┏浣�"); } agvWrkMast.setWrkSts(201L); agvWrkMast.setLocNo(devpNo.getDevNo()); @@ -400,7 +408,9 @@ } List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("io_type", 109).like("source_loc_no", floor).or().eq("io_type", 113)); if (agvWrkMasts.size() >= 5) { - throw new CoolException("鏆傚仠鍥炴祦"); + log.error("鏆傚仠鍥炴祦"); + return FAIL; + //throw new CoolException("鏆傚仠鍥炴祦"); } //妫�绱㈢┖闂插彲鍏ユ帴椹充綅 娌℃湁绌洪棽鍙叆鎺ラ┏浣� 鐩存帴鎵惧簱浣� AgvBasDevp devpNo = agvCommonService.getDevpNo(3, agvLocMast.getFloor(),"Y","Y"); -- Gitblit v1.9.1