From 37f55514ad2f02397fd75c7d98cea25e371243c7 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期一, 20 一月 2025 16:54:29 +0800
Subject: [PATCH] 添加库位规则查找,优化自动移动逻辑

---
 src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)

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 376531f..3ee5b12 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -11,6 +11,7 @@
 import com.zy.asrs.entity.param.LocDetlAdjustParam;
 import com.zy.asrs.entity.param.StockOutParam;
 import com.zy.asrs.service.*;
+import com.zy.asrs.utils.OrderUtils;
 import com.zy.asrs.utils.Utils;
 import com.zy.common.model.LocDto;
 import com.zy.common.model.OrderDto;
@@ -31,6 +32,7 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicReference;
 
 /**
  * Created by vincent on 2020/6/11
@@ -507,6 +509,9 @@
             case 30:
                 br = 3;
                 break;
+            case 31:
+                br = 6;
+                break;
             case 40:
                 br = 5;
                 break;
@@ -517,6 +522,7 @@
         if (agvBasDevp.getLocType1() != br) {
             throw new CoolException("绔欑偣绫诲瀷鍜岃揣鏋剁被鍨嬩笉绗︼紒");
         }
+        AtomicReference<String> factory = new AtomicReference<>();
         if (containerType == 40) {
             locType = 5;
         } else if (containerType == 21 && agvBasDevp.getFloor() == 3) {
@@ -525,6 +531,8 @@
             locType = 2;
         } else if (containerType == 30) {
             locType = 3;
+        } else if (containerType == 31) {
+            locType = 6;
         } else {
             locType = agvBasDevp.getLocType1();
         }
@@ -553,6 +561,7 @@
         if (!Cools.isEmpty(agvWaitPakinList)) {
             AtomicBoolean isCurrLev = new AtomicBoolean(false);
             agvWaitPakinList.forEach(agvWaitPakin -> {
+                factory.set(OrderUtils.getFactory(agvWaitPakin.getThreeCode()));
                 if (!Cools.isEmpty(agvWaitPakin.getProcessSts())) {
                     if (agvWaitPakin.getProcessSts() == 1) {
                         isCurrLev.set(true);
@@ -623,6 +632,9 @@
 
         // 绔欑偣妫�娴�
         AgvBasDevp agvBasDevp = agvBasDevpService.selectById(station);
+        if (Cools.isEmpty(agvBasDevp)) {
+            throw new CoolException("绔欑偣淇℃伅涓嶅瓨鍦�");
+        }
         if (!agvBasDevp.getLocSts().equals("O")) {
             throw new CoolException("褰撳墠宸ヤ綔浣嶇姸鎬佷负" + agvBasDevp.getLocSts() + ",鏃犳硶杩涜绌烘澘鍑哄簱");
         }
@@ -1242,6 +1254,9 @@
             throw new CoolException(matnr + "鍟嗗搧缁存姢澶辫触");
         }
         OrderDetl orderDetl = orderDetlService.selectItem(orderNo, mat.getMatnr(), batch, csocode);
+        if (orderDetl == null) {
+            throw new CoolException("璁㈠崟鏄庣粏涓嶅瓨鍦�");
+        }
         AgvWrkDetl wrkDetl = new AgvWrkDetl();
         wrkDetl.sync(mat);
         if (orderDetl != null) {
@@ -1324,6 +1339,10 @@
         wrkMast.setAppeTime(now);
         wrkMast.setModiUser(userId);
         wrkMast.setModiTime(now);
+        if (!Cools.isEmpty(locNo) && Cools.isEmpty(pltType)) {
+            AgvLocMast agvLocMast = agvLocMastService.selectById(locNo);
+            pltType = agvLocMast.getPltType();
+        }
         wrkMast.setPltType(pltType);
         wrkMast.setLogErrMemo("createWaitPainWrkMastStart");
 

--
Gitblit v1.9.1