From 7e8c8abedab8d33ea5faff80545e566aa71306d6 Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期二, 21 五月 2024 14:48:11 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java |  143 ++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 134 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java b/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
index e703d2d..f3c8e4e 100644
--- a/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
@@ -1,19 +1,23 @@
 package com.zy.asrs.task;
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.core.common.Cools;
+import com.zy.asrs.entity.AgvBasDevp;
 import com.zy.asrs.entity.AgvWrkMast;
 import com.zy.asrs.service.AgvBasDevpService;
 import com.zy.asrs.service.AgvWrkMastService;
 import com.zy.asrs.task.core.ReturnT;
 import com.zy.asrs.task.handler.AgvWrkMastHandler;
+import com.zy.common.entity.Parameter;
 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.io.IOException;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -37,17 +41,22 @@
 
 
     /*
-    瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负205.宸ヤ綔瀹屾垚 涓� 锛�1.鍏ュ簱 || 53锛屾嫞鏂欏叆搴� || 57.鐩樼偣鍏ュ簱 || 10.绌烘澘鍏ュ簱 || 11.搴撴牸绉昏浇)鐨勬暟鎹�
+    瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负205.宸ヤ綔瀹屾垚 涓� 锛�1.鍏ュ簱 || 53锛屾嫞鏂欏叆搴� || 57.鐩樼偣鍏ュ簱 || 10.绌烘澘鍏ュ簱 || 11.鍗曞眰绉诲簱 || 12.璺ㄥ眰绉诲簱 || 108.鑷姩璋冩嫧 || 109.鎵嬪姩璋冩嫧)鐨勬暟鎹�
      */
-    @Scheduled(cron = "0/10 * * * * ? ")
+    @Scheduled(cron = "0/3 * * * * ? ")
     public void excutePutwayWrk(){
         List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>()
                 .eq("wrk_sts", 205)
                 .andNew().eq("io_type",53)
                 .or().eq("io_type",1)
                 .or().eq("io_type",57)
+                .or().eq("io_type",58)
                 .or().eq("io_type",10)
-                .or().eq("io_type",11));
+                .or().eq("io_type",11)
+                .or().eq("io_type",12)
+                .or().eq("io_type",108)
+                .or().eq("io_type",109)
+                .or().eq("io_type",112));
         if(!Cools.isEmpty(agvWrkMastList)){
             agvWrkMastList.stream().forEach(agvWrkMast -> {
                 agvWrkMastHandler.completedPutWayWrk(agvWrkMast);
@@ -56,9 +65,9 @@
     }
 
     /*
-    瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负206.瀹瑰櫒绂诲満瀹屾垚 涓� (101.鍑哄簱 || 110.绌烘澘鍑哄簱)
+    瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负206.鍑哄簱瀹屾垚 涓� (101.鍑哄簱 || 110.绌烘澘鍑哄簱)
      */
-    @Scheduled(cron = "0/10 * * * * ? ")
+    @Scheduled(cron = "0/3 * * * * ? ")
     public void excuteCarryWrk(){
         List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>()
                 .eq("wrk_sts", 206)
@@ -71,11 +80,29 @@
         }
     }
 
+
+    /*
+    瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负206.鍑哄簱瀹屾垚 涓� (101.鍑哄簱 || 110.绌烘澘鍑哄簱)
+     */
+    @Scheduled(cron = "0/3 * * * * ? ")
+    public void excuteCarryWrk2(){
+        List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>()
+                .eq("wrk_sts", 208)
+                .andNew().eq("io_type",110)
+                .or().eq("io_type",101));
+        if(!Cools.isEmpty(agvWrkMastList)){
+            agvWrkMastList.stream().forEach(agvWrkMast -> {
+                ReturnT<String> returnT = agvWrkMastHandler.completedCarryWrk2(agvWrkMast);
+            });
+        }
+    }
+
+
     /*
     putaway锛氫笂鏋�
     瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负201.鐢熸垚鍏ュ簱浠诲姟ID 涓�(鍑哄簱绫诲瀷涓� 53.鎷f枡鍐嶅叆搴� || 1.鍏ュ簱 || 10.绌烘澘鍏ュ簱鏍� || 57.鐩樼偣鍐嶅叆搴�)鐨勬暟鎹�
      */
-    @Scheduled(cron = "0/10 * * * * ? ")
+    @Scheduled(cron = "0/3 * * * * ? ")
     public void startPutwayWrk(){
         List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectPage(new Page<>(1, 50)
                 ,new EntityWrapper<AgvWrkMast>()
@@ -83,7 +110,13 @@
                 .andNew().eq("io_type", 53)
                 .or().eq("io_type", 1)
                 .or().eq("io_type", 10)
-                .or().eq("io_type", 57)).getRecords();
+                .or().eq("io_type", 57)
+                .or().eq("io_type", 58)
+                .or().eq("io_type", 11)
+                .or().eq("io_type", 12)
+                .or().eq("io_type", 109)
+                .or().eq("io_type", 108)
+                .or().eq("io_type", 112)).getRecords();
 
         if(!Cools.isEmpty(agvWrkMastList)){
             agvWrkMastList.forEach(agvWrkMast -> {
@@ -97,10 +130,32 @@
     }
 
     /*
+    putaway锛氫笂鏋�
+    瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负201.鐢熸垚鍏ュ簱浠诲姟ID 涓�(鍑哄簱绫诲瀷涓� 53.鎷f枡鍐嶅叆搴� || 1.鍏ュ簱 || 10.绌烘澘鍏ュ簱鏍� || 57.鐩樼偣鍐嶅叆搴�)鐨勬暟鎹�
+     */
+    @Scheduled(cron = "0/3 * * * * ? ")
+    public void startAllcationIn(){
+        List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectPage(new Page<>(1, 50)
+                ,new EntityWrapper<AgvWrkMast>()
+                        .eq("wrk_sts", 211)
+                        .andNew().eq("io_type", 112)).getRecords();
+
+        if(!Cools.isEmpty(agvWrkMastList)){
+            agvWrkMastList.forEach(agvWrkMast -> {
+                try {
+                    agvWrkMastHandler.startAllcationIn(agvWrkMast);
+                } catch (IOException e) {
+                    log.error(e.getMessage());
+                }
+            });
+        }
+    }
+
+    /*
     carry锛氭惉杩愶紝缁熸寚鍑哄簱銆佺Щ搴撱�佺偣鍒扮偣鎼繍绛�
     瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负21.鐢熸垚鍑哄簱浠诲姟 涓�(鍑哄簱绫诲瀷涓� 101.鍑哄簱 || 103.鎷f枡鍑哄簱 || 11.搴撴牸绉绘牻 || 110.绌烘澘鍑哄簱 || 107.鐩樼偣鍑哄簱)鐨勬暟鎹�
      */
-    @Scheduled(cron = "0/10 * * * * ? ")
+    @Scheduled(cron = "0/3 * * * * ? ")
     public void startCarryWrk(){
         List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectPage(new Page<>(1, 50)
                 ,new EntityWrapper<AgvWrkMast>()
@@ -110,11 +165,37 @@
                         .or().eq("io_type", 103)
                         .or().eq("io_type", 11)
                         .or().eq("io_type", 110)
-                        .or().eq("io_type", 107)).getRecords();
+                        .or().eq("io_type", 107)
+                        .or().eq("io_type", 108)).getRecords();
 
         if(!Cools.isEmpty(agvWrkMastList)){
+            List<String> devNos = new ArrayList<>();
             agvWrkMastList.forEach(agvWrkMast -> {
                 try {
+
+                    //杩囨护璇ユ壒宸ヤ綔妗d腑閲嶅鐨勫嚭绔欑偣
+                    if (devNos.contains(agvWrkMast.getLocNo())){
+                        return;
+                    }
+                    devNos.add(agvWrkMast.getLocNo());
+
+                    //妫�娴嬪綋鍓嶅伐浣滀换鍔′腑鐨勭珯鐐规槸鍚﹀凡鏈夋湁浣滀笟涓殑浠诲姟
+                    AgvWrkMast agvWrkMastWorking = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>()
+                            .eq("loc_no", agvWrkMast.getLocNo())
+                            .ge("wrk_sts", 202L));
+
+                    if(!Cools.isEmpty(agvWrkMastWorking)){
+                        return;
+                    }
+                    
+                    agvWrkMastWorking = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>()
+                            .eq("source_loc_no",agvWrkMast.getLocNo())
+                            .le("wrk_sts",204L));
+
+                    if(!Cools.isEmpty(agvWrkMastWorking)){
+                        return;
+                    }
+
                     agvWrkMastHandler.startPutWayWrk(agvWrkMast);
                 } catch (IOException e) {
                     log.error(e.getMessage());
@@ -137,4 +218,48 @@
             }
         }
     }
+
+    /*
+    鑷姩鐢熸垚绌烘澘鍑哄簱浠诲姟
+     */
+    @Scheduled(cron = "0/3 * * * * ? ")
+    public void autoEmptyOut(){
+        boolean packageEmptyAutoOUt = Cools.eq("Y",Parameter.get().getPackageEmptyAutoOUt());
+        boolean mateEmptyAutoOut = Cools.eq("Y",Parameter.get().getMateEmptyAutoOut());
+        boolean boxEmptyAutoOut = Cools.eq("Y",Parameter.get().getBoxEmptyAutoOut());
+
+        if(!packageEmptyAutoOUt && !mateEmptyAutoOut && !boxEmptyAutoOut){
+            return;
+        }
+
+        List<Integer> locType1Condition = new ArrayList<>();
+        if(packageEmptyAutoOUt){
+            locType1Condition.add(1);
+        }
+        if(mateEmptyAutoOut){
+            locType1Condition.add(2);
+        }
+        if(boxEmptyAutoOut){
+            locType1Condition.add(3);
+        }
+
+        //鎵惧嚭闇�瑕佽ˉ鏂欑殑绔欑偣
+        Wrapper<AgvBasDevp> wrapper = new EntityWrapper<AgvBasDevp>()
+                .eq("in_enable", "Y")
+                .eq("loc_sts", "O")
+                .in("loc_type1", locType1Condition);
+
+        List<AgvBasDevp> agvBasDevpList = agvBasDevpService.selectList(wrapper);
+        for (AgvBasDevp agvBasDevp : agvBasDevpList){
+            try {
+                agvWrkMastHandler.autoEmptyOut(agvBasDevp);
+            }catch (Exception e){
+                log.error(e.getMessage());
+                e.printStackTrace();
+            }
+
+        }
+
+    }
+
 }

--
Gitblit v1.9.1