From 18d68d8f70a6a434f6fda012299ae1b219c81ed7 Mon Sep 17 00:00:00 2001
From: zhangchao <zc857179121@qq.com>
Date: 星期二, 19 十一月 2024 13:31:48 +0800
Subject: [PATCH] 1

---
 src/main/java/com/zy/asrs/task/AutoMoveScheduler.java |  128 +++++++++++++++++++++++++++++++++++-------
 1 files changed, 106 insertions(+), 22 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..74828c9 100644
--- a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
@@ -1,7 +1,11 @@
 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.core.exception.CoolException;
 import com.zy.asrs.entity.AgvBasDevp;
 import com.zy.asrs.entity.AgvLocMast;
 import com.zy.asrs.entity.AgvWrkMast;
@@ -10,11 +14,15 @@
 import com.zy.asrs.service.AgvWrkMastService;
 import com.zy.asrs.task.core.ReturnT;
 import com.zy.asrs.task.handler.AutoMoveHandler;
+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,6 +39,8 @@
     private AgvWrkMastService agvWrkMastService;
     @Autowired
     private AgvBasDevpService agvBasDevpService;
+    @Autowired
+    private ConfigService configService;
 
     // 璋冩嫧鍑哄簱
 //    @Scheduled(cron = "0/2 * * * * ? ")
@@ -56,14 +66,14 @@
      * ioType 108.鑷姩璋冩嫧
      * crnNo :2鐩爣妤煎眰
      */
-    @Scheduled(cron = "0/2 * * * * ? ")
-    private void execute2(){
+    @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("appe_time",true)
+                        .orderBy("io_pri",false).orderBy("appe_time",true)
                 );
         if (agvWrkMastList.isEmpty()) {
             return;
@@ -72,7 +82,7 @@
             try{
                 autoMoveHandler.start2(agvWrkMast);
             } catch (Exception e){
-                log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"璋冩嫧鍑哄簱,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+                //log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"璋冩嫧鍑哄簱,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
             }
         }
 
@@ -110,6 +120,7 @@
         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()) {
@@ -118,6 +129,27 @@
         for (AgvWrkMast agvWrkMast : agvWrkMastList) {
             try{
                 autoMoveHandler.start3(agvWrkMast);
+            } 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());
             }
@@ -158,7 +190,8 @@
         List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>()
                 .eq("wrk_sts", 214)
                 .eq("loc_no","")
-                .eq("io_type",113));
+                .eq("io_type",113)
+                .orderBy("io_pri",false));
         if (agvWrkMastList.isEmpty()) {
             return;
         }
@@ -201,24 +234,22 @@
      */
     @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;
+        // 鏌ヨ 涓嶄负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());
             }
-            for (AgvLocMast agvLocMast : agvLocMasts) {
-                try{
-                    autoMoveHandler.autoEmptyBack4(agvLocMast);
-                } catch (Exception e){
-                    log.error("搴撲綅鍙�"+agvLocMast.getLocNo()+"绌烘澘鑷姩鍥炲簱 搴撲綅-鎺ラ┏鐐�  搴撲綅-鍚稿杞﹂棿,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
-                }
-            }
-//        }
+        }
     }
 
     private boolean determineFloorConnection(Integer floor){
@@ -284,4 +315,57 @@
             }
         }
     }
+
+    /**
+     * 鑷姩绉诲簱
+     *
+     */
+    @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