返回 Bug 清单
BUG-1390project-02高已修复database-schema

transfer-profit-loss 500 — bk_account_books 缺 current_period 列 + 跨 book 科目缺失

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

症状

POST /api/bk/books/2/transfer-profit-loss 返回 500。后端日志: psycopg2.errors.UndefinedColumn: column "current_period" does not exist。前端 period-close.js 调 _post 失败。

根因

双 schema gap: 1) bk_account_books 表实际只有 9 列(id/client_id/book_name/fiscal_year/currency/status/created_by/created_at/tenant_id),代码 SELECT current_period 必然 UndefinedColumn;2) book_id 2-5 没有任何 4xxx/1xxx/2xxx/5xxx 科目(fms_accounts 只给 book_id=1 seed 了完整 CAS 2024 标准 72 条),损益结转查 4103 本年利润返回空。

修复方案

生产环境执行: 1) ALTER TABLE bk_account_books ADD current_period VARCHAR(7); UPDATE 5 books SET current_period=fiscal_year||'-12'; 2) INSERT 24 条 4xxx 权益科目 + 344 条 1xxx/2xxx/5xxx 科目基线,从 book_id=1 复制 (ON CONFLICT DO NOTHING); 3) docker restart project-02-backend。Migration 048 入库,未来重建可重跑。

错误签名

psycopg2.errors.UndefinedColumn: column "current_period" does not exist at bk_period_close_api.py L383

技术信息

来源项目

project-02

涉及文件

database/migrations/048_current_period_and_account_seed.sql

标签

project-02, mcp-reported, source-agent