返回 Bug 清单
BUG-1393project-02中已修复backend-logic

accounts/tree 缺 book_id 过滤导致 680 条跨 book 科目混合显示

发现:2026-10-17验证:2026-10-17置信度:90%

症状

科目管理页面显示"非常多重复科目"。DB 同 book 内实际无重复 (UNIQUE(book_id, account_code) 已保护),是跨 book 混在一起。

根因

bk_accounts_tree 路由直接 SELECT * FROM fms_accounts WHERE status='active' ORDER BY account_code — 没有加 book_id 过滤。fms_accounts 存了 5 个 book 各 136 条科目,前端不指定 book_id 时返回全量 680 条,用户看到相同 code (1002/6001 等) 重复 5 次。

修复方案

1) 新增 book_id = request.args.get('book_id', type=int); 2) WHERE 加 AND book_id = %s; 3) 未传时查第一个 active book 兜底; 4) 部署 docker cp + docker restart。SQL 验证: 680 → 单 book 136。

错误签名

GET /api/bk/accounts/tree 返回 680 条 (5 book x 136) 而非单 book 136 条

技术信息

来源项目

project-02

涉及文件

bk_backend/bk_accounts_api.py

标签

project-02, mcp-reported, source-agent