fix(aihr): prefer dynamic tenant for upload queue

This commit is contained in:
2026-07-14 07:05:55 +08:00
parent 03d4b97f75
commit 893bc78e9c
3 changed files with 4 additions and 2 deletions
@@ -6,7 +6,6 @@ import org.dromara.aihr.domain.AihrSopDto.UploadEnqueueResponse;
import org.dromara.aihr.domain.AihrSopDto.UploadItemResponse;
import org.dromara.aihr.domain.AihrSopDto.UploadResponse;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.tenant.helper.TenantHelper;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.dao.DataAccessException;
@@ -498,7 +497,7 @@ public class AihrUploadQueueService {
}
private String currentTenantId() {
String tenantId = LoginHelper.getTenantId();
String tenantId = TenantHelper.getTenantId();
return tenantId == null || tenantId.isBlank() ? TENANT_ID : tenantId;
}
@@ -22,6 +22,7 @@ class AihrUploadQueueServiceTest {
assertTrue(code.contains("select i.tenant_id, i.id, i.file_name"));
assertTrue(code.contains("p.tenant_id = i.tenant_id"));
assertTrue(code.contains("TenantHelper.getTenantId()"));
assertTrue(code.contains("TenantHelper.dynamic(tenantId"));
assertTrue(code.contains("new ItemRow(rs.getString(\"tenant_id\")"));
assertTrue(code.contains("where status = 1\n and ("));
+2
View File
@@ -102,3 +102,5 @@
- 2026-07-14 线上只读复核:生产根站点、`/h5/`、租户列表和员工首页 API 均返回 200;线上仍加载管理端 `index-CJZ3Ax3Z.js` 与 H5 `index-D4-NrEpb.js`,本地最新租户边界修复提交 `6ec17726`、`c95cb1ff` 尚未发布。本次未修改生产环境,发布前需先做测试环境跨租户上传/目录导入回归。
- 2026-07-14 异步队列清扫修复:上传队列 worker 的卡死任务清扫改为跨租户扫描,避免无登录线程回退到 `000000` 后只清理默认租户;实际加工、失败回写和 SOP 处理仍按队列条目租户隔离。`AihrUploadQueueServiceTest` 与 AIHR 全量测试 51/51 通过;双租户上传/目录导入仍需测试环境回归。
- 2026-07-14 移动端短信登录租户修复:手机号查询补充 `tenant_id` 条件,避免同一手机号在不同租户登录时复用其他租户的 `sys_user`;新增认证策略边界回归测试。正式多租户登录仍需用测试租户账号做 HTTP 回归。
- 2026-07-14 测试租户 HTTP 回归:在本地临时建立 `codex-a`/`codex-b` 两个租户,用同一手机号分别登录并授予各自 `superadmin` 测试角色;两租户分别调用异步上传和目录导入接口。A 查询不到 B 的上传批次/导入任务,B 也查询不到 A;两个目录导入任务均完成 `1/1`。后台 worker 的队列加工、目录导入、任务进度和查询均保持租户隔离。测试产生的租户、用户、角色、知识库行和临时文件已清理为 0。该证据只覆盖本地测试环境,不替代正式组织同步和生产多租户验收。
- 2026-07-14 上传队列上下文收口:`AihrUploadQueueService` 的同步请求租户读取改为 `TenantHelper.getTenantId()`,动态租户上下文优先于登录态,避免重试/嵌套任务回退到错误租户;`AihrUploadQueueServiceTest` 已补对应源码契约断言。AIHR 定向测试与模块编译通过。