fix(aihr): require completed interview reviews

This commit is contained in:
2026-07-14 14:27:20 +08:00
parent d08f4a82e3
commit a300f0c389
4 changed files with 16 additions and 2 deletions
@@ -183,8 +183,8 @@ public class AihrInterviewService {
}
int updated = jdbcTemplate.update("""
UPDATE aihr_interview_result
SET reviewed_score = ?, review_status = '已复核', reviewer = ?, review_note = ?, reviewed_time = now(), update_time = now()
WHERE tenant_id = ? AND session_id = ?
SET reviewed_score = ?, review_status = '已复核', reviewer = ?, review_note = ?, reviewed_time = now(), update_time = now()
WHERE tenant_id = ? AND session_id = ? AND finished_time IS NOT NULL AND total_score IS NOT NULL
""", reviewedScore, firstNonBlank(operator, "unknown"), reviewNote, tenantId(), normalizedSessionId);
if (updated == 0) {
throw new IllegalArgumentException("面试记录不存在或不属于当前租户");
@@ -159,6 +159,18 @@ class AihrInterviewServiceTest {
verify(jdbcTemplate).update(anyString(), eq(88), eq("hr-operator"), eq("人工确认现场协调能力不足"), eq("000000"), eq("iv-1"));
}
@Test
@Tag("dev")
void reviewResultRequiresCompletedAiScore() throws Exception {
Path source = Path.of("src/main/java/org/dromara/aihr/service/AihrInterviewService.java");
if (!Files.exists(source)) {
source = Path.of("ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrInterviewService.java");
}
String serviceSource = Files.readString(source);
assertTrue(serviceSource.contains("finished_time IS NOT NULL AND total_score IS NOT NULL"));
}
@Test
@Tag("dev")
void reviewResultRejectsOutOfRangeScore() {