From ab14726215678ac69adfeafbd845ebc5b0776ea2 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期二, 14 一月 2025 14:56:41 +0800
Subject: [PATCH] 优化订单同步逻辑及库位查找
---
src/main/java/com/zy/asrs/task/AutoMoveScheduler.java | 160 +++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 119 insertions(+), 41 deletions(-)
diff --git a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
index 19720c1..2941e89 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,25 +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")
- .orderBy("io_pri",false));
- 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妤�
@@ -57,8 +66,8 @@
* 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)
@@ -73,7 +82,7 @@
try{
autoMoveHandler.start2(agvWrkMast);
} catch (Exception e){
- log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"璋冩嫧鍑哄簱,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
+ //log.error("宸ヤ綔鍙�"+agvWrkMast.getWrkNo()+"璋冩嫧鍑哄簱,澶勭悊澶辫触锛�===銆嬪紓甯稿師鍥狅細"+e.getMessage());
}
}
@@ -120,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());
}
@@ -204,25 +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)
- .orderBy("io_pri",false));
- 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){
@@ -254,8 +281,7 @@
List<AgvBasDevp> agvBasDevps = agvBasDevpService.selectList(new EntityWrapper<AgvBasDevp>()
.ne("floor", 1)
.eq("loc_sts", "F")
- .like("dev_no", "DB")
- .orderBy("io_pri",false));
+ .like("dev_no", "DB"));
if (agvBasDevps.isEmpty()) {
return;
}
@@ -277,8 +303,7 @@
List<AgvBasDevp> agvBasDevps = agvBasDevpService.selectList(new EntityWrapper<AgvBasDevp>()
.eq("floor", 1)
.eq("loc_sts", "F")
- .like("dev_no", "DB")
- .orderBy("io_pri",false));
+ .like("dev_no", "DB"));
if (agvBasDevps.isEmpty()) {
return;
}
@@ -290,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