From 2460c18a0100d4dddcb470e4668eab07d096501e Mon Sep 17 00:00:00 2001 From: mashuai Date: Thu, 6 Feb 2025 16:42:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ComplexQueryServiceImpl.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/ComplexQueryServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/ComplexQueryServiceImpl.java index afff8b6d..91577cee 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/ComplexQueryServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/ComplexQueryServiceImpl.java @@ -282,6 +282,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService { } } } + extracted(list); // 查询在库具体编码code List codeList = complexQueryMapper.selectMaCodeByTypeId(bean); // 1. 创建一个 Set 存储 codeList 中的 typeId 和 maCode 的组合键 @@ -309,6 +310,34 @@ public class ComplexQueryServiceImpl implements ComplexQueryService { return list; } + /** + * 去重maCode,保留最新的一个 + * @param list + */ + private void extracted(List list) { + if (CollectionUtils.isNotEmpty(list)) { + Map map = new HashMap<>(); + for (StorageInfo storageInfo : list) { + String maCode = storageInfo.getMaCode(); + // 如果map中没有这个maCode,直接添加 + if (!map.containsKey(maCode)) { + map.put(maCode, storageInfo); + } else { + // 如果map中已经有这个maCode,比较inputTime + StorageInfo existing = map.get(maCode); + + // 如果当前的storageInfo的inputTime更晚,更新map中的值 + if (storageInfo.getInputTime().after(existing.getInputTime())) { + map.put(maCode, storageInfo); + } + } + } + // 最后将map中的所有最新的StorageInfo对象放入list + list.clear(); + list.addAll(map.values()); + } + } + /** * 查询在用设备详情 * @param bean