From 37f97c17a695aacd4f658eb86483558ba62374cd Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期五, 31 五月 2024 17:56:13 +0800
Subject: [PATCH] #1

---
 src/main/java/com/zy/asrs/task/AutoMoveScheduler.java |  223 +++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 207 insertions(+), 16 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
index a5825d4..26a801d 100644
--- a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
@@ -2,12 +2,15 @@
 
 
 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;
 import com.zy.asrs.task.handler.AutoMoveHandler;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
@@ -16,6 +19,7 @@
 import java.util.List;
 
 // 鑷姩绉诲簱
+@Slf4j
 @Component
 public class AutoMoveScheduler {
 
@@ -25,9 +29,11 @@
     private AutoMoveHandler autoMoveHandler;
     @Autowired
     private AgvWrkMastService agvWrkMastService;
+    @Autowired
+    private AgvBasDevpService agvBasDevpService;
 
     // 璋冩嫧鍑哄簱
-    @Scheduled(cron = "0/2 * * * * ? ")
+//    @Scheduled(cron = "0/2 * * * * ? ")
     private void execute(){
         List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(
                 new EntityWrapper<AgvLocMast>()
@@ -44,53 +50,238 @@
 
     }
 
-    // 璋冩嫧鍑哄簱
+    /**
+     * 鑷姩璋冩嫧浠诲姟锛屼粠1妤艰皟鎷ㄥ埌2妤硷紝3妤�
+     * wrkSts 22.璋冩嫧寰呭垎閰�
+     * ioType 108.鑷姩璋冩嫧
+     * crnNo :2鐩爣妤煎眰
+     */
     @Scheduled(cron = "0/2 * * * * ? ")
     private void execute2(){
         List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>()
                 .eq("wrk_sts", 22)
                 .andNew().eq("io_type",108)
+                        .andNew()
+                        .eq("crn_no",2).or().eq("crn_no",3)
+                        .orderBy("appe_time",true)
                 );
         if (agvWrkMastList.isEmpty()) {
             return;
         }
         for (AgvWrkMast agvWrkMast : agvWrkMastList) {
-            ReturnT<String> returnT = autoMoveHandler.start2(agvWrkMast);
+            try{
+                autoMoveHandler.start2(agvWrkMast);
+            } catch (Exception e){
+                log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"璋冩嫧鍑哄簱,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+            }
         }
 
     }
 
-    // 璋冩嫧鍑哄簱
+//    @Scheduled(cron = "0/2 * * * * ? ")
+//    private void execute5(){
+//        List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>()
+//                .eq("wrk_sts", 22)
+//                .andNew().eq("io_type",108)
+//                .eq("crn_no",3)
+//                .orderBy("appe_time",true)
+//        );
+//        if (agvWrkMastList.isEmpty()) {
+//            return;
+//        }
+//        for (AgvWrkMast agvWrkMast : agvWrkMastList) {
+//            try{
+//                autoMoveHandler.start2(agvWrkMast);
+//            } catch (Exception e){
+//                log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"璋冩嫧鍑哄簱,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+//            }
+//        }
+//
+//    }
+
+
+    /**
+     * 鎵嬪姩璋冩嫧浠诲姟(涓嶈蛋鐢垫娴佽浆锛屼汉宸ユ惉杩�)锛屼粠1妤艰皟鎷ㄥ埌2銆�3妤硷紝
+     * wrkSts 22.璋冩嫧寰呭垎閰�
+     * ioType 111.鎵嬪姩璋冩嫧
+     */
     @Scheduled(cron = "0/2 * * * * ? ")
     private void execute3(){
         List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>()
                 .eq("wrk_sts", 22)
                 .andNew().eq("io_type",111)
+                .orderBy("appe_time",true)
         );
         if (agvWrkMastList.isEmpty()) {
             return;
         }
         for (AgvWrkMast agvWrkMast : agvWrkMastList) {
-            ReturnT<String> returnT = autoMoveHandler.start3(agvWrkMast);
+            try{
+                autoMoveHandler.start3(agvWrkMast);
+            } catch (Exception e){
+                log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"璋冩嫧鍑哄簱,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+            }
         }
 
     }
 
-    // 绌烘澘鑷姩鍥炲簱
+//    // 绌烘澘鑷姩鍥炲簱  搴撲綅-鎺ラ┏鐐�
+//    //@Scheduled(cron = "0/2 * * * * ? ")
+//    private void autoEmptyBack(){
+//        // 鏌ヨ 涓嶄负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) {
+//            try{
+//                autoMoveHandler.autoEmptyBack(agvLocMast);
+//            } catch (Exception e){
+//                log.error("搴撲綅鍙�"+agvLocMast.getLocNo()+"绌烘澘鑷姩鍥炲簱  搴撲綅-鎺ラ┏鐐�,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+//            }
+//        }
+//    }
+
+    /**
+     * 鎵嬪伐浣滀笟涓嶉�氳繃鐢垫鏃讹紝绌烘澘浠�2銆�3妤兼帴椹充綅浜哄伐鎼繍鍒�1妤兼帴椹充綅浠ュ悗锛�
+     * 鍥炴祦鍒�1妤兼帴椹充綅锛�1妤兼帴椹崇偣 - 1妤煎簱浣�
+     * wrkSts 214.绌烘枡鏋跺洖娴佸緟鍒嗛厤
+     * ioType 113.绌烘墭鐩樻墜鍔ㄥ洖娴�
+     */
     @Scheduled(cron = "0/2 * * * * ? ")
-    private void autoEmptyBack(){
-        // 鏌ヨ 涓嶄负1妤肩殑绌鸿揣鏋�
-        List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(
-                new EntityWrapper<AgvLocMast>()
-                        .ne("floor", 1)
-                        .eq("loc_sts","D")
-                        .eq("loc_type1",3));
-        if (agvLocMasts.isEmpty()) {
+    private void autoEmptyBack3(){
+        // 宸ヤ綔妗d负201 涓� 鍏ュ嚭搴撶被鍨嬩负109
+        List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>()
+                .eq("wrk_sts", 214)
+                .eq("loc_no","")
+                .eq("io_type",113));
+        if (agvWrkMastList.isEmpty()) {
             return;
         }
-        for (AgvLocMast agvLocMast : agvLocMasts) {
-            ReturnT<String> returnT = autoMoveHandler.autoEmptyBack(agvLocMast);
+        for (AgvWrkMast agvWrkMast : agvWrkMastList) {
+            try{
+                autoMoveHandler.autoEmptyBack3(agvWrkMast);
+            } catch (Exception e){
+                log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"绌烘澘鑷姩鍥炲簱  鎺ラ┏鐐� - 1妤煎簱浣�,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+            }
         }
+    }
 
+//    // 绌烘澘鑷姩鍥炲簱
+////    @Scheduled(cron = "0/2 * * * * ? ")
+//    private void autoEmptyBack2(){
+//        // 鏌ヨ 涓嶄负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) {
+//            try{
+//                autoMoveHandler.autoEmptyBack2(agvLocMast);
+//            } catch (Exception e){
+//                log.error("搴撲綅鍙�"+agvLocMast.getLocNo()+"绌烘澘鑷姩鍥炲簱,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+//            }
+//        }
+//    }
+
+    /**
+     * 绌烘澘鑷姩鍥炲簱(閫氳繃鐢垫)锛�2銆�3妤煎簱浣嶇殑绠卞3绌烘枡鏋讹紝鐩存帴鍥炴祦鍒�1妤煎簱浣�
+     * 搴撲綅-鎺ラ┏鐐�  搴撲綅-鍚稿杞﹂棿
+     * 姣忓眰鏈�澶� 鍦� 鍥炲簱鏁伴噺闄愬埗5鏉�
+     * 浼樺厛閫夋嫨鍏堝埌鎺ラ┏浣嶏紙鎺ラ┏浣嶅彲鍏ワ級 鍚庨�夋嫨鐩存帴鍥炲簱
+     * 2妤兼垨3妤肩珯鐐瑰彲鍏ヤ俊鍙峰叏閮ㄦ病鏈夛紝浠h〃璧扮數姊嚜鍔ㄦ惉杩愭ā寮�
+     */
+    @Scheduled(cron = "0/2 * * * * ? ")
+    private void autoEmptyBack4(){
+//        if (determineFloorConnection(2)){
+            // 鏌ヨ 涓嶄负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) {
+                try{
+                    autoMoveHandler.autoEmptyBack4(agvLocMast);
+                } catch (Exception e){
+                    log.error("搴撲綅鍙�"+agvLocMast.getLocNo()+"绌烘澘鑷姩鍥炲簱 搴撲綅-鎺ラ┏鐐�  搴撲綅-鍚稿杞﹂棿,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+                }
+            }
+//        }
+    }
+
+    private boolean determineFloorConnection(Integer floor){
+        try{
+            List<AgvBasDevp> agvBasDevps = agvBasDevpService.selectList(new EntityWrapper<AgvBasDevp>().eq("floor", floor).like("dev_no", "DB_"));
+            if (!agvBasDevps.isEmpty()){
+                for (AgvBasDevp agvBasDevp:agvBasDevps){
+                    if (agvBasDevp.getInEnable().equals("Y")){
+                        return false;
+                    }
+                }
+                return true;
+            }
+        }catch (Exception e){
+            log.error("鍒ゆ柇褰撳墠妤煎眰鎺ラ┏浣嶆槸鍚﹀叏閮ㄥ叧闂紝寮傚父"+e.getMessage());
+        }
+        return false;
+    }
+
+    /**
+     * 绔欑偣鏄惁鑷姩
+     * 鑷姩锛� 鐢熸垚 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) {
+            try{
+                autoMoveHandler.autoEmptyBack5(agvBasDevp);
+            } catch (Exception e){
+                log.error("绔欑偣鍙�"+agvBasDevp.getDevNo()+"绔欑偣鏄惁鑷姩 浼樺厛閫夋嫨鍏堝埌鎺ラ┏浣嶏紙鎺ラ┏浣嶅彲鍏ワ級 鍚庨�夋嫨鐩存帴鍥炲簱,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+            }
+        }
+    }
+
+    /**
+     * 妫�娴�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) {
+            try{
+                autoMoveHandler.autoEmptyBack6(agvBasDevp);
+            } catch (Exception e){
+                log.error("绔欑偣鍙�"+agvBasDevp.getDevNo()+"妫�娴�1妤兼帴椹崇偣 鐢熸垚 113 鎵嬪姩鍥炴祦,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+            }
+        }
     }
 }

--
Gitblit v1.9.1