fix(aihr): require explicit SOP review verdict
This commit is contained in:
+7
@@ -199,6 +199,9 @@ public class AihrSopSeedService {
|
||||
if (id == null) {
|
||||
return null;
|
||||
}
|
||||
if (!hasExplicitSopReviewDecision(request)) {
|
||||
throw new ServiceException("SOP评审必须明确选择可用或不可用");
|
||||
}
|
||||
ensureSopReviewTable();
|
||||
int updated = jdbcTemplate.update("""
|
||||
UPDATE aihr_sop_answer_review
|
||||
@@ -216,6 +219,10 @@ public class AihrSopSeedService {
|
||||
return updated == 0 ? null : sopReview(id);
|
||||
}
|
||||
|
||||
static boolean hasExplicitSopReviewDecision(SopReviewRequest request) {
|
||||
return request != null && request.usable() != null;
|
||||
}
|
||||
|
||||
public AnswerFeedbackResponse answerFeedback(AnswerFeedbackRequest request) {
|
||||
String queryText = request == null ? "" : Optional.ofNullable(request.queryText()).orElse("").trim();
|
||||
String queryNorm = normalizeFeedbackQuery(queryText);
|
||||
|
||||
+9
@@ -44,6 +44,15 @@ public class AihrSopSeedServiceTest {
|
||||
assertFalse(AihrSopSeedService.shouldCreateSopReview("物业费怎么交", "verify_demo_questions"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Tag("dev")
|
||||
public void sopReviewRequiresExplicitUsableDecision() {
|
||||
assertFalse(AihrSopSeedService.hasExplicitSopReviewDecision(null));
|
||||
assertFalse(AihrSopSeedService.hasExplicitSopReviewDecision(new AihrSopDto.SopReviewRequest(null, null, null)));
|
||||
assertTrue(AihrSopSeedService.hasExplicitSopReviewDecision(new AihrSopDto.SopReviewRequest(true, null, null)));
|
||||
assertTrue(AihrSopSeedService.hasExplicitSopReviewDecision(new AihrSopDto.SopReviewRequest(false, null, null)));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Tag("dev")
|
||||
public void evidenceHitsKeepsNamedDocumentOnly() {
|
||||
|
||||
@@ -184,3 +184,4 @@
|
||||
- 2026-07-14 BRD 知识反馈关联复核:答案反馈原先直接接受客户端传入的 `reviewId`;现仅保留当前租户存在的 SOP 评审关联,非法或跨租户 ID 归一为空。
|
||||
- 2026-07-14 BRD 候选资料审核留痕:候选资料审核此前只有状态三态,没有审核人和审核时间;现由服务端从当前 HR 登录态写入 `reviewer/reviewed_time`,管理端审核表同步展示。
|
||||
- 2026-07-14 BRD 试点门禁租户参数化:严格试点预检此前将 M5 查询固定到 `tenant_id='000000'`,正式试点切换租户时会统计错误;现支持经过字符白名单校验的 `AIHR_PILOT_TENANT_ID`,默认仍为本地开发租户,试点命令和文档已同步。
|
||||
- 2026-07-14 BRD SOP 人工评审结论完整性:`POST /api/knowledge/reviews/{id}` 现在要求明确提交 `usable=true/false`,空请求或缺少结论会拒绝,不再把未作答误记为“不可用”;`reviewer` 仍由当前登录操作人写入。已补服务层回归测试与 `demo-check` marker,但这只修正评审数据完整性,不代表住宅 SOP 可用率已达到正式试点门槛。
|
||||
|
||||
@@ -498,6 +498,7 @@ contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/control
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSopSeedService.java "仅支持 txt/md/markdown/pdf/doc/docx/xls/xlsx/ppt/pptx/图片文件"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSopSeedService.java "/embeddings"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSopSeedService.java "aihr_knowledge_gap"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSopSeedService.java "hasExplicitSopReviewDecision"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSopSeedService.java "validateFeedbackFragmentOwnership"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSopSeedService.java "normalizeFeedbackReviewId"
|
||||
contains backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrVideoService.java "处理输出已隐藏"
|
||||
|
||||
Reference in New Issue
Block a user