Files
next-tjwater-server/docs/workbench-operations-storage.md
T

1.9 KiB
Raw Blame History

工作台工单与告警存储契约

工作台只聚合预约工单与任务主动推送的告警。浏览器不推导告警,也不写正式工单。

任务告警

DDL 位于 resources/sql/008_workbench_alert_events.sql。任务通过 POST /api/v1/workbench/task-alert-events 推送 raised、acknowledged 或 resolved 事件。来源包含 task_type、task_id 和 run_id,生产者由认证项目身份绑定。event_id 在项目和生产者范围内幂等,告警事实在首次 raised 后不可改写。

预约工单

workbench.work_orders 的 DDL 位于 resources/sql/011_workbench_work_orders.sql。每行保存一个只读工单投影,文档必须满足 WorkbenchRuntimeWorkOrder:

resources/sql/017_workbench_schema_comments.sql 在 008、011、014 和 015 之后执行,为工作台 schema、17 张表和关键列增加数据库可见的用途说明。

  • 一张主工单包含一个或多个 subtasks。
  • 每个子任务保存自己的位置、班组、时间窗和复令要求。
  • 每个子任务包含一个或多个有序 stages,sequence 从 1 连续递增,阶段编号在子任务内唯一,最多只有一个 current 阶段。
  • 阶段名称不写死为固定枚举。演示数据使用派发、执行、复令,正式工单适配器可以按业务定义其他阶段。

预约任务演示数据通过 scripts/seed_workbench_work_orders.py 直接写入。工作台会显示三张原有 mock 工单,分别处于派发、执行和复令阶段;每张工单都保留自己的子任务与有序阶段。脚本可重复执行,并会先清理旧的外围合成工单投影。外围种子脚本仍会恢复被软删除的固定演示资源。

工作台运行账号对工单表只需 SELECT,同步账号使用独立受控写权限;对告警事件表需要 SELECT, INSERT,对告警状态表需要 SELECT, INSERT, UPDATE。