diff --git a/src/main/java/com/qyft/ms/app/device/status/SprayTask.java b/src/main/java/com/qyft/ms/app/device/status/SprayTask.java index 84f8ddb..e6a0d99 100644 --- a/src/main/java/com/qyft/ms/app/device/status/SprayTask.java +++ b/src/main/java/com/qyft/ms/app/device/status/SprayTask.java @@ -5,6 +5,7 @@ import com.qyft.ms.app.model.bo.SprayTaskSprayed; import com.qyft.ms.app.model.bo.SprayTaskStep; import lombok.Data; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.concurrent.CopyOnWriteArrayList; @@ -111,9 +112,13 @@ public class SprayTask { } public synchronized void addSprayTaskSprayed(SprayTaskSprayed task) { - if (sprayTaskSprayedList.size() >= 200) { - // 删除最旧的元素 - sprayTaskSprayedList.remove(0); + LinkedHashSet distinctNumbers = new LinkedHashSet<>(); + for (SprayTaskSprayed item : sprayTaskSprayedList) { + distinctNumbers.add(item.getNumber()); + } + if (!distinctNumbers.contains(task.getNumber()) && distinctNumbers.size() >= 4) { + Integer oldestNumber = distinctNumbers.iterator().next(); + sprayTaskSprayedList.removeIf(item -> item.getNumber().equals(oldestNumber)); } sprayTaskSprayedList.add(task); } diff --git a/src/main/java/com/qyft/ms/app/model/bo/SprayTaskSprayed.java b/src/main/java/com/qyft/ms/app/model/bo/SprayTaskSprayed.java index c66728f..5668ff9 100644 --- a/src/main/java/com/qyft/ms/app/model/bo/SprayTaskSprayed.java +++ b/src/main/java/com/qyft/ms/app/model/bo/SprayTaskSprayed.java @@ -3,8 +3,6 @@ package com.qyft.ms.app.model.bo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import java.util.List; - @Data @Schema(description = "喷涂任务已喷涂记录") public class SprayTaskSprayed {