From 5cc40452e260550c709928d0679f6e713448ffe7 Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期三, 01 十一月 2023 16:50:54 +0800
Subject: [PATCH] 库存编码规则 拣料更改料箱拣料

---
 src/main/java/com/zy/common/service/AgvCommonService.java |   41 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 41 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/common/service/AgvCommonService.java b/src/main/java/com/zy/common/service/AgvCommonService.java
index 1f21122..9b2e5f1 100644
--- a/src/main/java/com/zy/common/service/AgvCommonService.java
+++ b/src/main/java/com/zy/common/service/AgvCommonService.java
@@ -29,6 +29,8 @@
     private AgvLocMastService agvLocMastService;
     @Autowired
     private MatService matService;
+    @Autowired
+    private LocRuleService locRuleService;
 
     public int getWorkNo(Integer wrkMk) {
         AgvWrkLastno wrkLastno = agvWrkLastnoService.selectById(wrkMk);
@@ -76,6 +78,14 @@
         //搴撲綅瑙勫垯
         if(!Cools.isEmpty(agvWaitPakinList)){
             locMast = getLocByLocRule(agvWaitPakinList.get(0),floor);
+            if(!Cools.isEmpty(locMast)){
+                return locMast;
+            }
+        }
+
+        //搴撲綅缂栫爜瑙勫垯
+        if(!Cools.isEmpty(agvWaitPakinList)){
+            locMast = getLocByLocCodeRule(agvWaitPakinList.get(0),floor);
             if(!Cools.isEmpty(locMast)){
                 return locMast;
             }
@@ -150,6 +160,37 @@
     }
 
     /*
+    搴撲綅瑙勫垯鏌ユ壘
+     */
+    private AgvLocMast getLocByLocCodeRule(AgvWaitPakin agvWaitPakin, int floor) {
+        if(Cools.isEmpty(agvWaitPakin.getBrand())){
+            return null;
+        }
+
+        //搴撳尯
+        String other = "agv-" + floor;
+        List<LocRule> locRules = locRuleService.findCode(agvWaitPakin.getMatnr(), other);
+        if(Cools.isEmpty(locRules)){
+            return null;
+        }
+
+        for (LocRule agvLocRule : locRules) {
+            EntityWrapper<AgvLocMast> wrapper = new EntityWrapper<>();
+            wrapper.between("row1",agvLocRule.getRowBeg(),agvLocRule.getRowEnd())
+                    .between("bay1",agvLocRule.getBayBeg(),agvLocRule.getBayEnd())
+                    .between("lev1",agvLocRule.getLevBeg(),agvLocRule.getLevEnd())
+                    .eq("floor",floor)
+                    .eq("loc_sts","O");
+            AgvLocMast agvLocMast = agvLocMastService.selectOne(wrapper);
+            if(!Cools.isEmpty(agvLocMast)){
+                return agvLocMast;
+            }
+        }
+
+        return null;
+    }
+
+    /*
     闈犺繎鎽嗘斁瑙勫垯
      */
     private AgvLocMast getLocByProximityRule(){

--
Gitblit v1.9.1