From bbf11a79fce0131aa95905c09b00f25e7696d20b Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期二, 21 十月 2025 16:53:13 +0800
Subject: [PATCH] *
---
src/main/java/com/zy/asrs/utils/param/ItemUtilParam.java | 82 ++++++++++++++++++++++++++++++++++-------
1 files changed, 68 insertions(+), 14 deletions(-)
diff --git a/src/main/java/com/zy/asrs/utils/param/ItemUtilParam.java b/src/main/java/com/zy/asrs/utils/param/ItemUtilParam.java
index 4ca44df..39c799c 100644
--- a/src/main/java/com/zy/asrs/utils/param/ItemUtilParam.java
+++ b/src/main/java/com/zy/asrs/utils/param/ItemUtilParam.java
@@ -2,24 +2,78 @@
import lombok.Data;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
@Data
public class ItemUtilParam {
- String name;
- double unitSpace;
- int maxCapacity;
- int stock;
- int remaining;
- public ItemUtilParam(String name, int maxCapacity, int stock) {
- this.name = name;
- this.maxCapacity = maxCapacity;
- this.unitSpace = 1.0 / maxCapacity;
- this.stock = stock;
- this.remaining = stock;
+ @Data
+ public static class Item {
+ String name;
+ double unitSpace;
+ int maxCapacity;
+ int stock;
+ int remaining;
+
+ public Item(String name, int maxCapacity, int stock) {
+ this.name = name;
+ this.maxCapacity = maxCapacity;
+ this.unitSpace = 1.0 / maxCapacity;
+ this.stock = stock;
+ this.remaining = stock;
+ }
+
+ @Override
+ public String toString() {
+ return name + "(鍗曟斁" + maxCapacity + "涓�, 搴撳瓨" + stock + "涓�)";
+ }
}
- @Override
- public String toString() {
- return name + "(鍗曟斁" + maxCapacity + "涓�, 搴撳瓨" + stock + "涓�)";
+
+ static class Locker {
+ int id;
+ double remainingSpace;
+ long bindingTags;
+ Map<String, Integer> contents;
+ Set<String> itemTypes;
+
+ public Locker(int id) {
+ this.id = id;
+ this.remainingSpace = 1.0;
+ this.contents = new HashMap<>();
+ this.itemTypes = new HashSet<>();
+ this.bindingTags = System.currentTimeMillis();
+
+ }
+
+ public boolean canAdd(ItemUtilParam.Item item, int quantity) {
+ return remainingSpace >= quantity * item.unitSpace;
+ }
+
+ public void addItem(ItemUtilParam.Item item, int quantity) {
+ double spaceUsed = quantity * item.unitSpace;
+ remainingSpace -= spaceUsed;
+ contents.put(item.name, contents.getOrDefault(item.name, 0) + quantity);
+ itemTypes.add(item.name);
+ item.remaining -= quantity;
+ }
+
+ public boolean containsItemType(String itemName) {
+ return itemTypes.contains(itemName);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("鍌ㄧ墿鏌�").append(id).append(": ");
+ sb.append(String.format("鍓╀綑绌洪棿%.4f", remainingSpace)).append("\n");
+ for (Map.Entry<String, Integer> entry : contents.entrySet()) {
+ sb.append(" ").append(entry.getKey()).append(": ").append(entry.getValue()).append("涓猏n");
+ }
+ return sb.toString();
+ }
}
}
--
Gitblit v1.9.1