```
feat: 添加数据库迁移脚本并更新Dockerfile配置 - 在Dockerfile中添加alembic配置文件和目录的复制指令 - 更新alembic/env.py注册新的模块模型:events、workflows、writebacks - 生成完整的初始数据库schema迁移脚本,包含以下表: - approval_requests, attendance_records, audit_logs, domain_events - expenses, feishu_event_receipts, fund_accounts, legacy_sync_runs - official_writeback_runs, performance_metrics, policies, procurements - projects, report_push_runs, risk_event_actions, risk_events - standards, suppliers, work_reports, work_tasks, workflow_actions - workflow_instances等21个数据表结构定义 - 在API路由器中添加新模块的路由:events、workflows、writebacks、observability ```
This commit is contained in:
@@ -16,8 +16,14 @@ from app.modules.business.models import (
|
||||
WorkTask,
|
||||
)
|
||||
from app.modules.business.service import serialize_model
|
||||
from app.modules.events.constants import EventStatus
|
||||
from app.modules.events.models import DomainEvent
|
||||
from app.modules.reports.constants import ReportPushStatus
|
||||
from app.modules.risk.service import RiskService
|
||||
from app.modules.workflows.constants import WorkflowStatus
|
||||
from app.modules.workflows.models import WorkflowInstance
|
||||
from app.modules.writebacks.constants import WritebackStatus
|
||||
from app.modules.writebacks.models import OfficialWritebackRun
|
||||
|
||||
|
||||
class DashboardService:
|
||||
@@ -41,6 +47,24 @@ class DashboardService:
|
||||
RiskEvent.assigned_to.is_(None),
|
||||
)
|
||||
failed_push_runs = self._count(ReportPushRun, ReportPushRun.status == ReportPushStatus.FAILED)
|
||||
pending_events = self._count(DomainEvent, DomainEvent.status == EventStatus.PENDING)
|
||||
failed_events = self._count(DomainEvent, DomainEvent.status == EventStatus.FAILED)
|
||||
running_workflows = self._count(
|
||||
WorkflowInstance,
|
||||
WorkflowInstance.status == WorkflowStatus.RUNNING,
|
||||
)
|
||||
failed_workflows = self._count(
|
||||
WorkflowInstance,
|
||||
WorkflowInstance.status == WorkflowStatus.FAILED,
|
||||
)
|
||||
disabled_writebacks = self._count(
|
||||
OfficialWritebackRun,
|
||||
OfficialWritebackRun.status == WritebackStatus.DISABLED,
|
||||
)
|
||||
failed_writebacks = self._count(
|
||||
OfficialWritebackRun,
|
||||
OfficialWritebackRun.status == WritebackStatus.FAILED,
|
||||
)
|
||||
latest_reports = self.db.execute(
|
||||
select(WorkReport).order_by(WorkReport.id.desc()).limit(5)
|
||||
).scalars()
|
||||
@@ -62,6 +86,12 @@ class DashboardService:
|
||||
"open_risk_events": open_risk_events,
|
||||
"unassigned_open_risks": unassigned_open_risks,
|
||||
"failed_push_runs": failed_push_runs,
|
||||
"pending_events": pending_events,
|
||||
"failed_events": failed_events,
|
||||
"running_workflows": running_workflows,
|
||||
"failed_workflows": failed_workflows,
|
||||
"disabled_writebacks": disabled_writebacks,
|
||||
"failed_writebacks": failed_writebacks,
|
||||
"risk_level": risk_summary["risk_level"],
|
||||
"risk_score": float(risk_summary["risk_score"]),
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user