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