票 74 已把后端契约补上(提交 983fc27a 已推 origin/master,尚未部署):GET /api/cockpit/v1/events/handling-efficiency?eventFamily=WARNING 现在回预警自身的处置流程段,票 65 当时记录的契约缺口不复存在。本票是那张缺口关闭后的前端消费票(票 74 验收第 5 条明令另立)。
| 位置 | 预警族 | 报警族 |
|---|---|---|
warningStateCounts |
[{stateCode, stateName, count}],WarningWorkflow 六态全铺(缺桶计 0),脏状态进 UNKNOWN 桶 |
null |
summary.warningHandlingEfficiency |
{value, numerator, denominator, state, reason, basis},已解除 ÷ 窗口内预警数;分母 0 → state=EMPTY + reason=NO_WARNINGS |
null |
summary.warningDuration |
{value, unit, sampleCount, state, reason},发布→已解除平均时长;无样本 → EMPTY + NO_CLOSED_WARNINGS |
null |
summary.handledCount/inProgressCount/cancelledCount、handlingEfficiency、averageDuration、workOrderStateCounts |
全部 null |
原样 |
durationTrend[] |
eventCount 保留,handledCount/averageDuration 为 null |
原样 |
真实环境实测(第二实例 8399,同一联调库,窗口 2026-09-23 ~ 2026-10-23):totalEvents=7、linkedWorkOrderCount=0、六态 PENDING 3 / PROCESSING 1 / CLOSED 3(和=7)、已解除率 3/7=0.4286、时长 0.64h(3 样本)。证据:verify/artifacts/t74/warning-family-live.json(票 74 落盘)。
toHandlingEfficiency() 读新字段(warningStateCounts / summary.warningHandlingEfficiency / summary.warningDuration),null 保真(不把 null 数成 0;票 42/票 20 同一纪律)。warningEfficiencyKpis() 三张卡换成预警自身读数:预警条数 / 已解除率 / 平均处置时长(块结构不重排,票 65 已预留接缝)。barsBlock 或既有分布块,词表取 WarningWorkflow 中文名,不在前端另造一套状态词)。WARNING_EFFICIENCY_GAP 这段「后端尚未提供」的口径说明必须改写——缺口已补,留着就是谎话;新文案说清「这些数是预警自身的处置流程统计」与已解除率的分母。contractMocks.js 的 efficiency mock 同步新形状(含 EMPTY/NO_WARNINGS 空态),静态样例仍遵守本图 Notes 的「不为演示改写样例」裁定。WARNING_EFFICIENCY_GAP 不再声称「后端未提供」。http://127.0.0.1:8000/#/cockpit 走查预警模式三卡与分布块(走查归票 18 联调窗口;本机 mock 可先验形状)。983fc27a)。Status: ready-for-agent Type: task Blocked by: Labels: wayfinder:task, ready-for-agent