package com.algo.model; import java.util.Objects; /** * 背篓数据模型 * 包含背篓的状态信息 */ public class BackpackData { /** * 背篓编号 */ private int index; /** * 是否载货 */ private boolean loaded; /** * 对应的任务编号 */ private String taskId; private boolean execute; // 构造函数 public BackpackData() { } public BackpackData(int index, boolean loaded, String taskId) { this.index = index; this.loaded = loaded; this.taskId = taskId; } // Getter和Setter方法 public int getIndex() { return index; } public void setIndex(int index) { this.index = index; } public boolean isLoaded() { return loaded; } public void setLoaded(boolean loaded) { this.loaded = loaded; } public String getTaskId() { return taskId; } public void setTaskId(String taskId) { this.taskId = taskId; } public boolean isExecute() { return execute; } public void setExecute(boolean execute) { this.execute = execute; } /** * 检查背篓是否可用(未载货且无任务) * * @return true如果背篓可用 */ public boolean isAvailable() { return !loaded && (taskId == null || taskId.trim().isEmpty()); } /** * 分配任务到背篓 * * @param taskId 任务ID * @return true如果分配成功 */ public boolean assignTask(String taskId) { if (isAvailable()) { this.taskId = taskId; return true; } return false; } /** * 清空背篓任务 */ public void clearTask() { this.taskId = null; this.loaded = false; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; BackpackData that = (BackpackData) o; return index == that.index; } @Override public int hashCode() { return Objects.hash(index); } @Override public String toString() { return "BackpackData{" + "index=" + index + ", loaded=" + loaded + ", taskId='" + taskId + '\'' + '}'; } }