From df702972ff8ae890991021663d919f47dc864606 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期二, 24 十二月 2024 10:35:23 +0800
Subject: [PATCH] 优化ReportDataHandler响应处理逻辑

---
 src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java |   50 +++++++++++++++++++++++++++++++++++---------------
 1 files changed, 35 insertions(+), 15 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 c8aba41..46ced6e 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -131,23 +131,23 @@
             AgvWrkDetl agvWrkDetl = agvWrkDetlService.selectOne(new EntityWrapper<AgvWrkDetl>().eq("matnr", pick.getMatnr()).eq("three_code", pick.getThreeCode()).eq("supp_code", pick.getSuppCode()));
 
             if (Cools.isEmpty(agvWrkDetl)) {
-                AgvWrkDetl wrkDetl = new AgvWrkDetl();
+                agvWrkDetl = new AgvWrkDetl();
                 Mat mat = matService.selectByMatnr(pick.getMatnr());
                 if (Cools.isEmpty(mat)) {
                     throw new CoolException(pick.getMatnr() + "鍟嗗搧涓嶅瓨鍦�");
                 }
-                wrkDetl.sync(mat);
-                wrkDetl.setWrkNo(pickParams.getWrkNo());
-                wrkDetl.setOrderNo(pick.getOrderNo());
-                wrkDetl.setIoTime(agvWrkMast.getIoTime());
-                wrkDetl.setAnfme(pick.getCount()); // 鏁伴噺
-                wrkDetl.setSuppCode(pick.getSuppCode()); // 璐ф灦鏉$爜
-                wrkDetl.setAppeUser(userId);
-                wrkDetl.setAppeTime(now);
-                wrkDetl.setModiUser(userId);
-                wrkDetl.setModiTime(now);
-                wrkDetl.setThreeCode(pick.getThreeCode());
-                agvWrkDetlService.insert(wrkDetl);
+                agvWrkDetl.sync(mat);
+                agvWrkDetl.setWrkNo(pickParams.getWrkNo());
+                agvWrkDetl.setOrderNo(pick.getOrderNo());
+                agvWrkDetl.setIoTime(agvWrkMast.getIoTime());
+                agvWrkDetl.setAnfme(pick.getCount()); // 鏁伴噺
+                agvWrkDetl.setSuppCode(pick.getSuppCode()); // 璐ф灦鏉$爜
+                agvWrkDetl.setAppeUser(userId);
+                agvWrkDetl.setAppeTime(now);
+                agvWrkDetl.setModiUser(userId);
+                agvWrkDetl.setModiTime(now);
+                agvWrkDetl.setThreeCode(pick.getThreeCode());
+                agvWrkDetlService.insert(agvWrkDetl);
             } else {
                 Double anfme = agvWrkDetl.getAnfme() + pick.getCount();
                 agvWrkDetl.setIoTime(agvWrkMast.getIoTime());
@@ -164,6 +164,8 @@
                 if (agvLocDetl.getAnfme() < agvWrkDetl.getAnfme()) {
                     throw new CoolException("鎷f枡鏁伴噺涓嶈兘澶т簬搴撳瓨鏁伴噺");
                 }
+            } else {
+                throw new CoolException("鎷f枡鏁伴噺涓嶈兘澶т簬搴撳瓨鏁伴噺,瀛樺簱涓嶅瓨鍦�");
             }
 
             // 鏇存柊璁㈠崟
@@ -858,9 +860,27 @@
                 throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
             }
             // 鍚屾璁㈠崟鏁伴噺
-            OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("matnr", agvWrkDetl.getMatnr()).eq("three_code", agvWrkDetl.getThreeCode()).eq("order_no", agvWrkDetl.getOrderNo()).in("source", 18, 31, 34));
+            //OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("matnr", agvWrkDetl.getMatnr()).eq("three_code", agvWrkDetl.getThreeCode()).eq("order_no", agvWrkDetl.getOrderNo()).in("source", 18, 31, 34));
+            List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("matnr", agvWrkDetl.getMatnr()).eq("three_code", agvWrkDetl.getThreeCode()).eq("order_no", agvWrkDetl.getOrderNo()));
+            OrderDetl orderDetl = null;
+            if (orderDetls.isEmpty()) {
+                throw new CoolException("璁㈠崟鏄庣粏涓嶅瓨鍦�");
+            } else if (orderDetls.size() > 1) {
+                for (OrderDetl detl : orderDetls) {
+                    if (Cools.isEmpty(agvWrkDetl.getBatch()) && Cools.isEmpty(detl.getBatch())) {
+                        orderDetl = detl;
+                    } else if (!Cools.isEmpty(agvWrkDetl.getBatch()) && !Cools.isEmpty(detl.getBatch()) && agvWrkDetl.getBatch().equals(detl.getBatch())) {
+                        orderDetl = detl;
+                    }
+                }
+                if (orderDetl == null) {
+                    throw new CoolException("璁㈠崟鏄庣粏涓嶅尮閰�");
+                }
+            } else {
+                orderDetl = orderDetls.get(0);
+            }
             orderDetl.setQty(orderDetl.getQty() - agvWrkDetl.getAnfme());
-            if (!orderDetlService.update(orderDetl, new EntityWrapper<OrderDetl>().eq("order_no", orderDetl.getOrderNo()).eq("matnr", orderDetl.getMatnr()).eq("three_code", orderDetl.getThreeCode()))) {
+            if (!orderDetlService.updateById(orderDetl)) {
                 throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�" + orderDetl.getOrderNo() + orderDetl.getMatnr());
             }
         }

--
Gitblit v1.9.1