From f4aff5752e2122249861ee95bb7245ca8dbec387 Mon Sep 17 00:00:00 2001 From: lidongyang <506508008@qq.com> Date: Thu, 19 Mar 2026 09:25:47 +0800 Subject: [PATCH] =?UTF-8?q?fix[project]:=20=E6=A0=B9=E6=8D=AEtodoId?= =?UTF-8?q?=E5=8E=BB=E9=87=8D=EF=BC=8C=E4=BF=9D=E7=95=99=E9=A6=96=E6=AC=A1?= =?UTF-8?q?=E5=87=BA=E7=8E=B0=E7=9A=84=E5=BE=85=E5=8A=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/LyricInternalServiceImpl.java | 16 ++++++++-------- .../project/service/impl/NodeServiceImpl.java | 9 +++++++++ 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/project/src/main/java/com/sdm/project/service/impl/LyricInternalServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/LyricInternalServiceImpl.java index 77d627d0..c65e1b6c 100644 --- a/project/src/main/java/com/sdm/project/service/impl/LyricInternalServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/LyricInternalServiceImpl.java @@ -2392,7 +2392,6 @@ public class LyricInternalServiceImpl implements ILyricInternalService { */ private List queryTodoListWithFixedTime(String startTime, String endTime) { // 查询原始待办数据 - // TODO 这里要确认是不是只拉取有限元仿真 List todoInfoList = lyricVTodoInfoService.lambdaQuery() .eq(LyricVTodoEmulationInfoDM::getRelevanceTask, DemandTypeEnum.FINITE_ELEMENT_SIMULATION.getName()) .ge(LyricVTodoEmulationInfoDM::getCreateTime, startTime) @@ -2403,13 +2402,14 @@ public class LyricInternalServiceImpl implements ILyricInternalService { return Collections.emptyList(); } - // 过滤3D负责人为空的待办数据 - todoInfoList = todoInfoList.stream().filter(todo -> StringUtils.isNotBlank(todo.getThreeDimensionalPerformer())) - .collect(Collectors.toList()); - if (CollectionUtils.isEmpty(todoInfoList)) { - log.info("未查询到{}到{}的待同步的有效待办数据", startTime, endTime); - return Collections.emptyList(); - } + // 根据todoId去重,保留首次出现的待办 + todoInfoList = todoInfoList.stream() + // 过滤掉todoId为null的数据 + .filter(dm -> dm.getTodoId() != null) + .collect(Collectors.collectingAndThen( + Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(LyricVTodoEmulationInfoDM::getTodoId))), + ArrayList::new + )); List expTodoInfoList = todoInfoList.stream().filter(todoInfo -> DemandTypeEnum.FINITE_ELEMENT_SIMULATION.getName().equals(todoInfo.getRelevanceTask())) .toList(); diff --git a/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java index fbc492f6..4de2d4ad 100644 --- a/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java @@ -3536,6 +3536,15 @@ public class NodeServiceImpl extends ServiceImpl dm.getTodoId() != null) + .collect(Collectors.collectingAndThen( + Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(LyricVTodoEmulationInfoDM::getTodoId))), + ArrayList::new + )); + log.info("项目{}查询到{}条待办事项", projectNum, todoInfoList.size()); // 3. 过滤已同步的待办