fix(aihr): preserve tenant for local imports
This commit is contained in:
+5
-1
@@ -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())), ""
|
||||
));
|
||||
|
||||
+16
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user