From 89ebb86100459cdb687989637bb8317abd3bfd4f Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 23 十二月 2024 11:07:27 +0800
Subject: [PATCH] #
---
zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/KernelScheduler.java | 31 +++++++++++++++++++++++--------
1 files changed, 23 insertions(+), 8 deletions(-)
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/KernelScheduler.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/KernelScheduler.java
index 1c683d1..5e03f6d 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/KernelScheduler.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/KernelScheduler.java
@@ -37,6 +37,8 @@
private final ReentrantLock lock = new ReentrantLock(Boolean.TRUE);
@Autowired
+ private AgvService agvService;
+ @Autowired
private BusService busService;
@Autowired
private TaskService taskService;
@@ -99,7 +101,9 @@
.eq(Segment::getState, SegmentStateType.WAITING.toString())
);
for (Segment segment : segments) {
+ long startTime = System.currentTimeMillis();
trafficService.trigger(segment);
+ log.info("traffic calculation spend {} ms", System.currentTimeMillis() - startTime);
}
}
@@ -107,7 +111,9 @@
private void publishAction(){
List<String> actionGroupIds = actionService.selectPrepareGroup();
for (String actionGroupId : actionGroupIds) {
+ long startTime = System.currentTimeMillis();
mainService.publishAction(actionGroupId);
+ log.info("publish action calculation spend {} ms", System.currentTimeMillis() - startTime);
}
}
@@ -154,21 +160,30 @@
@Scheduled(cron = "0/1 * * * * ? ")
private void autoLocToLoc() {
if (!configService.getVal("TaskAssignMode", Boolean.class)) { return; }
- int numOfAgv = 2;
- int maxCapacity = 1 * numOfAgv;
+
+ // 鏈�澶氫袱缁刡us杩愯
+// if (1 < busService.count(new LambdaQueryWrapper<Bus>().in(Bus::getBusSts, BusStsType.RECEIVE.val(), BusStsType.PROGRESS.val()))) {
+// return;
+// }
+
+ int agvCount = agvService.count(new LambdaQueryWrapper<Agv>().eq(Agv::getStatus, StatusType.ENABLE.val));
AgvModel agvModel = agvModelService.getOne(new LambdaQueryWrapper<AgvModel>().eq(AgvModel::getType, AgvModelType.CTU_BOX_TRANSPORT_AGV.toString()));
- if (null != agvModel) {
- maxCapacity = agvModel.getBackpack() * numOfAgv;
+ if (null == agvModel || 0 == agvCount) {
+ return;
}
+// int maxCapacity = agvModel.getBackpack() * agvCount;
+ int maxCapacity = agvModel.getBackpack();
+
// STOCK
List<Loc> stockList = locService.list(new LambdaQueryWrapper<Loc>().eq(Loc::getLocSts, LocStsType.STOCK.val()));
- if (Cools.isEmpty(stockList)) {
+ if (Cools.isEmpty(stockList) || stockList.size() < agvModel.getBackpack()) {
return;
}
Collections.shuffle(stockList);
if (stockList.size() > maxCapacity) {
stockList = stockList.subList(0, maxCapacity);
}
+ int numOfStockLocList = stockList.size();
// IDLE
List<Loc> idleList = locService.list(new LambdaQueryWrapper<Loc>().eq(Loc::getLocSts, LocStsType.IDLE.val()));
@@ -176,13 +191,13 @@
return;
}
Collections.shuffle(idleList);
- if (idleList.size() > maxCapacity) {
- idleList = idleList.subList(0, maxCapacity);
+ if (idleList.size() > numOfStockLocList) {
+ idleList = idleList.subList(0, numOfStockLocList);
}
OpenBusSubmitParam param = new OpenBusSubmitParam();
param.setBatch(String.valueOf(snowflakeIdWorker.nextId()).substring(13, 19));
- for (int i = 0; i < maxCapacity; i++) {
+ for (int i = 0; i < numOfStockLocList; i++) {
Loc stockLoc = stockList.get(i);
Loc idleLoc = idleList.get(i);
--
Gitblit v1.9.1