From 0e9c60905511ddfa755f9579f35ee4b154703e4d Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期四, 30 五月 2024 10:44:56 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java          |    6 
 src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java    |   20 +-
 src/main/java/com/zy/common/service/AgvCommonService.java        |   31 ++++
 src/main/java/com/zy/asrs/controller/AgvMobileController.java    |   18 ++
 src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java |   44 ++++++
 src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java   |   37 ++++-
 src/main/java/com/zy/asrs/task/AutoMoveScheduler.java            |   72 +++++++++
 src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java |    2 
 src/main/java/com/zy/asrs/service/AgvMobileService.java          |   10 +
 src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java      |  169 +++++++++++++++++++++++
 10 files changed, 378 insertions(+), 31 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/AgvMobileController.java b/src/main/java/com/zy/asrs/controller/AgvMobileController.java
index 5f00b40..2e5c799 100644
--- a/src/main/java/com/zy/asrs/controller/AgvMobileController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvMobileController.java
@@ -490,6 +490,24 @@
         return R.ok();
     }
 
+    @PostMapping("/hand/control/empOut")
+    @Transactional
+    @ManagerAuth(memo = "绌烘灦绂诲満")
+    @Synchronized
+    public R empOut(@RequestBody AgvMobileStartPakin param){
+        agvMobileService.empOut(param, getUserId());
+        return R.ok();
+    }
+
+    @PostMapping("/hand/control/empIn")
+    @Transactional
+    @ManagerAuth(memo = "绌烘灦杩涘満")
+    @Synchronized
+    public R empIn(@RequestBody AgvMobileStartPakin param){
+        agvMobileService.empIn(param, getUserId());
+        return R.ok();
+    }
+
     @PostMapping("/hand/control/doBack")
     @Transactional
     @ManagerAuth(memo = "绔欑偣鍥為��")
diff --git a/src/main/java/com/zy/asrs/service/AgvMobileService.java b/src/main/java/com/zy/asrs/service/AgvMobileService.java
index 2d3391e..8dc32f4 100644
--- a/src/main/java/com/zy/asrs/service/AgvMobileService.java
+++ b/src/main/java/com/zy/asrs/service/AgvMobileService.java
@@ -58,4 +58,14 @@
      */
     String handBack(AgvMobileStartPakin param, Long userId);
 
+    /**
+     * 绌烘灦绂诲満
+     */
+    String empOut(AgvMobileStartPakin param, Long userId);
+
+    /**
+     * 绌烘灦杩涘満
+     */
+    String empIn(AgvMobileStartPakin param, Long userId);
+
 }
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 d877c17..9689ce3 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -532,6 +532,7 @@
         if (agvWrkMast.getCrnNo() != agvBasDevp.getFloor()) {
             throw new CoolException("璇风Щ鍔ㄥ埌->" + agvWrkMast.getCrnNo() + "妤煎叆搴撶偣鍏ュ簱");
         }
+        AgvLocMast locNo = agvCommonService.getLocNo(3, 1);
         //宸ヤ綔鐘舵��
         agvWrkMast.setWrkSts(211L);
         //鍏ュ嚭搴撶被鍨�
@@ -548,6 +549,49 @@
         return "ok";
     }
     /*
+       绌烘灦绂诲満
+    */
+    @Override
+    @Transactional
+    @Synchronized
+    public String empOut(AgvMobileStartPakin param, Long userId) {
+        Date now = new Date();
+        AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("source_loc_no", param.getDevNo()));
+        Integer oldWrkNo = agvWrkMast.getWrkNo();
+        if (Cools.isEmpty(agvWrkMast)) {
+            throw new CoolException("宸ヤ綔妗d腑娌℃湁姝ょ珯鐐逛换鍔�");
+        }
+        agvWrkMast.setWrkSts(213L);
+        agvWrkMast.setSourceLocNo("");
+        if (!agvWrkMastService.update(agvWrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no",agvWrkMast.getWrkNo()))) {
+            throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
+        }
+        // 鏇存柊婧愬簱浣嶇姸鎬�
+        agvBasDevpService.updateLocStsAndBarcodeByDevNo(param.getDevNo(),"O","",agvWrkMast.getWhsType().shortValue());
+        return "ok";
+    }
+    /*
+       绌烘灦杩涘満
+    */
+    @Override
+    @Transactional
+    @Synchronized
+    public String empIn(AgvMobileStartPakin param, Long userId) {
+        Date now = new Date();
+        AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode", param.getBarcode()));
+        if (Cools.isEmpty(agvWrkMast)) {
+            throw new CoolException("宸ヤ綔妗d腑娌℃湁姝ょ珯鐐逛换鍔�");
+        }
+        agvWrkMast.setWrkSts(214L);
+        agvWrkMast.setSourceLocNo(param.getDevNo());
+        if (!agvWrkMastService.update(agvWrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no",agvWrkMast.getWrkNo()))) {
+            throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
+        }
+        // 鏇存柊婧愬簱浣嶇姸鎬�
+        agvBasDevpService.updateLocStsAndBarcodeByDevNo(param.getDevNo(),"F",param.getBarcode(),agvWrkMast.getWhsType().shortValue());
+        return "ok";
+    }
+    /*
      * 绔欑偣鍥為��
     */
     @Override
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 97933e9..b71cbd0 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -679,20 +679,39 @@
             //鐩爣绔欑偣
             String devNo = wrkMast.getLocNo();
             if (wrkMast.getIoType() == 110 || wrkMast.getIoType() == 109) {
-                agvLocMastService.updateLocStsByLocNo(locNo,"D",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
-            } else {
-                agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
-            }
-            if (wrkMast.getIoType() == 109){
-                if (Cools.isEmpty(wrkMast.getLocNo())) {
+                if (wrkMast.getIoType() == 109){
+                    // 婧愬簱浣嶆槸绔欑偣
+                    if ("DB".equals(locNo.substring(0,2))) {
+                        agvBasDevpService.updateLocStsAndBarcodeByDevNo(locNo,"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
+                        agvLocMastService.updateLocStsByLocNo(devNo,"O","",null);
+                    // 婧愬簱浣嶆槸搴撲綅 鐩爣搴撲綅鏄珯鐐�
+                    } else if ("DB".equals(devNo.substring(0,2))) {
+                        agvLocMastService.updateLocStsByLocNo(locNo,"D",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
+                        agvBasDevpService.updateLocStsAndBarcodeByDevNo(locNo,"O","",null);
+                    // 婧愬簱浣嶆槸搴撲綅
+                    } else {
+                        agvLocMastService.updateLocStsByLocNo(locNo,"D",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
+                        agvLocMastService.updateLocStsByLocNo(devNo,"O","",null);
+                    }
 
+                }else {
+                    agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","",null);
+                }
+            } else if (wrkMast.getIoType() == 113) {
+                if (wrkMast.getWrkSts() == 212 || wrkMast.getWrkSts() == 213) {
+                    agvBasDevpService.updateLocStsAndBarcodeByDevNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
                 } else {
-                    agvLocMastService.updateLocStsByLocNo(devNo,"O","",(short)getContainerTypeByloc(devNo));
+                    agvBasDevpService.updateLocStsAndBarcodeByDevNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
+                    if (!Cools.isEmpty(devNo)) {
+                        agvLocMastService.updateLocStsByLocNo(devNo,"0","",null);
+                    }
                 }
 
-            }else {
+            } else  {
                 agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","",null);
+                agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo));
             }
+
         }
 
         if(wrkMast.getIoType() != 1 && wrkMast.getIoType() != 10 && wrkMast.getIoType()!=111 && wrkMast.getIoType()!=108 && wrkMast.getIoType() != 12){
@@ -734,11 +753,11 @@
         agvWrkDetlLogService.save(wrkMast.getWrkNo());
 
 
-
         //鍒犻櫎宸ヤ綔妗d互鍙婃槑缁�
         if(!agvWrkMastService.deleteByWrkNo(wrkMast.getWrkNo()) || !agvWrkDetlService.deleteByWrkNo(wrkMast.getWrkNo())){
             throw new CoolException("鍒犻櫎澶辫触锛岃鑱旂郴绠$悊鍛�");
         }
+
         if (type == 2) {
             //璋冪敤agv鍙栨秷浠诲姟鎺ュ彛
             agvWrkMastService.callCancelTask(wrkMast.getWrkNo());
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
index 1dd5f31..1e5476d 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
@@ -217,7 +217,7 @@
             agvWrkMast.setWrkNo(-agvWrkMast.getWrkNo());
         }
         agvTaskCreateParam.setTaskCode(agvWrkMast.getWrkNo().toString());
-        if (agvWrkMast.getIoType() == 108 || (agvWrkMast.getIoType() == 109 && agvWrkMast.getWrkSts() == 201) || agvWrkMast.getIoType() == 12) {
+        if (agvWrkMast.getIoType() == 108 || (agvWrkMast.getIoType() == 109  && agvWrkMast.getWrkSts() == 201) || agvWrkMast.getIoType() == 12) {
             agvTaskCreateParam.setTaskTyp("F06");
         } else  {
             agvTaskCreateParam.setTaskTyp("F01");
diff --git a/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java b/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
index 31608f0..bb0d72e 100644
--- a/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
@@ -56,7 +56,8 @@
                 .or().eq("io_type",12)
                 .or().eq("io_type",108)
                 .or().eq("io_type",109)
-                .or().eq("io_type",112));
+                .or().eq("io_type",112)
+                .or().eq("io_type",113));
         if(!Cools.isEmpty(agvWrkMastList)){
             agvWrkMastList.stream().forEach(agvWrkMast -> {
                 agvWrkMastHandler.completedPutWayWrk(agvWrkMast);
@@ -116,7 +117,8 @@
                 .or().eq("io_type", 12)
                 .or().eq("io_type", 109)
                 .or().eq("io_type", 108)
-                .or().eq("io_type", 112)).getRecords();
+                .or().eq("io_type", 112)
+                .or().eq("io_type", 113)).getRecords();
 
         if(!Cools.isEmpty(agvWrkMastList)){
             agvWrkMastList.forEach(agvWrkMast -> {
diff --git a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
index 47690fc..16f5de5 100644
--- a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
@@ -2,8 +2,10 @@
 
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.zy.asrs.entity.AgvBasDevp;
 import com.zy.asrs.entity.AgvLocMast;
 import com.zy.asrs.entity.AgvWrkMast;
+import com.zy.asrs.service.AgvBasDevpService;
 import com.zy.asrs.service.AgvLocMastService;
 import com.zy.asrs.service.AgvWrkMastService;
 import com.zy.asrs.task.core.ReturnT;
@@ -25,6 +27,8 @@
     private AutoMoveHandler autoMoveHandler;
     @Autowired
     private AgvWrkMastService agvWrkMastService;
+    @Autowired
+    private AgvBasDevpService agvBasDevpService;
 
     // 璋冩嫧鍑哄簱
     @Scheduled(cron = "0/2 * * * * ? ")
@@ -112,14 +116,13 @@
         }
     }
     // 绌烘澘鑷姩鍥炲簱  鎺ラ┏鐐� - 1妤煎簱浣�
-    //@Scheduled(cron = "0/2 * * * * ? ")
+    @Scheduled(cron = "0/2 * * * * ? ")
     private void autoEmptyBack3(){
         // 宸ヤ綔妗d负201 涓� 鍏ュ嚭搴撶被鍨嬩负109
         List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>()
-                .eq("wrk_sts", 201)
+                .eq("wrk_sts", 214)
                 .eq("loc_no","")
-                .eq("io_type",109)
-                .or().eq("io_type",112));
+                .eq("io_type",113));
         if (agvWrkMastList.isEmpty()) {
             return;
         }
@@ -129,7 +132,7 @@
     }
 
     // 绌烘澘鑷姩鍥炲簱
-    @Scheduled(cron = "0/2 * * * * ? ")
+//    @Scheduled(cron = "0/2 * * * * ? ")
     private void autoEmptyBack2(){
         // 鏌ヨ 涓嶄负1妤肩殑绌鸿揣鏋�
         List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(
@@ -143,6 +146,65 @@
         for (AgvLocMast agvLocMast : agvLocMasts) {
             ReturnT<String> returnT = autoMoveHandler.autoEmptyBack2(agvLocMast);
         }
+    }
 
+    /**
+     * 绌烘澘鑷姩鍥炲簱
+     * 搴撲綅-鎺ラ┏鐐�  搴撲綅-鍚稿杞﹂棿
+     * 姣忓眰鏈�澶� 鍦� 鍥炲簱鏁伴噺闄愬埗5鏉�
+     * 浼樺厛閫夋嫨鍏堝埌鎺ラ┏浣嶏紙鎺ラ┏浣嶅彲鍏ワ級 鍚庨�夋嫨鐩存帴鍥炲簱
+     */
+    @Scheduled(cron = "0/2 * * * * ? ")
+    private void autoEmptyBack4(){
+        // 鏌ヨ 涓嶄负1妤肩殑绌鸿揣鏋�
+        List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(
+                new EntityWrapper<AgvLocMast>()
+                        .ne("floor", 1)
+                        .eq("loc_sts","D")
+                        .eq("loc_type1",3));
+        if (agvLocMasts.isEmpty()) {
+            return;
+        }
+        for (AgvLocMast agvLocMast : agvLocMasts) {
+            ReturnT<String> returnT = autoMoveHandler.autoEmptyBack4(agvLocMast);
+        }
+    }
+
+    /**
+     * 绔欑偣鏄惁鑷姩
+     * 鑷姩锛� 鐢熸垚 109 鑷姩鍥炴祦
+     * 鎵嬪姩锛� 鐢熸垚 113 鎵嬪姩鍥炴祦
+     * 浼樺厛閫夋嫨鍏堝埌鎺ラ┏浣嶏紙鎺ラ┏浣嶅彲鍏ワ級 鍚庨�夋嫨鐩存帴鍥炲簱
+     */
+    @Scheduled(cron = "0/2 * * * * ? ")
+    private void autoEmptyBack5(){
+        List<AgvBasDevp> agvBasDevps = agvBasDevpService.selectList(new EntityWrapper<AgvBasDevp>()
+                .ne("floor", 1)
+                .eq("loc_sts", "F")
+                .like("dev_no", "DB"));
+        if (agvBasDevps.isEmpty()) {
+            return;
+        }
+        for (AgvBasDevp agvBasDevp : agvBasDevps) {
+            ReturnT<String> returnT = autoMoveHandler.autoEmptyBack5(agvBasDevp);
+        }
+    }
+
+    /**
+     * 妫�娴�1妤兼帴椹崇偣
+     * 鎵嬪姩锛� 鐢熸垚 113 鎵嬪姩鍥炴祦
+     */
+    @Scheduled(cron = "0/2 * * * * ? ")
+    private void autoEmptyBack6(){
+        List<AgvBasDevp> agvBasDevps = agvBasDevpService.selectList(new EntityWrapper<AgvBasDevp>()
+                .eq("floor", 1)
+                .eq("loc_sts", "F")
+                .like("dev_no", "DB"));
+        if (agvBasDevps.isEmpty()) {
+            return;
+        }
+        for (AgvBasDevp agvBasDevp : agvBasDevps) {
+            ReturnT<String> returnT = autoMoveHandler.autoEmptyBack6(agvBasDevp);
+        }
     }
 }
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 4d38a14..4e6e753 100644
--- a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -70,13 +70,14 @@
         agvWrkMastService.updateById(agvWrkMast);
         // 绌烘澘鍏ュ簱 璁剧疆搴撲綅鐘舵�佷负D.绌烘《/绌烘爤鏉�
         String locSts = agvWrkMast.getIoType() == 10 ? "D" : "F";
-        if (agvWrkMast.getIoType() == 10 || agvWrkMast.getIoType() == 109) {
-            //if (agvWrkMast.getIoType() == 109 && agvWrkMast.getLocNo().substring(0,2).equals("DB")) {
-            //    agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"R",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
-            //} else {
-            //    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
-            //}
-            agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+        if (agvWrkMast.getIoType() == 10 || agvWrkMast.getIoType() == 109 ) {
+            // 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅
+            if (agvWrkMast.getIoType() == 109 && agvWrkMast.getLocNo().substring(0,2).equals("DB")) {
+                agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+                // 鎺ラ┏浣� -- 搴撲綅
+            } else {
+                agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+            }
         } else {
             agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
         }
@@ -113,14 +114,13 @@
         }
 
         if(agvWrkMast.getIoType() == 109){
+            // 鎺ラ┏浣� -- 搴撲綅
             if (agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) {
                 agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",(short)0);
+            // 搴撲綅 -- 鎺ラ┏浣� / 搴撲綅
             } else {
                 //淇敼婧愬簱浣嶇姸鎬佷负O
                 agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0);
-                // 鏂板缓宸ヤ綔妗�
-                Date now = new Date();
-//                createWrkMast(109, 201L, agvWrkMast.getLocNo(), "", agvWrkMast.getBarcode(), now, 9527L, agvWrkMast.getWhsType(), 0);
             }
         }
         if (agvWrkMast.getIoType() == 58) {
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 59a0fdd..9c46105 100644
--- a/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
@@ -273,12 +273,13 @@
     public ReturnT<String> autoEmptyBack3(AgvWrkMast agvWrkMast) {
         Date now = new Date();
         AgvBasDevp agvBasDevp = agvBasDevpService.selectByDevNo(agvWrkMast.getSourceLocNo());
-        if (agvBasDevp.getAutoing() == "N") {
-            throw new CoolException("褰撳墠绔欑偣涓烘墜鍔�");
-        }
         //妫�绱㈢┖闂叉帴椹充綅锛岄�夋嫨鍚堥�傜殑鎺ラ┏浣�
         AgvLocMast locMast = agvCommonService.getLocNo(3, 1);
+        if (Cools.isEmpty(locMast)) {
+            throw new CoolException("1妤兼殏鏃犵┖搴撲綅");
+        }
         //鐩爣绔欑偣
+        agvWrkMast.setWrkSts(201L);
         agvWrkMast.setLocNo(locMast.getLocNo());
         agvWrkMast.setModiUser(9527L);
         agvWrkMast.setModiTime(now);
@@ -287,6 +288,7 @@
         }
         //鏇存柊鐩爣搴撲綅鐘舵��
         updateAgvLocMast(locMast,"S");
+        updateAgvBasDevp(agvBasDevp,"R");
         return SUCCESS;
     }
     public ReturnT<String> autoEmptyBack2(AgvLocMast agvLocMast) {
@@ -329,4 +331,165 @@
         updateAgvLocMast(LocMast,"S");
         return SUCCESS;
     }
+
+    public ReturnT<String> autoEmptyBack4(AgvLocMast agvLocMast) {
+        Date now = new Date();
+        //鏌ヨ宸ヤ綔妗�
+        AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode());
+        if(!Cools.isEmpty(agvWrkMast)){
+            throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+        }
+        String floor = "";
+        String locNo = "";
+        Long wrkSts = 0L;
+        Integer ioType = 0;
+        AgvLocMast locMast = new AgvLocMast();
+        if (agvLocMast.getFloor() == 3) {
+            floor = "F3";
+        } else if(agvLocMast.getFloor() == 2) {
+            floor = "F2";
+        }
+        List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("io_type", 109).or().eq("io_type", 113).like("source_loc_no", floor));
+        if (agvWrkMasts.size() >= 5) {
+            throw new CoolException("鏆傚仠鍥炴祦");
+        }
+        //妫�绱㈢┖闂插彲鍏ユ帴椹充綅 娌℃湁绌洪棽鍙叆鎺ラ┏浣� 鐩存帴鎵惧簱浣�
+        AgvBasDevp devpNo = agvCommonService.getDevpNo(3, agvLocMast.getFloor(),"Y","Y");
+        if (!Cools.isEmpty(devpNo)) {
+            locNo = devpNo.getDevNo();
+            wrkSts = 21L;
+            ioType = 109;
+        } else {
+            //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
+            locMast = agvCommonService.getLocNo(3,1);
+            locNo = locMast.getLocNo();
+            wrkSts = 201L;
+            ioType = 109;
+        }
+
+        //鐢熸垚宸ヤ綔妗�
+        AgvWrkMast mast = new AgvWrkMast();
+        //宸ヤ綔鐘舵��
+        mast.setWrkSts(wrkSts);
+        //鍏ュ嚭搴撶被鍨�
+        mast.setIoType(ioType);
+        mast.setIoTime(now);
+        //浼樺厛绾�
+        mast.setIoPri(300.0);
+        //婧愮珯鐐�
+        mast.setSourceLocNo(agvLocMast.getLocNo());
+        //鐩爣绔欑偣
+        mast.setLocNo(locNo);
+        //璐ф灦缂栫爜
+        mast.setBarcode(agvLocMast.getBarcode());
+        //璐ф灦绫诲瀷
+        mast.setWhsType(30);
+
+        mast.setAppeUser(9527L);
+        mast.setAppeTime(now);
+        mast.setModiUser(9527L);
+        mast.setModiTime(now);
+        if (!agvWrkMastService.insertByIncrease(mast)) {
+            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+        }
+
+        //鏇存柊鐩爣搴撲綅鐘舵��
+        updateAgvLocMast(agvLocMast,"R");
+        if (wrkSts == 21L) {
+            updateAgvBasDevp(devpNo,"S",agvLocMast.getLocType2(),agvLocMast.getBarcode());
+        } else {
+            updateAgvLocMast(locMast,"S");
+        }
+
+
+        return SUCCESS;
+    }
+
+    public ReturnT<String> autoEmptyBack5(AgvBasDevp agvBasDevp) {
+        //鏌ヨ宸ヤ綔妗�
+        AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvBasDevp.getBarcode());
+        if(!Cools.isEmpty(agvWrkMast)){
+            throw new CoolException("褰撳墠"+agvBasDevp.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+        }
+        Date now = new Date();
+        //鐢熸垚宸ヤ綔妗�
+        AgvWrkMast mast = new AgvWrkMast();
+        mast.setIoTime(now);
+        //浼樺厛绾�
+        mast.setIoPri(300.0);
+        //婧愮珯鐐�
+        mast.setSourceLocNo(agvBasDevp.getDevNo());
+        //璐ф灦缂栫爜
+        mast.setBarcode(agvBasDevp.getBarcode());
+        //璐ф灦绫诲瀷
+        mast.setWhsType(30);
+        mast.setAppeUser(9527L);
+        mast.setAppeTime(now);
+        mast.setModiUser(9527L);
+        mast.setModiTime(now);
+        // 鍒ゆ柇 鎺ラ┏鐐规槸鍚﹁嚜鍔�
+        if ("Y".equals(agvBasDevp.getAutoing())) {
+            //宸ヤ綔鐘舵��
+            mast.setWrkSts(201L);
+            //鍏ュ嚭搴撶被鍨�
+            mast.setIoType(109);
+            //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
+            AgvLocMast locMast = agvCommonService.getLocNo(3,1);
+            mast.setLocNo(locMast.getLocNo());
+            updateAgvLocMast(locMast,"S");
+        } else {
+            //宸ヤ綔鐘舵��
+            mast.setWrkSts(212L);
+            //鍏ュ嚭搴撶被鍨�
+            mast.setIoType(113);
+            //鐩爣绔欑偣
+            mast.setLocNo("");
+        }
+        if (!agvWrkMastService.insertByIncrease(mast)) {
+            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+        }
+        //鏇存柊鐩爣搴撲綅鐘舵��
+        updateAgvBasDevp(agvBasDevp,"R");
+
+
+        return SUCCESS;
+    }
+
+    public ReturnT<String> autoEmptyBack6(AgvBasDevp agvBasDevp) {
+        //鏌ヨ宸ヤ綔妗�
+        AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvBasDevp.getBarcode());
+        if(!Cools.isEmpty(agvWrkMast)){
+            throw new CoolException("褰撳墠"+agvBasDevp.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+        }
+        Date now = new Date();
+        //鐢熸垚宸ヤ綔妗�
+        AgvWrkMast mast = new AgvWrkMast();
+        //宸ヤ綔鐘舵��
+        mast.setWrkSts(214L);
+        //鍏ュ嚭搴撶被鍨�
+        mast.setIoType(113);
+        //鐩爣绔欑偣
+        mast.setLocNo("");
+        mast.setIoTime(now);
+        //浼樺厛绾�
+        mast.setIoPri(300.0);
+        //婧愮珯鐐�
+        mast.setSourceLocNo(agvBasDevp.getDevNo());
+        //璐ф灦缂栫爜
+        mast.setBarcode(agvBasDevp.getBarcode());
+        //璐ф灦绫诲瀷
+        mast.setWhsType(30);
+        mast.setAppeUser(9527L);
+        mast.setAppeTime(now);
+        mast.setModiUser(9527L);
+        mast.setModiTime(now);
+        if (!agvWrkMastService.insertByIncrease(mast)) {
+            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+        }
+        //鏇存柊鐩爣搴撲綅鐘舵��
+        updateAgvBasDevp(agvBasDevp,"R");
+
+
+        return SUCCESS;
+    }
 }
diff --git a/src/main/java/com/zy/common/service/AgvCommonService.java b/src/main/java/com/zy/common/service/AgvCommonService.java
index 426221c..f756a9a 100644
--- a/src/main/java/com/zy/common/service/AgvCommonService.java
+++ b/src/main/java/com/zy/common/service/AgvCommonService.java
@@ -268,9 +268,10 @@
         throw new CoolException("妤煎眰鍙凤細"+floor+"锛涜妤煎眰娌℃湁绌烘帴椹充綅");
     }
 
+
     /**
      * 妫�绱㈠簱浣嶅彿
-     * @return locNo 妫�绱㈠埌鐨勫簱浣嶅彿
+     * @return locNo 妫�绱㈣嚜鍔ㄦ帴椹充綅
      */
     public AgvBasDevp getDevpNo(int type, int floor, String auto) {
         // 鐩爣搴撲綅
@@ -284,6 +285,24 @@
 
         //鎵句笉鍒板簱浣嶏紝鎶涘嚭寮傚父
         throw new CoolException("妤煎眰鍙凤細"+floor+"锛涜妤煎眰娌℃湁绌烘帴椹充綅");
+    }
+
+    /**
+     * 妫�绱㈠簱浣嶅彿
+     * @return locNo 妫�绱㈠彲鍏ユ帴椹充綅
+     */
+    public AgvBasDevp getDevpNo(int type, int floor, String auto ,String inEable) {
+        // 鐩爣搴撲綅
+        AgvBasDevp basDevp = null;
+
+        // 寮�濮嬫煡鎵惧簱浣� ==============================>>
+        basDevp = getDevpNoInEable(type,floor,inEable);
+        if (basDevp != null) {
+            return basDevp;
+        }
+
+        //鎵句笉鍒板簱浣嶏紝鎶涘嚭寮傚父
+        return basDevp;
     }
 
     //闅忔満鍙栦竴涓揣浣�
@@ -305,4 +324,14 @@
                 .like("dev_no","DB"));
     }
 
+    //闅忔満鍙栦竴涓揣浣�
+    private AgvBasDevp getDevpNoInEable(int type,int floor,String inEable){
+        return agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>()
+                .eq("loc_sts","O")
+                .eq("floor",floor)
+                .eq("loc_type1",type)
+                .eq("in_enable",inEable)
+                .like("dev_no","DB"));
+    }
+
 }

--
Gitblit v1.9.1