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