From 780b249bc5089d29f71e1e3f677bec38e7f8e8c9 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期一, 20 一月 2025 10:56:14 +0800
Subject: [PATCH] #
---
zy-acs-manager/src/main/java/com/zy/acs/manager/core/cache/CoreCache.java | 10 ++++++++++
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java | 2 ++
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java | 13 +++++++++++++
3 files changed, 25 insertions(+), 0 deletions(-)
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/cache/CoreCache.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/cache/CoreCache.java
new file mode 100644
index 0000000..ed1a31b
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/cache/CoreCache.java
@@ -0,0 +1,10 @@
+package com.zy.acs.manager.core.cache;
+
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+public class CoreCache {
+
+ public static final Map<Long, Integer> AGV_BACKPACK_CACHE = new ConcurrentHashMap<>();
+
+}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java
index 521c282..989a4e0 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java
@@ -38,4 +38,6 @@
Agv findByPosition(Long codeId);
+ int getBackpackRemainingCapacity(Long agvId);
+
}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java
index b9d13d7..ef2bd79 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java
@@ -9,6 +9,7 @@
import com.zy.acs.manager.common.domain.BaseParam;
import com.zy.acs.manager.common.domain.PageParam;
import com.zy.acs.manager.common.domain.PageResult;
+import com.zy.acs.manager.core.cache.CoreCache;
import com.zy.acs.manager.core.domain.VehicleDto;
import com.zy.acs.manager.manager.controller.result.AgvResult;
import com.zy.acs.manager.manager.entity.Agv;
@@ -207,4 +208,16 @@
return null;
}
+ @Override
+ public int getBackpackRemainingCapacity(Long agvId) {
+ int usedSlots = 0;
+ Integer backpackCache = CoreCache.AGV_BACKPACK_CACHE.get(agvId);
+ if (null != backpackCache) {
+ usedSlots = taskService.findTransportTasksCountByAgv(agvId);
+ }
+
+ AgvModel agvModel = agvModelService.getByAgvId(agvId);
+ return Math.max(agvModel.getBackpack() - usedSlots, 0); // if less than zero, then return zero
+ }
+
}
--
Gitblit v1.9.1