fix: 复ug

This commit is contained in:
iHeyTang 2025-08-15 15:39:02 +08:00
parent 5fbbb719f4
commit 3fa1c895be
1 changed files with 19 additions and 11 deletions

View File

@ -40,16 +40,23 @@ async def save_workflow(name: str, workflow_json: str):
async def get_all_workflows() -> List[dict]:
"""获取所有工作流(最新版本)"""
async with AsyncSessionLocal() as session:
# 使用子查询获取每个base_name的最新版本
# 使用SQLAlchemy ORM语法通过子查询获取每个base_name的最新版本
from sqlalchemy import func
# 子查询获取每个base_name的最新版本
latest_versions = (
select(Workflow.base_name, func.max(Workflow.version).label("max_version"))
.group_by(Workflow.base_name)
.subquery()
)
# 主查询:关联获取完整的工作流信息
stmt = (
select(Workflow)
.where(
Workflow.version
== select(Workflow.version)
.where(Workflow.base_name == Workflow.base_name)
.order_by(Workflow.version.desc())
.limit(1)
.scalar_subquery()
.join(
latest_versions,
(Workflow.base_name == latest_versions.c.base_name)
& (Workflow.version == latest_versions.c.max_version),
)
.order_by(Workflow.base_name)
)
@ -256,14 +263,15 @@ async def get_running_workflow_runs() -> List[dict]:
return [run.to_dict() for run in runs]
async def get_workflow_runs_recent(start_time: datetime, end_time: datetime) -> List[dict]:
async def get_workflow_runs_recent(
start_time: datetime, end_time: datetime
) -> List[dict]:
"""获取指定时间范围内的最近工作流运行记录"""
async with AsyncSessionLocal() as session:
stmt = (
select(WorkflowRun)
.where(
WorkflowRun.created_at >= start_time,
WorkflowRun.created_at <= end_time
WorkflowRun.created_at >= start_time, WorkflowRun.created_at <= end_time
)
.order_by(WorkflowRun.created_at.desc())
)