diff --git a/backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrPracticeSeedService.java b/backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrPracticeSeedService.java index 4ae695c0..5afda6b6 100644 --- a/backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrPracticeSeedService.java +++ b/backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrPracticeSeedService.java @@ -1404,7 +1404,7 @@ public class AihrPracticeSeedService { LIMIT 1 """, (rs, rowNum) -> new OrgScopeRow(rs.getString("project_code"), rs.getString("position_level")), ownerArgs.toArray()); if (owners.isEmpty()) { - return TeamScope.unscoped(); + return TeamScope.scoped(List.of()); } OrgScopeRow row = owners.get(0); if (!canSeeProject(row.positionLevel())) { diff --git a/backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/service/AihrPracticeSeedServiceTest.java b/backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/service/AihrPracticeSeedServiceTest.java index 9f23ca44..a91e5ff2 100644 --- a/backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/service/AihrPracticeSeedServiceTest.java +++ b/backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/service/AihrPracticeSeedServiceTest.java @@ -107,6 +107,17 @@ public class AihrPracticeSeedServiceTest { assertEquals(List.of("000000", "SUP-1", "EMP-1", 5), jdbcTemplate.reviewArgs); } + @Test + public void pendingReviewRecordsBlocksUnknownSupervisorWhenSnapshotExists() { + PracticeReviewJdbcTemplate jdbcTemplate = new PracticeReviewJdbcTemplate(null, List.of()); + AihrPracticeSeedService service = new AihrPracticeSeedService(new ObjectMapper(), jdbcTemplate, null, null); + + service.pendingReviewRecords("UNKNOWN", "", "", 5); + + assertEquals("", jdbcTemplate.reviewSql); + assertEquals(List.of(), jdbcTemplate.reviewArgs); + } + @Test public void competencyDoesNotSeedScoreForEmptyEmployee() { JdbcTemplate jdbcTemplate = mock(JdbcTemplate.class); @@ -229,6 +240,9 @@ public class AihrPracticeSeedServiceTest { if (sql.contains("SELECT project_code") && sql.contains("LIMIT 1")) { ownerSql = sql; ownerArgs = List.of(args); + if (ownerLevel == null) { + return List.of(); + } return mapRows(rowMapper, List.of(Map.of( "project_code", "P1", "position_level", ownerLevel