fix(aihr): preserve tenant for local imports

This commit is contained in:
2026-07-14 06:53:03 +08:00
parent 6ec1772674
commit c95cb1ff3b
3 changed files with 22 additions and 1 deletions
@@ -466,8 +466,12 @@ public class AihrSopSeedService {
public LocalImportTaskResponse startLocalImportTask(LocalImportRequest request) {
LocalImportPlan plan = localImportPlan(request);
String tenantId = tenantId();
long taskId = createLocalImportTask(plan);
CompletableFuture.runAsync(() -> runLocalImportTask(taskId, plan), scheduledExecutorService);
CompletableFuture.runAsync(() -> TenantHelper.dynamic(tenantId, () -> {
runLocalImportTask(taskId, plan);
return null;
}), scheduledExecutorService);
return localImportTask(taskId).orElseGet(() -> new LocalImportTaskResponse(
taskId, plan.directory(), plan.category(), "导入中", "primary", 0, plan.files().size(), 0, 0, "", formatTime(new Timestamp(System.currentTimeMillis())), formatTime(new Timestamp(System.currentTimeMillis())), ""
));
@@ -4,6 +4,8 @@ import org.dromara.aihr.domain.AihrSopDto;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -80,6 +82,20 @@ public class AihrSopSeedServiceTest {
assertFalse(cleaned.contains("う"));
}
@Test
@Tag("dev")
public void localImportWorkerCarriesTenantContext() throws Exception {
Path source = Path.of("src/main/java/org/dromara/aihr/service/AihrSopSeedService.java");
if (!Files.exists(source)) {
source = Path.of("ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSopSeedService.java");
}
String code = Files.readString(source);
assertTrue(code.contains("String tenantId = tenantId();"));
assertTrue(code.contains("TenantHelper.dynamic(tenantId"));
assertTrue(code.contains("runLocalImportTask(taskId, plan)"));
}
private static AihrSopSeedService.KnowledgeHit hit(Long fragmentId, String title) {
return new AihrSopSeedService.KnowledgeHit(fragmentId, title, "sop", "", "doc-" + fragmentId, "片段内容", 1, 1.0);
}