From e90dba0edc93be26e1509cfb2ec1d0681eb86e48 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期三, 27 八月 2025 08:37:04 +0800
Subject: [PATCH] 合并出库添加日志
---
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..641de6c 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())
+ .lt("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