From 5dc8a9f9aba3310fd21cad9509635bb7ec2f007f Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期四, 12 十二月 2024 13:29:06 +0800
Subject: [PATCH] Generating...

---
 src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java |  193 +++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 174 insertions(+), 19 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..90fe463 100644
--- a/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
@@ -1,19 +1,25 @@
 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.core.common.DateUtils;
+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.Date;
 import java.util.List;
 
 /**
@@ -37,28 +43,44 @@
 
 
     /*
-    瀹氭椂澶勭悊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/1 * * * * ? ")
+    @Scheduled(fixedDelay = 1000)
     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",111)
+                .or().eq("io_type",112)
+                .or().eq("io_type",113)
+                .or().eq("io_type",114)
+                .or().eq("io_type",121)
+        );
         if(!Cools.isEmpty(agvWrkMastList)){
             agvWrkMastList.stream().forEach(agvWrkMast -> {
-                agvWrkMastHandler.completedPutWayWrk(agvWrkMast);
+                try{
+                    agvWrkMastHandler.completedPutWayWrk(agvWrkMast);
+                } catch (Exception e){
+                    log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负205,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+                }
             });
         }
     }
 
     /*
-    瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负206.瀹瑰櫒绂诲満瀹屾垚 涓� (101.鍑哄簱 || 110.绌烘澘鍑哄簱)
+    瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负206.鍑哄簱瀹屾垚 涓� (101.鍑哄簱 || 110.绌烘澘鍑哄簱)
      */
-    @Scheduled(cron = "0/10 * * * * ? ")
+    //@Scheduled(cron = "0/1 * * * * ? ")
+    @Scheduled(fixedDelay = 1000)
     public void excuteCarryWrk(){
         List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>()
                 .eq("wrk_sts", 206)
@@ -66,7 +88,70 @@
                 .or().eq("io_type",101));
         if(!Cools.isEmpty(agvWrkMastList)){
             agvWrkMastList.stream().forEach(agvWrkMast -> {
-                ReturnT<String> returnT = agvWrkMastHandler.completedCarryWrk(agvWrkMast);
+                try{
+                    agvWrkMastHandler.completedCarryWrk(agvWrkMast);
+                } catch (Exception e){
+                    //e.printStackTrace();
+                    log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负206,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+                }
+            });
+        }
+    }
+
+
+    /*
+    瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负206.鍑哄簱瀹屾垚 涓� (101.鍑哄簱 || 110.绌烘澘鍑哄簱)
+     */
+    //@Scheduled(cron = "0/1 * * * * ? ")
+    @Scheduled(fixedDelay = 1000)
+    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 -> {
+                try{
+                    agvWrkMastHandler.completedCarryWrk2(agvWrkMast);
+                } catch (Exception e){
+                    log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负206,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+                }
+            });
+        }
+    }
+
+
+    /*
+    putaway锛氫笂鏋�
+    瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负201.鐢熸垚鍏ュ簱浠诲姟ID 涓�(鍑哄簱绫诲瀷涓� 53.鎷f枡鍐嶅叆搴� || 1.鍏ュ簱 || 10.绌烘澘鍏ュ簱鏍� || 57.鐩樼偣鍐嶅叆搴�)鐨勬暟鎹�
+     */
+    //@Scheduled(cron = "0/1 * * * * ? ")
+    @Scheduled(fixedDelay = 3000)
+    public synchronized void startPutwayWrk(){
+        List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectPage(new Page<>(1, 50)
+                ,new EntityWrapper<AgvWrkMast>()
+                .eq("wrk_sts", 201)
+                .andNew().eq("io_type", 53)
+                .or().eq("io_type", 1)
+                .or().eq("io_type", 10)
+                .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", 111)
+                .or().eq("io_type", 112)
+                .or().eq("io_type", 113)
+                .or().eq("io_type", 114)).getRecords();
+
+        if(!Cools.isEmpty(agvWrkMastList)){
+            agvWrkMastList.forEach(agvWrkMast -> {
+                try{
+                    agvWrkMastHandler.startPutWayWrk(agvWrkMast);
+                } catch (Exception e){
+                    log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负201,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+                }
             });
         }
     }
@@ -75,20 +160,18 @@
     putaway锛氫笂鏋�
     瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负201.鐢熸垚鍏ュ簱浠诲姟ID 涓�(鍑哄簱绫诲瀷涓� 53.鎷f枡鍐嶅叆搴� || 1.鍏ュ簱 || 10.绌烘澘鍏ュ簱鏍� || 57.鐩樼偣鍐嶅叆搴�)鐨勬暟鎹�
      */
-    @Scheduled(cron = "0/10 * * * * ? ")
-    public void startPutwayWrk(){
+    //@Scheduled(cron = "0/1 * * * * ? ")
+    @Scheduled(fixedDelay = 1000)
+    public void startAllcationIn(){
         List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectPage(new Page<>(1, 50)
                 ,new EntityWrapper<AgvWrkMast>()
-                .eq("wrk_sts", 201)
-                .andNew().eq("io_type", 53)
-                .or().eq("io_type", 1)
-                .or().eq("io_type", 10)
-                .or().eq("io_type", 57)).getRecords();
+                        .eq("wrk_sts", 211)
+                        .andNew().eq("io_type", 112)).getRecords();
 
         if(!Cools.isEmpty(agvWrkMastList)){
             agvWrkMastList.forEach(agvWrkMast -> {
                 try {
-                    agvWrkMastHandler.startPutWayWrk(agvWrkMast);
+                    agvWrkMastHandler.startAllcationIn(agvWrkMast);
                 } catch (IOException e) {
                     log.error(e.getMessage());
                 }
@@ -100,7 +183,8 @@
     carry锛氭惉杩愶紝缁熸寚鍑哄簱銆佺Щ搴撱�佺偣鍒扮偣鎼繍绛�
     瀹氭椂澶勭悊AGV宸ヤ綔妗d腑宸ヤ綔鐘舵�佷负21.鐢熸垚鍑哄簱浠诲姟 涓�(鍑哄簱绫诲瀷涓� 101.鍑哄簱 || 103.鎷f枡鍑哄簱 || 11.搴撴牸绉绘牻 || 110.绌烘澘鍑哄簱 || 107.鐩樼偣鍑哄簱)鐨勬暟鎹�
      */
-    @Scheduled(cron = "0/10 * * * * ? ")
+    //@Scheduled(cron = "0/1 * * * * ? ")
+    @Scheduled(fixedDelay = 2000)
     public void startCarryWrk(){
         List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectPage(new Page<>(1, 50)
                 ,new EntityWrapper<AgvWrkMast>()
@@ -110,14 +194,40 @@
                         .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", 109)
+                        .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());
+                } catch (Exception e) {
+                    log.error("鎼繍锛岀粺鎸囧嚭搴撱�佺Щ搴撱�佺偣鍒扮偣鎼繍绛�"+e.getMessage());
                 }
             });
         }
@@ -137,4 +247,49 @@
             }
         }
     }
+
+    /*
+    鑷姩鐢熸垚绌烘澘鍑哄簱浠诲姟
+     */
+    //@Scheduled(cron = "0/1 * * * * ? ")
+    @Scheduled(fixedDelay = 1000)
+    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