From 7fba108547c985f3a9e1736b32dc028bad3b63a1 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期二, 21 一月 2025 16:12:57 +0800
Subject: [PATCH] 页面优化

---
 src/main/java/com/zy/asrs/task/AutoMoveScheduler.java |  270 ++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 184 insertions(+), 86 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
index 26a801d..2182cb5 100644
--- a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
@@ -1,20 +1,28 @@
 package com.zy.asrs.task;
 
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
 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.core.ProcesTimeData;
 import com.zy.asrs.task.handler.AutoMoveHandler;
+import com.zy.asrs.utils.TimeUtils;
+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.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
 
@@ -31,24 +39,26 @@
     private AgvWrkMastService agvWrkMastService;
     @Autowired
     private AgvBasDevpService agvBasDevpService;
+    @Autowired
+    private ConfigService configService;
 
     // 璋冩嫧鍑哄簱
 //    @Scheduled(cron = "0/2 * * * * ? ")
-    private void execute(){
-        List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(
-                new EntityWrapper<AgvLocMast>()
-                        .isNotNull("loc_type")
-                        .ne("loc_type", "")
-                        .eq("floor", 1)
-                        .eq("loc_sts","F"));
-        if (agvLocMasts.isEmpty()) {
-            return;
-        }
-        for (AgvLocMast agvLocMast : agvLocMasts) {
-            ReturnT<String> returnT = autoMoveHandler.start(agvLocMast);
-        }
-
-    }
+//    private void execute(){
+//        List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(
+//                new EntityWrapper<AgvLocMast>()
+//                        .isNotNull("loc_type")
+//                        .ne("loc_type", "")
+//                        .eq("floor", 1)
+//                        .eq("loc_sts","F"));
+//        if (agvLocMasts.isEmpty()) {
+//            return;
+//        }
+//        for (AgvLocMast agvLocMast : agvLocMasts) {
+//            ReturnT<String> returnT = autoMoveHandler.start(agvLocMast);
+//        }
+//
+//    }
 
     /**
      * 鑷姩璋冩嫧浠诲姟锛屼粠1妤艰皟鎷ㄥ埌2妤硷紝3妤�
@@ -56,23 +66,18 @@
      * 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)
-                );
+    @Scheduled(cron = "0/1 * * * * ? ")
+    private synchronized 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("io_pri", false).orderBy("appe_time", true));
         if (agvWrkMastList.isEmpty()) {
             return;
         }
         for (AgvWrkMast agvWrkMast : agvWrkMastList) {
-            try{
+            try {
+                // TODO 鑷姩鍥炴祦
                 autoMoveHandler.start2(agvWrkMast);
-            } catch (Exception e){
-                log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"璋冩嫧鍑哄簱,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+            } catch (Exception e) {
+                //log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"璋冩嫧鍑哄簱,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
             }
         }
 
@@ -106,20 +111,32 @@
      * 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)
-        );
+    private void execute3() {
+        List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("wrk_sts", 22).andNew().eq("io_type", 111).orderBy("io_pri", false).orderBy("appe_time", true));
         if (agvWrkMastList.isEmpty()) {
             return;
         }
         for (AgvWrkMast agvWrkMast : agvWrkMastList) {
-            try{
+            try {
                 autoMoveHandler.start3(agvWrkMast);
-            } catch (Exception e){
-                log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"璋冩嫧鍑哄簱,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+            } catch (Exception e) {
+                //log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"璋冩嫧鍑哄簱,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+            }
+        }
+
+    }
+
+    @Scheduled(cron = "0/2 * * * * ? ")
+    private void execute4() {
+        List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("wrk_sts", 22).andNew().eq("io_type", 114).orderBy("io_pri", false).orderBy("appe_time", true));
+        if (agvWrkMastList.isEmpty()) {
+            return;
+        }
+        for (AgvWrkMast agvWrkMast : agvWrkMastList) {
+            try {
+                autoMoveHandler.start4(agvWrkMast);
+            } catch (Exception e) {
+                log.error("宸ヤ綔鍙�" + agvWrkMast.getWrkNo() + "璋冩嫧鍑哄簱,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細" + e.getMessage());
             }
         }
 
@@ -153,20 +170,17 @@
      * ioType 113.绌烘墭鐩樻墜鍔ㄥ洖娴�
      */
     @Scheduled(cron = "0/2 * * * * ? ")
-    private void autoEmptyBack3(){
+    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));
+        List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("wrk_sts", 214).eq("loc_no", "").eq("io_type", 113).orderBy("io_pri", false));
         if (agvWrkMastList.isEmpty()) {
             return;
         }
         for (AgvWrkMast agvWrkMast : agvWrkMastList) {
-            try{
+            try {
                 autoMoveHandler.autoEmptyBack3(agvWrkMast);
-            } catch (Exception e){
-                log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"绌烘澘鑷姩鍥炲簱  鎺ラ┏鐐� - 1妤煎簱浣�,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+            } catch (Exception e) {
+                log.error("宸ヤ綔鍙�" + agvWrkMast.getWrkNo() + "绌烘澘鑷姩鍥炲簱  鎺ラ┏鐐� - 1妤煎簱浣�,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細" + e.getMessage());
             }
         }
     }
@@ -200,40 +214,81 @@
      * 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;
+    private void autoEmptyBack4() {
+        // 鏌ヨ 涓嶄负1妤肩殑绌鸿揣鏋�
+        List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(new EntityWrapper<AgvLocMast>()
+                // TODO 鍥涙湡
+                .eq("loc_sts", "D").eq("loc_type1", 3).ne("floor", 1).ne("lev1", 1));
+        if (agvLocMasts.isEmpty()) {
+            return;
+        }
+        for (AgvLocMast agvLocMast : agvLocMasts) {
+            try {
+                autoMoveHandler.autoEmptyBack4(agvLocMast);
+            } catch (Exception e) {
+                log.error("搴撲綅鍙�" + agvLocMast.getLocNo() + "绌烘澘鑷姩鍥炲簱 搴撲綅-鎺ラ┏鐐�  搴撲綅-鍚稿杞﹂棿,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細" + e.getMessage());
             }
-            for (AgvLocMast agvLocMast : agvLocMasts) {
-                try{
-                    autoMoveHandler.autoEmptyBack4(agvLocMast);
-                } catch (Exception e){
-                    log.error("搴撲綅鍙�"+agvLocMast.getLocNo()+"绌烘澘鑷姩鍥炲簱 搴撲綅-鎺ラ┏鐐�  搴撲綅-鍚稿杞﹂棿,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
-                }
-            }
-//        }
+        }
     }
 
-    private boolean determineFloorConnection(Integer floor){
-        try{
+
+    /**
+     * 灏嗕簩鍘傜殑6绫诲瀷鐨勭┖璐ф灦璋冩嫧鍥炲惛濉戜簩妤�
+     */
+    // TODO 鍥涙湡
+    @Scheduled(cron = "0/2 * * * * ? ")
+    private void autoEmptyBackSiqi() {
+        // 鏌ヨ6绫诲瀷绌鸿揣鏋惰繑鍥炵殑鎵ц鏃堕棿鐐�
+        Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "RETURN_6_TIME"));
+        if (config != null && !Cools.isEmpty(config.getValue())) {
+            boolean flag = false;
+            try {
+                // 鍒ゆ柇鏄惁鍦ㄦ墽琛屾椂闂村唴
+                ProcesTimeData procesTimeData = JSONObject.parseObject(config.getValue(), ProcesTimeData.class);
+                if (procesTimeData != null && TimeUtils.between(procesTimeData)) {
+                    flag = true;
+                }
+            } catch (Exception e) {
+                log.error("6绫诲瀷绌鸿揣鏋惰繑鍥炵殑鎵ц鏃堕棿鐐硅В鏋愬紓甯革細===銆嬪紓甯稿師鍥狅細" + e.getMessage());
+                flag = true;
+            }
+            if (flag) {
+                executeLocType6();
+            }
+        } else {
+            executeLocType6();
+        }
+    }
+
+
+    private void executeLocType6() {
+        // 鏌ヨ 浜屽巶鐨勭殑鍗婃垚鍝佺澹崇被鍨嬬殑绌鸿揣鏋�
+        List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(new EntityWrapper<AgvLocMast>().eq("loc_sts", "D").eq("loc_type1", 6).eq("floor", 2));
+        if (agvLocMasts.isEmpty()) {
+            return;
+        }
+        for (AgvLocMast agvLocMast : agvLocMasts) {
+            try {
+                autoMoveHandler.autoEmptyBackSiqi(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")){
+            if (!agvBasDevps.isEmpty()) {
+                for (AgvBasDevp agvBasDevp : agvBasDevps) {
+                    if (agvBasDevp.getInEnable().equals("Y")) {
                         return false;
                     }
                 }
                 return true;
             }
-        }catch (Exception e){
-            log.error("鍒ゆ柇褰撳墠妤煎眰鎺ラ┏浣嶆槸鍚﹀叏閮ㄥ叧闂紝寮傚父"+e.getMessage());
+        } catch (Exception e) {
+            log.error("鍒ゆ柇褰撳墠妤煎眰鎺ラ┏浣嶆槸鍚﹀叏閮ㄥ叧闂紝寮傚父" + e.getMessage());
         }
         return false;
     }
@@ -246,19 +301,16 @@
      *
      */
     @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"));
+    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{
+            try {
                 autoMoveHandler.autoEmptyBack5(agvBasDevp);
-            } catch (Exception e){
-                log.error("绔欑偣鍙�"+agvBasDevp.getDevNo()+"绔欑偣鏄惁鑷姩 浼樺厛閫夋嫨鍏堝埌鎺ラ┏浣嶏紙鎺ラ┏浣嶅彲鍏ワ級 鍚庨�夋嫨鐩存帴鍥炲簱,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+            } catch (Exception e) {
+                log.error("绔欑偣鍙�" + agvBasDevp.getDevNo() + "绔欑偣鏄惁鑷姩 浼樺厛閫夋嫨鍏堝埌鎺ラ┏浣嶏紙鎺ラ┏浣嶅彲鍏ワ級 鍚庨�夋嫨鐩存帴鍥炲簱,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細" + e.getMessage());
             }
         }
     }
@@ -268,20 +320,66 @@
      * 鎵嬪姩锛� 鐢熸垚 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"));
+    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{
+            try {
                 autoMoveHandler.autoEmptyBack6(agvBasDevp);
-            } catch (Exception e){
-                log.error("绔欑偣鍙�"+agvBasDevp.getDevNo()+"妫�娴�1妤兼帴椹崇偣 鐢熸垚 113 鎵嬪姩鍥炴祦,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+            } catch (Exception e) {
+                log.error("绔欑偣鍙�" + agvBasDevp.getDevNo() + "妫�娴�1妤兼帴椹崇偣 鐢熸垚 113 鎵嬪姩鍥炴祦,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細" + e.getMessage());
             }
         }
     }
+
+    /**
+     * 鑷姩绉诲簱
+     *
+     */
+    @Scheduled(cron = "0/2 * * * * ? ")
+    private void autoEmptyBack7() throws ParseException {
+        Date now = new Date();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        String currentDay = sdf.format(now);
+        Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "autoTime"));
+        if (Cools.isEmpty(config)) {
+
+        } else {
+            if (config.getStatus().intValue() == 0) {
+                return;
+            }
+            JSONObject jsonObject = JSON.parseObject(config.getValue().toString());
+            Integer maxTansk = jsonObject.getInteger("maxTansk");
+            //Integer startTime = jsonObject.getInteger("startTime");
+            String startTime = jsonObject.getString("startTime");
+            long time1 = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(currentDay + " " + startTime).getTime();
+            long time = now.getTime();
+            long time3 = time - time1;
+
+
+            if (time3 > 0 && time3 < (1000 * 60 * 10)) {
+
+                List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().like("loc_no", "02F1").like("source_loc_no", "F1").eq("io_type", 12));
+                if (maxTansk <= agvWrkMasts.size()) {
+                    return;
+                }
+
+                List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(new EntityWrapper<AgvLocMast>().eq("floor", 1).eq("lev1", 1).eq("loc_sts", "F").eq("loc_type1", 3));
+                if (agvLocMasts.isEmpty()) {
+                    return;
+                }
+                for (AgvLocMast agvLocMast : agvLocMasts) {
+                    try {
+                        autoMoveHandler.autoTransfers(agvLocMast, maxTansk);
+                    } catch (Exception e) {
+                        log.error("搴撲綅鍙�" + agvLocMast.getLocNo() + "瀹氭椂绉诲簱浠诲姟 鍚稿涓�妤� --> 鍚稿浜屾ゼ,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細" + e.getMessage());
+                    }
+                }
+            }
+        }
+    }
+
+
 }

--
Gitblit v1.9.1