fix(cma): entity isolation batch2 (roll-forward/check-timeout/by-id/cost-abc)
ci/woodpecker/push/main Pipeline failed

Scope: backend/app/api/{alerts,action_plans,budget,cost}.py + tests

Task: 0-P1-project-20260918-entity-isolation-batch2
This commit is contained in:
Hermes CI Fix
2026-09-18 18:15:22 +08:00
parent b9c80f836e
commit ad953ac759
5 changed files with 467 additions and 24 deletions
+10 -5
View File
@@ -176,14 +176,19 @@ def create_actual_cost(data: dict, db: Session = Depends(get_db),
# ============================================================
# ABC 作业成本
# 注:ABC 作业中心/分配为单实体演示数据(ab_activities/ab_allocations 全为 entity 1,
# 历史演示用途),OpenCode 多租户审查 2026-09-07 判定暂不强制按账套隔离;若启用多企业 ABC 需补 entity 过滤。
# 账套隔离(2026-09-18,0-P1-project-20260918-entity-isolation-batch2):
# GET /abc/activities 原为全表取(生产 10 行全属 entity2)→ 酣客会话可见博海 ABC 作业中心;
# 现按会话账套过滤(AbcActivity.entity_id)。
# OpenCode 多租户审查 2026-09-07 的「单实体演示数据暂不强制隔离」豁免就此撤销。
# ============================================================
@router.get("/abc/activities")
def list_abc_activities(db: Session = Depends(get_db)):
"""查询ABC作业中心列表"""
items = db.query(AbcActivity).order_by(AbcActivity.activity_code).all()
def list_abc_activities(db: Session = Depends(get_db), entity_id: int = Depends(get_entity_id)):
"""查询ABC作业中心列表(账套隔离:只返回本账套)"""
items = (db.query(AbcActivity)
.filter(AbcActivity.entity_id == entity_id)
.order_by(AbcActivity.activity_code)
.all())
return {"data": items}