From 1044d25ccaa5350b68fa259788246812139267b1 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期三, 05 三月 2025 12:06:27 +0800
Subject: [PATCH] 四期

---
 src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java           |    2 
 src/main/java/com/zy/asrs/service/AgvLocDetlService.java          |    2 
 src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java            |    4 +
 src/main/java/com/zy/asrs/controller/AgvLocMastController.java    |   64 +++++++++------
 src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java |    5 +
 src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java     |   10 ++
 src/main/java/com/zy/common/service/AgvCommonService.java         |   51 ++++++++++++
 src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java      |   22 +++-
 src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java    |    1 
 src/main/java/com/zy/asrs/controller/OutController.java           |   26 +++---
 src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java       |   25 +++---
 11 files changed, 150 insertions(+), 62 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/AgvLocMastController.java b/src/main/java/com/zy/asrs/controller/AgvLocMastController.java
index 505e6a4..d86ae85 100644
--- a/src/main/java/com/zy/asrs/controller/AgvLocMastController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvLocMastController.java
@@ -11,7 +11,10 @@
 import com.core.common.DateUtils;
 import com.core.common.R;
 import com.core.exception.CoolException;
-import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.AdjDetl;
+import com.zy.asrs.entity.AgvLocDetl;
+import com.zy.asrs.entity.AgvLocMast;
+import com.zy.asrs.entity.AgvWrkMast;
 import com.zy.asrs.entity.param.LocMastInitParam;
 import com.zy.asrs.service.AdjDetlService;
 import com.zy.asrs.service.AgvLocDetlService;
@@ -41,16 +44,18 @@
 
     @RequestMapping(value = "/locMast/list/auth")
     @ManagerAuth
-    public R list(@RequestParam(defaultValue = "1")Integer curr,
-                  @RequestParam(defaultValue = "10")Integer limit,
-                  @RequestParam(required = false)String orderByField,
-                  @RequestParam(required = false)String orderByType,
-                  @RequestParam Map<String, Object> param){
+    public R list(@RequestParam(defaultValue = "1") Integer curr,
+                  @RequestParam(defaultValue = "10") Integer limit,
+                  @RequestParam(required = false) String orderByField,
+                  @RequestParam(required = false) String orderByType,
+                  @RequestParam Map<String, Object> param) {
         excludeTrash(param);
         EntityWrapper<AgvLocMast> wrapper = new EntityWrapper<>();
         convert1(param, wrapper);
-        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
-        return R.ok(agvLockMastService.selectPage(new Page<>(curr, limit), wrapper.eq("status",0)));
+        if (!Cools.isEmpty(orderByField)) {
+            wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
+        }
+        return R.ok(agvLockMastService.selectPage(new Page<>(curr, limit), wrapper.eq("status", 0)));
     }
 
     @RequestMapping(value = "/locMast/add/auth")
@@ -67,23 +72,23 @@
     @RequestMapping(value = "/locMast/update/auth")
     @ManagerAuth(memo = "搴撲綅淇敼")
     @Transactional
-    public R update(AgvLocMast locMast){
-        if (Cools.isEmpty(locMast) || null==locMast.getLocNo()){
+    public R update(AgvLocMast locMast) {
+        if (Cools.isEmpty(locMast) || null == locMast.getLocNo()) {
             return R.error("鍙傛暟缂哄け");
         }
         AgvWrkMast wrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>()
                 .eq("source_loc_no", locMast.getLocNo())
                 .or().eq("loc_no", locMast.getLocNo()));
-        if(!Cools.isEmpty(wrkMast)){
-            return  R.error("璇ュ簱浣嶆鍦ㄤ綔涓氾紝璇峰厛澶勭悊宸ヤ綔妗�");
+        if (!Cools.isEmpty(wrkMast)) {
+            return R.error("璇ュ簱浣嶆鍦ㄤ綔涓氾紝璇峰厛澶勭悊宸ヤ綔妗�");
         }
         AgvLocMast oldLocMast = agvLockMastService.selectById(locMast.getLocNo());
         if (locMast.getLocSts().equals("F") && (oldLocMast.getLocSts().equals("D") || oldLocMast.getLocSts().equals("O"))) {
             return R.error("褰撳墠鎿嶄綔宸茶闃绘锛岃鑱旂郴绠$悊鍛�");
         }
         int br = 0;
-        if (locMast.getLocSts() == "O" || locMast.getLocSts() == "X"){
-            switch (locMast.getBarcode().substring(0,2)) {
+        if (locMast.getLocSts() == "O" || locMast.getLocSts() == "X") {
+            switch (locMast.getBarcode().substring(0, 2)) {
                 case "10":
                     br = 1;
                     break;
@@ -101,7 +106,7 @@
                     break;
             }
             if (oldLocMast.getLocType1() != br) {
-                return  R.error("璐ф灦鍜屽簱浣嶇被鍨嬩笉鍖归厤锛�");
+                return R.error("璐ф灦鍜屽簱浣嶇被鍨嬩笉鍖归厤锛�");
             }
         }
         Date now = new Date();
@@ -132,10 +137,14 @@
                     locMast.setBarcode("");
                 }
             }
+        } else if (oldLocMast.getLocSts().equals("D")) {
+            if (locMast.getLocSts().equals("O")) {
+                locMast.setBarcode("");
+            }
         }
         locMast.setModiUser(getUserId());
         locMast.setModiTime(now);
-        if(!agvLockMastService.updateById(locMast)) {
+        if (!agvLockMastService.updateById(locMast)) {
             throw new CoolException("涓诲簱浣嶄慨鏀瑰け璐�");
         }
         return R.ok();
@@ -143,12 +152,12 @@
 
     @RequestMapping(value = "/locMast/delete/auth")
     @ManagerAuth(memo = "搴撲綅鍒犻櫎")
-    public R delete(@RequestParam String param){
+    public R delete(@RequestParam String param) {
         List<AgvLocMast> list = JSONArray.parseArray(param, AgvLocMast.class);
-        if (Cools.isEmpty(list)){
+        if (Cools.isEmpty(list)) {
             return R.error("鍙傛暟缂哄け");
         }
-        for (AgvLocMast entity : list){
+        for (AgvLocMast entity : list) {
             agvLockMastService.delete(new EntityWrapper<>(entity));
         }
         return R.ok();
@@ -156,7 +165,7 @@
 
     @RequestMapping(value = "/locMast/export/auth")
     @ManagerAuth(memo = "搴撲綅瀵煎嚭")
-    public R export(@RequestBody JSONObject param){
+    public R export(@RequestBody JSONObject param) {
         List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
         EntityWrapper<AgvLocMast> wrapper = new EntityWrapper<>();
         Map<String, Object> map = excludeTrash(param.getJSONObject("locMast"));
@@ -169,7 +178,7 @@
     @ManagerAuth
     public R query(@RequestBody JSONObject param) {
         Wrapper<AgvLocMast> wrapper = new EntityWrapper<AgvLocMast>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
-        if (null != agvLockMastService.selectOne(wrapper)){
+        if (null != agvLockMastService.selectOne(wrapper)) {
             return R.parse(BaseRes.REPEAT).add(getComment(AgvLocMast.class, String.valueOf(param.get("key"))));
         }
         return R.ok();
@@ -196,10 +205,10 @@
         return R.ok(agvLockMastService.selectById(String.valueOf(id)));
     }
 
-    private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
-        for (Map.Entry<String, Object> entry : map.entrySet()){
+    private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper) {
+        for (Map.Entry<String, Object> entry : map.entrySet()) {
             String val = String.valueOf(entry.getValue());
-            if (val.contains(RANGE_TIME_LINK)){
+            if (val.contains(RANGE_TIME_LINK)) {
                 String[] dates = val.split(RANGE_TIME_LINK);
                 wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
                 wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
@@ -208,10 +217,11 @@
             }
         }
     }
-    private <T> void convert1(Map<String, Object> map, EntityWrapper<T> wrapper){
-        for (Map.Entry<String, Object> entry : map.entrySet()){
+
+    private <T> void convert1(Map<String, Object> map, EntityWrapper<T> wrapper) {
+        for (Map.Entry<String, Object> entry : map.entrySet()) {
             String val = String.valueOf(entry.getValue());
-            if (val.contains(RANGE_TIME_LINK)){
+            if (val.contains(RANGE_TIME_LINK)) {
                 String[] dates = val.split(RANGE_TIME_LINK);
                 wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
                 wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 44abf25..6aaa32e 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -254,19 +254,19 @@
             List<String> staNoList = agvBasDevpService.selectCacheShelvesStationCodeByLocType(agvLocMast.getLocType1());
 
 
-            Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "FOUR"));
-            if (config != null) {
-                if (config.getStatus().intValue() == 1) {
-                    List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("source_loc_no", locDto.getAgvStaNo()));
-                    if (agvWrkMasts != null && !agvWrkMasts.isEmpty()) {
-                        for (AgvWrkMast agvWrkMast : agvWrkMasts) {
-                            if (agvWrkMast.getWrkSts() < 204) {
-                                return R.error(locDto.getAgvStaNo() + "璇ョ珯鐐瑰凡鏈変换鍔★紝绛変换鍔″畬鎴愭垨鑰呰揣鏋舵惉璧板啀鍙枡");
-                            }
-                        }
-                    }
-                }
-            }
+//            Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "FOUR"));
+//            if (config != null) {
+//                if (config.getStatus().intValue() == 1) {
+//                    List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("source_loc_no", locDto.getAgvStaNo()));
+//                    if (agvWrkMasts != null && !agvWrkMasts.isEmpty()) {
+//                        for (AgvWrkMast agvWrkMast : agvWrkMasts) {
+//                            if (agvWrkMast.getWrkSts() < 204) {
+//                                return R.error(locDto.getAgvStaNo() + "璇ョ珯鐐瑰凡鏈変换鍔★紝绛変换鍔″畬鎴愭垨鑰呰揣鏋舵惉璧板啀鍙枡");
+//                            }
+//                        }
+//                    }
+//                }
+//            }
 
 
             if (!staNoList.contains(locDto.getAgvStaNo())) {
diff --git a/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java
index 82e0eb3..71f70c0 100644
--- a/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java
@@ -34,6 +34,10 @@
     @Select("select * from agv_loc_detl where 1=1 and loc_no = #{locNo} and matnr = #{matnr} and three_code = #{csocode}")
     AgvLocDetl selectItemByOrderNo(@Param("locNo")String locNo, @Param("matnr")String matnr, @Param("batch")String batch, @Param("csocode")String csocode, @Param("isocode")String isocode);
 
+    @Select("select * from agv_loc_detl where 1=1 and loc_no = #{locNo} and matnr = #{matnr} and three_code = #{csocode}")
+    List<AgvLocDetl> selectItemByOrderNo2(@Param("locNo")String locNo, @Param("matnr")String matnr, @Param("batch")String batch, @Param("csocode")String csocode, @Param("isocode")String isocode);
+
+
     @Select("select sum(a.anfme) as sum from agv_loc_detl a left join agv_loc_mast b on a.loc_no = b.loc_no where b.loc_sts = 'F' and a.matnr = #{matnr} AND a.three_code = #{threeCode} AND a.process_sts = 1")
     Double selectSumAnfmeByMatnrProcess(@Param("matnr") String matnr,@Param("threeCode") String threeCode);
 
diff --git a/src/main/java/com/zy/asrs/service/AgvLocDetlService.java b/src/main/java/com/zy/asrs/service/AgvLocDetlService.java
index 0e3bcf5..dc4c699 100644
--- a/src/main/java/com/zy/asrs/service/AgvLocDetlService.java
+++ b/src/main/java/com/zy/asrs/service/AgvLocDetlService.java
@@ -17,6 +17,8 @@
 
     AgvLocDetl selectItem(String locNo, String matnr, String batch, String csocode, String isoCode);
 
+    List<AgvLocDetl> selectItem2(String locNo, String matnr, String batch, String csocode, String isoCode);
+
     public double queryStockAndSetLocDto(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued, String csocode, String isoseq, String type);
 
     public void updateStock(String sourceLoc, String targetLoc);
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
index 25adb11..165605d 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
@@ -221,6 +221,11 @@
     }
 
     @Override
+    public List<AgvLocDetl> selectItem2(String locNo, String matnr, String batch, String csocode, String isoCode) {
+        return this.baseMapper.selectItemByOrderNo2(locNo, matnr, batch, csocode, isoCode);
+    }
+
+    @Override
     public Double getSumAnfmeProcess(String matnr, String threeCode) {
         return this.baseMapper.selectSumAnfmeByMatnrProcess(matnr, threeCode);
     }
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 b983574..c4966a8 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -741,6 +741,7 @@
 //                    //agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,false);
 //                }
 //            }
+            // 棰勭暀20涓簱浣�
             agvLocMast = agvCommonService.getLocByLocRule(3, 1, code,false);
 
 
diff --git a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
index 49eac78..fcd225c 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -157,9 +157,6 @@
     @Transactional
     public void checkComplete2(String orderNo) {
         Order order = this.selectByNo(orderNo);
-        if (order.getDocType() == 38) {
-            return;
-        }
         if (Cools.isEmpty(order)) {
             return;
         }
@@ -169,10 +166,21 @@
         List<OrderDetl> orderDetls = orderDetlMapper.selectList(new EntityWrapper<OrderDetl>().eq("order_id", order.getId()));
         // 浣滀笟鏁伴噺鏄惁绛変簬鏁伴噺
         boolean complete = true;
-        for (OrderDetl orderDetl : orderDetls) {
-            if (orderDetl.getAnfme() > orderDetl.getQty()) {
-                complete = false;
-                break;
+        if (order.getDocType() == 38) {
+            for (OrderDetl orderDetl : orderDetls) {
+                if (orderDetl.getAnfme() > orderDetl.getQty()) {
+                    if (orderDetl.getReportQty() < orderDetl.getQty()) {
+                        complete = false;
+                        break;
+                    }
+                }
+            }
+        } else {
+            for (OrderDetl orderDetl : orderDetls) {
+                if (orderDetl.getAnfme() > orderDetl.getQty()) {
+                    complete = false;
+                    break;
+                }
             }
         }
 
diff --git a/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java b/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
index 90fe463..9b480b2 100644
--- a/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
@@ -220,7 +220,7 @@
                     
                     agvWrkMastWorking = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>()
                             .eq("source_loc_no",agvWrkMast.getLocNo())
-                            .le("wrk_sts",204L));
+                            .lt("wrk_sts",204L));
 
                     if(!Cools.isEmpty(agvWrkMastWorking)){
                         return;
diff --git a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
index 762386d..e64b67a 100644
--- a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -433,11 +433,17 @@
                     //鐩爣绔欑偣
                     if (agvWrkMast.getLocNo().startsWith("QO") && agvWrkMast.getLocNo().endsWith("F4") && Integer.valueOf(agvWrkMast.getBarcode().substring(0, 2)) == 30) {
                         if (!agvWrkMast.getSourceLocNo().endsWith("02F1")) {
-                            AgvLocMast locByFloor = agvCommonService.getLocByLocRule(3, 1, AsrsConstants.ERCHANG,true);
-                            if (locByFloor != null) {
+                            AgvLocMast locByFloor = null;
+                            try {
+                                locByFloor = agvCommonService.getLocByLocRule(3, 1, AsrsConstants.ERCHANG, true);
+                            } catch (Exception e) {
+
+                            }
+                            if (locByFloor != null && locByFloor.getLocNo().endsWith("02F1")) {
                                 AgvLocMast agvLocMast = agvLocMastService.selectById(agvWrkMast.getSourceLocNo());
                                 agvLocMast.setLocSts("O");
                                 agvLocMast.setModiTime(now);
+                                agvLocMast.setBarcode("");
                                 agvLocMastService.updateById(agvLocMast);
                                 wrkMast.setLocNo(locByFloor.getLocNo());
                             } else {
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 9b17b0a..51ee874 100644
--- a/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
@@ -1,6 +1,7 @@
 package com.zy.asrs.task.handler;
 
 
+import com.baomidou.mybatisplus.enums.SqlLike;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
 import com.core.exception.CoolException;
@@ -155,7 +156,7 @@
         //璐ф灦缂栫爜
         mast.setBarcode(agvLocMast.getBarcode());
         //璐ф灦绫诲瀷
-        mast.setWhsType(Integer.parseInt(agvLocMast.getBarcode().substring(0,2)));
+        mast.setWhsType(Integer.parseInt(agvLocMast.getBarcode().substring(0, 2)));
 
         // 鐩爣妤煎眰
         mast.setPauseMk(agvLocMast.getLocType3().toString());
@@ -325,7 +326,7 @@
         //璐ф灦缂栫爜
         mast.setBarcode(agvLocMast.getBarcode());
         //璐ф灦绫诲瀷
-        mast.setWhsType(Integer.parseInt(agvLocMast.getBarcode().substring(0,2)));
+        mast.setWhsType(Integer.parseInt(agvLocMast.getBarcode().substring(0, 2)));
 
 
         mast.setAppeUser(9527L);
@@ -427,7 +428,7 @@
         } else if (agvLocMast.getFloor() == 1 && agvLocMast.getLev1() == 2) {
             floor = "02F1";
         }
-        List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("io_type", 109).like("source_loc_no", floor).or().eq("io_type", 113));
+        List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("io_type", 109).like("barcode", "30").like("source_loc_no", floor).or().eq("io_type", 113));
         if (agvWrkMasts.size() >= 5) {
             //log.error("鏆傚仠鍥炴祦");
             return FAIL;
@@ -463,7 +464,7 @@
         //璐ф灦缂栫爜
         mast.setBarcode(agvLocMast.getBarcode());
         //璐ф灦绫诲瀷
-        mast.setWhsType(Integer.parseInt(agvLocMast.getBarcode().substring(0,2)));
+        mast.setWhsType(Integer.parseInt(agvLocMast.getBarcode().substring(0, 2)));
 
 
         mast.setAppeUser(9527L);
@@ -505,9 +506,9 @@
         } else if (agvLocMast.getFloor() == 2) {
             floor = "F2";
         }
-        List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("io_type", 109).like("source_loc_no", floor).or().eq("io_type", 113));
+        List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("io_type", 109).like("barcode", "31", SqlLike.RIGHT).like("source_loc_no", floor).or().eq("io_type", 113));
         Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "RETURN_6_MAX"));
-        if (config == null && !Cools.isEmpty(config.getValue())) {
+        if (config != null && !Cools.isEmpty(config.getValue())) {
             if (agvWrkMasts.size() >= Integer.parseInt(config.getValue())) {
                 return FAIL;
             }
@@ -548,14 +549,14 @@
         //璐ф灦缂栫爜
         mast.setBarcode(agvLocMast.getBarcode());
         //璐ф灦绫诲瀷
-        mast.setWhsType(Integer.parseInt(agvLocMast.getBarcode().substring(0,2)));
+        mast.setWhsType(Integer.parseInt(agvLocMast.getBarcode().substring(0, 2)));
 
 
         mast.setAppeUser(9527L);
         mast.setAppeTime(now);
         mast.setModiUser(9527L);
         mast.setModiTime(now);
-        mast.setLogErrMemo("autoEmptyBack4");
+        mast.setLogErrMemo("autoEmptyBackSiqi");
         if (!agvWrkMastService.insertByIncrease(mast)) {
             throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
         }
@@ -590,7 +591,7 @@
         //璐ф灦缂栫爜
         mast.setBarcode(agvBasDevp.getBarcode());
         //璐ф灦绫诲瀷
-        mast.setWhsType(Integer.parseInt(agvBasDevp.getBarcode().substring(0,2)));
+        mast.setWhsType(Integer.parseInt(agvBasDevp.getBarcode().substring(0, 2)));
 
         mast.setAppeUser(9527L);
         mast.setAppeTime(now);
@@ -648,7 +649,7 @@
         //璐ф灦缂栫爜
         mast.setBarcode(agvBasDevp.getBarcode());
         //璐ф灦绫诲瀷
-        mast.setWhsType(Integer.parseInt(agvBasDevp.getBarcode().substring(0,2)));
+        mast.setWhsType(Integer.parseInt(agvBasDevp.getBarcode().substring(0, 2)));
 
         mast.setAppeUser(9527L);
         mast.setAppeTime(now);
@@ -704,7 +705,7 @@
         //璐ф灦缂栫爜
         mast.setBarcode(agvLocMast.getBarcode());
         //璐ф灦绫诲瀷
-        mast.setWhsType(Integer.parseInt(agvLocMast.getBarcode().substring(0,2)));
+        mast.setWhsType(Integer.parseInt(agvLocMast.getBarcode().substring(0, 2)));
 
 
         mast.setAppeUser(9527L);
@@ -787,7 +788,7 @@
         //璐ф灦缂栫爜
         mast.setBarcode(agvLocMast.getBarcode());
         //璐ф灦绫诲瀷
-        mast.setWhsType(Integer.parseInt(agvLocMast.getBarcode().substring(0,2)));
+        mast.setWhsType(Integer.parseInt(agvLocMast.getBarcode().substring(0, 2)));
 
 
         mast.setAppeUser(9527L);
diff --git a/src/main/java/com/zy/common/service/AgvCommonService.java b/src/main/java/com/zy/common/service/AgvCommonService.java
index 04720a4..a24d141 100644
--- a/src/main/java/com/zy/common/service/AgvCommonService.java
+++ b/src/main/java/com/zy/common/service/AgvCommonService.java
@@ -6,6 +6,8 @@
 import com.zy.asrs.entity.*;
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.LocUtils;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -35,6 +37,9 @@
     private LocRuleService locRuleService;
     @Autowired
     AgvBasDevpService agvBasDevpService;
+
+    @Autowired
+    private ConfigService configService;
 
     @Autowired
     private LocUtils locUtils;
@@ -146,6 +151,52 @@
     }
 
     /**
+     * 搴撲綅瑙勫垯鏌ユ壘锛屼細棰勭暀20涓簱浣�
+     */
+    public synchronized AgvLocMast getLocByLocRule20(int type, int floor, String factory, boolean flag) {
+
+        try {
+            EntityWrapper<AgvLocMast> wrapper = new EntityWrapper<>();
+            wrapper.eq("loc_sts", "O").eq("loc_type1", type);
+            List<AgvLocMast> agvLocMasts = new ArrayList<>();
+            //涓嶆槸绌烘澘浼樺厛鎵�2灞�
+            if (Cools.isEmpty(factory)) {
+                wrapper.eq("floor", floor).orderBy("lev1", true);
+            } else {
+                //B鏄簩鍘傦紝G鏄笁鍘�
+                if (factory.equals("B")) {
+                    wrapper.eq("floor", floor).orderBy("lev1", false).orderBy("row1", flag);
+
+                } else {
+                    wrapper.eq("floor", floor).orderBy("lev1", true);
+
+                }
+            }
+            int num = 20;
+            Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "LOC_3_NUM"));
+            if (config != null && !Cools.isEmpty(config.getValue())) {
+                num = Integer.parseInt(config.getValue());
+            }
+            agvLocMasts = agvLocMastService.selectList(wrapper);
+            for (AgvLocMast agvLocMast : agvLocMasts) {
+
+            }
+
+            for (AgvLocMast agvLocMast : agvLocMasts) {
+                AgvLocMast agvLocMast1 = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocMast.getLocNo()));
+                if (agvLocMast1.getLocSts().equals("O")) {
+                    return agvLocMast1;
+                }
+            }
+            throw new CoolException("鎼滅储搴撲綅鏃讹紝鏈壘鍒板彲鍏ュ簱搴撲綅銆�");
+        } catch (Exception e) {
+            throw new CoolException("鎼滅储搴撲綅鏃讹紝鏈壘鍒板彲鍏ュ簱搴撲綅銆�");
+        }
+
+
+    }
+
+    /**
      * 搴撲綅瑙勫垯鏌ユ壘
      */
     public synchronized AgvLocMast getLocByLocRule(int type, int floor, String factory, boolean flag) {

--
Gitblit v1.9.1