From 63c17d9a35a60739ad49e0abc4f008c51bf9c167 Mon Sep 17 00:00:00 2001 From: XingY Date: Thu, 27 Aug 2026 19:45:29 -0700 Subject: [PATCH] GitHub Issue 1509, 1510 & 1511: Workflow performance issues with large number of samples --- api/src/org/labkey/api/exp/api/SampleTypeService.java | 2 ++ .../org/labkey/experiment/api/SampleTypeServiceImpl.java | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/api/src/org/labkey/api/exp/api/SampleTypeService.java b/api/src/org/labkey/api/exp/api/SampleTypeService.java index e4a0f7c992f..cd12c102669 100644 --- a/api/src/org/labkey/api/exp/api/SampleTypeService.java +++ b/api/src/org/labkey/api/exp/api/SampleTypeService.java @@ -247,6 +247,8 @@ default Map incrementSampleCounts(@Nullable Date counterDate) void addAuditEvent(User user, Container container, String comment, String userComment, ExpMaterial sample, Map metadata, String updateType); + void addAuditEvents(User user, Container container, String comment, String userComment, Collection samples, Map metadata); + // find the max sequence number with '${sampleName}-' prefix long getMaxAliquotId(@NotNull String sampleName, @NotNull String sampleTypeLsid, Container container); diff --git a/experiment/src/org/labkey/experiment/api/SampleTypeServiceImpl.java b/experiment/src/org/labkey/experiment/api/SampleTypeServiceImpl.java index f69d0948abe..ed105bbe393 100644 --- a/experiment/src/org/labkey/experiment/api/SampleTypeServiceImpl.java +++ b/experiment/src/org/labkey/experiment/api/SampleTypeServiceImpl.java @@ -1374,6 +1374,15 @@ public void addAuditEvent(User user, Container container, String comment, String AuditLogService.get().addEvent(user, event); } + @Override + public void addAuditEvents(User user, Container container, String comment, String userComment, Collection samples, Map metadata) + { + List events = samples.stream() + .map(sample -> createAuditRecord(container, comment, userComment, sample, metadata)) + .collect(Collectors.toList()); + AuditLogService.get().addEvents(user, events); + } + @Override public long getMaxAliquotId(@NotNull String sampleName, @NotNull String sampleTypeLsid, Container container) {