From 13ec3bf20c7e67f79cfb54464bd76e0fcd677ca6 Mon Sep 17 00:00:00 2001 From: let5sne Date: Sat, 18 Jul 2026 10:01:53 +0800 Subject: [PATCH] fix(case): align project scope query with 2026-07-16 org snapshot contract MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 客户反馈核验中发现:案例素材上传对所有 APP 用户报 「当前账号没有可用项目身份」——projectScopesForAppUser 查询快照表 已不存在的 project_ext_org_id 列(07-16 组织新契约更名为 project_code), DataAccessException 被兜底吞掉后 scope 恒为空。全代码库仅此一处引用 旧列名(aihr_case_record 自身列不受影响,读写走同一解析器语义一致)。 修复后生产全链路跑通:主管上传语音(TTS合成测试音频)→ ASR 转写 → organize 结构化(背景/处理/结果)→ curate 入库 → 员工 records 可见。 后端已发布(备份 ruoyi-admin.jar.bak-20260718095809,重启25s恢复)。 同轮生产验证(有奖征题闭环,零代码改动):员工发问→运营审核→ 后台发悬赏征题(rewardPoints=50+deadline)→员工回答→审核→采纳最佳 →积分0→50到账(明细正确)、重复采纳不重复发奖、员工调管理接口403、 员工端问题榜/积分页 UI 呈现全部正确。 Co-Authored-By: Claude Fable 5 --- .../org/dromara/aihr/service/AihrCaseService.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrCaseService.java b/backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrCaseService.java index 82a7ab29..e47235ed 100644 --- a/backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrCaseService.java +++ b/backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrCaseService.java @@ -243,16 +243,18 @@ public class AihrCaseService { return List.of(); } try { + // 2026-07-16 org contract renamed the snapshot project column to project_code; + // case scopes follow it (aihr_case_record keeps its own project_ext_org_id column). return jdbcTemplate.query(""" - SELECT DISTINCT project_ext_org_id + SELECT DISTINCT project_code FROM aihr_org_snapshot WHERE tenant_id = ? AND employment_status = 'active' - AND project_ext_org_id IS NOT NULL - AND project_ext_org_id <> '' + AND project_code IS NOT NULL + AND project_code <> '' AND (person_phone = ? OR ext_party_id = ?) - ORDER BY project_ext_org_id - """, (rs, rowNum) -> rs.getString("project_ext_org_id"), tenantId(), username, username); + ORDER BY project_code + """, (rs, rowNum) -> rs.getString("project_code"), tenantId(), username, username); } catch (DataAccessException e) { log.warn("resolve app user project scope failed(处理错误已隐藏)"); return List.of();